UltraXMA: El Indicador Ideal para MetaTrader 5

Mike 2012.01.31 22:26 20 0 0
Archivos adjuntos

El indicador UltraXMA se basa en el valor integral de la tendencia a partir de una serie de medias móviles que utilizan una progresión aritmética en el período de suavizado.

El algoritmo de cálculo de las medias móviles se apoya en los siguientes parámetros de entrada:

  • StartLength - valor inicial mínimo de la primera línea de señal;
  • Step - paso de cambio de período;
  • StepsTotal - número total de cambios de período.

Cualquier valor de período de la serie de líneas se calcula utilizando la progresión aritmética:

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

donde la variable Número varía de cero a StepsTotal. Los valores obtenidos se añaden a un arreglo y se utilizan en cada tick del indicador para obtener el conjunto de valores de medias móviles de XMA. Se calculan las direcciones de la tendencia actual para cada suavizado, así como el número de tendencias positivas y negativas en todo el conjunto de valores de la serie de medias móviles. El número final de tendencias positivas y negativas se suaviza y se utiliza como las líneas del indicador, formando una nube de colores que se visualiza mediante la clase de estilo DRAW_FILLING.

La dirección de la tendencia en este indicador se determina por el color de la nube, mientras que su fuerza se mide por el ancho de la nube. Puedes utilizar los niveles de sobrecompra (UpLevel) y sobreventa (DnLevel) que se establecen en un valor porcentual respecto a la amplitud máxima del indicador.

Existen diez algoritmos de suavizado disponibles:

  1. SMA - media móvil simple;
  2. EMA - media móvil exponencial;
  3. SMMA - media móvil suavizada;
  4. LWMA - media móvil ponderada lineal;
  5. JJMA - media adaptativa JMA;
  6. JurX - suavizado ultralineal;
  7. ParMA - suavizado parabólico;
  8. T3 - suavizado exponencial múltiple de Tillson;
  9. VIDYA - suavizado usando el algoritmo de Tushar Chande;
  10. AMA - suavizado con el algoritmo de Perry Kaufman.

Es importante notar que los parámetros de fase para los diferentes algoritmos de suavizado tienen significados completamente diferentes. Para JMA, es una variable externa de fase que varía de -100 a +100. Para T3, se trata de una relación de suavizado multiplicada por 100 para mejor visualización; para VIDYA, es el período del oscilador CMO, y para AMA, es el período de la EMA lenta. En otros algoritmos, estos parámetros no afectan el suavizado. Para AMA, el período de la EMA rápida es un valor fijo, que por defecto es igual a 2. La relación de elevación a la potencia también es igual a 2 para AMA.

Este indicador utiliza las clases de la biblioteca SmoothAlgorithms.mqh (deben ser copiadas en la carpeta terminal_data_folder\MQL5\Include). El uso de estas clases se describe a fondo en el artículo "Promediando Series de Precios para Cálculos Intermedios Sin Usar Buffers Adicionales".

Parámetros de entrada del indicador:

//+----------------------------------------------+
//| Parámetros de entrada del indicador                   |
//+----------------------------------------------+
input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Precio aplicado
//----
input Smooth_Method W_Method=MODE_JJMA;     // Método de suavizado
input int StartLength=3;                    // Período de suavizado inicial                    
input int WPhase=100;                       // Parámetro de suavizado
//----  
input uint Step=5;                          // Paso de cambio de período
input uint StepsTotal=10;                   // Número total de cambios de período
//----
input Smooth_Method SmoothMethod=MODE_JJMA; // Método de suavizado
input int SmoothLength=3;                   // Profundidad de suavizado                    
input int SmoothPhase=100;                  // Parámetro de suavizado
input int Applied_price_ IPC=PRICE_CLOSE;       // Precio aplicado
//----                          
input uint UpLevel=80;                      // Nivel de sobrecompra
input uint DnLevel=20;                      // Nivel de sobreventa
input color UpLevelsColor=Red;              // Color del nivel de sobrecompra
input color DnLevelsColor=Red;              // Color del nivel de sobreventa
input STYLE Levelstyle=DASH_;               // Estilo de niveles
input WIDTH  LevelsWidth=Width_1;           // Ancho de niveles        

UltraXMA

Lista
Comentarios 0