Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 1131
- Ranking:
- Publicado:
- 2017.08.10 16:13
- Actualizado:
- 2017.09.06 10:26
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Está disponible la versión 2: Size of candles 2 (text).
El indicador representa el tamaño de la barra. El tamaño de la vela se calcula según la fórmula: "minuendo" menos "sustraendo". El "minuendo" y el "sustraendo" pueden ser uno de los cuatro valores (open, high, low or close).
El número de barras para los que se representa el tamaño, está limitado en los parámetros de entrada (InpNumberOfBars). Este número se queda intacto, incluso si se abre una nueva barra:
Hablemos un poco de la sincronización de las barras y los objetos gráficos.
Registro de los objetos gráficos
Los nombres de los objetos se guardan en la matriz m_arr_names[], su tamaño es igual al parámetro de entrada InpNumberOfBars. ¿Por qué se ha elegido precisamente una matriz, y no una variable simple del tipo string? Se trata de una base peculiar para el futuro.
Formación del nombre del objeto
El nombre del objeto que corresponde a la barra index, se forma según la fórmula:
name[index] = m_prefix + ("high_" or "low_") + TimeToString(time[index])
Hay que eliminar todos los objetos
Como ya sabemos, los indicadores se descargan en los siguientes casos:
- cuando se quita un indicador del gráfico;
- cuando se cierra el terminal (si el indicador estaba colocado en el gráfico);
- cuando se carga una plantilla, si el indicador está colocado en el gráfico;
- cuando se cierra un gráfico en el que estaba colocado un indicador
- cuando se cambia el perfil, si el indicador está colocado en uno de los gráficos del perfil cambiado;
- cuando se cambia de símbolo y/o periodo del gráfico en el que se ha colocado el indicador;
- cuando se cambian los parámetros de entrada del indicador.
Por eso, ejecutamos la eliminación total de los objetos gráficos creados:
- en OnDeinit()
- en OnInit() (esto es para curarnos en salud, por si han quedado objetos gráficos "sin dueño" sin eliminar)
- en OnCalculate(), cuando prev_calculated==0.
Asimismo, ejecutamos la limpieza de la matriz m_arr_names[]:
- en OnCalculate(), cuando prev_calculated==0 o cuando prev_calculated!=rates_total
Mantenimiento de un número constante de objetos gráficos:
cuando aparece una nueva barra (o barras) en el gráfico se activa la condición prev_calculated!=rates_total. En este caso, todos los objetos se eliminan, y la matriz m_arr_names[] se limpia.
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/18269

Toda la información sobre el símbolo actual (la información se toma del objeto de clase CSymbolInfo) está en forma de panel de diálogos.

Estrategia comercial con RSI y Bollinger Bands.

Esperamos cuando TP o SL se activen, y después de esto abrimos una posición en la dirección opuesta. Se comprueba que los recursos sean suficientes antes de enviar la orden comercial. OnTradeTransaction.

Esta biblioteca proporciona un acceso relámpago a las series temporales para implementar los métodos habituales MQL4 (por ejemplo, iBarShift) en las aplicaciones MQL5 sensibles a los retrasos.