Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Visualizações:
2425
Avaliação:
(31)
Publicado:
2018.02.05 07:40
\MQL5\Indicators\fxsaber\ \MQL5\Include\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Na negociação, a atualidade do preço atual é um parâmetro importante. O ping de rede entre o terminal e o servidor de negociação é o fator mais popular - entre muitos outros - que influencia essa vigência.

No entanto, frequentemente, é ignorado o ping interno do terminal. Trata-se de um atraso adicional nas cotações, dentro do terminal (plataforma). Mesmo com um ping de rede de zero, este adiamento pode ser substancial.

Ambas as variantes de visualização do indicador

Este indicador mostra a dinâmica das mudanças neste parâmetro que se calcula da seguinte forma:

#include <TypeToBytes.mqh> // https://www.mql5.com/pt/code/16280

// Obtenção de um tick recente com o lag interno da cotação (em milissegundos)
bool SymbolInfoTick( const string &Symb, MqlTick &Tick, double &Ping )
{
  static const bool IsTester = (MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_OPTIMIZATION));
  
  static MqlTick PrevTick = {0};
  static ulong PrevTime = 0;
  
  const ulong NowTime = IsTester ? 0 : GetMicrosecondCount();
  const bool Res = SymbolInfoTick(Symb, Tick);
  
  if ((!IsTester) && Res)
  {
    if (_R(Tick) != PrevTick)
    {
      Ping = PrevTime ? MathAbs(Tick.time_msc - PrevTick.time_msc - (NowTime - PrevTime) / 1e3) : 0;
      
      PrevTime = NowTime;
      PrevTick = Tick;
    }
    else
      Ping = 0;
  }

  return(Res);
}

Na captura de tela, pode-se ver claramente que o valor calculado não é pequeno, e a procura de um ping zero pode ser, por vezes, auto-engano, ao negociar ou usar certos tipos de análise, no MetaTrader 5.


Características

  • O atraso das cotações é calculado em milissegundos;
  • O indicador consome o mínimo de recursos de computação do terminal;
  • Ao redefinir os dados do indicador (alteração do timeframe, símbolos, etc.), os dados armazenados são perdidos;
  • Após a remoção do indicador, seu comentário permanece, no gráfico;
  • É impossível fornecer tal indicador para o MetaTrader 4, pois não existem dados de ticks, em milissegundos;
  • SymbolInfoTick nos indicadores requer um "aquecimento prévio" na forma de alguns eventos Calculate novos;
  • O indicador pode servir como um modelo para visualização em tempo real de todos os parâmetros, basta substituir apenas uma cadeia de caracteres;
  • Para compilar o indicador, é necessária uma biblioteca, que é usada para comparar estruturas MqlTick, no cálculo do atraso:

    #include <TypeToBytes.mqh> // https://www.mql5.com/pt/code/16280
  • O indicador tem dois tipos de exibição, dependendo esta linha:

    #define HISTOGRAM_VIEW // Comentar para alterar a aparência do indicador (de histograma para candles)

Evidentemente, o indicador atual mostra o atraso dos preços (ping) associado ao evento Calculate. Como se viu, existem tantos factores que afectam profundamente o ping, que se pode por em causa a conveniência do uso de quaisquer indicadores, na estratégia de negociação (e análise). Claro, o evento NewTick é menos susceptível a influências negativas, mas, nele, existe um ping significativo, o que, por vezes, pode levar o desempenho da plataforma a um absurdo.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/19422

Candle_row Candle_row

O indicador numera velas de acordo com a direção.

RSI Eraser RSI Eraser

Expert baseado nos sinais do indicador iRSI (Relative Strength Index, RSI).

Exp_Stopreversal_Tm Exp_Stopreversal_Tm

Expert baseado nos sinais do indicador Stopreversal, com funcionalidade de fixação "hard-coded" da faixa temporal de negociação.

Daniella Daniella

Indicador de sinal semáforo com uso do Average True Range.