alnev:
Поэтому интересует сдвиг в часах относительно начала торговли, которая пошла у конкретного брокера, на котором установлен советник 1 раз в сутки , в начале суток реализовано например так, а описать условие 1 раз в сутки но спустя N часов от начала торговли.
datetime GetSingleTime(const string symbol, const ENUM_TIMEFRAMES period, const int start = 0) { datetime moment[]; CopyTime(symbol, period, start, 1, moment); return(moment[0]); } datetime iStart = 0; int OnInit() { iStart = GetSingleTime(_Symbol, _Period); // remember time when trading started return(0); } void OnTick() { int hoursFromStart = (GetSingleTime(_Symbol, _Period) - iStart) / PeriodSeconds(PERIOD_H1); if (iStart < GetSingleTime(_Symbol, _Period) // if current time greater than iStart then ... { // ... do something }
https://www.mql5.com/ru/forum/38580
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите пожалуйста
как мне указать условие в советнике, чтобы некоторое событие происходило лишь 1 раз в день,
спустя определенное количество часов после начала торговли в текущих сутках по серверному времени.
Например сегодня (2 января) торговля у одних брокеров началась в одно время (7 утра, у других в 8 утра и тп). Поэтому интересует сдвиг в часах относительно начала торговли, которая пошла у конкретного брокера, на котором установлен советник
1 раз в сутки , в начале суток
реализовано например так, а описать условие 1 раз в сутки но спустя N часов от начала торговли. Спасибо за совет заранее
{выполняем при инициализации советника некие действия}
//затем присваиваем
TimeSutki=iTime(NULL,1440,0);
//при тиках проверяем
//если не совпало - начались новые сутки
if(TimeSutki!=iTime(NULL,1440,0)) { снова некоторые действия и присваиваем TimeSutki=iTime(NULL,1440,0); }