【问题标题】:Variable unexpectedly changes value (Pine script)变量意外更改值(Pine 脚本)
【发布时间】:2020-03-02 19:57:42
【问题描述】:

这是一个简单的脚本代码:

//@version=4
study("test", overlay=false, precision=8)
var last_price = 0.0
var move = 0.0
if barstate.isrealtime
    move := move + abs(last_price - close)
last_price := close
plot(move)

据我了解,变量move一直都必须变得越来越大,但实际上并非如此。
为什么会出现这种情况?

【问题讨论】:

    标签: pine-script


    【解决方案1】:

    这是预期的行为,并且由于 rollback process。当您的脚本到达barstate.islast 为真的最后一个柱时,该柱开头的move 的值为0.0,这是moveevery 在实时栏中迭代您的脚本。

    【讨论】:

    • 感谢您的回答。但是以任何方式存在如何保持变量值不被重置?
    • 不,您不能在实时栏中保存状态。
    • 也许最接近您想要的结果是,例如,将您的脚本设置为在每 1 分钟蜡烛结束时运行。不是实时的,但最终是一个很好的近似值。我的意思是,我当然不知道您的用例,但请考虑一下。
    【解决方案2】:

    我几乎要放弃了。

    但自 2021 年 3 月起,varip 被引入:

    varip - is similar to the var keyword, but variables declared with varip retain their values between the updates **of a real-time bar**.

    https://github.com/tradingview/pine_script_docs/blob/master/source/Release_notes.rst

    而且,更重要的是:它有效。 :)

    【讨论】:

      猜你喜欢
      • 2021-10-17
      • 2013-11-27
      • 2022-07-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多