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
MQL5 Wizard - Trade Signals Based on Bullish Engulfing/Bearish Engulfing + Stochastic - Asesor Experto para MetaTrader 5
- Visualizaciones:
- 1847
- Ranking:
- Publicado:
- 2014.01.08 12:36
- Actualizado:
- 2016.11.22 07:33
- ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
MQL5 Wizard le permite la creación de Asesores Expertos confeccionados en base a las clases de la libreria standard entregadas junto con el terminal del cliente (ver Creación de Asesores Expertos en MQL5 Wizard para más detalles) Permite comprobar sus ideas comerciales de forma rápida, lo único que necesita es crear sus propias clases de señales de operación. La estructura de esta clase y el ejemplo se puede encontrar en el artículo MQL5 Wizard: Cómo crear un módulo de señales de trading.
La idea genérica es la siguiente: la clase de señales de comercio se deriva de CExpertSignal, lo siguiente, es necesario reemplazar los métodos virtuales LongCondition() y ShortCondition() con sus propios métodos.
Hay un libro "Estrategias de mejores traders" (en ruso), allí hay muchas estrategias de negociación que se consideran, nos centraremos en la inversión de los patrones de vela, confirmados por los osciladores Estocástico, CCI, MFI y RSI .
La mejor manera es crear una clase separada, derivada de CExpertSignal para la comprobación de la formación de patrones de velas. Para la confirmación de las señales comerciales, generadas por los patrones de vela, es suficiente con escribir la clase, derivada de CCandlePattern y agregar allí las características necesarias (por ejemplo, la confirmación por osciladores).
Aquí vamos a considerar las señales, basadas en el patrón de velas de reversa "Bullish Engulfing/Bearish Engulfing" reversal candlestick pattern, confirmadas por el indicador Estocástico. El módulo de señales de comercio se basa en la clase CCandlePattern, es un simple ejemplo de su uso para la creación de las señales comerciales con los patrones de vela.
1. Patrones de vela de reversa "Bullish Engulfing" and "Bearish Engulfing"
1.1. Bullish Engulfing
El patrón de reversa "Bullish Engulfing" se forma en una tendencia bajista cuando una pequeña vela negra es seguida por una vela larga blanca y esta eclipsa completamente ("sumerge") la vela del día anterior. Las sombras (colas) de la pequeña vela son cortas, lo que permite al cuerpo de la gran vela cubrir toda la vela del día anterior.
Fig. 1. Patrón de vela "Bullish Engulfing"
El Reconocimiento del patrón "Bullish Engulfing" esta implementado en el método CheckPatternBullishEngulfing() de la ClaseCCandlePattern:
//+------------------------------------------------------------------+ //| Comprueba la formación del patrón de velas "Bullish Engulfing" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternBullishEngulfing() { //--- Bullish Engulfing if((Open(2)>Close(2)) && // vela anterior es bajista (Close(1)-Open(1)>AvgBody(1)) && // cuerpo de la vela alcista es mayor que la vela del cuerpo (Close(1)>Open(2)) && // el precio de cierre de la vela alcista es más alto que el precio de apertura de la vela bajista (MidOpenClose(2)<CloseAvg(2)) && // tendencia bajista (Open(1)<Close(2))) // el precio de apertura de la vela alcista es más bajo que el precio de cierre de la bajista return(true); //--- return(false); }
el método CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_ENGULFING) de la clase CCandlePatternes utilizado para comprobar la formación del patrón de vela "Bullish Engulfing".
1.2. Bearish Engulfing
El patrón de reversa "Bearish Engulfing" se forma en una tendencia alcista cuando una pequeña vela blanca es seguida por una vela larga negra y esta eclipsa completamente ("sumerge") la vela del día anterior. Las sombras (colas) de la pequeña vela son cortas, lo que permite al cuerpo de la gran vela cubrir toda la vela del día anterior.
Fig. 2. Patrón de vela "Bearish Engulfing"
El Reconocimiento del patrón "Bearish Engulfing" esta implementado en el método CheckPatternBearishEngulfing() de la Clase CCandlePattern:
//+------------------------------------------------------------------+ //| Comprueba la formación del patrón de velas "Bearish Engulfing" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternBearishEngulfing() { //--- Bearish Engulfing if((Open(2)<Close(2)) && // la vela anterior es bajista (Open(1)-Close(1)>AvgBody(1)) && // el cuerpo de la vela es mayor que la media del cuerpo (Close(1)<Open(2)) && // el precio de cierre de la vela bajista es menor que el precio de apertura de la vela alcista (MidOpenClose(2)>CloseAvg(2)) && // tendencia alcista (Open(1)>Close(2))) // El precio de apertura de la vela bajista es más alto que el precio de cierre de la vela alcista return(true); //--- return(false); }
El método CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_ENGULFING) de la clase CCandlePattern es utilizado para comprobar la formación del patrón de vela "Bearish Engulfing".
2. Señales de comercio, confirmadas por el indicador Estocástico
Las señales de comercio para abrir posiciones largas o cortas deben ser confirmadas por el oscilador Estocástico. La línea %D de la señal% debe ser mayor / menor que el correspondiente nivel crítico (30 o 70).
El cierre de la posición abierta depende de los valores de %D del indicador. Se puede hacer de 2 formas:
- si la línea D% ha alcanzado el nivel crítico opuesto (80 para la posición larga y 20 para la posición corta)
- si la señal inversa no está confirmada (cuando la línea% D alcanza los siguientes niveles: 20 para la posición larga y 80 para la posición corta)
Fig. 3. Patrón "Bullish Engulfing" confirmado por indicador Estocástico
Comprueba que las condiciones comerciales para la entrada y la salida se llevan a cabo en dos métodos:
- int CBE_BE_Stoch::LongCondition() - comprueba las condiciones para abrir posiciones largas (devuelve 80) y cierra la posición corta (devuelve 40);
- int CBE_BE_Stoch::ShortCondition() - comprueba las condiciones para abrir una posición corta (devuelve 80) y cierra la posición larga (devuelve 40).
2.1. Abre una posición larga/Cierra una posición corta
La formación del patrón "Bullish Engulfing" debe ser confirmada por el indicador Estocástico: StochSignal(1)<30 (el valor de la línea de señal del indicador Estocástico de la última barra completada tiene que ser menos de 30).
La posición corta debe ser cerrada si la línea de señal del indicador Estocástico a cruzado al alza los niveles 20 o 80.
//+------------------------------------------------------------------+ //| Comprueba las condiciones para las entradas y salidas al mercado | //| 1) Entrada al mercado (abrir posición larga, resultado=80) | //| 2) Salida del mercado (cerrar posición corta, resultado=40) | //+------------------------------------------------------------------+ int CBE_BE_Stoch::LongCondition() { int result=0; //--- idx se puede utilizar para determinar el modo de trabajo del Asesor Experto //--- idx = 0 - en este caso el EA comprueba las condiciones del comercio en cada tick //--- idx=1 - en este caso el EA comprueba la condición de comercio sólo en las barras nuevas int idx =StartIndex(); //--- comprobación de las condiciones para abrir posiciones largas //--- formación del patrón Bullish Engulfing y la línea de señal<30 if (CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_ENGULFING) && (StochSignal(1)<30)) result=80; //--- comprobación de las condiciones para cerrar la posición corta //--- cruce de la línea de señal de los niveles de sobre compra / sobre venta (a la baja 20, al alza 80) if((((StochSignal(1)>20) && (StochSignal(2)<20)) || ((StochSignal(1)>80) && (StochSignal(2)<80)))) result=40; //--- devuelve el resultado return(result); }
2.2. Abrir la posición corta/Cerrar la posición larga
La formación del patrón "Bearish Engulfing" debe ser confirmada por el indicador Estocástico: StochSignal(1)>70 (el valor de la línea de señal del indicador Estocástico de la última barra completada tiene que ser mayor de 70).
La posición larga debe ser cerrada si la línea de señal del indicator Estocástico ha cruzado a la baja los niveles 80 o 20.
//+-------------------------------------------------------------------+ //| Comprueba las condiciones para la entrada y salida del mercado | //| 1) Entrada en el mercado (abre una posición corta, resultado = 80)| //| 2) Salida del mercado (cierra posición larga, resultado = 40) | //+-------------------------------------------------------------------+ int CBE_BE_Stoch::ShortCondition() { int result=0; //--- idx se puede utilizar para determinar el modo de trabajo del Asesor Experto //--- idx=0 - en este caso el EA comprueba las condiciones de comercio en cada tick //--- dx=1 - en este caso, el EA comprueba las condiciones de comercio sólo en las barras nuevas int idx =StartIndex(); //--- comprobación de las condiciones para abrir una posición corta //--- formación del patrón Bearish Engulfing y la línea de señal>70 if (CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_ENGULFING) && (StochSignal(1)>70)) result=80; //--- comprobación de las condiciones para cerrar la posición larga //--- línea de señal de cruce de los niveles de sobre compra / sobre venta (a la baja 80, al alza 20) if((((StochSignal(1)<80) && (StochSignal(2)>80)) || ((StochSignal(1)<20) && (StochSignal(2)>20)))) result=40; //--- devuelve el resultado return(result); }
2.3. Creando el Asesor Experto utilizando MQL5 Wizard
La clase CBE_BE_Stoch no está incluida en la librería de clases estándar, para utilizarla, es necesario descargar el archivo acbe_be_stoch.mqh (ver archivos adjuntos) y guardarlo en la carpeta client_terminal_data\folder\MQL5\Include\Expert\Signal\MySignals. Se debe hacer lo mismo con el archivo candlepatterns.mqh. Se puede utlizar MQL5 Wizard después del reinicio del MetaEditor.
Para crear un Asesor Experto lanzaremos MQL5 Wizard:
Fig. 4. Creando el Asesor Experto utilizando MQL5 Wizard
Vamos a especificar el nombre del Asesor Experto:
Fig. 5. Propiedades generales del Asesor Experto
Después de eso tenemos que seleccionar los módulos de señales comerciales utilizados.
Fig. 6. Propiedades de la señal del Asesor Experto
En nuestro caso usamos sólo un módulo de señales comerciales.
Añadiendo los módulos de señales de comercio de las "Señales basadas en Bullish Engulfing/Bearish Engulfing confirmadas por el Estocástico":
Fig. 7. Propiedades de la señal del Asesor Experto
El módulo de señales de comercio añadido:
Fig. 8. Propiedades de la señal del Asesor Experto
Puedes seleccionar cualquier propiedad de trailing, pero vamos a utilizar "Trailing Stop not used":
Fig. 9. Propiedades de trailing del Asesor Experto
En cuanto a las propiedades de manejo del dinero, vamos a utilizar "Trading with fixed trade volume":
Fig. 10. Propiedades de la administración del dinero del Asesor Experto
Al presionar el botón "Finish" button, obtendremos el código generado del Asesor Experto, ubicado en Expert_ABE_BE_Stoch.mq5, que se guardará en terminal_data_folder\MQL5\Experts\.
Loa parámetros de entrada generados por defecto del Asesor Experto
//--- entradas para la señal principal input int Signal_ThresholdOpen =10; // Valor umbral de la señal para abrir [0...100] input int Signal_ThresholdClose =10; // Valor umbral de señal la para cerrar [0...100] input double Signal_PriceLevel =0.0; // Nivel de precio para ejecutar una transacción input double Signal_StopLevel =50.0; // Nivel de Stop Loss(en puntos) input double Signal_TakeLevel =50.0; // Nivel de Take Profit(en puntos)
deben ser reemplazado por:
//--- entradas para la señal principal input int Signal_ThresholdOpen =40; // Valor umbral de señal la para cerrar [0...100] input int Signal_ThresholdClose =20; // Valor umbral de señal la para cerrar [0...100] input double Signal_PriceLevel =0.0; // Nivel de precio para ejecutar una transacción input double Signal_StopLevel =0.0; // Nivel de Stop Loss(en puntos) input double Signal_TakeLevel =0.0; // Nivel de Take Profit(en puntos)
Los parámetros de entrada Signal_ThresholdOpen / Signal_ThresholdClose permiten especificar los niveles de umbral para la apertura y cierre de posiciones.
En el código de los métodos LongCondition () y ShortCondition () de la clase de señales de comercio hemos especificado los valores fijos del umbral:
- Abrir posición: 80;
- Cerrar posición: 40.
El Asesor Experto, generado por MQL5 Wizard abre y cierra posiciones usando los "votos" de los módulos de señales de comercio. También se utiliza el voto del módulo principal (como contenedor, que consiste en todos los módulos añadidos), pero los métodos LongCondition () y ShortCondition ()siempre devuelven 0.
Los resultados de la votación del módulo principal también se utiliza en promedios de "votos". En nuestro caso tenemos: módulo principal + 1 módulo de señales de comercio, por lo que tenemos que tomar en cuenta este hecho al fijar los valores umbral. Debido a este hecho el ThresholdOpen y ThresholdClose se deben establecer como 40=(0+80)/2 y 20=(0+40)/2.
Los valores de los parámetros de entrada Signal_StopLevel y Signal_TakeLevel se establecen en 0, esto significa que el cierre de las posiciones se hará sólo cuando las condiciones de cierre sean verdaderas.
2.4. Resultados del backtesting del Historial
Vamos a considerar el backtesting del Asesor Experto sobre los datos históricos (EURUSD H1, período de prueba: 2010.01.01-2011.03.04, PeriodK=47, PeriodD=9, PeriodSlow=13, MA_period=5).
En la creación del Asesor Experto se utilizó el volumen fijo (Trading Fixed Lot, 0.1), El algoritmo de Trailing Stop algorithm no se utiliza (Trailing not used).
Fig. 11. Resultados de las pruebas del Asesor Experto, basadas en Bullish/Bearish Engulfing + Estocástico"
El mejor conjunto de parámetros de entrada se puede encontrar utilizando el Strategy Tester del terminal de cliente MetaTrader 5 .
El código del Asesor Experto, creado por MQL5 Wizard se adjunta en expert_abe_be_stoch.mq5.
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/305
Vamos a considerar las señales de comercio basadas en el patrón de velas "Morning Star/Evening Star" confirmadas por el indicador Estocástico. El código del Asesor Experto basado en esta estrategia puede ser generado automáticamente utilizando MQL5 Wizard.
MQL5 Wizard - Señales de comercio basadas en Dark Cloud Cover/Piercing Line + RSIVamos a considerar las señales de comercio basadas en el patrón de velas "Dark Cloud Cover/Piercing Line" confirmadas por Relative Strength Index (RSI). El código del Asesor Experto basado en esta estrategia puede ser generado automáticamente utilizando MQL5 Wizard.
Vamos a considerar las señales de comercio basadas en el patrón de velas "Bullish Engulfing/Bearish Engulfing" candlestick pattern, confirmadas por el indicador Commodity Channel Index (CCI). El código del Asesor Experto basado en esta estrategia puede ser generado automáticamente utilizando MQL5 Wizard.
Asistente de MQL5 - Señales de Trading basadas en Bullish Engulfing/Bearish Engulfing + MFISe analizan Señales de Trading basadas en el patrón de velas "Bullish Engulfing/Bearish Engulfing", confirmadas por el indicador Market Facilitation Index (MFI). El código del Asesor Experto basado en esta estrategia puede ser generado automáticamente usando el Asistente de MQL5.