Escáner de Condiciones (cs)
Instrucciones de instalación:
Para demostrar lo que puede hacer el escáner:

Código común a todos los escáneres:
Código específico de la estrategia PP (Power Pro):
Código específico de la estrategia MAX (cruce de medias móviles):
Código cuyos identificadores comienzan con csXXXX:
¿Cómo desarrollo un nuevo código para una condición?
Decido sobre un identificador de estrategia (por ejemplo, PB para pinbars).
Configuro mi ventana como se mencionó anteriormente en "Para demostrar lo que puede hacer el escáner", eliminando indicadores existentes.
Si mi nuevo escáner depende de indicadores en el gráfico, los construyo usando csXXXX_0.mq4 como patrón. Recuerda guardar como csPB_0.mq4. Aplico mi indicador personalizado al gráfico de la izquierda.
Si necesito un indicador en ventana separada, lo construyo también. Recuerda guardar como csPB_1.mq4. Lo aplico al gráfico de la izquierda.
Construyo indicadores personalizados en lugar de usar indicadores estándar para poder referirme a ellos en otras partes utilizando la función iCustom. De esta forma, si cambio de opinión sobre los parámetros básicos de mi estrategia (por ejemplo, el método de la media móvil), solo tengo que cambiar mis indicadores personalizados. Si usara indicadores estándar, tendría que modificarlos y luego buscar en el código para acomodar ese cambio de mentalidad.
Tomaré csXXXX_Chart.mq4, reemplazaré todas las instancias de 'XXXX' por mi identificador de estrategia 'PB', y guardaré el código como csPB_Chart.mq4. No compilará aún porque todavía hay algo de código "include" que debe escribirse.
Ahora, para proporcionar el código "include".
Si las condiciones que quiero probar son muy sencillas, solo utilizo el archivo "include" csXXXX_GetBarFlag.mqh, programo lo que necesito y guardo como csPB_GetBarFlag.mqh. Pero si la codificación es complicada, regreso al csPB_Chart.mq4 que creé anteriormente, comento la línea de código que ahora dice "#include <csPB_GetBarFlag.mqh>" y construyo el código que necesito directamente dentro del archivo csPB_Chart.mq4. Cuando esté limpio, muevo/pego el código que encuentra las condiciones dentro del archivo "include" 'csPB_GetBarFlag.mqh' y descomento la declaración #include en el archivo 'csPB_Chart.mq4'.
Ahora el archivo 'csPB_Chart.mq4' puede compilarse y aplicarse al gráfico de la izquierda.
En este punto, guardo la plantilla para el gráfico de la izquierda como csPB-CHART.tpl. Incorpora cualquier indicador personalizado en el gráfico, indicadores personalizados en ventana separada y el trazado de resultados según se aplique al gráfico actual.
Cargo el archivo 'csXXXX_Panel.mq4', reemplazo todas las instancias de "XXXX" por "PB", luego guardo como "csPB_Panel.mq4". Este último archivo es compilado y aplicado al gráfico de la derecha. Puede ser un poco lento al ejecutarse la primera vez, pero no consume muchos recursos al correr.
Almaceno csPB_panel.tpl como una plantilla para el gráfico de la derecha.
Generalmente, almaceno csPB como un perfil.
NOTA: Al crear indicadores personalizados y luego referirme a ellos con la función iCustom, me aseguro de que los nombres sean exactamente correctos. No recibirás advertencias si iCustom se refiere a un indicador que no existe.
NOTA: Puede haber un error en el que cuando el indicador del panel se carga por primera vez, produce resultados que no son consistentes con los del gráfico específico que se muestra. Descubrí que si cambio la escala de tiempo en la ventana del panel (forzando así un recálculo), todo se muestra correctamente. Agradecería cualquier ayuda con este problema.
NOTA: En el código ...GetBarFlag.mqh que desarrolles tú mismo, puedes devolver cualquier entero al programa que lo llama para ser mostrado. Como está el código, cero significa 'sin resultado' y causa la exhibición de un símbolo gris indicando qué barra fue probada. Devolver un entero negativo resultará en una exhibición roja, mientras que un entero positivo resultará en una exhibición verde.
Algunos aspectos del software:
El código fue escrito como indicadores para que, cuando un panel esté en visualización y quieras mirar un par y marco temporal en particular, solo selecciones el par de la ventana de Observación del Mercado, lo arrastrarás y soltarás sobre el espacio del gráfico actual y cambiarás el marco temporal según lo que necesites. La plantilla se encarga del resto.
Con el fin de reducir la sobrecarga de la computadora, hice dos cosas.
Primero, al tratar con arreglos de series temporales, generalmente solo retrocedo 200 barras.
Segundo, el software de visualización del panel no prueba las condiciones del usuario en cada tick. Utiliza un mecanismo de temporizador tal que la prueba se aplica a bar[0] solo si bar[0] está formado al 90%, de lo contrario se aplica a bar[1]. Si bar[1] tiene el enfoque (es decir, bar[0] es menos del 90% formado), se prueba una vez y se calcula un cambio a la hora de bar[0]. Para cada tick posterior que llegue hasta que se alcance la hora del cambio, no pasa nada. No estoy 100% seguro de que esto esté codificado correctamente, pero parece funcionar bastante bien.
Publicaciones relacionadas
- MetaCOT 2 CFTC ToolBox: Herramientas Esenciales para Análisis en MT4
- Oscilador Estocástico con Reducción de Ruido para MetaTrader 4
- iMFISignAlert: Un Indicador Esencial para MetaTrader 5
- Señales de Tendencia con Heiken Ashi Suavizado en MetaTrader 5
- BlauCSI_HTF_Signal: Tu aliado en el trading con MetaTrader 5