мое условие if в Mql4 никогда не устанавливается

в приведенном ниже коде if(sma5_after > sma18_after) никогда не выполняется, в то время как это условие повторяется много раз на графике
Я использую Mql4 в метатрейдере4

void OnTick()
{
   if(iVolume(_Symbol,_Period,0)<=1)
     {
      sma5_befor = iMA(_Symbol,_Period,5,0,MODE_SMA,PRICE_CLOSE,2);
      sma5_after = iMA(_Symbol,_Period,5,0,MODE_SMA,PRICE_CLOSE,0);
      ...
      sma18_befor = iMA(_Symbol,_Period,18,0,MODE_SMA,PRICE_CLOSE,2);
      sma18_after = iMA(_Symbol,_Period,5,0,MODE_SMA,PRICE_CLOSE,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");
      }
     }
  }  

Пожалуйста, помогите мне
спасибо


person Alex    schedule 10.02.2021    source источник


Ответы (1)


У вас опечатка в задании sma18_after. Эта строка:

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

должно быть так:

sma18_after = iMA(_Symbol,_Period,18,0,MODE_SMA,PRICE_CLOSE,0);
person Enivid    schedule 22.02.2021
comment
Вы можете посмотреть мой вопрос здесь: stackoverflow.com/questions/66410403/ +1. - person w0051977; 01.03.2021