如何在Pine Script中实现间隔两根K线的交叉条件plotshape绘制
Pine Script 优化交叉标记绘制逻辑
针对你的需求,我们需要给plotshape的触发条件加上前两根K线未触发相同交叉的判断,具体实现如下:
// 定义上穿条件:当前K线上穿,且前两根K线都未上穿 crossoverCondition = ta.crossover(close, upper1) and not ta.crossover(close[1], upper1[1]) and not ta.crossover(close[2], upper1[2]) // 定义下穿条件:当前K线下穿,且前两根K线都未下穿 crossunderCondition = ta.crossunder(close, lower1) and not ta.crossunder(close[1], lower1[1]) and not ta.crossunder(close[2], lower1[2]) // 使用新条件绘制标记 plotshape(series = crossoverCondition, style=shape.xcross, location=location.abovebar, color=color.new(color.blue, 0), size=size.tiny, display=display.pane) plotshape(series = crossunderCondition, style=shape.xcross, location=location.belowbar, color=color.new(color.yellow, 0), size=size.tiny, display=display.pane)
代码说明:
close[1]代表前一根K线的收盘价,upper1[1]对应前一根K线的upper1数值,以此类推close[2]/upper1[2]是前两根K线的数据not用来取反,确保前两根K线没有触发对应的交叉信号- 只有当当前触发交叉 + 前两根都没触发时,
crossoverCondition/crossunderCondition才会返回true,此时才会绘制叉形标记
这样就完全实现了你要的逻辑:仅在当前K线触发交叉且前两根K线未触发相同条件时,才显示标记。
内容的提问来源于stack exchange,提问作者Red
相关产品推荐
相关产品推荐

