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

如何在TradingView的Pine Script中于最新价格上方绘制振荡器

在价格面板将振荡器固定在最新价格上方的实现方案

核心实现代码

要让振荡器始终显示在最新价格的正上方,关键是让所有K线的偏移基准都等于当前最后一根K线的收盘价,而非历史K线收盘价或仅在最后一根赋值。可以用ta.valuewhen()函数获取最新收盘价作为统一偏移基准:

// 获取最新收盘价(所有K线都使用这个值作为偏移基准)
latest_close = ta.valuewhen(barstate.islast, close, 0)
// 计算缩放后的振荡器值(1000为你原代码的缩放系数,可按需调整)
scaled_bbr = bbr / 1000 + latest_close
// 绘制振荡器
plot(scaled_bbr, "%B Scaled")

为什么你之前的方法无效?

  • 使用var float bbr_plot_pos = close[0]:var关键字仅在脚本初始化时赋值一次,也就是第一根K线的收盘价,后续所有K线都沿用这个旧值,导致振荡器固定在历史第一根K线的价格位置。
  • 使用if barstate.islast bbr_plot_pos = close:仅最后一根K线会更新变量值,历史K线的bbr_plot_pos仍为初始默认值(未初始化时为na,或var初始化的第一根K线收盘价),导致历史段振荡器位置混乱。

优化建议

如果想让振荡器和最新价格之间保留固定间隙避免重叠,可在偏移基准上额外加一个自定义间距值:

offset_spacing = 3  # 根据品种价格区间调整,比如股票用3、加密货币用50等
scaled_bbr = bbr / 1000 + latest_close + offset_spacing
plot(scaled_bbr, "%B Scaled")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:42:46