Explicación detallada de iCustom - página 5

 
William Roeder:
Continuando desde el #23 y encapsulando en una función #26, ahora muestro una estructura que funciona tanto en MT4 como en MT5. (Para el post-build 600, he cambiado los puntos inválidos(#29) en los nombres de las variables, y apropiar los ints a las enumeraciones estándar).
No compilado, no probado. No compilado, no probado.

Hola William & Co.

Si llamas a iCustom varias veces para un indicador dado con el mismo símbolo y marco temporal, ¿se ejecuta el código completo del indicador repetidamente o MQL4 hace algo inteligente entre bastidores para almacenar en caché los búferes resultantes? Esperemos que sea esto último, especialmente para los indicadores más pesados... Tengo entendido que MQL5 mejora esta situación mediante el uso de asas, tratando los indicadores de forma similar a la de abrir/cerrar archivos.

Además, a la hora de programar EAs me interesa utilizar las clases derivadas de CIndicator de la Librería Estándar que probablemente ofrece un mayor control (y extensibilidad) en comparación con las funciones incorporadas (iCustom, iMACD, iBands, etc), por no hablar de que teóricamente debería ofrecer una semántica de programación similar en ambas plataformas, MT4 y MT5. Sin embargo, todavía no lo he probado y sigo desconcertado por las diferencias significativas en el código fuenteentre MQL4 y MQL5(Include/Indicators/*.mqh). ¿Sería tan amable de ofrecer su visión sobre los pros y los contras de su comprensión y experiencia con estas funciones / bibliotecas?

 
Dima Diall: Si llama al iCustom varias veces para un indicador dado con el mismo símbolo y marco temporal, ¿se ejecuta el código completo del indicador repetidamente o el MQL4 hace algo inteligente entre bastidores para almacenar en caché los búferes resultantes?
  1. Si el gráfico del símbolo/TF específico no existe, se crea de forma invisible.
  2. Si la combinación específica de indicador/parámetro(s) no está en el gráfico del símbolo/TF, se añade de forma invisible.
  3. A continuación, se lee del búfer [índice] solicitado.
 
William Roeder:
  1. Si el gráfico del símbolo/TF específico no existe, se crea de forma invisible.
  2. Si la combinación específica de indicador/parámetro(s) no está en el gráfico del símbolo/TF, se añade de forma invisible.
  3. Entonces se lee desde el buffer [índice] solicitado.

Muchas gracias por la rápida respuesta, William -- es un enfoque interesante... ¿Estos indicadores creados de forma invisible se destruyen automáticamente cuando se termina el EA? Supongo que sí, al menos en MQL4; quizás en MQL5 haya que llamar explícitamente a IndicatorRelease() para los indicadores en uso por el EA.

PS: ¿Por casualidad tienes alguna experiencia con las clases CIndicator en la Biblioteca Estándar? He estado buscando en Internet ejemplos de código y no he podido encontrar mucho, aparte del escaso material de referencia en http://www.mql5.com/en/docs/standardlibrary/technicalindicators/CIndicators/CIndicator (o el sistema de ayuda incorporado).

PPS: ¿Hay alguna manera de habilitar las notificaciones por correo electrónico en este foro? He buscado en la configuración de mi cuenta y no he podido encontrar nada.

Documentation on MQL5: Standard Library
Documentation on MQL5: Standard Library
  • www.mql5.com
MQL5 Standard Library is written in MQL5 and is designed to facilitate writing programs (indicators, scripts, experts) for end users. Library provides convenient access to the most of the internal MQL5 functions.
 
  1. Dado que los gráficos no utilizados se purgan después de diez minutos, supongo que los indicadores no utilizados también.
  2. No he estudiado MT5. Mira el código en la clase.
  3. No que yo sepa. Sólo uso Firefox y el complemento Update Scanner.