【问题标题】:How to update variable from with if statement MQL5如何使用 if 语句 MQL5 更新变量
【发布时间】:2019-10-04 01:56:06
【问题描述】:

我已经在谷歌上搜索了两天,但无法弄清楚,这似乎是基本的。

void OnTick() 中,我想创建一个变量int a;。假设它开始时没有值int a;,然后我测试条件a 是否为NULL|| 等于1 就像这样if (a == NULL || a == 1) 应该总是在第一次if 语句时返回true由于NULL 而运行。然后我给变量a = 0;赋值,所以现在a应该等于0。

这应该会在下次调用OnTick() 时触发else if(a == 0),此时我分配a = 1; 导致下一轮触发if,等等和无限,不断检查和分配值之间切换0 和 1。

void OnTick()
int a;
if (PositionsTotal() < 1)
{
    if(a == NULL || a == 1)
    {         
        a = 0;                                    
    }
    else if(a == 0) 
    {
        a = 1;                    
    }
}

我不知道发生了什么,但是在策略测试器中的测试期间,我得到一长串数字,它们在负数和正数之间切换,始终使用相同的数字 -123456789123456789,总是 9 位数长.

或在元编辑器调试期间。一个永远不会改变的随机正 3 位数字!
到目前为止,我有 303 和 597。

除了令人沮丧之外,很可能在其他地方得到了回答。
只是不知道如何表达搜索词。

感谢您的帮助。

【问题讨论】:

    标签: c# c++ if-statement scope mql5


    【解决方案1】:

    我认为问题在于您在方法OnTick 中声明了变量a,因此每次调用此方法时它都以任意值开头。尝试在此方法之外声明它。

    【讨论】:

    • ahahahahah 哈哈,就像我说的brainfart !谢谢阿贝尔阿齐兹!!现在完美运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多