- Manejadores y contadores de propietarios de indicadores
- Una forma sencilla de crear instancias de indicadores: iCustom
- Comprobación del número de barras calculadas: BarsCalculated
- Obtención de datos de series temporales a partir de un indicador: CopyBuffer
- Soporte para múltiples símbolos y marcos temporales
- Visión general de los indicadores integrados
- Utilización de los indicadores integrados
- Forma avanzada de crear indicadores: IndicatorCreate
- Creación flexible de indicadores con IndicatorCreate
- Visión general de las funciones de gestión de indicadores en el gráfico
- Combinar salida a ventanas principal y auxiliar
- Leer datos de gráficos que tienen un desplazamiento
- Borrar instancias de indicadores: IndicatorRelease
- Obtener la configuración del indicador por su manejador
- Definir la fuente de datos de un indicador
Visión general de los indicadores integrados
El terminal proporciona un amplio conjunto de indicadores populares, que también están disponibles a través de la API. Por lo tanto, no es necesario implementar sus algoritmos en MQL5. Estos indicadores se crean utilizando funciones integradas similares a iCustom. Por ejemplo, anteriormente creamos nuestras propias versiones de los indicadores WPR y Media Móvil Triple EMA con fines educativos. Sin embargo, los indicadores correspondientes pueden utilizarse directamente a través de las funciones iWPR y iTEMA. Todos los indicadores disponibles figuran en la tabla de más abajo.
Todos los indicadores integrados toman una cadena con un símbolo de trabajo y un marco temporal como los primeros dos parámetros, y también devuelven un número entero que es el descriptor del indicador. En general, el prototipo de todas las funciones tiene este aspecto:
int iFunction(const string symbol, ENUM_TIMEFRAMES timeframe, ...)
En lugar de una elipsis, siguen los parámetros específicos de un indicador concreto. Su número y tipos difieren. Algunos indicadores no tienen parámetros.
Por ejemplo, WPR tiene un parámetro, como en nuestra versión casera, un periodo: int iWPR(const string symbol, ENUM_TIMEFRAMES timeframe, int period). Y el indicador fractal integrado, a diferencia de nuestra versión, no tiene parámetros especiales: int iFractals(const string symbol, ENUM_TIMEFRAMES period). En este caso, el orden de los fractales está codificado y es igual a 2, es decir, antes del extremo (superior o inferior) y después de él, debe haber al menos dos barras con precios high y low menos pronunciados, respectivamente.
Se permite establecer el valor NULL en lugar de un símbolo. NULL significa el símbolo de trabajo del gráfico actual, y el valor 0 del parámetro timeframe corresponde al marco temporal actual del gráfico, ya que también es el valor PERIOD_CURRENT de la enumeración ENUM_TIMEFRAMES (véase la sección Símbolos y marcos temporales).
También hay que tener en cuenta que los distintos tipos de indicadores tienen distintos números de búferes. Por ejemplo, una media móvil o WPR sólo tiene un búfer, mientras que los fractales tienen dos. El número de búferes también se indica en la tabla en una columna aparte.
Función |
Nombre del indicador |
Opciones |
Búferes |
---|---|---|---|
iAC |
Oscilador Acelerador |
|
1* |
iAD |
Acumulación / Distribución |
ENUM_APPLIED_VOLUME volume |
1* |
iADX |
Índice direccional medio |
int period |
3* |
iADXWilder |
Índice direccional medio de Welles Wilder |
int period |
3* |
iAlligator |
Alligator |
int jawPeriod, int jawShift, int teethPeriod,int teethShift, int lipsPeriod, int lipsShift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price |
3 |
iAMA |
Media móvil adaptativa |
int period, int fast, int slow, int shift, ENUM_APPLIED_PRICE price |
1 |
iAO |
Oscilador Impresionante |
|
1* |
iATR |
Rango medio verdadero |
int period |
1* |
iBands |
Bandas de Bollinger |
int period, int shift, double deviation, ENUM_APPLIED_PRICE price |
3 |
iBearsPower |
Bears Power |
int period |
1* |
iBullsPower |
Bulls Power |
int period |
1* |
iBWMFI |
Índice de Facilitación del Mercado de Bill Williams |
ENUM_APPLIED_VOLUME volume |
1* |
iCCI |
Índice del Canal de Materias Primas |
int period, ENUM_APPLIED_PRICE price |
1* |
iChaikin |
Oscilador Chaikin |
int fast, int slow, ENUM_MA_METHOD method, ENUM_APPLIED_VOLUME volume |
1* |
iDEMA |
Media móvil exponencial doble |
int period, int shift, ENUM_APPLIED_PRICE price |
1 |
iDeMarker |
DeMarker |
int period |
1* |
iEnvelopes |
Envelopes |
int period, int shift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price, double deviation |
2 |
iForce |
Índice de Fuerza |
int period, ENUM_MA_METHOD method, ENUM_APPLIED_VOLUME volume |
1* |
iFractals |
Fractales |
|
2 |
iFrAMA |
Media móvil adaptativa fractal |
int period, int shift, ENUM_APPLIED_PRICE price |
1 |
iGator |
Oscilador Gator |
int jawPeriod, int jawShift, int teethPeriod, int teethShift, int lipsPeriod, int lipsShift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price |
4* |
iIchimoku |
Ichimoku Kinko Hyo |
int tenkan, int kijun, int senkou |
5 |
iMomentum |
Momentum |
int period, ENUM_APPLIED_PRICE price |
1* |
iMFI |
Índice de flujo de dinero |
int period, ENUM_APPLIED_VOLUME volume |
1* |
iMA |
Media móvil |
int period, int shift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price |
1 |
iMACD |
Convergencia/Divergencia de Medias Móviles |
int fast, int slow, int signal, ENUM_APPLIED_PRICE price |
2* |
iOBV |
Volumen de balance |
ENUM_APPLIED_VOLUME volume |
1* |
iOsMA |
Media móvil del oscilador (histograma MACD) |
int fast, int slow, int signal, ENUM_APPLIED_PRICE price |
1* |
iRSI |
Índice de Fuerza Relativa |
int period, ENUM_APPLIED_PRICE price |
1* |
iRVI |
Índice de Vigor Relativo |
int period |
1* |
iSAR |
Sistema parabólico de parada y reversión |
doble paso, doble máximo |
1 |
iStdDev |
Desviación típica |
int period, int shift, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price |
1* |
iStochastic |
Oscilador estocástico |
int Kperiod, int Dperiod, int slowing, ENUM_MA_METHOD method, ENUM_APPLIED_PRICE price |
2* |
iTEMA |
Media móvil exponencial triple |
int period, int shift, ENUM_APPLIED_PRICE price |
1 |
iTriX |
Oscilador de medias móviles exponenciales triples |
int period, ENUM_APPLIED_PRICE price |
1* |
iVIDyA |
Media Móvil con Periodo de Promediación Dinámico |
int momentum, int smooth, int shift, ENUM_APPLIED_PRICE price |
1 |
iVolumes |
Volúmenes |
ENUM_APPLIED_VOLUME volume |
1* |
iWPR |
Rango Porcentual de Williams |
int period |
1* |
En la columna de la derecha se indican con un asterisco los indicadores con ventana propia * (aparecen debajo del gráfico principal).
Los parámetros más utilizados son los que definen los periodos de los indicadores (period, fast, slow y otras variaciones), así como la línea shift: cuando es positiva, los trazados se desplazan hacia la derecha; cuando es negativa se desplazan hacia la izquierda un número determinado de barras.
Muchos parámetros tienen tipos de enumeración de aplicación: ENUM_APPLIED_PRICE, ENUM_APPLIED_VOLUME, ENUM_MA_METHOD. Ya nos familiarizamos con ENUM_APPLIED_PRICE en la sección Enumeraciones. Todos los tipos disponibles se presentan a continuación en tablas con descripciones.
Identificador |
Descripción |
Valor |
---|---|---|
PRICE_CLOSE |
Precio de cierre de la barra |
1 |
PRICE_OPEN |
Precio de apertura de la barra |
2 |
PRICE_HIGH |
Precio alto de la barra |
3 |
PRICE_LOW |
Precio bajo de la barra |
4 |
PRICE_MEDIAN |
Precio medio, (alto+bajo)/2 |
5 |
PRICE_TYPICAL |
Precio típico, (alto+bajo+cierre)/3 |
6 |
PRICE_WEIGHTED |
Precio medio ponderado, (alto+bajo+cierre+cierre)/4 |
7 |
Los indicadores que trabajan con volúmenes pueden operar con volúmenes de ticks (de hecho, se trata de un contador de ticks) o con volúmenes reales (suelen estar disponibles sólo para instrumentos bursátiles). Ambos tipos se resumen en el enum ENUM_APPLIED_VOLUME.
Identificador |
Descripción |
Valor |
---|---|---|
VOLUMEN_TICK |
Volumen de ticks |
0 |
VOLUME_REAL |
Volumen de trading |
1 |
Muchos indicadores técnicos suavizan (o promedian) las series temporales. El terminal admite los cuatro métodos de suavizado más comunes, que se especifican en MQL5 utilizando los elementos de la enumeración ENUM_MA_METHOD.
Identificador |
Descripción |
Valor |
---|---|---|
MODE_SMA |
Promedio simple |
0 |
MODE_EMA |
Promedio exponencial |
1 |
MODE_SMMA |
Promedio suavizado |
2 |
MODE_LWMA |
Promedio ponderado lineal |
3 |
Para el indicador Estocástico, cuyo ejemplo analizaremos en la siguiente sección, existen dos opciones de cálculo: por precios Close o por precios High/Low. Estos valores se proporcionan en la enumeración especial ENUM_STO_PRICE.
Identificador |
Descripción |
Valor |
---|---|---|
STO_LOWHIGH |
Cálculo por precios bajos/altos |
0 |
STO_CLOSECLOSE |
Cálculo por precios de cierre/cierre |
1 |
El propósito y la numeración de los búferes para aquellos indicadores que tienen más de un búfer se muestran en la siguiente tabla.
Indicadores |
Constantes |
Descripciones |
Valor |
---|---|---|---|
ADX, ADXW |
|||
|
MAIN_LINE |
Línea principal |
0 |
|
PLUSDI_LINE |
Línea +DI |
1 |
|
MINUSDI_LINE |
Línea -DI |
2 |
iAlligator |
|||
|
GATORJAW_LINE |
Línea de mandíbula |
0 |
|
GATORTEETH_LINE |
Línea de dientes |
1 |
|
GATORLIPS_LINE |
Línea de labios |
2 |
iBands |
|||
|
BASE_LINE |
Línea principal |
0 |
|
UPPER_BAND |
Banda superior |
1 |
|
LOWER_BAND |
Banda inferior |
2 |
iEnvelopes, iFractals |
|||
|
UPPER_LINE |
Línea superior |
0 |
|
LOWER_LINE |
Línea inferior |
1 |
iGator |
|||
|
UPPER_HISTOGRAM |
Histograma superior |
0 |
|
LOWER_HISTOGRAM |
Histograma inferior |
2 |
iIchimoku |
|||
|
TENKANSEN_LINE |
Línea Tenkan-sen |
0 |
|
KIJUNSEN_LINE |
Línea Kijun-sen |
1 |
|
SENKOUSPANA_LINE |
Línea Senkou Span A |
2 |
|
SENKOUSPANB_LINE |
Línea Senkou Span B |
3 |
|
CHIKOUSPAN_LINE |
Línea Chikou span |
4 |
iMACD, iRVI, iStochastic |
|||
|
MAIN_LINE |
Línea principal |
0 |
|
SIGNAL_LINE |
Línea de señalización |
1 |
Las fórmulas para calcular todos los indicadores figuran en Documentación de MetaTrader 5 .
Encontrará información técnica completa sobre la llamada a funciones indicadoras, incluidos ejemplos de códigos fuente, en Documentación MQL5. Más adelante veremos algunos ejemplos en este libro.