Расхождение значений EMA в тестере и онлайн

 

Всем салют.

Обнаружил следующую аномалию. Советник работает на M5 и считывает на открытии нового бара EMA [1ый бар] с ТФ H4. Оказывается данные которые генерит тестер и данные которые я получаю онлайн не совпадают. Иногда различия не очень существенны (начинаются с 5 знака) а иногда расхождение происходит уже на 4м знаке после запятой. Это баг или я что то не так делаю   ?
 

Как Вы это проверяли?

Код проверки и условия тестирования - в студию

 
stringo:

Как Вы это проверяли?

Код проверки и условия тестирования - в студию

Только что проверил.

Онлайн 14:20:01.918    My_expert EURUSD,M5: 1.197882754897611

Тестер 2015.02.19 10:20  My_expert EURUSD,M5: 1.19775644955337
datetime prevtime=0;

bool  New_Bar=false;      // Флаг нового бара
            
//--------------------------------------------------------------------
void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   New_Bar=false;                               // Нового бара нет
   if(Time[0] != prevtime)                        // Сравниваем время
     {
      prevtime = Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }
//-------------------------------------------------------------------------------

//=============================================================================================================
int OnInit()
  {
   prevtime = Time[0];
  
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
 Fun_New_Bar();                               // Обращение к ф-ии
 if (New_Bar==false)                          // Если бар не новый..
    return;                                   // ..то уходим


 double MA= iMA(Symbol(),PERIOD_H4,500,0,MODE_EMA,0,1);
   Print(MA);
//------------------------------------------------------------------------------
return;                                   
}
 
Индикатор работает по началу бара. EMA считается по ценам закрытия
 
Vinin:
Индикатор работает по началу бара. EMA считается по ценам закрытия

Не понимаю вас. Код используется один и тот же в обоих случаях. Разницы быть не должно.

Вы не могли бы пояснить поподробней ?

 

Кто-нибудь может внятно объяснить почему один и тот же простенький код выдает разные результаты в тестере и онлайн ?

Заранее большое спасибо.

 
goodearth:

Кто-нибудь может внятно объяснить почему один и тот же простенький код выдает разные результаты в тестере и онлайн ?

Заранее большое спасибо.

Сначала прочитайте все статьи про тестирование.
 
stringo:
Сначала прочитайте все статьи про тестирование.

Это не ответ. Это посыл куда подальше. Вежливый но посыл.

Я так понимаю в сервисдеске меня так же пошлют все статьи читать ?