【问题标题】:What is the meaning of this pinescript statement?这个 pinescript 语句的含义是什么?
【发布时间】:2021-06-01 23:11:35
【问题描述】:

当 pinescript 只做:

var col = 1

col := col == -1 and VarA > VarB ? 1 : col == 1 and VarA < VarB ? -1 : col

自初始化为 1 以来,“col == -1”如何为真?

【问题讨论】:

    标签: pine-script


    【解决方案1】:

    您可以在this website 上将任何ternary (?:) 构造转换为if-then-else

    你的例子

    col == -1 and VarA > VarB ? 1 : col == 1 and VarA < VarB ? -1 : col
    

    产生这个

    if (col == -1 and VarA > VarB) {
        1
    } else {
        if (col == 1 and VarA < VarB) {
            -1
        } else {
            col
        }
    }
    

    假设您在问题中指的是var col = 1 而不是var dir = 1
    col 获得 -1 值的唯一方法是 VarA &lt; VarB

    细分

    在第一小节

    var col = 1
    

    这会将col 初始化为值1
    此初始化不会在每个柱上重复。
    由于var 关键字,此初始化只进行一次。

    摘自Variable declaration 的手册:
    var 关键字是一个特殊的修饰符,它指示编译器只创建和初始化一次变量。 这种行为在变量的值必须通过脚本在连续柱上的迭代中保持不变的情况下非常有用。

    if (col == -1 and VarA > VarB)
    

    and 语句的第一部分产生false,因为col1
    所以,整个and 语句产生false
    代码继续到第一个else

    if (col == 1 and VarA < VarB)
    

    and 语句的第一部分产生true,因为col1
    取决于VarA &lt; VarBtrue 还是falsecol 被分配-1 或者它自己的当前col 值。
    为了争论,假设VarA &lt; VarB 产生true
    然后,整个and 语句产生true,使if 语句true
    -1 被分配给col

    在第二个栏

    col 现在的值是 -1

    if (col == -1 and VarA > VarB)
    

    and 语句的第一部分产生true,因为col-1
    如果VarA &gt; VarBtrue,则col 被分配1
    整个语句在这里完成。

    如果VarA &gt; VarBfalse,代码继续到第一个else

    if (col == 1 and VarA < VarB)
    

    and 语句的第一部分产生false,因为col-1
    所以,整个and 语句产生false
    col 的当前值被分配给 col
    所以col 变量保持在-1

    【讨论】:

    • 是的,谢谢,我的意思是 col = 1(这是一个错字)。我不明白第一个陈述怎么会是真的,因为它似乎是迭代的。
    • Pine execution model 与经典编程语言非常不同。您的脚本在每个柱上执行。我不清楚你不明白什么。这是一个简单的 if-then-else。
    • 我明白了,但是 col 被初始化为 1。如果它遍历每个条形,它怎么可能在第一次检查条形时为 -1?
    • 等等,你是说这里的 col 只是一个单数(全局)变量而不是列吗?如果属实,那可能会简化事情。
    • 确实,col 只是一个变量。 var 关键字意味着它只在第一个柱初始化一次,并在随后的柱中保持它的状态,除非被 col := 语句更改。不知道为什么你认为col 是一列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 2011-02-14
    • 2022-07-07
    • 2023-04-05
    • 2012-01-05
    • 2021-12-25
    相关资源
    最近更新 更多