Скачать MetaTrader 5

Неправильно работает цикл

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vitalya Antonov
1378
Vitalya Antonov  

Всем привет!

Сегодня столкнулся с такой проблемой, что некорректно работает цикл.

Вот код советника:

#property copyright "Antonov Vitaliy"
#property link      "vitalya.antonov@gmail.com"
#property version   "1.00"

//+------------------------------------------------------------------+
int OnInit()
  {
   MarketBookAdd(Symbol());
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   MarketBookRelease(Symbol());
  }

//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
   static bool once = false;
   
   if (once)
      return;
      
   MqlBookInfo book[];
   MarketBookGet(Symbol(), book);
   int size = ArraySize(book);
   Print(size);
   
   int i;
   for (i = 0; i < size; i++);
   {
      Print(i);
      Print(book[i].price + " "+book[i].volume + " " + book[i].type);
   }
   once = true;
  }

Вывод такой:

book_history (RTS-12.13,M5)     40
book_history (RTS-12.13,M5)     40
book_history (RTS-12.13,M5)     array out of range in 'book_history.mq5' (35,17)

То есть получается, что в цикле переменной i сразу присваивается значение size.

Кто-нибудь сталкивался с подобным?

Yury Kulikov
32757
Yury Kulikov  
beast:
for (i = 0; i < size; i++);
Точка с запятой лишняя.
Vitalya Antonov
1378
Vitalya Antonov  
Yurich:
Точка с запятой лишняя.

действительно, не заметил

надо спать больше))

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий