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

TradingView Pine脚本:var跨K线保存变量异常问题咨询

TradingView Pine脚本var变量历史高值问题解析

这是因为TradingView的Pine脚本运行逻辑是对图表上所有历史K线进行回溯计算,而非只从你加载脚本的那一刻开始逐根K线实时执行。

你的代码逻辑本身没问题,但脚本首次加载时,会从图表的第一根K线开始遍历:

  • 初始topp为0,第一根K线的high必然大于0,topp会被更新为该K线高点
  • 接着遍历第二根K线,若high大于当前topp则更新,以此类推直到最新K线

最终你看到的topp是遍历完所有历史K线后的全局最高值,而非从加载脚本时的0开始逐步记录后续新高。

如果想要实现从加载脚本时开始记录后续新高,需要添加触发条件隔离历史K线,比如结合barstate.islast标记实时运行阶段:

// 标记脚本进入实时运行状态
var bool isRealTime = false
if barstate.islast
    isRealTime := true

var float topp = 0
float curr = high

// 仅在实时阶段更新新高
if isRealTime and curr > topp
    topp := curr

注:该方式仅在实时K线更新时生效,回测场景下仍会遍历历史K线;若要完全隔离历史,可通过input设置起始日期来限定计算范围。

内容的提问来源于stack exchange,提问作者Россарх

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:33:09