You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pine Script中峰值标记箭头偏移异常问题求助

解决Pine Script峰值标记箭头偏移问题

问题核心

你的代码在当前K线确认前一根K线为峰值,但默认绘图会把箭头放在当前K线位置,导致看起来超前一根。Pine Script与ThinkScript的绘图逻辑差异在于:ThinkScript可直接基于未来K线的确认结果绘制在历史K线,而Pine Script需要通过绘图偏移参数修正位置。

修正方案

在绘图函数中添加offset=-1,将箭头向左偏移一根K线,精准落在峰值所在的K线上。以下是完整可运行代码:

//@version=5
indicator("峰值检测指标", overlay=true)

// 替换为你实际使用的price、avg、stdDev计算逻辑
price = close
avg = ta.sma(price, 20)
threshold = 2.0
stdDev = ta.stdev(price, 20)

// 原峰值判断逻辑不变
isPeak = (price[1] > (avg[1] + threshold * stdDev[1])) and price < price[1] and price[1] > price[2]
peaks = isPeak ? price[1] : float(na)

// 绘制箭头,通过offset=-1修正位置
plotshape(
    series=isPeak,
    location=location.abovebar,
    color=color.new(color.red, 0),
    style=shape.arrowdown,
    offset=-1,
    size=size.medium,
    title="峰值标记"
)

// 可选:绘制峰值价格点
plot(
    series=peaks,
    style=style.circles,
    color=color.new(color.green, 0),
    offset=-1,
    title="峰值价格"
)

关键说明

  • offset=-1是核心:它告诉Pine Script将绘制元素向左偏移1根K线,对应你代码中price[1]指向的峰值K线。
  • 避免使用未来数据:不要尝试修改条件索引让峰值在当前K线直接标记(比如isPeak = price > price[1] and price > price[-1]),这会用到未收盘的未来数据,导致实时行情中信号漂移。

内容的提问来源于stack exchange,提问作者adarvishian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:32:51