如何使用 if 语句更新变量 MQL5
How to update variable from with if statement MQL5
我已经用谷歌搜索了两天了,但还是想不通,这似乎是基本的。
在 void OnTick()
内,我想创建一个变量 int a;
。假设它开始没有值 int a;
,然后我测试条件如果 a
是 NULL
或 ||
等于 1
像这样 if (a == NULL || a == 1)
由于 NULL
,if
语句第一次运行时应始终 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 测试器中进行测试时,我得到一长串数字,这些数字在负数和正数之间切换,总是具有相同的数字 -123456789
或 123456789
, 始终为 9 位数字。
或者在元编辑器调试期间。一个永远不会改变的随机正 3 位数字!
到目前为止,我有 303 和 597。
除了令人沮丧之外,很可能在其他地方得到了回答。
只是不确定如何对搜索词进行措辞。
谢谢你的帮助。
我认为问题在于您在方法 OnTick
中声明变量 a
,因此每次调用此方法时它都以任意值开头。尝试在此方法之外声明它。
我已经用谷歌搜索了两天了,但还是想不通,这似乎是基本的。
在 void OnTick()
内,我想创建一个变量 int a;
。假设它开始没有值 int a;
,然后我测试条件如果 a
是 NULL
或 ||
等于 1
像这样 if (a == NULL || a == 1)
由于 NULL
,if
语句第一次运行时应始终 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 测试器中进行测试时,我得到一长串数字,这些数字在负数和正数之间切换,总是具有相同的数字 -123456789
或 123456789
, 始终为 9 位数字。
或者在元编辑器调试期间。一个永远不会改变的随机正 3 位数字!
到目前为止,我有 303 和 597。
除了令人沮丧之外,很可能在其他地方得到了回答。
只是不确定如何对搜索词进行措辞。
谢谢你的帮助。
我认为问题在于您在方法 OnTick
中声明变量 a
,因此每次调用此方法时它都以任意值开头。尝试在此方法之外声明它。