English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
preview
Analizando por qué fallan los asesores expertos

Analizando por qué fallan los asesores expertos

MetaTrader 5Asesores Expertos | 29 abril 2022, 16:16
918 6
Richard Poster
Richard Poster

Introducción

Los asesores expertos (EAs) pueden tener un buen rendimiento durante un periodo de meses e incluso de algunos años, pero siempre hay periodos de tiempo en los que el rendimiento es pobre. Los asesores raramente muestran un beneficio constante durante un periodo de tiempo prolongado, como por ejemplo diez años. Si un asesor tiene periodos de bajo rendimiento en el pasado, ¿cómo podemos esperar que siempre tenga un buen rendimiento en el futuro?

En este análisis surgen dos preguntas: ¿qué cambios se producen en los datos de la serie temporal capaces de influir en gran medida en el rendimiento del asesor? ¿Existe un indicador técnico que pueda predecir cuándo un asesor tendrá un mal rendimiento y cuándo tendrá un buen rendimiento? Un indicador de este tipo sería muy valioso.


Activadores de cruce de medias móviles

Para estudiar estas cuestiones, usaremos los datos de divisas de 15 minutos durante un periodo de dieciséis años junto con una estrategia de banco de pruebas, el Moving Average Crossover (Cruce de Medias Móviles). Para el activador del Moving Average Crossover (MAC), se genera una señal de compra cuando la Media Móvil Simple (SMA) rápida cruza hacia arriba sobre la SMA lenta, y se genera una señal de venta cuando la SMA rápida cruza hacia abajo sobre la SMA lenta. La estrategia MAC debería ser un buen banco de pruebas para el estudio. Los parámetros clave de entrada para la estrategia MAC son los periodos de la SMA rápida y lenta. El periodo de la SMA rápida suele ser de 1 a 4 en estos estudios, mientras que el periodo de la SMA lenta es de 10 a 150, y se supone que ambos son fijos durante el periodo de prueba.

La figura 1 muestra el comportamiento de la rentabilidad del activador de cruces de SMA para la pareja de divisas EURUSD desde enero de 2006 hasta diciembre de 2021. Para los periodos rápidos y lentos optimizados de la SMA de 2 y 80, el asesor tiene una rentabilidad positiva para algunos intervalos y negativa para otros. El periodo de 1/2008 - 6/2013 tiene un aumento constante del beneficio. La figura 2 muestra el comportamiento de la rentabilidad del activador de cruce de SMA para la pareja de divisas GBPUSD en el mismo intervalo para los periodos optimizados de SMA de 1 y 80. El gráfico de GBPUSD muestra sólo breves periodos de rendimiento positivo.

Fig_1_EURUSD_SMACross

 Figura 1.  Beneficio del activador de cruce de SMA de EURUSD (0.1 Lote)


     

Fig_2_GBPUSD_SMACross

  Figura 2. Beneficio del activador de cruce de SMA de GBPUSD (0.1 Lote)

Usando como base el comportamiento cambiante a lo largo del tiempo en las figuras 1 y 2, podemos analizar el comportamiento de los indicadores técnicos convencionales y determinar si existe una relación entre el comportamiento de los indicadores técnicos a lo largo del tiempo y el cambio en la rentabilidad de la estrategia de cruce de medias móviles. 


Comportamiento de los indicadores técnicos tradicionales

Podemos analizar varios indicadores técnicos estándar para ver si su comportamiento es diferente en los intervalos temporales de rentabilidad positiva y negativa. La figura 3 muestra el indicador mensual Average True Range (ATR) durante un periodo de dieciséis años para EURUSD. El indicador ATR nos ofrece una medida de la volatilidad de la pareja de divisas. Presenta un comportamiento dependiente del tiempo definido, pero nada que se corresponda con el comportamiento temporal del beneficio en la figura 1. Curiosamente, la figura 3 muestra una extrema volatilidad en torno a la crisis económica de finales de 2008 y de nuevo a principios de 2020. También sugiere que el uso de umbrales absolutos de cambios de precio para activar la lógica no resulta aconsejable, y que debería considerarse el valor suavizado de ATR. Otro indicador técnico habitual es el spread de las bandas de Bollinger superior e inferior. Este indicador debería verse influenciado tanto por la volatilidad como por la fuerza de la tendencia. Sorprendentemente, su comportamiento mensual a largo plazo, como se muestra en la figura 4, resulta casi idéntico al del indicador ATR. Al igual que el indicador ATR, no tiene un comportamiento que se corresponda con los intervalos temporales de rentabilidad positiva y negativa en los datos de EURUSD de la figura 1. Se observan resultados similares para los datos de GBPUSD. La volatilidad a largo plazo no explica el comportamiento temporal observado en las figuras 1 y 2.


Fig_3_ATRvsMth

Figura 3. EURUSD ATR, Media Mensual

FIg_4_BBSpreadVsMth

Figura 4. Spread de la banda de Bollinger de EURUSD, media mensual


La función de autocorrelación como indicador

A diferencia de los indicadores ATR y Bandas de Bollinger, la Función de Autocorrelación (ACF) no depende de la volatilidad. La ACF es una herramienta útil para encontrar patrones en los datos de las series temporales. La ACF mide la correlación de los elementos de una serie temporal respecto a los elementos de esta serie temporal retrasados según un tiempo de retardo. Cuando hay una tendencia en los datos, la ACF, para retardos pequeños, tendrá valores positivos. En este análisis, el elemento Yi de la serie temporal se define como el (Precio de cierre - Precio de apertura) de la barra i.

Para una serie temporal de N elementos Yi , i =1...N, la ACF se define como:

ACF_EquationV2

La función de autocorrelación para una serie de datos de precio es muy diferente a la autocorrelación de una serie de datos de cambio de precio barra a barra. Por ejemplo, para una serie de números {1,2,3..14}, la ACF es 0.786. Para una serie de diferencias entre elementos consecutivos de esa matriz, la ACF estará próxima a cero (asumiendo un poco de ruido en los valores para evitar dividir por cero).

El cálculo de la ACF se implementa en el siguiente fragmento de código:

 double GetAtCorrVal(double &ClsOpn[],int CorrPer, int LagPer,int joff ) {
   double corr;
   double AIn[],BIn[];
   double XMean,XNum,XDen;
   int jj;
   ArrayResize(AIn,CorrPer);
   ArrayResize(BIn,CorrPer);
   XMean = 0.;
   XNum = 0.;
   XDen = 0.;
   corr = 0.;
   if(CorrPer<2)
    {
     Print("No AutoCorr Processing Allowed ");
     return(corr);
    }
   // mean
   for(jj=0;jj<CorrPer;jj++)
    {
     XMean +=ClsOpn[jj+joff];
    }
   XMean = XMean/CorrPer;
  // variances
   for(jj=0;jj<CorrPer;jj++)
    {
     if(jj<(CorrPer-LagPer))
       XNum  += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+LagPer+joff]-XMean);
     XDen += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+joff]-XMean);
    }  
    if(XDen==0.)
     {
      corr = 0.;
     }
    else
    corr = XNum/XDen;
   return(corr);
  }
//----------------------------------------------------------------

  

La figura 5 muestra la media mensual de la ACF durante un periodo de dieciséis años para los datos EURUSD, con un periodo de suavizado de seis meses. La figura 1 muestra el rendimiento del beneficio entre 2008 y finales de 2012, mientras que la figura 5 también muestra un valor de ACF ligeramente superior en este intervalo, lo cual sugiere una posible relación entre el rendimiento del beneficio de la estrategia MAC y el valor de la ACF.


Fig_5_EURUSD_ACFvsMth

Figura 5. Función de autocorrelación de EURUSD, Media Mensual


Para los datos de GBUUSD mostrados en la figura 6, podemos ver un vínculo débil entre el rendimiento del beneficio (que se muestra en la figura 2) y el valor de la ACF.

Fig_6_GBPUSD_ACFvsMth


 Figura 6. Función de autocorrelación de GBPUSD, media mensual

La Función de AutoCorrelación se puede utilizar como indicador (AutoCorr.mq5), pero como se ve en la figura 7, no resulta un buen indicador de identificación de tendencias.


Fig_7_EURUSD_ACFIndicator

Figura 7. Indicador ACF, Lag=1

Comportamiento de ACF en el tiempo y estrategia de cruce de SMA

Podemos encontrar más información observando el comportamiento temporal de ACF justo antes del punto de cruce de la SMA (Trigger ACF) y también justo después del punto de cruce, mientras la transacción aún está abierta (Trade ACF). Los dos tipos de ACF, Trade ACF y Trigger ACF tienen propiedades distintas. Las figuras 8 y 9 muestran Trade ACF para los datos EURUSD y GBPUSD. Con el Simulador de Estrategias, el valor de ACF se puede dibujar por separado para transacciones con beneficio y transacciones con pérdidas en función del tiempo. Ambos gráficos muestran una separación variable en el tiempo de la ACF entre transacciones con pérdidas y transacciones con beneficio. El intervalo rentable 1/2008-6/2013 en la figura 1 (EURUSD) coincide aproximadamente con un intervalo en la figura 8 donde la separación de la ACF también es grande. A partir de 1/2018, hay poca separación entre los valores de ACF para las transacciones con pérdidas y con beneficio. En la figura 1, esto se corresponde con una sección plana en la rentabilidad del beneficio.


Fig_8_EURUSD_TradeACF

  Figura 8.  Autocorrelacción comercial de EURUSD para SMA Cross Triggers


Fig_9_GBPUSD_TradeACF

Figura 9. Autocorrelación comercial para GBPUSD para SMA Cross Triggers

Las figuras 10 y 11 muestran Trigger ACF para los datos de EURUSD y GBPUSD. El propósito de estos dos gráficos es averiguar si el valor de Trigger ACF se puede usar como filtro en un asesor experto para mejorar la rentabilidad de la estrategia de cruce de SMA. En comparación con los datos de Trade ACF, los datos de Trigger ACF muestran una menor separación entre los rendimientos de beneficio positivos y negativos. Esto debilita su valor como filtro activador. Sin embargo, el valor de ACF es en gran parte plano en el tiempo, lo que indica que se podría usar un umbral fijo para la ACF como filtro de activación. Las curvas de beneficio/pérdidas rebotan en gran medida entre sí, lo cual significa que hay intervalos en el tiempo en los que las transacciones no serían rentables.


Fig_10_EURUSD_TriggerCF

 Figura 10.  Autocorrelación de activadores para EURUSD para SMA Cross Triggers


Fig_11_GBPUSD_TriggerACF

Figura 11. Autocorrelación de activadores para GBPUSD para SMA Cross Triggers


Filtro ACF para el activador de cruce de SMA

A pesar de las pequeñas diferencias de ACF entre transacciones con rendimientos positivos y negativos (figuras 10 y 11), si añadimos un requisito de umbral de autocorrelación al activador de cruce de SMA, el rendimiento de rentabilidad del asesor experto mejorará mucho en los intervalos de bajo rendimiento del beneficio. Las figuras 12 y 13 muestran la rentabilidad del beneficio del asesor con un filtro ACF adicional para datos EURUSD y GBPUSD. Se utiliza la duración completa de dieciséis años. Al comparar las figuras 1 y 2 con las figuras 12 y 13, el rendimiento de rentabilidad de los datos de EURUSD y GBPUSD mejora considerablemente al aplicar un requisito de umbral de autocorrelación.


Fig_12_EURUSD_SMACrossCorr

Figura 12. Activador de cruce de EURUSD con filtro ACF

Fig_13_GBPUSD_SMACrossCorr

Figura 13. Activador de cruce de GBPUSD con filtro ACF


La figura 14 muestra un recuadro con los resultados del rendimiento del Simulador de Estrategias. Podemos observar una mejora significativa para los datos de EURUSD y GBPUSD. En ambos casos, el beneficio total aumenta aproximadamente un 50% cuando el filtro ACF está habilitado; el beneficio por transacción (PO) también mejora considerablemente.

Tipo de activador

# Transacciones

Beneficio $

(0.1 Lote)

Beneficio/Pérdidas (PF)

Beneficio/Transacción (PO)

Cruce de EURUSD de SMA

3160

5830.

1.10

1.85

Cruce de EURUSD de SMA + ACF

1548

8511.

1.33

5.50

Cruce de GBPUSD de SMA

3672

5352.

1.07

1.46

Cruce de GBPUSD de SMA + ACF

3096

8317.

1.13

2.69

Figura 14. Recuadro de rendimiento de la prueba para los datos de EURUSD y GBPUSD


Dependencia de ACF en el periodo lento de SMA para la estrategia de cruce de SMA


También resulta interesante analizar la dependencia de la función de autocorrelación media en la elección del periodo lento de SMA para transacciones ganadoras y perdedoras. Esto se muestra para los datos EURUSD M15 en la figura 15. No se utiliza ningún umbral de correlación como parte de la estrategia de apertura comercial. Sin tener en cuenta el valor de ACF, hemos determinado que el periodo lento óptimo para la estrategia de cruce de SMA es 80. La figura 15 muestra que la separación más grande del valor de ACF medio entre transacciones ganadoras y perdedoras tiene lugar para periodos lentos de SMA entre 65 y 80. Un análisis más detallado puede conducir al uso de la información de ACF para determinar el periodo lento óptimo según el valor de autocorrelación medido en el momento de la apertura de la transacción. 


Fig_15_AvgACVvsSlowPeriod

Figura 15. ACF media versus periodo lento de SMA para EURUSD

Conclusión

La función de autocorrelación es un indicador valioso para mejorar el rendimiento de los asesores expertos. Mejora el rendimiento del activador del banco de pruebas al filtrar los intervalos donde el rendimiento es deficiente.

En general, los coeficientes de correlación, incluida la función de autocorrelación, ofrecen un área de investigación fructífera para mejorar la eficiencia comercial, pues resultan inmunes a los efectos de la volatilidad y son sensibles a los patrones de precio, incluida la formación y reversión de tendencias.



Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/3299

Archivos adjuntos |
AutoCorr.mq5 (4.12 KB)
Richard Poster
Richard Poster | 22 feb. 2022 en 16:20
Se requiere que el ACF calculado esté por encima de un umbral fijo. La compra o la venta se determina por la dirección del cruce de la SMA, pero ambos tipos de activación utilizan un requisito de umbral ACF. Esto se implementa en el EA adjunto.
Marcel Fitzner
Marcel Fitzner | 24 feb. 2022 en 22:33

Hola Richard,

este es un artículo maravilloso, ¡gracias por compartir tus conocimientos!

Me surge una pregunta, ¿cuánto depende un EA en funcionamiento de las variables internas?

O en otras palabras: ¿Será el EA capaz de reconocer su posición anterior y la gestión de SL/TP después de una pérdida de conexión a Internet / pérdida de energía o después de que el ordenador se haya reiniciado (por ejemplo, actualización forzada de Windows)?

Sólo puedo imaginar que las variables internas que rastrean SL / TP / o incluso el número de días (con el fin de decidir cuándo es mejor salir de un comercio, etc. etc.) debe ser de alguna manera persiste en un archivo o base de datos.

¿Puede dar alguna recomendación?

Richard Poster
Richard Poster | 25 feb. 2022 en 02:42
Creo que la forma más segura de preservar la crítica es escribirla en un archivo de datos, como un archivo csv que pueda ser leído por Excel. Entonces, al reiniciar, el archivo puede ser leído y una terminación anormal puede ser detectada tal vez a través de una marca de tiempo. Yo esperaría que el archivo sea borrado manualmente de forma periódica para que no sea demasiado grande.
Al Bundy
Al Bundy | 1 mar. 2022 en 13:41

Hola,

gracias por compartir tus conocimientos.

Mis preguntas:

1.a ¿Es "su" correlación relevante sólo para las medias móviles / cruces de MA?

1.b Si es así, ¿hay funciones para la correlación de diferentes indicadores? Estoy buscando valores de correlación para filtrar señales de velas japonesas (Nison, Bulkowski).

2. ¿Cómo calculó los valores de las operaciones ganadoras y perdedoras de la figura 8-11 en detalle?

3. Usted escribió: "Un análisis más profundo puede llevar a utilizar la información del ACF para determinar el período lento óptimo basado en el valor de autocorrelación medido en el momento de la apertura de la operación".
¿Cómo puedo hacer esto? ¿Puede sugerir una fórmula?

4. Sólo he podido hacer algunas pruebas, así que ¿sabéis para qué plazos (M15,M5,M6,M2,M1) puede funcionar la correlación?

Saludos cordiales

Richard Poster
Richard Poster | 3 mar. 2022 en 20:41

Para el #2:

2. Calculé el ACF en el momento del disparo y lo almacené con la "Orden" en el campo de comentarios. Al finalizar la ejecución del Probador, recorrí todas las órdenes almacenadas en el archivo histórico y utilicé el campo de ganancias para determinar la categoría ganada/pérdida y también busqué el valor ACF almacenado en el campo de comentarios como un valor de cadena. Otros datos, necesarios para el análisis, como el Período SMA, también se almacenaron en el campo de comentarios.
Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA
En artículos anteriores, expliqué cómo crear un indicador con múltiples subventanas, lo que se vuelve interesante cuando usamos un indicador personalizado. Aquí entenderemos cómo añadir múltiples ventanas en un EA.
Aprendiendo a diseñar un sistema de trading con las Bandas de Bollinger Aprendiendo a diseñar un sistema de trading con las Bandas de Bollinger
En este artículo, hablaremos sobre las Bandas de Bollinger, uno de los indicadores más populares en el mundo del trading. Asimismo, trataremos el análisis técnico y veremos cómo diseñar un sistema de trading algorítmico basado en el indicador de las Bandas de Bollinger.
Gráficos en la biblioteca DoEasy (Parte 97): Procesamiento independiente del desplazamiento de los objetos de formulario Gráficos en la biblioteca DoEasy (Parte 97): Procesamiento independiente del desplazamiento de los objetos de formulario
En el presente artículo, analizaremos la implementación del desplazamiento independiente de cualquier objeto de formulario con el ratón, y también complementaremos la biblioteca con mensajes de error y nuevas propiedades de transacciones previamente introducidos en el terminal y MQL5.
Usando la clase CCanvas en las aplicaciones MQL Usando la clase CCanvas en las aplicaciones MQL
En este artículo, hablaremos sobre el uso de la clase CCanvas en las aplicaciones MQL, ofreciendo un análisis detallado y con ejemplos del tema. Asimismo, mostraremos a los usuarios los fundamentos necesarios para trabajar con esta herramienta.