Me gustaría saber si hay alguna forma de adaptar el período de un promedio móvil a las condiciones del mercado como, por ejemplo, el stop loss puede adaptarse a las condiciones del mercado utilizando el rango promedio verdadero. ¡Gracias!
Como se ha sugerido, añado algunas referencias y contexto a mi pregunta.
Tengo un sistema que sigue la tendencia de que en el período de prueba 2009 - 2014, con velas de una hora, sin parámetros para optimizar, el EUR/USD produce estas cifras:
Max drawdown -48$ 13% (MAE -74$ 20%)
Number of trades 165 (28/year, 1/week, 1/day)
Percent winning 31%
Annual return 139%
Profit factor 1.99 (PRR 1.56)
Sharpe ratio 0.92
Kelly criterion 0.55
R2 coefficient 0.647
Ulcer index 9.4%
Sin embargo el mismo sistema en 2003 - 2008 hace:
Max drawdown -131$ 158% (MAE -154$ 185%)
Number of trades 212 (36/year, 1/week, 1/day)
Percent winning 19%
Annual return 14%
Profit factor 1.15 (PRR 0.90)
Sharpe ratio 0.27
Kelly criterion 0.39
R2 coefficient 0.110
Ulcer index 68.2%
Así que traté de buscar un promedio móvil adaptable que se adapte a las condiciones del mercado, leí entre otras estas dos referencias:
http://www.mesasoftware.com/papers/MAMA.pdf (por si acaso se cae) https://books.google.com.uy/books?id=_KjOT1b9bfUC&pg=PA113&lpg=PA113#v=onepage&q&f=false
He tratado de reproducir el método del primer enlace mith resultados mixtos, he probado con EUR/USD y velas de 8 horas este código, perdón por la duración, espero que me tengan paciencia:
vars Price = series(price());
Stop = 2*ATR(100);
MAMA(Price,0.05,0.5);
vars MAMAs = series(rMAMA);
vars FAMAs = series(rFAMA);
if( crossUnder(FAMAs,MAMAs) ){
reverseShort(1);//if the Following Adaptive Moving Average crosses under the Mother of Adaptive Moving Averages then I enter long, closing previous short if any
} else if( crossOver(FAMAs,MAMAs) ) {
reverseLong(1);
}
plot("price",Price[0],MAIN|LINE,BLACK);
plot("Mama",MAMAs,LINE,RED);
plot("Fama",FAMAs,LINE,BLUE);
Las pruebas que en 2009 - 2014 dieron
Max drawdown -157$ 64% (MAE -159$ 65%)
Number of trades 392 (68/year, 2/week, 1/day)
Percent winning 62%
Annual return 35%
Profit factor 1.15 (PRR 1.00)
Sharpe ratio 0.52
Kelly criterion 0.73
R2 coefficient 0.002
Ulcer index 21.2%
Pero en 2003 - 2008 da
Max drawdown -255$ -1396% (MAE -255$ -1397%)
Number of trades 383 (66/year, 2/week, 1/day)
Percent winning 60%
Annual return -2%
Profit factor 0.99 (PRR 0.85)
Sharpe ratio -0.02
Kelly criterion -0.05
R2 coefficient 0.013
Ulcer index 38.7%
Sin embargo, si hago la prueba en 2003 - 2008 con Velas de 4 horas los resultados son
Max drawdown -145$ 67% (MAE -146$ 67%)
Number of trades 790 (134/year, 3/week, 1/day)
Percent winning 61%
Annual return 32%
Profit factor 1.10 (PRR 0.99)
Sharpe ratio 0.50
Kelly criterion 0.71
R2 coefficient 0.415
Ulcer index 23.0%
Así que, incluso este promedio móvil "adaptable" necesitaba ser adaptado a un mercado diferente ajustando la duración de las velas, pero no sé si esto es un ajuste de la curva. ¿Hay alguna manera de detectar este cambio en las condiciones del mercado entre 2003 - 2008 y 2009 - 2014 en esta prueba?