UltraXMA: O Indicador Poderoso para MetaTrader 5

Mike 2012.01.31 22:26 13 0 0
Anexo

O UltraXMA é um indicador inovador que se baseia no valor integral da tendência, utilizando um conjunto de médias móveis similares com uma progressão aritmética do período de suavização.

O algoritmo de cálculo das médias móveis funciona da seguinte forma. Temos os seguintes parâmetros de entrada do indicador:

  • StartLength - valor inicial mínimo da primeira linha de sinal;
  • Step - passo de alteração do período;
  • StepsTotal - número total de alterações de período.

Qualquer valor de período do conjunto de linhas é calculado usando uma progressão aritmética:

XMAPeriod(Número) = StartLength + Número * Step

onde o valor da variável Número varia de zero até StepsTotal. Os valores obtidos dos períodos são adicionados a um array de variáveis e utilizados a cada tick do indicador para obter o array de valores das médias móveis do UltraXMA. As direções da tendência atual para cada suavização são calculadas, assim como a quantidade de tendências positivas e negativas para todo o array de valores das médias móveis. O número final de tendências positivas e negativas é, por sua vez, suavizado e utilizado como as linhas do indicador que formam uma nuvem colorida, exibida através da classe de estilo DRAW_FILLING.

A direção da tendência neste indicador é determinada pela cor da nuvem, enquanto sua força é medida pela largura da nuvem. Você pode usar os níveis de sobrecompra (UpLevel) e sobrevenda (DnLevel) que são definidos em valor percentual a partir da amplitude máxima do indicador.

Existem dez algoritmos de suavização disponíveis para você escolher:

  1. SMA - média móvel simples;
  2. EMA - média móvel exponencial;
  3. SMMA - média móvel suavizada;
  4. LWMA - média móvel ponderada linear;
  5. JJMA - média adaptativa JMA;
  6. JurX - suavização ultralinear;
  7. ParMA - suavização parabólica;
  8. T3 - suavização exponencial múltipla de Tillson;
  9. VIDYA - suavização com o uso do algoritmo de Tushar Chande;
  10. AMA - suavização com o uso do algoritmo de Perry Kaufman.

É importante observar que os parâmetros de fase para diferentes algoritmos de suavização têm significados completamente diferentes. Para o JMA, a fase externa varia de -100 a +100. Para o T3, é uma razão de suavização multiplicada por 100 para melhor visualização. Para o VIDYA, é o período do oscilador CMO e, para o AMA, é o período da EMA lenta. Em outros algoritmos, esses parâmetros não afetam a suavização. Para o AMA, o período rápido da EMA é um valor fixo igual a 2 por padrão. A razão de potência também é igual a 2 para o AMA.

O indicador utiliza as classes da biblioteca SmoothAlgorithms.mqh (que devem ser copiadas para a pasta terminal_data_folder\MQL5\Include). O uso dessas classes foi detalhadamente descrito no artigo "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

Parâmetros de entrada do indicador:

//+----------------------------------------------+
//| Parâmetros de entrada do indicador                  |
//+----------------------------------------------+
input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Preço aplicado
//----
input Smooth_Method W_Method=MODE_JJMA;     // Método de suavização
input int StartLength=3;                    // Período inicial de suavização                    
input int WPhase=100;                       // Parâmetro de suavização
//----  
input uint Step=5;                          // Passo de alteração do período
input uint StepsTotal=10;                   // Número de alterações de período
//----
input Smooth_Method SmoothMethod=MODE_JJMA; // Método de suavização
input int SmoothLength=3;                   // Profundidade da suavização                    
input int SmoothPhase=100;                  // Parâmetro de suavização
input Applied_price_ IPC=PRICE_CLOSE;       // Preço aplicado
//----                          
input uint UpLevel=80;                      // Nível de sobrecompra
input uint DnLevel=20;                      // Nível de sobrevenda
input color UpLevelsColor=Red;              // Cor do nível de sobrecompra
input color DnLevelsColor=Red;              // Cor do nível de sobrevenda
input STYLE Levelstyle=DASH_;               // Estilo dos níveis
input WIDTH  LevelsWidth=Width_1;           // Largura dos níveis        

UltraXMA

Lista
Comentário 0