Analógico TimeTradeServer para MT4 - página 4

 

É um bom ponto, você precisa saber o horário do servidor nos fins de semana. Porque o tempo do servidor pára e sempre dá na sexta-feira.
Necessidade de uma maneira de identificar, fins de semana para copiadoras sem usar dll

O TimeTradeServer funciona perfeitamente no MT5, adicione-o ao mt4 e isso resolveria os problemas com a análise de tempo de uma só vez.

 
Alexandr Gavrilin:

É um bom ponto aqui, você precisa saber o horário do servidor no fim de semana. Porque o tempo do servidor pára e sempre dá na sexta-feira.
Precisamos de uma maneira de identificar o fim de semana para fotocopiadoras sem utilizar o dll

O TimeTradeServer funciona perfeitamente no MT5, adiciona-o ao mt4 e resolveria os problemas com a análise de tempo de uma só vez.

Como a função OrderSend() se depara com um erro de "mercado está fechado" (existe algo assim), pare todas as tentativas comerciais e espere que o preço mude, o que significaria que o mercado se abriu.

 
Dmitry Fedoseev:

Como a função OrderSend() se depara com um erro de "mercado fechado" (há algumas coisas assim), paramos todas as tentativas de negociação e esperamos que o preço mude, o que significará que o mercado se abriu.

e "como não encontrado", todo o histórico está carregado de ordens pendentes)

 
fxsaber:

Vitaly deu um link para esta função. Não me lembro em que se baseia a idéia. Mas devo ter verificado quando estava escrevendo. Experimente.

A idéia é baseada em encontrar citações de última hora para o símbolo mais comum (neste caso EURUSD) e uma espécie de cálculo de compensação de tempo do servidor a partir do GMT. Mas há tantos "se" aqui que, infelizmente, não é uma solução para o problema.

Verificado na Alpari, não funciona:


 
Ihor Herasko:

Verificado na Alpari, não funciona:

Então, haverá dados de reprodução?

 
fxsaber:

Então, haverá dados para reproduzir?

Eu dei uma foto. Talvez você não consiga vê-lo?

 
Taras Slobodyanik:

e "como eu não me deparei", a história toda está cheia de pausas)

Você pode ser mais específico?

 
Ihor Herasko:

Eu dei um desenho.

Como se reproduz a partir de um desenho?

 
Ihor Herasko:

A idéia é baseada em encontrar as citações de última hora para o símbolo mais comum (neste caso EURUSD) e uma espécie de cálculo do horário do servidor compensado a partir do GMT por este. Mas há tantos "se" aqui que, infelizmente, não é uma solução para o problema.

Verificado na Alpari, não funciona:


você não deve procurar o último (23:59) minuto no EURUSD, mas a noite no ouro. O ouro é negociado estritamente em amesterdão, moedas em tempo de servidor. A partir daqui, encontre o offset GMT do servidor
 

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

Peculiaridades de mql4, dicas e truques

Ivan Titov, 2019.08.12 16:19

Você está dizendo que se personagens que não são estrangeiros têm histórico disponível, então não funcionará?

Também aqui está um exemplo para forex em Alpari-Demo EURUSD,H1 no tester:

Para 2019.02.19 14:00:00 devoluções 2019.02.19 11:00:00

Para 2019.06.19 14:00:00 - devoluções 2019.06.19 11:00:00

Embora no inverno deva ser GMT+2 e no verão GMT+3 (EET).

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
int TimeServerGMTOffset( const bool SummerTime = false )
{
  const datetime Sunday = GetTimeDayOfWeek();
  
  return(((int)MathRound((double)MathMin(Sunday - DAY - GetBarTime(Sunday), Sunday + DAY - GetBarTime(Sunday, true)) / HOUR) - SummerTime - 2) * HOUR);
}

Faça essa mudança e ela vai funcionar. Não fez a definição de verão e inverno, alguém o fará.

Razão: