如何在空心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
相关产品推荐
相关产品推荐

