Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пользуйся функцией вставки контента из Кармана. Это удобно!
Aleksey
2438
Aleksey 2014.04.03 15:30 

 В момент запуска терминала, при попытке добавления  буков в Init(), выскакивают ошибки 4001 4102.

ERR_INTERNAL_ERROR

4001

Неожиданная внутренняя ошибка

ERR_CHART_NO_REPLY

4102

График не отвечает

 Так же, не всегда находится существующая позиция. Тут вообще не понятно(мне), как определить - нет синхронизации или нет позиции.

Получается, что все инициализации надо производить уже после отработки Init() - по таймеру.

Вопрос: все так делают? 

Vladimir Karputov
Модератор
42401
Vladimir Karputov 2014.04.03 16:10  
pronych:

 В момент запуска терминала, при попытке добавления  буков в Init(), выскакивают ошибки 4001 4102.

ERR_INTERNAL_ERROR

4001

Неожиданная внутренняя ошибка

ERR_CHART_NO_REPLY

4102

График не отвечает

 Так же, не всегда находится существующая позиция. Тут вообще не понятно(мне), как определить - нет синхронизации или нет позиции.

Получается, что все инициализации надо производить уже после отработки Init() - по таймеру.

Вопрос: все так делают? 

OnInit() специальное место для инициализации. У Вас эксперт или индикатор? И какие буковки вызывают ошибку?
Aleksey
2438
Aleksey 2014.04.03 16:15  
barabashkakvn:
OnInit() специальное место для инициализации. У Вас эксперт или индикатор? И какие буковки вызывают ошибку?


Примерно так. Проверьте при желании.

    if(_depth>= 0)                                                         //если стакан нужен
        {
         ResetLastError();
         if(MarketBookAdd(name))    {Status = BOOK_ALLOWED; str_status="OK"               ;}//пытаемся добавить бук. ок если получилось
         else                       {Status = BOOK_ERROR  ; str_status=" Not allowed! Err"+ToStr(GetLastError());}//иначе эмулируем
        }
Дальше принт, соответственно.
Aleksey
2438
Aleksey 2014.04.03 16:19  
Пишут индикаторы, эксперта пока не проверял
Vladimir Karputov
Модератор
42401
Vladimir Karputov 2014.04.03 16:55  
pronych:
Пишут индикаторы, эксперта пока не проверял

Переключитесь на сервер отличный от Demo MetaQuotes. На сервере MQ стакан не хочет добавлять. 

И вот еще:

Функция OnBookEvent() является обработчиком  события BookEvent. Событие BookEvent генерируется только для экспертов при изменении состояния стакана цен (Depth of Market).   

Aleksey
2438
Aleksey 2014.04.03 17:11  
barabashkakvn:

Переключитесь на сервер отличный от Demo MetaQuotes. На сервере MQ стакан не хочет добавлять.  

Это всё на сервере "Открытия" Стаканы естественно есть. Шош я дурак совсем.

Что касается, "только для экспертов", то это похоже, не исправлено в справке. прекрасно генерятся

Там же написано, что такая  подписка должна происходить в OnInit()

Aleksey
2438
Aleksey 2014.04.03 17:13  
Вы смоделируйте ситуацию. Что просто клаву тормошить.
Vladimir Karputov
Модератор
42401
Vladimir Karputov 2014.04.03 17:30  
pronych:
Вы смоделируйте ситуацию. Что просто клаву тормошить.
Я и говорю: "MarketBookAdd() на сервере MetaQuotes-Demo возвращает false, а на сервере Masterbrok-Broker (это брокер Украинской биржи) возвращает true".
Aleksey
2438
Aleksey 2014.04.03 17:35  
barabashkakvn:
Я и говорю: "MarketBookAdd() на сервере MetaQuotes-Demo возвращает false, а на сервере Masterbrok-Broker (это брокер Украинской биржи) возвращает true".

Проверяю на боевом сервере "Открытия"

Всё время возвращает true. Но в некоторых случаях, только при запуске терминала, возвращает false. Получается, подключать бук в OnInit() не надежно. надо потом еще проверять. 

Vladimir Karputov
Модератор
42401
Vladimir Karputov 2014.04.03 17:43  
pronych:

Проверяю на боевом сервере "Открытия"

Всё время возвращает true. Но в некоторых случаях, только при запуске терминала, возвращает false. Получается, подключать бук в OnInit() не надежно. надо потом еще проверять. 

Тогда для советника вариант: в OnInit() перед MarketBookAdd() делать Sleep(1). 
Aleksey
2438
Aleksey 2014.04.03 17:50  
barabashkakvn:
Тогда для советника вариант: в OnInit() перед MarketBookAdd() делать Sleep(1). 

На сколько процентов будет надежней, если без него 50х50? ))

Как ни странно, немного помогло (для советника)

Но это конечно не выход...

Придется ляпить... 

В указанной  ситуации вообще что-то подозрительное происходит. С инициализацией объектов, по моему, тоже что-то не то. И с позицией.

пс. Всё это делал на большом количестве копий индюков/совеников на разных инструментах. от десяти

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