Pinescript:plotchar()绘制字符垂直缩放时相对位置异常求助
解决Pinescript中plotchar信号缩放位置偏移及重叠问题
问题根源
你用固定绝对数值(85、88)绑定看跌信号的位置,当垂直缩放指标面板时,面板的数值范围会变化,导致这些固定数值相对于面板的位置发生偏移;而看涨信号的-85、-88大概率处于面板底部的固定区域,所以视觉上位置稳定。用location.top/location.bottom直接绘制时重叠,是因为没有给信号设置垂直方向的偏移间距。
最优解决方案(适合新手)
使用location.top/location.bottom配合y参数设置垂直偏移,让信号在面板顶部/底部保持固定间距,既不会重叠,缩放时也能维持相对位置:
// 示例:定义信号条件(替换成你实际的震荡指标信号逻辑) longCondition1 = ta.crossover(ta.RSI(close, 14), 30) longCondition2 = ta.crossover(ta.MACD(close, 12, 26, 9).macd, ta.MACD(close, 12, 26, 9).signal) shortCondition1 = ta.crossunder(ta.RSI(close, 14), 70) shortCondition2 = ta.crossunder(ta.MACD(close, 12, 26, 9).macd, ta.MACD(close, 12, 26, 9).signal) // 绘制看涨信号:在面板底部上方,设置不同y值避免重叠 plotchar(longCondition1, "Long Signal 1", "▲", location.bottom, color.new(color.green, 0), size.size_small, y=5) plotchar(longCondition2, "Long Signal 2", "△", location.bottom, color.new(color.lime, 0), size.size_small, y=8) // 绘制看跌信号:在面板顶部下方,设置不同负y值避免重叠 plotchar(shortCondition1, "Short Signal 1", "▼", location.top, color.new(color.red, 0), size.size_small, y=-5) plotchar(shortCondition2, "Short Signal 2", "▽", location.top, color.new(color.orange, 0), size.size_small, y=-8)
关键细节说明
y参数:在location.bottom时,正数表示从底部向上偏移的数值单位;在location.top时,负数表示从顶部向下偏移的数值单位,调整数值可灵活控制信号间距。- 字符区分:用不同形状的字符(实心/空心三角形)搭配不同颜色,进一步降低视觉混淆。
- 固定范围指标适配:如果你的震荡指标有固定数值范围(比如RSI的0-100),也可以用
location.absolute,将看涨信号设为10、15,看跌信号设为90、95,固定在范围内的相对位置,缩放时也不会偏移。
备选方案(动态数值范围适配)
如果需要信号固定在指标数值的比例位置(比如始终在近期高低点的10%位置),可以动态计算位置:
// 计算近期50根K线的高低点 recentHigh = ta.highest(high, 50) recentLow = ta.lowest(low, 50) priceRange = recentHigh - recentLow // 计算信号位置 longPos1 = recentLow + priceRange * 0.1 longPos2 = recentLow + priceRange * 0.15 shortPos1 = recentHigh - priceRange * 0.1 shortPos2 = recentHigh - priceRange * 0.15 // 绘制信号 plotchar(longCondition1, "Long1", "▲", location.absolute, color.green, size.size_small, y=longPos1) plotchar(longCondition2, "Long2", "△", location.absolute, color.lime, size.size_small, y=longPos2) plotchar(shortCondition1, "Short1", "▼", location.absolute, color.red, size.size_small, y=shortPos1) plotchar(shortCondition2, "Short2", "▽", location.absolute, color.orange, size.size_small, y=shortPos2)
内容的提问来源于stack exchange,提问作者ATHBuys
相关产品推荐
相关产品推荐

