Запись данных со стакана цен(marketbook) в массив

 
Всем привет, подскажите пожалуйста как в массив записать данные со стакана цен (marketbook)?
 
miron_like:
Всем привет, подскажите пожалуйста как в массив записать данные со стакана цен (marketbook)?

https://www.mql5.com/ru/docs/constants/structures/mqlbookinfo

https://www.mql5.com/ru/docs/marketinformation/marketbookget
 
miron_like:
Всем привет, подскажите пожалуйста как в массив записать данные со стакана цен (marketbook)?

Вам не нужно копировать данные стакана цен в массив, т.к. данные по стакану цен, Вы уже получаете в виде массива структур MqlBookInfo.

 
Vasiliy Sokolov:

Вам не нужно копировать данные стакана цен в массив, т.к. данные по стакану цен, Вы уже получаете в виде массива структур MqlBookInfo.

Использую код примера и у меня постоянно скидывает в else, что не удалось получить содержимое
 MqlBookInfo priceArray[]; 
   bool getBook=MarketBookGet(NULL,priceArray); 
   if(getBook) 
     { 
      int size=ArraySize(priceArray); 
      Print("MarketBookInfo по ",Symbol()); 
      for(int i=0;i<size;i++) 
        { 
         Print(i+":",priceArray[i].price 
               +"    Volume= "+priceArray[i].volume, 
               " type = ",priceArray[i].type); 
        } 
     } 
   else 
     { 
      Print("Не удалось получить содержимое стакана по символу ",Symbol()); 
     }
 
miron_like:
Использую код примера и у меня постоянно скидывает в else, что не удалось получить содержимое
Для начала убедитесь, что у Вас в MetaTrader 5 действительно имеется стакан по Вашему инструменту. Если торгуете forex, то стакан как правило отсутствует.
 
Vasiliy Sokolov:
Для начала убедитесь, что у Вас в MetaTrader 5 действительно имеется стакан по Вашему инструменту. Если торгуете forex, то стакан как правило отсутствует.

Я на демо-счете пытаюсь написать скрипт. Чтобы убедиться в его работоспособности

 
MqlBookInfo priceArray[]; 
bool getBook=MarketBookGet(Symbol(),priceArray); 

getBook постоянно False, подскажите почему?

Как получить данный массив, чтобы потом его вывести в CSV?

 
miron_like:

Я на демо-счете пытаюсь написать скрипт. Чтобы убедиться в его работоспособности

Для тех кто в танке, повторяю еще раз:

Vasiliy Sokolov:
Для начала убедитесь, что у Вас в MetaTrader 5 действительно имеется стакан по Вашему инструменту. Если торгуете forex, то стакан как правило отсутствует.
 
Vasiliy Sokolov:

Для тех кто в танке, повторяю еще раз:


Это и есть стакан цен?

Или как его проверить имеется он или нет, если я ошибаюсь

 
miron_like:

Это и есть стакан цен?

Или как его проверить имеется он или нет, если я ошибаюсь

По скрншоту видно, что ваш брокер не предоставляет стакан цен. Поэтому функция MarketBookGet всегда будет возвращать false. То, что доступно у Вас в качестве "стакана цен" - в действительности является упрощенной формой для выставления лимитных заявок, не более того. 

Если хотите протестировать стакан цен - подключайтесь к демо-счету от MetaQuotes. Сервер: MetaQuotes-Demo. Там стакан цен доступен.

 
Vasiliy Sokolov:

По скрншоту видно, что ваш брокер не предоставляет стакан цен. Поэтому функция MarketBookGet всегда будет возвращать false. То, что доступно у Вас в качестве "стакана цен" - в действительности является упрощенной формой для выставления лимитных заявок, не более того. 

Если хотите протестировать стакан цен - подключайтесь к демо-счету от MetaQuotes. Сервер: MetaQuotes-Demo. Там стакан цен доступен.


Спасибо большое. Попробую

Хм, все равно false бьет. В чем может быть проблема?

MqlBookInfo priceArray[]; 
   bool getBook=MarketBookGet(Symbol(),priceArray); 
   Alert(getBook);


Причина обращения: