JMRCALIN, un lector habitual del blog se ha atrevido a retar al superfiltro macro del que hablé el post anterior. Me ha gustado su iniciativa y tengo que decir que los resultados han sido muy decentes.
Su filtro de mercado se ejecuta en escala semanal. Una de las condiciones que yo exigía era que el timeframe fuera en mensual para tener más histórico, pero voy a hacer una excepción y lo simularé en semanal. Cabe decir que he usado datos de Yahoo ^GSPC y el inicio del backtest es el 31/12/1962 (He tenido que dejar 30 meses de histórico para que calcule una media móvil mensual de 30 periodos).
El índice de Yahoo ^GSPC replica al índice SP 500 sin ajuste de dividendos. Me gusta más hacer cálculos con datos total return pero no dispongo de un largo histórico en base diaria.
En primer lugar voy a explicar cuando se activa el setup de compra y venta del filtro de JMRCALIN.
Compra:
- El cierre del Sp500 debe ser mayor a su MM30 semanal ponderada.
- La MM30 semanal ponderada debe ser mayor que la semana anterior.
- El valor de la MM30 mensual ponderada, pero en modo semanal, debe ser mayor o igual al mes anterior, es decir:
(WMASP500mensualexpandido>=Ref(WMASP500mensualexpandido,-4));
Nota: He calculado esta última condición como lo quiere JMRCALIN, con el valor de las 4 semanas anteriores, pero se puede calcular el valor del mes exactamente en vez de las 4 semanas.
TimeFrameSet( inMonthly );
MA10_Monthly = MA( Close, 30 );
MA10_mespasado=Ref(MA10_Monthly,-1);
TimeFrameRestore();
m10= TimeFrameExpand( MA10_Monthly, inMonthly ) ;
m10mespasado=TimeFrameExpand( MA10_mespasado, inMonthly ) ;
Venta:
- Stoploss al tick situado a un 8% del precio de compra del SP500. La orden se ejecuta en apertura de lunes siguiente. El stoploss nunca se mueve.
- Salida mediante un trailing stop semanal (no al tick) a un 12% respecto al precio de entrada y posteriormente sobre el precio del Sp500 conforme vaya subiendo. Solo se vende si el cierre semanal del sp500 queda por debajo del 12% sobre el precio del SP500 mediante un trailing stop.
Mi visión antes de empezar la comparativa es que hay demasiadas condiciones, y eso me lleva a sospechar que se ha optimizado para que funcione bien en el histórico evaluado. Observo que algunas condiciones tienen que ser “al tick” y otras “no al tick”.
Los que me conocéis desde hace más tiempo sabéis que soy partidario de metodologías super simples, cuanto más sencillas mejor. Es por ello que yo nunca tendría en cuenta para operar en real un filtro de esas características.
Dicho esto, vamos a los resultados.
Primero el filtro de JMRCALIN con las condiciones antes expuestas. Hay una comisión de compra venta de un 0.3% que englobaría gastos de compra-venta y slipage.
A continuación con el superfiltro macro
Y para acabar B&H para comparar
Podemos observar que el filtro de JMRCALIN no es capaz de batir al índice de referencia. El Drawdown es inferior al del filtro macro, pero no es capaz de superar al filtro macro respecto a la relación rentabilidad-riesgo como podemos ver en los ratios sharpe. Cabe destacar que el filtro de JMRCALIN tiene 28 operaciones versus las 8 del filtro Macro.
El punto de las comisiones y el número de operaciones son importantes. Recuerdo que la funcionalidad de este “sistema” es hacer de filtro global para la renta variable y que nos deje en liquidez cuando avise recesión.
Si tenemos una cartera de acciones, pongamos 20 por ejemplo, imagina el gasto de comisiones de vender y comprar todos los activos. Nos interesa un filtro que nos permita estar en las grandes tendencias alcistas. Asumiendo los retrocesos de mercado con naturalidad, pero que a la vez sea capaz de dejarnos en liquidez en las grandes recesiones.
Por último me he dado cuenta que si pruebo ambos filtros fuera del SP 500 las estadísticas del filtro de JMRCALIN se deterioran mucho más. Es menos robusto que el superfiltro macro.
Por ejemplo aquí una imagen con ambos filtros pasados al NYSE:
El primer gráfico de arriba es el filtro JMRCALIN y el segundo el filtro macro. Después de todas las anteriores pruebas tengo que determinar que el vencedor del reto ha sido el superfiltro macro.
¡Reto de filtros de mercados! ¡descubre quien es el ganador!CLICK PARA TWITTEAR
JMRCALIN gracias por aportar valor, es muy instructivo programar y comparar las ideas de otros traders.
¡El reto del superfiltro macro sigue en pie! ¡Intenta superarlo!
Recuerdo que debes usar escala mensual para poder simularlos con más histórico. Tan solo puedes comprar SP 500 aunque puedes usar otros indicadores para generar señales. Se aplica una comisión de 0.3% por cada trade. ¡Te espero!