MarketBookAdd - страница 2

 
Kuzmich:

Никаких ошибок при проверках. Счёт реал в Открытии. Там, вроде, все режимы работают.

Только ошибка 4901 при добавлении стакана. Мистика...

Вы удаляете стакан?
 
Михаил:

И ещё...

Вы в OnDeinit()

удаляете стакан?

} 

Да, удаляю. А что толку если он и не добавился :)
 
Kuzmich:
Да, удаляю. А что толку если он и не добавился :)

Толк в том, что не удалив стакан, Вы снова не можете добавить его...

Выложите весь код. Я проверю у себя 

 

Попробовал запустить эксперт Last Price из CodeBase https://www.mql5.com/ru/code/14235

Он тоже со стаканом работает. Та же ошибка 4901 при инициализации...

Last Price
Last Price
  • голосов: 9
  • 2015.11.30
  • Alexander Pavlov
  • www.mql5.com
Скальпер, торгующий в зависимости от последней сделки со стороны открытого интереса.
 

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

//+------------------------------------------------------------------+
//|                                                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 );
   
  }
 
Михаил:

Толк в том, что не удалив стакан, Вы снова не можете добавить его...

Выложите весь код. Я проверю у себя 

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ResetLastError();
   if(!MarketBookAdd(_Symbol))
     {
      printf("Не добавлен стакан по символу "+_Symbol);
      Print( "Error code: ", GetLastError() );      
      return( INIT_FAILED );
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   MarketBookRelease(_Symbol);
  }

//+------------------------------------------------------------------+
2015.12.04 23:02:20.221 tester agent shutdown finished
2015.12.04 23:02:20.220 shutdown tester machine
2015.12.04 23:02:20.218 tester agent shutdown started
2015.12.04 23:02:20.148 log file "xxxx\Tester\Agent-127.0.0.1-3000\logs\20151204.log" written
2015.12.04 23:02:20.144 tester stopped because OnInit failed
2015.12.04 23:02:20.144 2015.06.01 00:00:00   Error code: 4901
2015.12.04 23:02:20.144 2015.06.01 00:00:00   Не добавлен стакан по символу RTS-12.15
2015.12.04 23:02:20.134 RTS-12.15,M5: testing of Experts\My\Test.ex5 from 2015.06.01 00:00 to 2015.11.28 00:00 started
2015.12.04 23:02:20.133 RTS-12.15,M5 (Open-Broker): every tick generating
2015.12.04 23:02:20.133 RTS-12.15,M5: history cached from 2014.01.08 17:15
2015.12.04 23:02:20.093 Intel Core i7-3770K  @ 3.50GHz, 15830 MB
2015.12.04 23:02:20.093 7753 bytes of total initialization data received
2015.12.04 23:02:20.093 successfully initialized
2015.12.04 23:02:20.091 initial deposit 50000.00 RUR, leverage 1:1
2015.12.04 23:02:20.079 expert file added: Experts\My\Test.ex5. 8033 bytes loaded
2015.12.04 23:02:20.079 1490 bytes of tester parameters loaded
2015.12.04 23:02:20.078 account info found
2015.12.04 23:02:20.076 login (build 1210)

 
Kuzmich:
2015.12.04 23:02:20.221 tester agent shutdown finished
2015.12.04 23:02:20.220 shutdown tester machine
2015.12.04 23:02:20.218 tester agent shutdown started
2015.12.04 23:02:20.148 log file "xxxx\Tester\Agent-127.0.0.1-3000\logs\20151204.log" written
2015.12.04 23:02:20.144 tester stopped because OnInit failed
2015.12.04 23:02:20.144 2015.06.01 00:00:00   Error code: 4901
2015.12.04 23:02:20.144 2015.06.01 00:00:00   Не добавлен стакан по символу RTS-12.15
2015.12.04 23:02:20.134 RTS-12.15,M5: testing of Experts\My\Test.ex5 from 2015.06.01 00:00 to 2015.11.28 00:00 started
2015.12.04 23:02:20.133 RTS-12.15,M5 (Open-Broker): every tick generating
2015.12.04 23:02:20.133 RTS-12.15,M5: history cached from 2014.01.08 17:15
2015.12.04 23:02:20.093 Intel Core i7-3770K  @ 3.50GHz, 15830 MB
2015.12.04 23:02:20.093 7753 bytes of total initialization data received
2015.12.04 23:02:20.093 successfully initialized
2015.12.04 23:02:20.091 initial deposit 50000.00 RUR, leverage 1:1
2015.12.04 23:02:20.079 expert file added: Experts\My\Test.ex5. 8033 bytes loaded
2015.12.04 23:02:20.079 1490 bytes of tester parameters loaded
2015.12.04 23:02:20.078 account info found
2015.12.04 23:02:20.076 login (build 1210)

А Вы в тестере проверяете?

Работать в тестере не будет :( 

Тестируйте на демо, но не в тестере. 

 
Михаил:

А Вы в тестере проверяете?

Работать в тестере не будет :( 

Тестируйте на демо, но не в тестере. 

Вот так - работает

int OnInit()
  {
    MarketBookRelease( _Symbol );
    if ( !MarketBookAdd( _Symbol ) )
    {
      Print( "Error");
    }
    else
    {
      Print("Done");
    }
//---
   return(INIT_SUCCEEDED);
  }

 А вот так - нет

int OnInit()
  {
    MarketBookRelease( _Symbol );
    if ( !MarketBookAdd( _Symbol ) )
    {
      Print( "Error");
      return( INIT_FAILED );
    }
    else
    {
      Print("Done");
    }
//---
   return(INIT_SUCCEEDED);
  }

Странно это. Спасибо за помощь - понял как обойти :)

 

Вы были правы, Михаил. Это из-за тестера. Спасибо Вам - разобрался.

А как же тогда отлаживать?

 
Kuzmich:

Вы были правы, Михаил. Это из-за тестера. Спасибо Вам - разобрался.

А как же тогда отлаживать?

На демо, в реальном времени :(