如何在TradingView中用Pine Script绘制K线上方的两种形态?
TradingView Pine Script 形态绘制异常修复方案
问题根源
你遇到的location.absolute显示异常、部分股票代码下形态间隙问题,主要来自两个点:
- 固定点数偏移(
high+5/high+10)不适配不同价格区间的股票,高价股偏移几乎看不见,低价股偏移过大导致间隙。 - 两个
plotshape使用相同的"S1"标识,可能触发渲染冲突。
修复代码
//@version=5 indicator("K线上方形态绘制", overlay=true) // 用ATR动态计算偏移量,适配所有价格区间的股票 atr_offset = ta.atr(10) * 0.2 // 0.2为倍数,可根据需求调整大小 circle_price = high + atr_offset xcross_price = high + atr_offset * 2 // 设置唯一标识,避免渲染冲突 plotshape(circle_price, "CircleMarker", style=shape.circle, location=location.absolute, color=color.red, size=size.small) plotshape(xcross_price, "XCrossMarker", style=shape.xcross, location=location.absolute, color=color.blue, size=size.small)
核心调整说明
- 动态偏移替代固定点数:用ATR(平均真实波幅)作为偏移基准,自动适配股票价格高低,保证形态在不同股票上的显示比例一致,消除间隙。
- 唯一标识命名:给每个
plotshape设置独立的标识名,避免渲染时的冲突问题,确保location.absolute属性正常生效。 - 开启overlay属性:强制形态绘制在K线主图上,避免默认的子窗口显示导致的视觉错位。
内容的提问来源于stack exchange,提问作者skyovi
相关产品推荐
相关产品推荐

