同一脚本中Pine Script策略与RSI分层显示及形状单次显示问题
Pine Script 问题解决方案
1. 分离主图策略与副图RSI显示
- 不要给RSI对应的
plot()函数添加overlay=true参数。默认逻辑下,策略的交易信号会显示在主图,而RSI的绘图指令会自动生成独立的副图面板(位于主图下方)。 - 示例代码:
//@version=5 strategy("My Strategy", overlay=true) // 策略默认主图显示 rsiValue = ta.rsi(close, 14) plot(rsiValue, title="RSI", color=color.new(color.blue, 0)) // 自动在副图显示,无overlay参数
2. 控制开仓标记仅显示一次
- 通过判断条件的首次触发时机避免重复标记,核心是用
not condition[1]确认当前K线是条件从假变真的节点: - 基础实现代码:
//@version=5 strategy("My Strategy", overlay=true) rsiValue = ta.rsi(close, 14) longCondition = rsiValue < 30 // 仅在条件首次满足的K线绘制标记 isFirstLong = longCondition and not longCondition[1] plotshape(isFirstLong, title="Long Entry", location=location.belowbar, style=shape.labelup, color=color.green, text="BUY") - 若需要限制重复标记的间隔,可结合
ta.barssince()设置最小间隔K线数:lastLongBar = ta.barssince(isFirstLong) // 至少间隔5根K线才允许再次触发标记 validLongCondition = longCondition and (lastLongBar > 5 or na(lastLongBar)) isFirstLong = validLongCondition and not validLongCondition[1]
内容的提问来源于stack exchange,提问作者김한수
相关产品推荐
相关产品推荐

