MarketBookAdd - страница 3

 
Mikhail Filimonov:

Попробуйте так:

//+------------------------------------------------------------------+
//|                                                Add_book_test.mq5 |
//|                                          Copyright 2015, Mikalas |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Mikalas"
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
    MarketBookRelease( _Symbol );
    if ( !MarketBookAdd( _Symbol ) )
    {
      Print( "Error");
    }
    else
    {
      Print("Done");
    }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
     MarketBookRelease( _Symbol );
   
  }

Использую МТ5

Код работает на демо от MetaQuotes (например по символу EURUSD).

А на реале у робофорекса символы имеют суфикс .e. Т.е. EURUSD.e и у них MarketBookAdd дает ошибку.

Как это обойти?

 
хотя нашел в списке символов от робофорекса  символ без суфикса - по нему тоже MarketBookAdd дает ошибку. Значит не в суфиксе дело
 
elibrarius:
хотя нашел в списке символов от робофорекса  символ без суфикса - по нему тоже MarketBookAdd дает ошибку. Значит не в суфиксе дело
А у Робо вообще есть стакан? Если нет, то и подписываться не на что.
 
Andrey Khatimlianskii:
А у Робо вообще есть стакан? Если нет, то и подписываться не на что.

Ну просто в терминале или с графика стакан открывается

 
elibrarius:

Использую МТ5

Код работает на демо от MetaQuotes (например по символу EURUSD).

А на реале у робофорекса символы имеют суфикс .e. Т.е. EURUSD.e и у них MarketBookAdd дает ошибку.

Как это обойти?

Для начала нужно получить номер ошибки. 
 
Karputov Vladimir:
Для начала нужно получить номер ошибки. 
Ошибка 4901 - Стакан цен не может быть добавлен.
 
elibrarius:
Ошибка 4901 - Стакан цен не может быть добавлен.

Это говорит о том, что датафид не поддерживает стакан цен (в общем торговать по стакану нужно у брокера, а не у торговой организации). 

 

Добавлено: брокер == биржа. 

 
Karputov Vladimir:

Это говорит о том, что датафид не поддерживает стакан цен (в общем торговать по стакану нужно у брокера, а не у торговой организации). 

 

Добавлено: брокер == биржа. 

А тот стакан, который открывается в терминале со стаканом из MarketBookAdd - не связаны?

Ведь вручную он открывается.

 
elibrarius:

А тот стакан, который открывается в терминале со стаканом из MarketBookAdd - не связаны?

Ведь вручную он открывается.

Сравните: вверху - филькина грамота, внизу - стакан.

Стакан 

 

Да, для валют у меня тоже пустой стакан.

То есть это биржевой инструмент, а не для валют?

Или некоторые брокеры его все же предлагают (как на демо у Metaquotes)?