我在 Mql4 中的 if 条件从未成立

问题描述

在下面的代码中,if(sma5_after > sma18_after) 永远不会为真,而此条件在图表中重复多次
我在 Meta Trader4 中使用 Mql4

void OnTick()
{
   if(iVolume(_Symbol,_Period,0)<=1)
     {
      sma5_befor = iMA(_Symbol,5,MODE_SMA,PRICE_CLOSE,2);
      sma5_after = iMA(_Symbol,0);
      ...
      sma18_befor = iMA(_Symbol,18,2);
      sma18_after = iMA(_Symbol,0);

      ...

      sma5_slop = (sma5_after - sma5_befor) / Point;
      ...
      if(sma5_after > sma18_after){  // this condition never is true in Meta Trader4 tester!! WHY?
         Print("OK");
      }
     }
  }  

请帮帮我
谢谢

解决方法

您在 sma18_after 分配中有一个拼写错误。这一行:

sma18_after = iMA(_Symbol,_Period,5,MODE_SMA,PRICE_CLOSE,0);

应该是这样的:

sma18_after = iMA(_Symbol,18,0);