difference between EMA in 1 hr timeframe and 5 min timeframe

 

Hi all,

I am re-coding some MQL5 scripts into MQL4 because of my broker's requirements.

I am finding a discrepancy between the 1 Hour EMA calculated by the EA on my 1 Hour chart and the 1 Hour EMA calculated by the EA on my 5 Min chart.  I think the values should be the same (they are in my MQL5 scripts).

The code calculating the EMAs is as follows (the period values are same for the 1 Hour script and the 5 Min script):


EA loaded on 1 Hour chart

   double EMA1 = iMA(_Symbol, _Period, EMA1Period, 0, MODE_EMA, PRICE_CLOSE, 0);
   double EMA2 = iMA(_Symbol, _Period, EMA2Period, 0, MODE_EMA, PRICE_CLOSE, 0);
   double EMA1prev = iMA(_Symbol, _Period, EMA1Period, 0, MODE_EMA, PRICE_CLOSE, 1);
   double EMA2prev = iMA(_Symbol, _Period, EMA2Period, 0, MODE_EMA, PRICE_CLOSE, 1);


EA loaded on 5 Min chart

   ENUM_TIMEFRAMES AncPeriod = PERIOD_H1;
   double AncEMA1 = iMA(Symbol(), AncPeriod, AncEMA1Period, 0, MODE_EMA, PRICE_CLOSE, 0);
   double AncEMA1prev = iMA(Symbol(), AncPeriod, AncEMA1Period, 0, MODE_EMA, PRICE_CLOSE, 0);
   double AncEMA2 = iMA(Symbol(), AncPeriod, AncEMA2Period, 0, MODE_EMA, PRICE_CLOSE, 1);
   double AncEMA2prev = iMA(Symbol(), AncPeriod, AncEMA2Period, 0, MODE_EMA, PRICE_CLOSE, 1);


Regards

 
ENUM_TIMEFRAMES AncPeriod = PERIOD_H1;
   double AncEMA1 = iMA(Symbol(), AncPeriod, AncEMA1Period, 0, MODE_EMA, PRICE_CLOSE, 0);
   double AncEMA1prev = iMA(Symbol(), AncPeriod, AncEMA1Period, 0, MODE_EMA, PRICE_CLOSE, 0);
   double AncEMA2 = iMA(Symbol(), AncPeriod, AncEMA2Period, 0, MODE_EMA, PRICE_CLOSE, 1);
   double AncEMA2prev = iMA(Symbol(), AncPeriod, AncEMA2Period, 0, MODE_EMA, PRICE_CLOSE, 1);

ENUM_TIMEFRAMES AncPeriod = PERIOD_H1;
   double AncEMA1 = iMA(Symbol(), AncPeriod, AncEMA1Period, 0, MODE_EMA, PRICE_CLOSE, 0);
   double AncEMA1prev = iMA(Symbol(), AncPeriod, AncEMA1Period, 0, MODE_EMA, PRICE_CLOSE, 1);
   double AncEMA2 = iMA(Symbol(), AncPeriod, AncEMA2Period, 0, MODE_EMA, PRICE_CLOSE, 0);
   double AncEMA2prev = iMA(Symbol(), AncPeriod, AncEMA2Period, 0, MODE_EMA, PRICE_CLOSE, 1);

 

oh, that's embarrassing!


Thank you so much for your help!