TradingView Pine Editor:如何避免变动数值连成一条线?
实现Pine脚本中离散线条式的价格标记需求
当前使用的Pine脚本代码
plot(swt ? weekOpen : na, title="Weekly Open", style=line, linewidth=2, color=green,transp=0) plot(swt ? weekClose : na, title="Weekly Close", style=line, linewidth=2, color=red,transp=0) plot(spw ? monthClose : na, title="Monthly Close", style=circles, linewidth=3, color=black, transp=0)
现状与需求
- 当前效果:绿色线条为周开盘价、红色线条为周收盘价,黑色圆形标记为月收盘价,但圆形样式的标记精度不足。
- 需求:改用
line样式实现类似圆形标记的离散效果(不连接相邻数值点),同时保持标记的精准性,达到类似MT4中用短水平线单独标记每个月收盘价的效果。
解决方案
核心思路是在需要标记月收盘价的K线及下一根K线处绘制相同价格,让line样式连接这两个点形成短水平线,后续K线返回na避免连接,实现离散精准的标记效果。修改后的完整代码如下:
plot(swt ? weekOpen : na, title="Weekly Open", style=line, linewidth=2, color=green, transp=0) plot(swt ? weekClose : na, title="Weekly Close", style=line, linewidth=2, color=red, transp=0) // 修改月收盘价绘制逻辑,实现离散短线效果 isMonthCloseMarker = spw or barssince(spw) == 1 plot(isMonthCloseMarker ? monthClose : na, title="Monthly Close", style=line, linewidth=3, color=black, transp=0)
逻辑说明
isMonthCloseMarker:判断当前K线是否为月收盘价触发K线(spw为真),或是触发后的第一根K线,确保这两根K线都绘制月收盘价。- 两个相同价格的点会被
line样式连接成一段水平短线,后续K线因返回na,不会与下一个标记连接,完美实现离散的精准线条标记。
内容的提问来源于stack exchange,提问作者Kevin A.
相关产品推荐
相关产品推荐

