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 |//+----------------------------------------------+inputENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Preço aplicado//----input Smooth_Method W_Method=MODE_JJMA; // Método de suavizaçãoinputint StartLength=3; // Período inicial de suavização inputint WPhase=100; // Parâmetro de suavização//---- inputuint Step=5; // Passo de alteração do períodoinputuint StepsTotal=10; // Número de alterações de período//----input Smooth_Method SmoothMethod=MODE_JJMA; // Método de suavizaçãoinputint SmoothLength=3; // Profundidade da suavização inputint SmoothPhase=100; // Parâmetro de suavizaçãoinput Applied_price_ IPC=PRICE_CLOSE; // Preço aplicado//---- inputuint UpLevel=80; // Nível de sobrecomprainputuint DnLevel=20; // Nível de sobrevendainputcolor UpLevelsColor=Red; // Cor do nível de sobrecomprainputcolor DnLevelsColor=Red; // Cor do nível de sobrevendainput STYLE Levelstyle=DASH_; // Estilo dos níveisinput WIDTH LevelsWidth=Width_1; // Largura dos níveis


Comentário 0