Особенности языка mql5, тонкости и приёмы работы - страница 73

Vitaly Muzichenko
12598
Vitaly Muzichenko  
Kirill Belousov:

По цене закрытия найти свечу в независшем ДЦ на истории, у которого вы знаете GMTOffset. Разница между временем свечей даст разницу между ДЦ. Сложите с разницей GMT известного - получите разницу GMT у неизвестного

Времени торгового сервера вы никогда не знаете. Вы знаете только время прихода последней котировки по инструменту.

Свечи часовые скорее всего.

Ну это не серьёзный способ нахождения, идти в какой-то другой терминал.

Какие ещё варианты?

Kirill Belousov
485
Kirill Belousov  
Vitaly Muzichenko:

Ну это не серьёзный способ нахождения, идти в какой-то другой терминал.

какие ещё варианты7

позвонить брокеру или посмотреть на сайте

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

P.S. А какая собственно задачка, где нужно время неизвестного брокера?

Vitaly Muzichenko
12598
Vitaly Muzichenko  
Kirill Belousov:

позвонить брокеру или посмотреть на сайте

Мне нужно узнать на программном уровне)

Kirill Belousov
485
Kirill Belousov  
Vitaly Muzichenko:

Мне нужно узнать на программном уровне)

А какая собственно задачка, где нужно время неизвестного брокера?

Vitaly Muzichenko
12598
Vitaly Muzichenko  
Kirill Belousov:

А какая собственно задачка, где нужно время неизвестного брокера?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Особенности языка mql5, тонкости и приёмы работы

Vitaly Muzichenko, 2018.03.25 21:34

Но так свечи покажут так-же время сервера.

Предположим, сейчас запустил терминал от любого дилинга, котировок нет, но есть последнее зафиксированное в обзоре рынка 23:58, но с каким сдвигом по GMT он работает - не известно.

Или Я уже туплю, и это можно выяснить очень просто?

P.S. Предположим, Я потерялся во времени и перестал различать день/ночь, дни недели, время.

Как выяснить, что нет котировок потому что выходной, ну или к примеру в четверг котировки не идут, потому что в дилинге завис сервер?

Вижу такое решение, но не вижу как это реализовать, не имея в наличии время торгового сервера:

if( TimeCurrent()<TimeServer()-60 ) return( "нет котировок уже 1 минуту" );

Kirill Belousov
485
Kirill Belousov  
Vitaly Muzichenko:

Запустить таймер и проверять как у нас там с котировками.

Если давненько не менялись - значит или ДЦ завис или четверг или выходные ))

Vitaly Muzichenko
12598
Vitaly Muzichenko  
Kirill Belousov:

Запустить таймер и проверять как у нас там с котировками.

Если давненько не менялись - значит или ДЦ завис или четверг или выходные ))

Таймер запущен, в наличии есть TimeCurrent(). Но что дальше, с чем сравнивать? Можно в Онтике записывать время последнего тика, и с ним сравнивать.

Другого решения нет?

PS. Очень выручила-бы вот такая штука: TimeServer() // время торгового сервера
Kirill Belousov
485
Kirill Belousov  
Vitaly Muzichenko:

Таймер запущен, в наличии есть TimeCurrent(). Но что дальше, с чем сравнивать? Можно в Онтике записывать время последнего тика, и с ним сравнивать.

Другого решения нет?

PS. Очень выручила-бы вот такая штука: TimeServer() // время торгового сервера

TimeCurrent() внутри OnTimer() показывает время прихода последнего тика из всех инструментов Обзора рынка.

Внутри OnTick() - время последней котировки по текущему символу.

Фиксируете факт изменения в Глобальных переменных

Ну и при каждом вызове OnTimer() сравниваете.

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

Делаете выводы и реагируете.

Кроме того у вас есть котировочные и торговые сессии по каждому инструменту. Оттуда можно узнать торговое сейчас время или нет.

P.S. Насколько я понял вам и не надо времени сервера. Вам надо установить факт отсутствия котировок.

Vitaly Muzichenko
12598
Vitaly Muzichenko  
Kirill Belousov:

TimeCurrent() внутри OnTimer() показывает время прихода последнего тика из всех инструментов Обзора рынка.

Фиксируете факт изменения в Глобальных переменных

Ну и при каждом вызове OnTimer() сравниваете.

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

Делаете выводы и реагируете.

Кроме того у вас есть котировочные и торговые сессии по каждому инструменту. Оттуда можно узнать торговое сейчас время или нет.

P.S. Насколько я понял вам и не надо времени сервера. Вам надо установить факт отсутствия котировок.

Это очень дорого в плане производительности.

Есть торговые сессии, но там каждый пляшет по своему, они там от фонаря частенько. 


fxsaber
14969
fxsaber  
Не проверял

Forum on trading, automated trading systems and testing trading strategies

Deals History inside OnTesterPass

Anthony Garot, 2018.03.29 02:34

I dug into this a little more today.

It appears that when using Local Network Farm agents a file cannot be opened in the OnTester() event.

I know OnTester() is firing because data set in OnTester() is passed back to OnTesterPass() from the agents via frames.

So my approach of dumping data to a file from OnTester() only works for Local Agents, not Local Network Farm Agents, and presumably not for MQL5 Cloud Network Agents.