PineScript主副图指标绘制区别及单指标双窗格实现咨询
Pine Script 常见绘图问题解答
1. 主图类与副图类指标的绘图逻辑区别
二者核心差异仅在指标声明时的全局配置,绘图函数的使用逻辑完全一致:
- 主图指标(如你提供的MA示例):
study函数中配置了overlay=true,指标会默认叠加在主图K线层,数值刻度和主图价格刻度自动对齐,适合绘制和价格维度一致的指标。 - 副图指标(如你提供的RSI示例):
overlay参数默认值为false,指标会单独开辟窗格展示,使用独立的数值刻度,适合绘制数值范围和价格差异较大的指标。
这也是你对比两份示例代码没有发现明显差异的原因。
2. 同一Pine Script指标同时在主副图绘制内容的实现
可以实现,Pine Script v4及以上版本支持单脚本跨窗格绘图,通过 plot 函数的 display 参数即可覆盖全局的 overlay 配置:
- 若全局声明
overlay=true(默认所有绘图输出到主图),给需要放到副图的绘图语句添加display = display.separate_window参数,即可让该内容单独在副图窗格展示。 - 若全局声明
overlay=false(默认所有绘图输出到副图),给需要放到主图的绘图语句添加display = display.data_window参数,即可让该内容输出到主图。 - 配套的
hline、fill等辅助绘图语句如果需要展示在非默认窗格,也需要同步添加对应的display参数。
以下是将MA和RSI合并到同一脚本的示例代码:
//@version=4 study(title="MA+RSI组合指标", shorttitle="MA_RSI", overlay=true) // 主图MA部分计算与绘图 len_ma = input(9, minval=1, title="MA Length") src_ma = input(close, title="MA Source") offset_ma = input(title="MA Offset", type=input.integer, defval=0, minval=-500, maxval=500) ma_out = sma(src_ma, len_ma) plot(ma_out, color=color.blue, title="MA", offset=offset_ma) // 副图RSI部分计算与绘图 len_rsi = input(14, minval=1, title="RSI Length") src_rsi = input(close, "RSI Source") up = rma(max(change(src_rsi), 0), len_rsi) down = rma(-min(change(src_rsi), 0), len_rsi) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) plot(rsi, "RSI", color=#7E57C2, display=display.separate_window) band1 = hline(70, "Upper Band", color=#787B86, display=display.separate_window) bandm = hline(50, "Middle Band", color=color.new(#787B86, 50), display=display.separate_window) band0 = hline(30, "Lower Band", color=#787B86, display=display.separate_window) fill(band1, band0, color=color.rgb(126, 87, 194, 90), title="RSI Background", display=display.separate_window)
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

