如何在TradingView Pine Script中设置入场前5根K线最低价的止损?
Pine Script 入场前5根K线最低价止损的正确写法
原代码的问题在于ta.lowest(low, 5)会将当前入场K线纳入计算范围,导致你拿到的是包含入场K线在内的5根K线最低价,和你需要的「入场前5根K线最低价」不符。
修正后的代码如下:
var float long_stop = 0.0 if buy // 计算入场K线之前5根K线的最低价(不包含入场K线) long_stop := ta.lowest(low[1], 5) plot(long_stop, color=color.blue, title="止损线")
代码说明:
low[1]指向当前入场K线的前一根K线的最低价,以此为起点调用ta.lowest(),会计算从入场K线的前1根到前5根这5根K线的最低价,完全符合你要的范围。- 也可以用
ta.lowest(low, 5)[1]替代,逻辑是先计算包含当前K线的5根最低价,再偏移1周期取结果,效果和上面的代码一致。
如果需要验证计算范围,可以添加辅助标记代码:
// 标记入场信号箭头 plotshape(buy, title="入场信号", location=location.belowbar, color=color.green, style=shape.arrowup, size=size.small) // 高亮入场前5根K线,方便确认范围 bgcolor(ta.barssince(buy) >= 1 and ta.barssince(buy) <= 5 ? color.new(color.blue, 90) : na)
内容的提问来源于stack exchange,提问作者Parabellum
相关产品推荐
相关产品推荐

