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

MQL4 Experts Aconselhamento

Termos de Referência

Сейчас мой советник работает вот так:
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-буду рад, но если нет то не проблема.


Respondido

1
Desenvolvedor 1
Classificação
(50)
Projetos
94
29%
Arbitragem
3
33% / 0%
Expirado
4
4%
Livre
2
Desenvolvedor 2
Classificação
(49)
Projetos
134
27%
Arbitragem
62
13% / 53%
Expirado
58
43%
Livre
3
Desenvolvedor 3
Classificação
(254)
Projetos
573
36%
Arbitragem
64
20% / 58%
Expirado
147
26%
Livre
5
Desenvolvedor 5
Classificação
(5)
Projetos
3
0%
Arbitragem
19
0% / 100%
Expirado
0
Livre
6
Desenvolvedor 6
Classificação
(45)
Projetos
50
34%
Arbitragem
14
7% / 64%
Expirado
15
30%
Livre
7
Desenvolvedor 7
Classificação
(14)
Projetos
22
59%
Arbitragem
2
0% / 50%
Expirado
2
9%
Livre

Informações sobre o projeto

Orçamento
30+ USD
Desenvolvedor
27 USD