You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在空心Doji高低点绘制线条?Pine Script技术咨询

解决方案

首先需要明确区分空心Doji和实心Doji的判断条件,再针对空心Doji在其高低点绘制绿色水平线。以下是修正后的代码:

//@version=5
indicator("Doji High-Low Lines", overlay = true)

// 输入参数:Doji实体最大占波幅的比例
precision = input.float(0.15, minval=0.0001, title="Doji最大实体占波幅比例")
// 额外阈值:用于区分空心Doji(实体几乎为0)和实心Doji(实体极小但存在)
hollowThreshold = input.float(syminfo.mintick * 2, title="空心Doji实体阈值")

// 基础Doji判断:实体大小 <= 波幅 * 比例
dojiCondition = math.abs(open - close) <= (high - low) * precision

// 区分空心Doji(实体几乎为0)和实心Doji(实体极小但有细微涨跌)
hollowDoji = dojiCondition and math.abs(open - close) <= hollowThreshold
solidDoji = dojiCondition and not hollowDoji

// 在空心Doji的高点绘制绿色水平线
plot(hollowDoji ? high : na, color=color.green, style=style.linebr, title="空心Doji高点线")
// 在空心Doji的低点绘制绿色水平线
plot(hollowDoji ? low : na, color=color.green, style=style.linebr, title="空心Doji低点线")

// 可选:保留实心Doji的红色标记(用于调试,不需要可删除)
plotshape(solidDoji, title="实心Doji", style=shape.xcross, location=location.abovebar, color=color.red)

关键改动说明:

  • 新增hollowThreshold参数:用合约最小变动单位的倍数作为阈值,精准区分实体几乎为0的空心Doji和有细微实体的实心Doji。
  • 拆分Doji判断条件:将原有的单一Doji判断拆分为hollowDoji和solidDoji两个独立条件。
  • 使用plot函数绘制线条:通过style.linebr实现仅在空心Doji K线的高低点显示连续线条,非Doji K线位置用na隐藏。
  • 可选保留实心Doji的红色标记:方便调试对比,不需要时可直接删除plotshape行。

内容的提问来源于stack exchange,提问作者gree_trades3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:05:22