调整TradingView Pine Script中plotshape的垂直间距,解决形态重叠问题
解决方案
要解决两个标记重叠的问题,核心是给两个形态设置不同的垂直位置——offset是水平偏移参数,对垂直位置调整无效,我们需要用plotshape的y参数直接指定每个形态的垂直高度,让它们在K线上方分层显示。
修改后的完整代码:
//@version=6 strategy("Test Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // 绘制50周期EMA ema_50 = ta.ema(close, 50) plot(ema_50, color=color.new(color.green, 0), linewidth=2) // 价格首次上穿EMA的条件 price_above_ema = close > ema_50 first_cross_above_ema = price_above_ema and not price_above_ema[1] // 圆形标记:位于K线高点上方5个最小变动单位 plotshape(first_cross_above_ema, y=high + syminfo.mintick * 5, color=color.purple, style=shape.circle, size=size.small) // 成交量高于20周期均量的条件 volume_avg = ta.sma(volume, 20) above_avg_volume = volume > volume_avg // 菱形标记:位于K线高点上方10个最小变动单位 plotshape(above_avg_volume, y=high + syminfo.mintick * 10, color=color.orange, style=shape.diamond, size=size.small)
关键调整说明:
- 垂直位置控制:移除
location=location.abovebar,改用y参数直接定义标记高度,圆形和菱形分别偏移5个、10个品种最小变动单位,实现垂直错开。 - 适配多品种:用
syminfo.mintick(品种最小报价单位)作为偏移基准,避免硬编码数值在股票、期货、加密货币等不同品种上显示异常。
内容的提问来源于stack exchange,提问作者acr
相关产品推荐
相关产品推荐

