Analizando por qué fallan los asesores expertos
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.
Figura 1. Beneficio del activador de cruce de SMA de EURUSD (0.1 Lote)
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.
Figura 3. EURUSD ATR, Media Mensual
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:
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.
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.
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.
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.
Figura 8. Autocorrelacción comercial de EURUSD para SMA Cross Triggers
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.
Figura 10. Autocorrelación de activadores para EURUSD para SMA Cross Triggers
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.
Figura 12. Activador de cruce de EURUSD con filtro ACF
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.
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
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
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?
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
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.