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:
- SMA - média móvel simples;
- EMA - média móvel exponencial;
- SMMA - média móvel suavizada;
- LWMA - média móvel ponderada linear;
- JJMA - média adaptativa JMA;
- JurX - suavização ultralinear;
- ParMA - suavização parabólica;
- T3 - suavização exponencial múltipla de Tillson;
- VIDYA - suavização com o uso do algoritmo de Tushar Chande;
- 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

Comentário 0