Indicadores: Ping - página 3

 

Há um problema lógico com seu indicador.

Ping = PrevTime ? MathAbs(Tick.time_msc - PrevTick.time_msc - (NowTime - PrevTime) / 1 e3) : 0;

Você não pode simplesmente pegar o valor absoluto e contá-lo como um atraso. Um -250 ms "adiantado" será contado como um atraso de 250, o que não é bom.

Os ticks geralmente são recebidos por pacotes pelo MT5, por isso há valores negativos.

Não acho que seja possível calcular algo preciso sobre isso. Removi o MathAbs() e permiti valores negativos, e tudo está bem equilibrado entre valores positivos e negativos.


 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Indicadores: Ping

Alain Verleyen, 2023.03.09 20:58.

Há um problema lógico em seu indicador.

Ping = PrevTime ? MathAbs (Tick.time_msc - PrevTick.time_msc - (NowTime - PrevTime) / 1 e3) : 0 ;

Você não pode simplesmente pegar um valor absoluto e considerá-lo um atraso. -250 ms "antecipadamente" seria considerado um atraso de 250, o que não é bom.

Os ticks geralmente chegam ao MT5 em pacotes, por isso os valores negativos.

Acho que não é possível calcular nada com precisão sobre isso. Removi o MathAbs() e permiti valores negativos, e tudo está bem equilibrado entre valores positivos e negativos.



 
Alain Verleyen #:

Há um problema lógico com seu indicador.

Qualquer desvio de zero não é ideal.
 
Alain Verleyen #:

Uma pergunta importante: o terminal define a hora em ticks? Na minha opinião, o histórico de ticks é gerado pelo servidor. Então, de que ping de terminal estamos falando?

 
Stanislav Korotky # :

Uma pergunta importante: o terminal define a hora em ticks? Na minha opinião, o histórico de ticks é gerado pelo servidor. Então, de que ping de terminal estamos falando?

É claro que concordo que não é do Terminal.

É impossível saber exatamente a latência real na rede.

 
Stanislav Korotky #:

Uma pergunta importante: o terminal define a hora em ticks? Na minha opinião, o histórico de ticks é gerado pelo servidor. Então, de que ping de terminal estamos falando?

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.

Nova versão do MetaTrader 5 build 3620: melhorias no terminal web, suporte a ONNX e multiplicação acelerada de matrizes em MQL5.

fxsaber, 2023.03.09 07:31 pm

Atrasos na chegada dos ticks acontecem. No exemplo de dois ticks vizinhos, o resultado é o seguinte.

Tick.time_msc = 08:00:00.000, время прихода 08:00:00.000.

Tick.time_msc = 08:00:00.200, время прихода 08:00:00.490.

O tique chegou 290 milissegundos depois do que deveria.


Observo uma situação semelhante com essas explosões de atraso na chegada do tique em um servidor dedicado com ping quase nulo. Nos aplicativos de rede, há apenas o Terminal.

O atraso médio é de 200 microssegundos, ou seja, muito menos de um milissegundo.

Você pode recomendar o que deve ser feito para remover a latência?


Usei esse indicador para visualizar os atrasos.


Duas diferenças são comparadas: entre os tempos de geração de ticks no servidor e entre os tempos de chegada deles no terminal.

 
Ele é compatível com o MT4?
 
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])

Altere o código para esta função que é compatível com a versão do mt4