Написать функция фильтра времени с учетом GMT для советника, через таймштам.

MQL4 专家 咨询

指定

Сейчас мой советник работает вот так:
extern int gmt = 3;//Если 999 то автомат
extern int hour_ban = 0;//Час с которого не торгуем
extern int hour_ban0 = 6;//Час до которого не торгуем
extern int hour_allow = 12;//Час с которого разрешено торговать
extern int hour_allow0 = 18;//Час до которого разрешено торговать

int OnInit()//Автоматическая установка времени от локального
{
...
double offset = TimeCurrent()-TimeGMT();
if(GMTreal==999){gmt=MathRound(offset/3600);}
...
}

void OnTick()
{
...
if(Hour()>=hour_allow && Hour()<=hour_allow0) {... //торгуем ...}
if(Hour()>=hour_ban && Hour()<=hour_ban0 ) {... //запускаем функцию закрытия ордеров и не торгуем...}
...
}
Проблема в том что этот метод не учитывает временной сдвиг GMT.
У некоторых брокеров закрытие дневной сессии происходит в 23:00.
Получается ошибка//if(23>=0 && 23<=6)
Как это сделать не соображу...

Нужно организовать фильтр времени таким образом что бы сохранить входные переменные типа int (для оптимизации) и что бы был учет сдвига.
И еще, если есть готовое решение с парсингом GMT (например time.com) или какое то другое программное решение для автоматической установки сдвига gmt-буду рад, но если нет то не проблема.


反馈

1
开发者 1
等级
(50)
项目
94
29%
仲裁
3
33% / 0%
逾期
4
4%
空闲
2
开发者 2
等级
(49)
项目
134
27%
仲裁
62
13% / 53%
逾期
58
43%
空闲
3
开发者 3
等级
(254)
项目
573
36%
仲裁
64
20% / 58%
逾期
147
26%
空闲
5
开发者 5
等级
(5)
项目
3
0%
仲裁
19
0% / 100%
逾期
0
空闲
6
开发者 6
等级
(45)
项目
50
34%
仲裁
14
7% / 64%
逾期
15
30%
空闲
7
开发者 7
等级
(14)
项目
22
59%
仲裁
2
0% / 50%
逾期
2
9%
空闲

项目信息

预算
30+ USD
开发人员
27 USD