En esta ocasión quiero explicar y replicar el último indicador de Michael Harris, autor del blog priceactionlab y explicado este indicador aquí y aquí.
Michael llama a este indicador "Momersion" y la función principal es orientarnos si el actual régimen de mercado es propicio para operar con sistemas tendenciales o de reversión a la media.
Antes de entrar más en profundidad en el indicador, primero crea dos sencillos sistemas, uno tendencial y otro de reversión a la media. El sistema tendencial tiene la siguiente lógica:
-Si el cierre de hoy > cierre de ayer, entonces comprar al cierre.
-Si el cierre de hoy < cierre de ayer , entonces abrimos cortos al cierre.
A continuación el backtest desde el año 1960, sin comisiones y comprando tan solo una unidad:
En abril del año 2000 con el pinchazo de la burbuja tecnológica muchos sistemas tendenciales dejaron de funcionar cambiando el régimen de mercado.
A partir de ese momento las estrategias de momentum "murieron" y empezaron a dar guerra las estrategias de reversión a la media. Vamos a por el sencillo sistema de reversión a la media:
-Si el cierre de hoy < cierre de ayer , entonces comprar al cierre.
-Si el cierre de hoy > cierre de ayer , entonces abrir cortos al cierre.
Y su backtest desde el 14 de Abril del 2000 hasta hoy:
El sistema de reversión a la media funcionó muy bien indiferentemente si el mercado subía o bajaba. Fue a finales de Julio del 2009 cuando la reversión a la media murió también, ya que los operadores empezaron a arbitrar la anomalía.
¿Como lo hizo a partir de ese momento el sistema de reversión a la media?
Pues el momentum regresó de nuevo dando esperanza hasta que luego volvió a romperse, reapareciendo desde entonces la reversión a la media. Michael Harris denomina este efecto como Momersion, un poco de momentum y un poco de reversión.
Como hemos visto hay ciclos de mercado. Según el regimen de mercado se comportará mejor los sistemas de momentum o de reversión a la media. Y es aquí donde entra el indicador Momersion.
El indicador Momersion es un oscilador que se encarga de medir el Momentum y la reversión a la media en un determinado periodo N. La formula es la siguiente:
Momersion(n) = 100 × Mc/(Mc+MRc) (1)
where Mc is a count of momentum and MRc is a count of mean-reversion, calculated as follows (pseudocode):
For file history do
{
Mc = 0
MRc = 0
For i = 2 to n+1 do
{
If r(i) × r(i-1) > 0 then inc(Mc)
If r(i) × r(i-1) < 0 then Inc(MRc)
}
}
Momersion(n) = 100 × Mc/(Mc+MRc)
where r(k) is the kth arithmetic return.
A continuación el indicador Momersion:
Este indicador esta compuesto por dos contadores. Uno de ellos cuenta los dias que el mercado rinde en el mismo sentido que ayer (momentum) y el otro los dias que el mercado rinde al revés de lo que hizo ayer (reversión a la media). Es lógico que si un mercado es muy tendencial habrán muchos dias que el mercado seguirá en la misma dirección que el dia anterior y no tendrá tantos giros de mercado. En cambio, en un mercado lateral y propicio para la reversión habrán muchos giros de mercado.
Debemos interpretar que cuando el indicador esté por encima de la media, estaremos predispuestos para seguir tendencias independientemente si operamos alcista o bajista, la tendencia del mercado ya la calculará el sistema diseñado.
Personalmente, me ha gustado la idea de tener un indicador que me sea capaz de calcular el regimen de mercado. Estoy seguro que se puede usar en modo de filtro para los sistemas.
He traducido el indicador para Amibroker y lo comparto con vosotros para quien quiera seguir investigando en esta línea. Además Michael Harris dice en su blog que no tiene miedo de difundir su indicador porque tan solo un 10 de cada 1000 lectores será capaz de entenderlo correctamente y tan solo 2 lo utilizarán para contruir algun tipo de sistema.
//Indicador Momersion de Michael Harris de www.priceactionlab.com<br>
//traducido a Amibroker por Sergio Molina de www.carterasdebolsa.com
N=Param("Period",250,0,300,1,0);
ret=ROC(C,1);
M=IIf(ret*Ref(ret,-1)>0,1,0);
MR=IIf(ret*Ref(ret,-1)<0,1,0);
Mc=Sum(M,N);
MRc=Sum(MR,N);
Momersion=100*Mc/(Mc+MRc);
Plot(50,"",colorBlack,styleLine,styleNoLabel);
Plot(Momersion,"Momersion("+N+")",colorBlack,styleLine,styleNoLabel);
En siguientes posts intentaré encontrar aplicaciones practicas para este indicador usandolo como filtro para sistemas.
Saludos y buen trading!