3 votos

¿Cómo adaptar un período de promedio móvil a las condiciones del mercado?

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?

-1voto

tropikalista Puntos 682

Como ya se ha mencionado. Intenta leer sobre el filtro Kalman y los modelos de cambio Markow. Incluso he visto algunos artículos académicos donde los autores trataron de definir la longitud de la MA en base a MSM o KF. Trata de buscarlo en Google...

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X