Обрыв связи в момент постановки ордера - страница 3

 

Добрый день!

Конечно, я понимаю, что есть посредники, но хотя бы от брокера с кем мы соеденены. 

Кстати, SymbolIsSynchronized(aSymbol), на дальнем фьючерсе ВСЕГДА возвращает false  

 

Mikalas, если работаете с несколькими инструментами, следить за актуальностью данных придется самостоятельно. Разработчики не могут сделать универсальный комбайн, удовлетворяющий всех. А синхронизировать несколько инструментов нужно только для мультивалютников, которых немного.

Если работаете с последними ценами, запоминайте время их изменения для всех используемых инструментов, и если хоть один инструмент "замер" на 3-5-10 (сколько хотите) секунд, считайте что связи нет. Когда у всех инструментов время обновления котировки станет >= текущее время - 3 секунды, значит связь появилась и можно работать.

А если работаете с историей, то о состоянии синхронизированности можно узнать по-человечески.

 

ps: Пока писал, пришло в голову - а время последней котировки разве нельзя получить программно?

pps: Можно, конечно - https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants

SYMBOL_TIME

Время последней котировки

datetime

 

Добрый день, komposter!

Я работою со стаканами (в них есть объём).

На дальних фьючерсах котировки могут приходить раз в день! И что даст замер времени?

В этом-то и заключается проблема с обрывом связи в моём советнике.

Я уже описывал ситуацию с обрывом связи у меня (котировка на дальний фьючерс не обновилась после восстановления связи,

просто не успела ) .

Никто не требует от разработчиков СУПЕР универсальный комбайн! Просто те задачи, которые

они решали для FOREX не совсем актуальны для ФОРТС. Поэтому нужна функция, которая или ОБНУЛЯЛА бы котировки и стаканы,

при обрыве связи, либо выдать мгновенное сообщение эксперту о разрыве связи( TERMINAL_CONNECTED работает с ОГРОМНОЙ задержкой) 

SymbolIsSynchronized(aSymbol), на дальнем фьючерсе ВСЕГДА возвращает false 

 

Тогда я бы покопал в сторону какой-то функции, запрашивающей актуальную информацию с сервера и, в случае неудачи, возвращающая ошибку.

Тут проверка связи мало что даст, нужно с конкретными данными инструмента работать.

 

Добрый день, komposter!

В том-то и дело, что нет конкретных данных инструмента!

А проверка обрыва связи даёт возможность сделать задержку, что бы

данные обновились(примитивно, но я, пока, не вижу другого способа). 

p.s Видимо придётся "переползать" на ФИНАМовский TRANSAQ Connector,

но так не хочется парсить XML и писать GUI :( 

 
Mikalas:

Добрый день, komposter!

В том-то и дело, что нет конкретных данных инструмента!

Вы не поняли, нужна функция, которая бы обращалась к серверу.

Просмотрел справку, и пришел к выводу, что это может быть только SymbolIsSynchronized.

Если она не работает, пишите: а) в сервис-деск с вопросом (мол, должна ли вообще работать?), и, если должна, б) брокеру, чтоб нормально настроили сервер.

 

Поиграться с состоянием соединения можно, но ни каких гарантий это не даст. 

 

BookEvent

Событие BookEvent генерируется клиентским терминалом при изменении состояния стакана цен и обрабатывается функцией OnBookEvent. Для того, чтобы клиентский терминал начал генерировать события BookEvent по конкретному символу, достаточно предварительно подписаться на получение этих событий для этого символа с помощью функции MarketBookAdd.

Для того чтобы отписаться от получения события BookEvent по символу, необходимо вызывать функцию MarketBookRelease. Событие BookEvent является широковещательным – это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd, и все остальные эксперты, имеющие обработчик OnBookEvent, будут получать это событие. Поэтому необходимо анализировать имя символа, которое передается в обработчик в качестве параметра.


При отсутствии связи событие не наступит, пока стакан не обновится при восстановлении  соединения.

 
zfs:

При отсутствии связи событие не наступит, пока стакан не обновится при восстановлении  соединения.

у брокера нет стакана.
 
sergeev:
у брокера нет стакана.

на ФОРТСе нет стакана? Или нет доступа к стакану?

 
zfs:

на ФОРТСе нет стакана? Или нет доступа к стакану?

сори, я имел ввиду универсальный вариант. без брокерской конретики.
Причина обращения: