如何使用 if 语句更新变量 MQL5

How to update variable from with if statement MQL5

我已经用谷歌搜索了两天了,但还是想不通,这似乎是基本的。

void OnTick() 内,我想创建一个变量 int a;。假设它开始没有值 int a;,然后我测试条件如果 aNULL|| 等于 1 像这样 if (a == NULL || a == 1)由于 NULLif 语句第一次运行时应始终 return 为真。然后我给变量 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;                    
    }
}

我不知道发生了什么,但在 Strategy 测试器中进行测试时,我得到一长串数字,这些数字在负数和正数之间切换,总是具有相同的数字 -123456789123456789, 始终为 9 位数字。

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

除了令人沮丧之外,很可能在其他地方得到了回答。
只是不确定如何对搜索词进行措辞。

谢谢你的帮助。

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