- 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
Obtener la configuración del indicador por su manejador
A veces un programa MQL necesita conocer los parámetros de una instancia de indicador en ejecución. Estos pueden ser indicadores de terceros en el gráfico, o un manejador pasado desde el programa principal a la biblioteca o el archivo de encabezado. Para ello, MQL5 proporciona la función IndicatorParameters.
int IndicatorParameters(int handle, ENUM_INDICATOR &type, MqlParam ¶ms[])
Mediante el manejador especificado, la función devuelve el número de parámetros de entrada del indicador, así como sus tipos y valores.
En caso de éxito, la función rellena el array params que se le ha pasado, y el tipo de indicador se guarda en el parámetro type.
En caso de error, la función devuelve -1.
Como ejemplo del trabajo con esta función, vamos a mejorar el indicador UseDemoAllLoop.mq5 presentado en la sección sobre Borrar instancias de indicadores. Llamemos a la nueva versión UseDemoAllParams.mq5.
Como recordará, creamos secuencialmente algunos indicadores integrados en el bucle de la lista y dejamos vacía la lista de parámetros, lo que provoca que los indicadores utilicen algunos valores predeterminados desconocidos. A este respecto, mostramos un prototipo generalizado en un comentario sobre el gráfico: con un nombre, pero sin valores específicos.
// UseDemoAllLoop.mq5
|
Ahora tenemos la oportunidad de averiguar sus parámetros basándonos en el manejador del indicador y mostrárselos al usuario.
// UseDemoAllParams.mq5
|
La conversión del array MqlParam en una cadena se implementa en la clase especial MqlParamStringer (véase el archivo MqlParamStringer.mqh).
class MqlParamStringer
|
Después de compilar y ejecutar el nuevo indicador, puede asegurarse de que la lista específica de parámetros del indicador que se está renderizando aparece ahora en la esquina superior izquierda del gráfico.
Para un único indicador personalizado de la lista (LifeCycle), el primer parámetro contendrá la ruta y el nombre de archivo del indicador. El segundo parámetro se describe en el código fuente como un número entero, pero el tercer parámetro es interesante porque describe implícitamente la propiedad «Aplicar a», que es inherente a todos los indicadores con una forma abreviada del manejador OnCalculate. En este caso, por defecto, el indicador se aplica a PRICE_CLOSE (valor 1).
Initializing LifeCycle() EURUSD, PERIOD_H1 Handle=10 [type] [integer_value] [double_value] [string_value] [0] 14 0 0.00000 "Indicators\MQL5Book\p5\LifeCycle.ex5" [1] 7 0 0.00000 null [2] 7 1 0.00000 null Initializing iAlligator_jawP_jawS_teethP_teethS_lipsP_lipsS_method_price() EURUSD, PERIOD_H1 iAlligator_jawP_jawS_teethP_teethS_lipsP_lipsS_method_price requires 8 parameters, 0 given Handle=10 [type] [integer_value] [double_value] [string_value] [0] 7 13 0.00000 null [1] 7 8 0.00000 null [2] 7 8 0.00000 null [3] 7 5 0.00000 null [4] 7 5 0.00000 null [5] 7 3 0.00000 null [6] 7 2 0.00000 null [7] 7 5 0.00000 null Initializing iAMA_period_fast_slow_shift_price() EURUSD, PERIOD_H1 iAMA_period_fast_slow_shift_price requires 5 parameters, 0 given Handle=10 [type] [integer_value] [double_value] [string_value] [0] 7 9 0.00000 null [1] 7 2 0.00000 null [2] 7 30 0.00000 null [3] 7 0 0.00000 null [4] 7 1 0.00000 null
|
Según el registro, los ajustes de los indicadores integrados también corresponden a los predeterminados.