Неприятная особенность тестера

 
Сейчас заметил - при тесторование в функции init() все элементы массива High а также переменная Bid - нули :(

Потом, в start() все нормально, но...
 
Какой билд терминала?

Мы не рекомендуем(многократно об этом говорили) использовать данные рыночного окружения в init(), так как они могут отсутствовать на момент инициализации эксперта.
Хотя в тестере по идее должно быть все нормально. Мы проверим.
 
Билд 195

"могут отсуствовать" - а что нужно сделать, что бы они присуствовали наверняка? Каким нибудь рефреш или...?

RefreshRates не помогает :(
 
//+------------------------------------------------------------------+
//| Expert start function                                            |
//+------------------------------------------------------------------+
int start()
 {
  static bool run_once = false; // Run Once Trigger - to avoid indefinite behavior when getting started
  // other variables
  // ...
 // ----
  if (run_once == false)
   {
    // do what we ought to - initial checks, market info etc.
    run_once = true;  // to prevent future faux-passes
   }
  // ...
  // main part of calculations - expert's body
  // ...
 // ----
   return(0);
 }
 
Как раз так и сделал - только переменная у меня называется FirstStart и в начале равняется true ;-)

int start()
  {
//----
   static bool FirstStart=true;
   
   if (FirstStart) 
   {
      FirstStart=false;
    //Init part
   }
//..................
 

Перед началом тестирования эксперту доступно 0 баров. Соответственно Bid тоже неизвестен. История формируется постепенно по мере прокрутки файла fxt.

Решением проблемы было бы иметь заранее 100 баров (или сколько там было заказано с использованием даты начала тестирования), но это повлечёт за собой изменение алгоритма прокрутки данных. Так что не знаю...

 

Оказалось возможным сделать правильную инициализацию эксперта без вмешательства в алгоритм прокрутки данных.

 

<<Оказалось возможным сделать правильную инициализацию эксперта без вмешательства в алгоритм прокрутки данных.>>

Очень хорошо, спасибо. Эта мелочь слегка отравляла жизнь.

 
alexjou:

<<Оказалось возможным сделать правильную инициализацию эксперта без вмешательства в алгоритм прокрутки данных.>>

Очень хорошо, спасибо. Эта мелочь слегка отравляла жизнь.


Скачайте обновленный билд 195 (выложили вчера) по ссылке http://www.metatrader4.com/files/mt4setup.exe , пожалуйста.
Теперь init при тестировании имеет нормальное рыночное окружение.
 
Теперь init при тестировании имеет нормальное рыночное окружение.
Спасибо!
 

Спасибо! И отдельное спасибо за функцию IsTradeContextBusy(), сильно облегчающую нашу нелегкую жизнь!