El SP500 es un índice bastante difícil de operar. La mayoría de sistemas tendenciales producen pérdidas en el SP500 porque sus movimientos no son sostenidos, ni en tiempo ni en profundidad. Los diseñadores de sistemas como Lebeau&Lucas aseguran que la mejor forma de operar el SP500 es con sistemas antitendencia, que compran cuando el SP500 ha corregido y luego rebota. Cualquier otra aproximación como las roturas de bandas tampoco funciona.
En Onda4 hemos podido comprobar las afirmaciones de Lebeau&Lucas tras múltiples pruebas y simulaciones. Muchos de los sistemas que funcionan en índices más tendenciales como el DAX, EUROSTOXX, etc no sirven para el SP500.
Parece evidente entonces que hay que comprar el SP500 cuando ha caído lo suficiente y vender tras el rebote posterior. No se debería ir más allá del simple swing porque con frecuencia veremos a este índice devolver todo o gran parte de las ganancias acumuladas en el rebote inicial.
Con estas dos ideas en mente se puede desarrollar un sistema de trading. Para buscar una caída de varios días en el SP500 usaremos el indicador CCI. Valores por debajo de -100 indican una fuerte sobreventa. En el gráfico de debajo se muestra en fucsia las veces que este indicador ha caído por debajo de este umbral que acabamos de definir.
Bien, es cierto que cualquier indicador sobrevendido (estocástico, RSI, etc) PUEDE estar indicando un suelo del mercado, pero no es buena idea comprar el SP500 solamente porque un indicador u oscilador avise de sobreventa, ya que el precio puede seguir cayendo.
En este sistema hemos considerado que el mejor momento de entrar comprados en el SP500 es cuando el CCI empiece a subir tras haber estado por debajo de -100. Así nos aseguramos que estamos al comienzo de un rebote generado por la sobreventa. Durará más o menos, pero necesariamente ha debido comenzar para que el CCI empiece a subir.
Hemos podido comprobar que en la mayoría de los casos el SP500 subirá durante un par de semanas tras esta señal. Por tanto parece bastante lógico tomar beneficios tras 15 días en la operación (10 días de trading).
Como vemos en el gráfico de debajo en la mayoría de las ocasiones si no se toman beneficios a los 10 días esa ganancia desaparecerá. El SP500 hace unas oscilaciones que no son muy tendenciales.
Solamente comprando con la condición de que el CCI esté subiendo tras haber estado por debajo de -100 y vendiendo a los 10 días se obtienen unos resultados muy buenos con este sistema. Pero es posible mejorarle.
¿Cómo?
Primero haciendo que el sistema sea simétrico; es decir, que no importe si estamos en un mercado alcista o bajista. Que las mismas condiciones que aplican para la compra apliquen para la venta (adaptadas al caso bajista, claro está).
En el gráfico de debajo vemos que para operar en el lado corto solamente hay que esperar a que el CCI comience a bajar tras haber estado por encima de +100. También se toman beneficios a las 10 barras de la entrada.
La segunda forma de mejorar el sistema es haciendo que solo tome señales largas o cortas en función de si el mercado está alcista a largo plazo o bajista a largo plazo, respectivamente. Para ello no hay que complicarse mucho. Se mirará si la media de 200 sesiones sube para el caso alcista y se mirará si baja para el caso bajista. Así de sencillo.
Solamente con esas condiciones que acabamos de explicar ya tenemos un sistema más que decente. Las resumimos a continuación.
Entrada largo
-
CCI(7) sube y ayer estaba por debajo de -100.
-
La media de 200 del SP500 está subiendo
Entrada corto
-
CCI(7) baja y ayer estaba por encima de -100.
-
La media de 200 del SP500 está bajando
Salida
-
Han transcurrido 10 barras desde la entrada
Así de simple. Debajo vemos la implementación en Amibroker.
Para el filtro de mercado comparamos la media de hoy con el valor hace justo una semana de trading (5 días)
El código anterior puede ir al comienzo del sistema o en un fichero #include que se llama al comenzar un sistema cualquiera. Así es más cómodo porque podemos probar este filtro en cualquier sistema que se nos ocurra.
A continuación mostramos el código del sistema propiamente dicho:
Aunque vd no utilice Amibroker verá que las condiciones explicadas anteriormente son muy sencillas de implementar.
Pero vamos con las estadísticas. La implementación de este sistema tal y como se acaba de explicar arroja las siguientes estadísticas cuando se aplica sobre el SP500:
Las condiciones de la simulación son:
-
El periodo es 1/1/1995 1/1/2005.
-
No se deducen comisiones ni slippage.
-
Se simula el futuro grande (250$ por punto) sobre el índice cash $SPX.
Se puede ver que la estrategia mencionada de comprar en correcciones y vender 10 días más tarde produce dos ganancias cada 3 operaciones o un 66% de aciertos que es lo mismo.
El ratio entre ganadoras y perdedoras es superior a la unidad (1.09) lo que hace que tengamos un buen factor de beneficio o Profit Factor de 2.14.
El drawdown es tolerable (27%). El ratio entre el beneficio en dólares y el drawdown en dólares es de casi 7 (6.93). Con este estupendo Recovery Factor estamos asegurando una operativa eficiente, ganando 7 veces más que el drawdown que tenemos que soportar.
Con un solo futuro este sistema gana 342 mil dólares en el periodo indicado.
Veamos ahora el periodo fuera de muestra. Probaremos el sistema en el periodo 1/1/2005 1/1/2009:
El resultado es excelente. La ganancia es de casi 100 mil dólares, aunque en esta ocasión el drawdown ha sido bastante superior al anterior, llegando al 49%. En cualquier caso un ratio de Sharpe y de MEGAN superior a 1 nos dicen que el sistema es muy bueno y seguramente siga produciendo estos buenos resultados en el futuro. Su sencillez es lo que le hace tan robusto.
El sistema que acabamos de ver tiene solamente dos variables a optimizar. La primera es el periodo del CCI. La segunda es el número de barras para tomar beneficios.
En el gráfico de debajo podemos ver que un periodo de CCI entre 5 y 8 genera muy buenos resultados. Por encima de 8 la ganancia disminuye bastante rápido aunque sigue siendo positiva. Se puede ver que el número de barras no es tan crítico como el periodo del CCI; es decir, que la variación de la ganancia es mucho más suave. Un periodo entre 8 y 11 barras parece dar los mejores resultados.
Aquí se ha escogido la combinación 7/10 porque es bastante robusta y está bastante centrada. Si el sistema se desviara de los parámetros óptimos en el futuro debería seguir funcionando.
Cualquier sistema más rebuscado y con más variables es susceptible de generar más ganancia sobre el papel (al simularlo y optimizarlo) pero difícilmente seguirá manteniendo sus características tan bien como lo hace este. Recuerde que un sistema simple es un sistema robusto.
En el gráfico de encima de estas líneas podemos ver la curva de capital para el primer periodo 1/1/1995 1/1/2005. En el gráfico de debajo vemos una simulación con el software MSA y sus estadísticas en el panel derecho.
Las estadísticas de partida simulaban un solo contrato de futuro por posición. Si pasamos a arriesgar un 2% del capital por cada operación (número variable de futuros) entonces obtenemos una ganancia que en lugar de 342 mil dólares pasa a ser de 14 millones. En la curva de debajo del capital (nos referimos a las barras grises) se puede ver el número de futuros que se han operado para arriesgar un 2% del capital. Como se puede ver en las estadísticas el drawdown ha subido mucho, hasta el 51%, pero si uno es capaz de tolerarlo entonces vale la pena por la ganancia extra que se consigue al operar un número variable de futuros. Se puede comparar este gráfico con el gráfico anterior donde las barras grises son constantes a 1 contrato por operación. Esto es algo teórico, nadie en su sano juicio seguirá confiando en un sistema que le está haciendo perder la mitad de su capital. Pero sigamos haciendo pruebas a ver que sale...
Fíjese en un detalle. En esta simulación hemos subido el capital inicial a 100.000 dólares. Esto ha sido necesario debido al incremento de drawdown. Con el mismo capital inicial de la simulación con un solo futuro (10.000 dólares) esta estrategia de riesgo constante al 2% produciría la ruina. Es muy importante que las estrategias con futuros tengan siempre capital suficiente como para absorber el drawdown.
Ahora vamos a hacer una simulación para ver cual es el riesgo óptimo pero con un drawdown que no supere el 30%. El software nos permite añadir restricciones al cálculo del riesgo óptimo. El resultado se puede ver aquí:
El riesgo óptimo es del 1.16% del capital. Aquí puede vd comprobar algo que decimos constantemente en los informes, que no arriesgue más de un 2-3% por operación e incluso menos. Fíjese que si limitamos el riesgo al 1.16% del capital estamos consiguiendo un beneficio neto de 2 millones de dólares en 10 años con un drawdown que en ningún caso supera el 30%. Si lo comparamos con la simulación para un solo futuro vemos que aquí ganamos 6 veces más.
En este artículo hemos visto un sistema de trading muy simple pero a la vez muy efectivo. No hace falta complicarse mucho para conseguir dos operaciones ganadoras de cada tres. Solamente hay que esperar a que el CCI supere el límite de 100 y entrar corto o comprado en cuanto el CCI comience a moverse en sentido contrario. Cerrar la posición tras 10 días de trading resulta ser una opción muy buena. Al tratarse de un sistema con solamente 2 parámetros será bastante difícil que esté sobreoptimizado.
Por otra parte vemos que por muy bueno que sea un sistema siempre conviene estar capitalizado lo suficiente para absorber el drawdown y realizar un estricto control del riesgo. Los expertos recomiendan no superar nunca un riesgo del 5% por operación y aquí hemos visto que si se quiere tener un drawdown tolerable (menor del 30%) entonces incluso es mejor no arriesgar más que un 1% del capital en cada operación.