English Русский 中文 Deutsch 日本語 Português
Combinando una estrategia de tendencia y una de flat

Combinando una estrategia de tendencia y una de flat

MetaTrader 5Sistemas comerciales | 29 noviembre 2018, 14:46
1 621 1
Dmitriy Gizlyk
Dmitriy Gizlyk

Contenido

Introducción

Existen diferenets estrategias comerciales. Unas buscan la dirección del movimiento y comercian según la tendencia. Otras definen los intervalos de las oscilaciones de precio y comercian dentro de estos corredores. El mercado es variable, y a veces podemos observar movimientos de flat entre movimientos de tendencia. Precisamente este hecho permite ganar dinero tanto a los tráders de tendencia, como a los de flat. Pero cuando los integrantes del primer grupo ganan, los del segundo, o bien pierden, o bien esperan el momento adecuado para ganar. Y al contrario.

Así que nos surge la pregunta, ¿podemos combinar los dos enfoques para aumentar la rentabilidad de nuestro comercio? ¿Pueden dos estrategias complementarse entre sí? Vamos a intentar combinar dos modelos de comercio que se dirían opuestos, analizando posteriormente el resultado de dichas estrategias combinadas.

1. Principios de combinación de estrategias

En el gráfico de precios las tendencias cambian de forma constante. Los movimientos fuertes de tendencia se alternan con los movimientos de flat (laterales), en los que el precio permance en un intervalo reducido. Al mismo tiempo, el tráder elige para sí mismo una estrategia partiendo de las condiciones de mercado. ¿Cómo podemos determinar qué estrategia elegir en cada momento? ¿De tendencia o de flat? 

Gráfico

En los artículos [1] y [2] se han analizado diferentes estrategias comerciales, tanto de tendencia, como laterales. En este caso, además, no resulta complicado notar que la aplicación de esta u otra estrategia comienza por la definición de la situación en el mercado. Ambos tipos de estrategia usan diferentes indicadores de tendencia para determinar la situación actual. Sin embargo, mientras que las estrategias de tendencia entran en el mercado cuando existe una tendencia, las de flat esperan a que la tendencia se calme para abrir posiciones. De aqui surge el primer enfoque al combinar ambos tipos de estrategia en un asesor: si tenemos una tendencia, se usará el algoritmo de comercio con tendencia, si no hay tendencia, se usará el algoritmo de comercio con flat.

Si echamos un vistazo más a fondo a los gráficos de precio, podremos notar que ni los movimientos de tendencia, ni los de flat tienen lugar en una misma dirección. Todos los movimientos van acompañados de oscilaciones de precio. En el mercado plano, las oscilaciones tinen un intervalo próximo, pero cuando hay tendencia, algunas oscilaciones dominan sobre otras. Podemos utilizar esta propiedad a la hora combinar las estrategias de tendencia y flat. El principio consiste en comerciar según la tendencia, pero confirmando el punto de entrada con los osciladores usados en el comercio de flat. Este enfoque ayuda a ejecutar la entrada en la finalización de la corrección, lo que hace disminuir la reducción y aumenta el potencial del movimiento de precio hacia el lado de la transacción.

2. Programando el asesor

Para demostrar los principios de la combinación se han elegido la estrategia 1 del artículo [1] y la estrategia 6 del artículo [2]. Ambas estrategias elegidas usan el indicador ADX para determinar la tendencia. Se ha realizado preliminarmente la optimización del funcionamiento de los asesores desde el 1.01.2017 hasta el 1.08.2018. Según los resultados de la optimización de las estrategias indicadas, se han seleccionado los siguientes parámetros.

Estrategia de tendencia 1.

Parámetros de la estrategia de tendencia

Estrategia de flat 6.

Parámetros de la estrategia de tendencia

Los resultados del comercio único de asesores con los parámetros optimizados se muestran en las capturas de pantalla.

Estrategia de tendencia 1.

Resultados de la simulación de la estrategia de tendenciaResultados de la simulación de la estrategia de tendencia

Estrategia de flat 6.

Resultados de la simulación de la estrategia de flatResultados de la simulación de la estrategia de flat

Ambos asesores utilizados han sido construidos de acuerdo con el esquema de apertura de órdenes según las señales de los indicadores cuando no hay posiciones abiertas en el momento de la señal. El cierre de posiciones tiene lugar según los valores de take-profit y stop-loss establecidos anteriormente.

Este enfoque permite excluir del asesor el módulo de acompañamiento de posiciones, lo que simplifica significativamente la lógica del asesor. Al combinar los asesores, no hemos cambiado a propósito la lógica de funcionamiento de los asesores, para así mostrar la influencia en el resultado precisamente de los métodos de combinación, y no el reajuste de los asesores.

2.1. Método 1

El primer método consiste en comprobar secuencialmente las señales de ambas estrategias y abrir una posición al llegar cualquiera de ellas. En este caso, además, tanto la estrategia como el take-profit y el stop-loss tienen sus parámetros. Con este enfoque, la presencia de una posición abierta según una estrategia excluye la apertura de una posición según la segunda. De esta forma, en el mercado nunca habrá más de una posición, lo que limita notablemente los riesgos.

Entre las desventajas de este enfoque, podemos mencionar la omisión de transacciones rentables según de las estrategias en el momento en que en el mercado está presente una posición abierta de la otra estrategia. Pero, puesto que según este enfoque las estrategias utilizadas deberán comerciar en diferentes mercados, la influencia de este factor puede ser mínima.

Para implementar el método, copiaremos el código de ambos asesores en un archivo, combinando el código de las funciones idénticas. Para evitar duplicar los nombres, vamos a añadir a las variables y funciones de la estrategia de tendencia la palabra "Trend", y a las variables y funciones de la estrategia de flat, la palabra "Flat".

//--- Parámetros generales
input double               Inp_Lot=0.01;                          //Lot
input MarginMode           Inp_MMode=LOT;                         //MM
input int                  Inp_MagicNum=1111;                     //Magic number
input int                  Inp_Deviation = 2;                     //Deviation(points)
//---
input string               Trend_EaComment="Trend Strategy";      //Strategy Comment
input int                  Trend_StopLoss=25;                     //Stop Loss(points)
input int                  Trend_TakeProfit=90;                   //Take Profit(points)
//--- Parámetros del indicador RSI_Color
input int                  Trend_RSIPeriod=28;                    //RSI Period
input double               Trend_Overbuying=70;                   //Overbuying zone
input double               Trend_Overselling=30;                  //Overselling zone
//--- Parámetros del indicador ADX_Cloud
input int                  Trend_ADXPeriod=11;                    //ADX Period
input double               Trend_alpha1 = 0.25;                   //alpha1
input double               Trend_alpha2 = 0.25;                   //alpha2
//---
input string               Flat_EaComment="Flat Strategy";        //Strategy Comment
input int                  Flat_StopLoss=50;                      //Stop Loss(points)
input int                  Flat_TakeProfit=50;                    //Take Profit(points)
//--- Parámetros del indicador WPR
input int                  Flat_WPRPeriod=7;                      //Period WPR
//--- Parámetros del indicador ADX
input int                  Flat_ADXPeriod=11;                     //Period ADX
input int                  Flat_FlatLevel=40;                     //Flat Level ADX

Al inicio de la función OnTick, comprobamos la presencia de posiciones abiertas. En el caso de que no haya una posición abierta, actualizamos los datos de los indicadores y comprobamos secuencialmente las señales de entrada, primero según la estrategia de tendencia, después, según la estrategia de flat. Si aparece cualquiera de las señales, abrimos una posición según la estrategia correspondiente.

void OnTick()
  {
//--- Comprobando las órdenes abiertas anteriormente por el asesor experto
   if(!Trade.IsOpenedBySymbol(_Symbol,Inp_MagicNum))
     {
      //--- Obteniendo los datos para el cálculo
      if(!GetIndValue())
         return;
      //--- Abriendo órdenes según el algoritmo de tendencia
      //--- Abriendo orden al darse la señal de compra
      if(TrendBuySignal())
         Trade.BuyPositionOpen(Symbol(),Inp_Lot,Trend_StopLoss,Trend_TakeProfit,Inp_MagicNum,Trend_EaComment);
      else
      //--- Abriendo orden al darse la señal de venta
      if(TrendSellSignal())
         Trade.SellPositionOpen(Symbol(),Inp_Lot,Trend_StopLoss,Trend_TakeProfit,Inp_MagicNum,Trend_EaComment);
      else
      //--- Abriendo órdenes según el algoritmo de flat
      //--- Abriendo orden al darse la señal de compra
      if(FlatBuySignal())
         Trade.BuyPositionOpen(Symbol(),Inp_Lot,Flat_StopLoss,Flat_TakeProfit,Inp_MagicNum,Flat_EaComment);
      else
      //--- Abriendo orden al darse la señal de venta
      if(FlatSellSignal())
         Trade.SellPositionOpen(Symbol(),Inp_Lot,Flat_StopLoss,Flat_TakeProfit,Inp_MagicNum,Flat_EaComment);
     }
  }

Podrá familiarizarse con el código completo del asesor en los anexos (proyecto Combination1).

2.2. Método 2

El segundo método complica un poco el proceso de fusión, además, como complemento al primer método, se crea un cierto conglomerado de señales de las dos estrategias.

En el ejemplo mostrado de la estrategia de tendencia, para determinar la tendencia se usa el indicador ADX cloud, que indica la diferencia mostrada entre las líneas DI+ и DI-; en este caso, además, no se comprueba la fuerza de la tendencia. Al mismo tiempo, la estrategia de flat antes de la apertura comprueba la fuerza de la tendencia según el valor umbral de ADX. Por consiguiente, podemos introducir un filtro adicional para la apertura de transacciones según la estrategia de tendencia teniendo en cuenta la fuerza de la tedencia.

bool TrendBuySignal()
  {
   return(trend_adx[0]>trend_adx[1] && trend_rsi1[0]==1 && trend_rsi1[1]==1 &&  flat_adx[0]>=Flat_FlatLevel)?true:false;
  }

Asimismo, debemos considerar que en la estrategia de tendencia, las transacciones se filtran con el indicador RSI, por consiguiente, podemos reducir el número de transacciones con pérdidas según la estrategia RSI.

bool FlatBuySignal()
  {
   return(flat_wpr[0]<-80 && flat_adx[0]<Flat_FlatLevel && trend_rsi2[0]!=1)?true:false;
  }

Podrá familiarizarse con el código completo del asesor en los anexos (Combination2).

2.3. Método 3

Aplicaremos el tercer método para las cuentas con cobertura. Su esencia consiste en usar dos estrategias en un asesor de forma absolutamente independiente. A las órdenes de cada estrategia se les asigna su propio número mágico. La apertura de posiciones según las estrategias tiene lugar de acuerdo con sus señales, independientemente de si hay una posición abierta de otra estrategia.

Este enfoque imita completamente el uso de dos asesores en una cuenta, conservando todas las ventajas y desventajas de estos enfoques. En particular, aumentan los riesgos como resultado de la posible apertura de dos posiciones según diferentes estrategias al mismo tiempo.

//--- Parámetros generales
input double               Inp_Lot=0.01;                             //Lot
input MarginMode           Inp_MMode=LOT;                            //MM
input int                  Inp_Deviation = 2;                        //Deviation(points)
//---
input string               Trend_EaComment="Trend Strategy";         //Strategy Comment
input int                  Trend_StopLoss=25;                        //Stop Loss(points)
input int                  Trend_TakeProfit=90;                      //Take Profit(points)
input int                  Trend_MagicNum=1111;                      //Magic number
//--- Parámetros del indicador RSI_Color
input int                  Trend_RSIPeriod=28;                       //RSI Period
input double               Trend_Overbuying=70;                      //Overbuying zone
input double               Trend_Overselling=30;                     //Overselling zone
//--- Parámetros del indicador ADX_Cloud
input int                  Trend_ADXPeriod=11;                       //ADX Period
input double               Trend_alpha1 = 0.25;                      //alpha1
input double               Trend_alpha2 = 0.25;                      //alpha2
//---
input string               Flat_EaComment="Flat Strategy";           //Strategy Comment
input int                  Flat_StopLoss=50;                         //Stop Loss(points)
input int                  Flat_TakeProfit=50;                       //Take Profit(points)
input int                  Flat_MagicNum=1112;                       //Magic number
//--- Parámetros del indicador WPR
input int                  Flat_WPRPeriod=7;                         //Period WPR
//--- Parámetros del indicador ADX
input int                  Flat_ADXPeriod=11;                        //Period ADX
input int                  Flat_FlatLevel=40;                        //Flat Level ADX

En la función OnTick comprobamos por separado las posiciones abiertas con el número mágico de la tendencia, y aparte, con el de flat.

void OnTick()
  {
//--- Comprobando las órdenes anteriormente abiertas por el experto según la estrategia de tendencia
   if(!Trade.IsOpenedBySymbol(_Symbol,Trend_MagicNum))
     {
      //--- Obteniendo los datos para el cálculo
      if(!GetIndValue())
         return;
      //--- Abriendo orden al darse la señal de compra
      if(TrendBuySignal())
         Trade.BuyPositionOpen(Symbol(),Inp_Lot,Trend_StopLoss,Trend_TakeProfit,Trend_MagicNum,Trend_EaComment);
      else
      //--- Abriendo orden al darse la señal de venta
      if(TrendSellSignal())
         Trade.SellPositionOpen(Symbol(),Inp_Lot,Trend_StopLoss,Trend_TakeProfit,Trend_MagicNum,Trend_EaComment);
     }
//--- Comprobando las órdenes anteriormente abiertas por el experto según la estrategia de flat
   if(!Trade.IsOpenedBySymbol(_Symbol,Flat_MagicNum))
     {
      //--- Obteniendo los datos para el cálculo
      if(!GetIndValue())
         return;
      //--- Abriendo orden al darse la señal de compra
      if(FlatBuySignal())
         Trade.BuyPositionOpen(Symbol(),Inp_Lot,Flat_StopLoss,Flat_TakeProfit,Flat_MagicNum,Flat_EaComment);
      else
      //--- Abriendo orden al darse la señal de venta
      if(FlatSellSignal())
         Trade.SellPositionOpen(Symbol(),Inp_Lot,Flat_StopLoss,Flat_TakeProfit,Flat_MagicNum,Flat_EaComment);
     }
  }

Podrá familiarizarse con el código completo del asesor en los anexos (proyecto Combination3).

3. Simulación de asesores

Después de preparar los tres asesores según distintos métodos de combinación de estrategias, vamos a realizar la simulación de los asesores y comparar los resultados de su funcionamiento. Para comparar los resultados de la simulación, vamos a realizar esta sin cambiar los parámetros de los asesores.

3.1. Simulación del método 1

La primera prueba ha mostrado beneficios. El beneficio total y el factor de recuperación han estado por encima de cualquiera de los asesores originales. En comparación con la estrategia de flat, visualmente, la línea de balance se ha hecho más uniforme, ha aumentado el número de transacciones y ha disminuido la reducción máxima según el balance y los fondos. Al mismo tiempo, ha disminuido ligeramente el factor de beneficio y la suma del beneficio total ha sido menor que el beneficio total de las estrategias originales.

Resultados de la simulación del "Método 1"Resultados de la simulación del "Método 1"

3.2. Simulación del método 2

La aplicación del segundo método ha permitido aumentar más el beneficio total en comparación con el método 1 con la misma cantidad de transacciones, aunque su beneficio sigue siendo menor al de los asesores originales. El crecimiento del beneficio ha permitido aumentar el factor de recuperación, el profit-factor (ahora es igual que en la estrategia de flat) y la proporción de transacciones rentables. Al mismo tiempo, ha disminuido la reducción máxima del balance.

Resultados de la simulación del "Método 2"Resultados de la simulación del "Método 2"

3.3. Simulación del método 3

El uso del tercer método ha permitido aumentar más el beneficio total, hasta alcanzar el nivel de beneficio de los asesores originales. El aumento del beneficio ha sido posible gracias al incremento del número de transacciones. En este caso, además, ha aumentado la carga sobre el depósito y la reducción máxima del balance.

Resultados de la simulación del "Método 3"Resultados de la simulación del "Método 3"

4. Optimizando las estrategias

La simulación de asesores realizada en el anterior apartado ha demostrado la superioridad de la combinación de estrategias en los asesores. Los tres métodos han mostrado un aumento del beneficio en comparación con cualquiera de las estrategias originales. Pero queremos recordar que las estrategias originales habían sido optimizadas para el intervalo temporal puesto a prueba, mientras que en la simulación de los asesores compuestos se usaron los mismos parámetros originales.

Creemos que no supondrá una sorpresa para nadie que cualquier intervención en la lógica del asesor requiere un ajuste adicional de sus parámetros. Vamos a intentar optimizar los asesores reunidos usando los dos primeros métodos de combinación de estrategias. Así veremos qué podemos conseguir.

En este caso, además, no debemos olvidar que la propia idea de construcción de los asesores electrónicos consiste en ganar dinero en el mercado, y no en mostrar sus capacidades usando datos históricos. Por eso mismo, le proponemos dividir el periodo de simulación de dos segmentos. Primero hemos realizado la simulación en el periodo que va desde el 1.01.2017 hasta el 1.08.2018. Ahora le proponemos realizar la optimización en el intervalo comprendido entre el 1.01.2017 y el 1.06.2018, y en el intervalo temporal restante, realizaremos la simulación en tiempo real (forward testing).

Periodo de optimización

4.1. Optimización del "Método 1"

A la hora de elegir los parámetros de optimización, debemos recordar que cada uno de nuestros asesores incluye los bloques de dos estrategias. En este caso, además, cada estrategia usa dos indicadores para la entrada. Pero no tenemos que olvidar que ambas estrategias usan ADX para determinar la fuerza de la tendencia y su dirección. De esta forma, en la lógica de nuestros asesores se usarán tres indicadores para determinar los puntos de entrada. Proponemos optimizar los periodos de estos tres indicadores.

La optimización del periodo del indicador ADX ha mostrado el máximo beneficio y estabilidad ante el cambio de otros parámetros con un periodo del indicador en el intervalo de 12 a 14. Más abajo mostramos el gráfico de dependencia del beneficio del asesor con respecto al cambio de los periodos ADX y RSI en el intervalo temporal optimizado.

La simulación en tiempo real ha confirmado la posibilidad de obtener beneficio en el intervalo indicado de los valores del indicador, además, la estabilidad máxima se observa con el periodo 13 de ADX. A su vez, la semejanza de los resultados de la optimización y la simulación en tiempo real dan fe de la estabilidad del funcionamiento del asesor en el intervalo temporal optimzido.

Simulación en tiempo real de ADX

La optimización del periodo del indicador WPR ha mostrado resultados semejantes. La estabilidad máxima del funcionamiento del asesor en el intervalo optimizado se alcanza con el periodo 7 del indicador. Al mismo tiempo, cuando aumenta el periodo del indicador ADX, es posible obtener un beneficio en el intervalo de 3 a 5. Más abajo mostramos el gráfico de dependencia del beneficio del asesor con respecto al cambio de los periodos WPR y ARX en el intervalo temporal optimizado.

Optimización de WPR

La simulación en tiempo real ha confirmado las zonas indicadas. Pero, en este caso, se observa un crecimiento en el intervalo del 3-4 periodo del indicador WPR, y con WPR igual a 7, se observa un descenso de la rentabilidad del asesor al aumentar los valores del indicador ADX. Esto puede estar relacionado con el intervalo temporal de la simulación, más breve, y sus características específicas.

Simulación en tiempo real WPR

La optimización del periodo del indicador RSI ha confirmado todo lo anteriormente dicho. El rango de 27 a 32 destaca en el intervalo temporal optimizado por su rentabilidad y estabilidad ante los cambios de otros indicadores. Más abajo mostramos el gráfico de dependencia del beneficio del asesor con respecto al cambio de los periodos RSI y ADX en el intervalo temporal optimizado.

Optimización de RSI

En la simulación en tiempo real, el intervalo de beneficio de los periodos del indicador RSI se ha reducido hasta 30-32.

Simulación en tiempo real de RSI

Los intentos de optimización de los valores de take-profit y stop-loss no han permitido aumentar la rentabilidad del asesor y han confirmado los parámetros elegidos anteriormente.

Según los resultados de la optimización, como parámetros óptimos se han elegido los periodos ADX igual a 13, RSI igual a 30 y WPR igual 7. Con estos parámetros, el asesor ha obtenido en el periodo optimizado 202.33 USD de beneficio, y en el periodo en tiempo real, 46.10 USD con otros parámetros semejantes. Esta rentabilidad supera a la obtenida al combinar los asesores según el tercer método en el mismo periodo, que ha sido probado arriba. Debemos notar que el uso de parámetros análogos en un asesor combinado según el método 3 da igualmente resultados peores, 166.29 USD y 60.27 USD, respectivamente.

Optimización del "Método 1"Optimización del "Método 1"Optimización del "Método 1"

Nos gustaría destacar que la confirmación de los resultados de la optimización de la simulación en tiempo real es una buena señal, y corrobora la estabilidad del funcionamiento del asesor en un intervalo temporal no optimizado.

4.2. Optimización del "Método 2"

Resulta interesante el hecho de que la optimización del asesor combinado según el método 2 haya dado resultados semejantes con la anterior optimización, lo que puede resultar indicativo de la estabilidad del funcionamiento del sistema comercial. Como resultado de la optimización, se han elegido los mismos periodos de los indicadores que el anterior apartado. Solo en otras condiciones iguales, el asesor del método 2 ha mostrado menos rentabilidad, debido a la reducción del número de transacciones. Los gráficos de optimización se muestran más abajo.

Método 2. Optimización de ADXMétodo 2. Simulación en tiempo real de ADXMétodo 2. Optimización de WPRMétodo 2. Simulación en tiempo real de WPRMétodo 2. Optimización de RSIMétodo 2. Simulación en tiempo real de RSI

Al mismo tiempo, el aumento de la calidad de las señales de las estrategias de tendencia ha permitido optimizar los niveles de stop-loss y take-profit. Como resultado de la optimización, el stop-loss para la estrategia de tendencia se ha reducido de 25 a 20 puntos, y el take-profit ha aumentado de 90 a 110 puntos. Esto ha permitido aumentar la rentabilidad del funcionamiento del asesor. Los gráficos de optimización de los niveles de stop-loss y take-profit se muestran más abajo.

Método 2. Optimización de SLMétodo 2. Simulación en tiempo real de SLMétodo 2. Optimización de TPMétodo 2. Simulación en tiempo real de TP

Según los resultados de la optimización, la rentabilidad del asesor combinado según el método 2 ha sido la máxima de las tres opciones analizadas. La aplicación de los parámetros obtenidos durante esta optimización en otros asesores ha dado una rentabilidad peor. Las capturas de pantalla de la simulación del asesor optimizado se muestran más abajo.

Optimización del "Método 2"

Conclusión

En el artículo se ofrecen tres opciones para combinar dos estrategias en un asesor. Asimismo, se muestra cómo organizar una combinación de este tipo en un asesor, y también se simulan varios asesores, tanto sin cambiar los parámetros, como después de optimizarlos.

En el recuadro de abajo se muestran los resultados resumidos de la simulación de todas las estrategias. La optimización de los asesores combinados ha mostrado una rentabilidad superior a la de los dos asesores por separado.

Querríamos añadir que usted puede combinar en sus asesores más de dos estrategias, usando una combinación diferente de los métodos ofrecidos o completando los mismos con sus propios métodos. En este caso, además, no es posible afirmar de forma unívoca cuál de los métodos será el mejor. En cada caso, deberemos adoptar un enfoque creativo sobre la elección del método de combinación de estrategias, partiendo de las propias estrategias y su lógica de funcionamiento.

ParámetroEstrategia
de tendencia
Estrategia
de flat
Método 1Método 2Método 3Método de 1 opt.
Back/Forw. 
Método de 2 opt.
Back/Forw. 
Beneficio total51.56158.96160.52166.12210.40 202.33 / 46.10 206.40 / 43,10
Factor de beneficio2.391.251.241.251.31 1.25 / 1.58 1.25 /1.54
Factor de recuperación3.653.553.733.864.904.08 / 1.94 4.17 / 1.82
Reducción máxima del balance8.4941.3036.4135.6739.2344.98 / 19.75 44.98 /19.75
Reducción máxima de los fondos14.1444.7643.0443.0442.9649.53 / 23.72 49.53 / 23.72
Número de transacciones24290295295315
 371 / 41 373 / 40
Proporción de transacciones rentables41.67%55.52%53.22%53.90%54.29%53.64 / 60.98 53.62 / 60

Enlaces

  1. Análisis comparativo de 10 estrategias de tendencia
  2. Análisis comparativo de 10 estrategias de flat
  3. ¿Cuánto dura una tendencia?

Programas usados en el artículo:

#
 Nombre
Tipo 
Descripción 
1 Trade.mqh Biblioteca de clase Clase de operaciones comerciales
2 Combination1.mq5 Asesor Asesor que combina estrategias según el método 1
3 Combination2.mq5 Asesor Asesor que combina estrategias según el método 2
4 Combination3.mq5 Asesor Asesor que combina estrategias según el método 3

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/5022

Archivos adjuntos |
MQL5.zip (183.8 KB)
Leandro Dingianna
Leandro Dingianna | 30 nov. 2018 en 12:57
Excelente aporte! Muchas gracias!
Rayos Elder (Bulls Power y Bears Power) Rayos Elder (Bulls Power y Bears Power)
Sistema comercial Rayos Elder basado en los indicadores Bulls Power, Bears Power y Moving Average (EMA — promediación exponencial). Este sistema fue descrito por Alexander Elder en su libro "Vivir del Trading" (Trading for a living).
Modelando series temporales con ayuda de símbolos personalizados según las leyes de distribución establecidas Modelando series temporales con ayuda de símbolos personalizados según las leyes de distribución establecidas
En el artículo se presenta una panorámica de las posibilidades del terminal a la hora de crear y trabajar con símbolos personalizados, ofreciendo diversas opciones de modelado de la historia comercial con la ayuda de símbolos personalizados, de tendencia y diferentes patrones gráficos.
Usando indicadores para la optimización RealTime de EAs Usando indicadores para la optimización RealTime de EAs
No es ningún secreto que el éxito del funcionamiento de cualquier robot comercial depende de la correcta elección de sus parámetros (su optimización). Pero los parámetros óptimos para un intervalo temporal no siempre resultan los mejores en otro intervalo de la historia. Con frecuencia, asesores que son rentables en la simulación, dan pérdidas en tiempo real. Aquí nos surje la pregunta concerniente a la necesidad de optimizar continuamente. Allá donde aparece mucho trabajo rutinario, el hombre busca la forma de automatizarlo. En este artículo proponemos nuestro enfoque particular para solucionar esta tarea.
Gráfico PairPlot basado en CGraphic para analizar correlaciones entre los arrays de datos (series temporales) Gráfico PairPlot basado en CGraphic para analizar correlaciones entre los arrays de datos (series temporales)
En el proceso del análisis técnico, a menudo a los traders se les plantea la tarea de comparar varias series temporales. La realización de este análisis requiere las herramientas correspondientes. En este artículo, yo propongo desarrollar una herramienta para el análisis gráfico y la búsqueda de las correlaciones entre dos y más series temporales.