PineScript v5:如何根据时间周期设置不同的绘图线宽?
解决Pine Script v5中按时间周期设置绘图线宽的问题
错误原因
Pine Script v5的plot()函数里,linewidth参数要求是输入型整数(input int)——也就是编译阶段就确定的静态值,不能用动态计算得出的简单整数(simple int)。你用三元运算符返回的是随条件变化的动态值,不符合参数类型要求,所以报错。
解决方案
可以通过创建两个plot实现需求:一个仅在1分钟周期显示(线宽1),另一个在其他周期显示(线宽2),通过条件控制输出na来隐藏不需要的绘图。代码示例:
//@version=5 indicator("动态线宽示例", overlay=true) // 判断当前是否为1分钟时间周期 in_1min_tf = timeframe.isintraday and timeframe.multiplier == 1 // 替换为你的实际指标数据 test_plot = close // 1分钟周期显示线宽1的绘图 plot(series=in_1min_tf ? test_plot : na, title='Mid', linewidth=1, color=color.white) // 其他周期显示线宽2的绘图 plot(series=not in_1min_tf ? test_plot : na, title='Mid', linewidth=2, color=color.white)
原理说明
当条件不满足时,把series参数设为na,对应的绘图会自动隐藏。两个绘图用相同的标题和颜色,视觉上和单一绘图完全一致,但能实现不同周期的线宽差异。
内容的提问来源于stack exchange,提问作者user3848207
相关产品推荐
相关产品推荐

