- Principales características de los indicadores
- Evento indicador principal: OnCalculate
- Dos tipos de indicadores: para la ventana principal y para la subventana
- Ajuste del número de buffers y gráficos
- Asignación de un array como buffer: SetIndexBuffer
- Configuración de plot: PlotIndexSetInteger
- Reglas de asignación de buffers y gráficos
- Aplicación de directivas para personalizar plots
- Configuración de nombres de plots
- Visualización de las carencias de datos (elementos vacíos)
- Indicadores de subventanas independientes: tamaños y niveles
- Propiedades generales de los indicadores: precisión del título y del valor
- Coloreado de gráficos por elementos
- Omitir dibujo en barras iniciales
- Esperar datos y gestionar la visibilidad (DRAW_NONE)
- Indicadores multidivisa y multitemporal
- Seguimiento de formación de barras
- Comprobación de indicadores
- Limitaciones y ventajas de los indicadores
- Crear un borrador de indicador en el Asistente MQL
Aplicación de directivas para personalizar trazados gráficos
Hasta ahora hemos estado personalizando los trazados gráficos mediante llamadas a funciones de PlotIndexSetInteger. MQL5 le permite hacer lo mismo utilizando directivas del preprocesador #property. La principal diferencia entre estos dos métodos es que las directivas se procesan en tiempo de compilación y las propiedades descritas con ellas se leen del archivo ejecutable durante la carga, incluso antes de que se ejecute el manejador OnInit (si existe). Es decir, las directivas proporcionan algunos valores por defecto que pueden utilizarse tal cual si no es necesario cambiarlos.
Por otro lado, la llamada a la función PlotIndexSetInteger permite cambiar las propiedades sobre la marcha, durante la ejecución del programa. Cambiar las propiedades dinámicamente mediante funciones permite crear escenarios más flexibles para utilizar el indicador. Las directivas y las correspondientes llamadas a la función PlotIndexSetInteger se muestran en la siguiente tabla:
Directivas |
Función |
Descripción |
---|---|---|
indicator_colorN |
PlotIndexSetInteger(N-1, PLOT_LINE_COLOR, color) |
Color de línea para el trazado |
indicator_styleN |
PlotIndexSetInteger(N-1, PLOT_LINE_STYLE, type) |
Estilo de dibujo de la enumeración ENUM_LINE_STYLE |
indicator_typeN |
PlotIndexSetInteger(N-1, PLOT_DRAW_TYPE, type) |
Tipo de dibujo de la enumeración ENUM_DRAW_TYPE |
indicator_widthN |
PlotIndexSetInteger(N-1, PLOT_LINE_WIDTH, width) |
Grosor de la línea en píxeles (1 - 5) |
Tenga en cuenta que la numeración de los trazados en las directivas empieza por 1, mientras que en las funciones empieza por 0. Por ejemplo, la directiva #property indicator_type1 DRAW_ZIGZAG equivale a llamar a PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ZIGZAG).
También vale la pena señalar que mediante el uso de la función puede establecer muchas más propiedades que a través de directivas: la enumeración ENUM_PLOT_PROPERTY_INTEGER proporciona diez elementos.
Las propiedades descritas por las directivas están disponibles (visibles y editables por el usuario) en el cuadro de diálogo de configuración del indicador, incluso cuando se coloca en el gráfico por primera vez. En concreto, esto incluye el grosor, el color y el estilo de las líneas (pestaña Colors), el número y la colocación de los niveles (pestaña Levels). Las mismas propiedades establecidas por las funciones (y si no tienen valores por defecto en las directivas) aparecen en el cuadro de diálogo sólo la segunda vez y siguientes.
Vamos a ajustar el indicador IndHighLowClose.mq5 para que utilice directivas. La nueva versión se encuentra en el archivo IndPropHighLowClose.mq5. El uso de directivas simplifica el manejador OnInit; OnCalculate no cambia.
#property indicator_chart_window
|
El nuevo indicador es absolutamente igual al anterior.