Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день!
Конечно, я понимаю, что есть посредники, но хотя бы от брокера с кем мы соеденены.
Кстати, 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 :(
Добрый день, komposter!
В том-то и дело, что нет конкретных данных инструмента!
Вы не поняли, нужна функция, которая бы обращалась к серверу.
Просмотрел справку, и пришел к выводу, что это может быть только SymbolIsSynchronized.
Если она не работает, пишите: а) в сервис-деск с вопросом (мол, должна ли вообще работать?), и, если должна, б) брокеру, чтоб нормально настроили сервер.
Поиграться с состоянием соединения можно, но ни каких гарантий это не даст.
BookEvent
Событие BookEvent генерируется клиентским терминалом при изменении состояния стакана цен и обрабатывается функцией OnBookEvent. Для того, чтобы клиентский терминал начал генерировать события BookEvent по конкретному символу, достаточно предварительно подписаться на получение этих событий для этого символа с помощью функции MarketBookAdd.
Для того чтобы отписаться от получения события BookEvent по символу, необходимо вызывать функцию MarketBookRelease. Событие BookEvent является широковещательным – это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd, и все остальные эксперты, имеющие обработчик OnBookEvent, будут получать это событие. Поэтому необходимо анализировать имя символа, которое передается в обработчик в качестве параметра.
При отсутствии связи событие не наступит, пока стакан не обновится при восстановлении соединения.
При отсутствии связи событие не наступит, пока стакан не обновится при восстановлении соединения.
у брокера нет стакана.
на ФОРТСе нет стакана? Или нет доступа к стакану?
на ФОРТСе нет стакана? Или нет доступа к стакану?