Início Indicador técnico Postagem

UltraRSI: O Indicador Inovador para MetaTrader 5

Anexo
725.zip (20.73 KB, Baixar 0 vezes)

Autor original:

dm34@mail.ru

O UltraRSI é um indicador que traz uma nova perspectiva ao RSI (Índice de Força Relativa) através de uma análise de múltiplas linhas de sinal. A forma como as linhas de sinal são calculadas é a seguinte: temos parâmetros de entrada do indicador que servem como dados de origem:

  • 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 das diversas linhas de sinal é calculado usando uma progressão aritmética:

SignalPeriod(Number) = StartLength + Number * Step,

onde a variável Number varia de zero a StepsTotal. Os valores calculados dos períodos são adicionados a um array de variáveis e utilizados em cada tick do indicador para obter um array de valores suavizados do RSI. A direção da tendência atual para cada suavização é calculada, assim como o número de tendências positivas e negativas para todo o array de valores suavizados do RSI. O número final de tendências positivas e negativas também é suavizado e usado 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 é determinada pela largura da nuvem. Você pode utilizar os níveis de sobrecompra (UpLevel) e sobrevenda (DnLevel) que são definidos em percentual a partir da amplitude máxima do indicador.

Os algoritmos de suavização podem ser escolhidos entre dez versões diferentes:

  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 linear ponderada;
  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 usando o algoritmo de Tushar Chande;
  10. AMA - suavização usando o algoritmo de Perry Kaufman.

Vale ressaltar que os parâmetros Phase1 e Phase2 têm significados completamente diferentes para os diversos algoritmos de suavização. Para o JMA, é uma variável externa de fase que varia de -100 a +100. Para o T3, é uma razão de suavização multiplicada por 100 para melhor visualização, para o VIDYA é um período do oscilador CMO e para o AMA é um período do EMA lento. Em outros algoritmos, esses parâmetros não afetam a suavização. No caso do AMA, o período do EMA rápido é um valor fixo e igual a 2 por padrão. A razão de elevação ao quadrado 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 das classes foi descrito em detalhes 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 int RSI_Period=13;                          // Período do indicador RSI
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 mudança de período
input uint StepsTotal=10;                        // Número total de mudanças de período
//----
input Smooth_Method SmoothMethod=MODE_JJMA;      // Método de suavização
input int SmoothLength=3;                        // Profundidade de suavização
input int SmoothPhase=100;                       // Parâmetro de suavização
//----                          
input uint UpLevel=80;                           // Nível de sobrecompra, %%
input uint DnLevel=20;                           // Nível de sobrevenda, %%
input color UpLevelsColor=Blue;                  // Cor do nível de sobrecompra
input color DnLevelsColor=Blue;                  // Cor do nível de sobrevenda
input STYLE Levelstyle=DASH_;               // Estilo dos níveis
input WIDTH  LevelsWidth=Width_1;               // Largura dos níveis

UltraRSI


Publicações relacionadas

Comentário (0)