Написать функция фильтра времени с учетом 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