¿Nos visitas desde USA? Entra a tu página Rankia.us.
En empieza el próximo webinar Cómo elaborar un plan de trading eficiente.
Oscar Cagigas

Gestión del capital, ondas de Elliott y sistemas de trading

El sistema de Chande 3CC y los grados de complejidad

Desde esta primavera hemos cambiado radicalmente la forma de ver los sistemas de trading. Ya no los vemos como si fueran una casa, que una vez construida cumple su función y no hay que volver a construirla, sino más bien como algo vivo que va cambiando; o quizás no cambie pero cambia el entorno en el que se expresa, y por tanto necesita ajustes. Por poner algún símil los sistemas de trading serían como una persona, que va cambiando de gustos y de forma de pensar según va pasando el tiempo.

Si no cambia la persona cambia el entorno, y es necesario adaptarse en cualquier caso. Por esta razón ya no creemos a ciegas en los sistemas de trading que vemos en los libros. Nos gusta ver su lógica, y saber que en su momento funcionaron muy bien, pero para poder aprovecharlos necesitamos ver si se pueden adaptar al cambio continuo del mercado. Necesitamos confirmar que hay poder predictivo en su lógica, de forma que puedan dar ganancias en datos que no han visto nunca.

Pues bien, eso nos obliga a pasar los sistemas clásicos por el filtro de la simulación walk forward. Haciendo esto vemos si un sistema puede dar ganancias al aplicarlo en datos nuevos con los parámetros óptimos de años anteriores. En otras palabras, lo probamos como si lo fuéramos a operar en real, en el mercado del año que viene con los parámetros que son óptimos ahora mismo.

Hoy podemos probar un sistema que sale en el libro de Chande “Beyond Technical Analysis”. Es un sistema bien simple:

  • Si hay tres cierres por encima de una media móvil compramos
  • Si hay tres cierres por debajo de una media móvil abrimos cortos

Ya está, eso es todo. Evidentemente esta es una lógica tendencial, así que hará lo esperado: dará buenas ganancias en mercados tendenciales y muchas pérdidas pequeñas en mercados laterales.

Debajo vemos su funcionamiento sobre el gráfico del Platino. Hay una media simple de 30 sesiones. Cuando hay tres cierres por encima las barras se ponen verdes y se activa una compra. Cuando hay tres cierres por debajo tenemos barras rojas y un corto. En estados intermedios las barras son grises.

platino

Supongo que queda claro que el sistema es CONTINUO; es decir, siempre está en el mercado, o bien comprado, o bien en corto, pero siempre está operando. En un principio esta no es una forma eficiente de operar porque eso genera demasiadas operaciones. No hay un criterio restrictivo que esté buscando las mejores oportunidades. Pero bueno, es un sistema que en su momento daba buenos resultados y lo vamos a probar aquí, a ver que sale. Yo no sé cuáles van a ser los resultados, lo voy escribiendo según lo voy probando, pero me da la impresión de que esta lógica tal cual está no va a ir bien porque no es SELECTIVA, opera demasiado.

Si volvemos al gráfico del Platino lo que vemos es que si aparecen tendencias lo suficientemente grandes (un par de meses o más) entonces el sistema puede generar operaciones ganadoras, pero nunca comprará un suelo ni venderá un techo, siempre se quedará la parte media de una tendencia, al más puro estilo de sistema tendencial.

El sistema es tan simple que se puede escribir en 3 líneas de código. Aquí lo tenemos, para el que conozca Amibroker y esté interesado en probarlo:

optimización

Vamos con las pruebas. La única variable de optimización es la media móvil. Esta media va a variar entre 30 y 60 en pasos de 5. Esta media podría tomar valores más altos, como 100 o
200, pero acabo de hacer una prueba y los valores altos dan resultados bastante malos
, así que dejaremos que el sistema funcione en esta parte baja que es donde parece
que va mejor.

La optimización con todo el histórico (IN SAMPLE) desde el año 2000, con comisiones, deslizamiento, y con 2 mercados operados de forma simultánea, nos dice que el valor 30 es el ideal. Eso saca las siguientes estadísticas:

stats

Como vemos, el resultado es bastante pobre. Un profit factor de 1.22 en muestra es demasiado bajo como para pensar que tenemos un sistema operable. Últimamente ni nos preocupamos de presentar las estadísticas In Sample pero aquí se muestran para poner de manifiesto el hecho de que este sistema parece que ya no funciona ni siquiera optimizado sobre los datos en los que
se prueba.

De las estadísticas se desprende que esta lógica acierta muy poco, solo en el 30% de las operaciones. Esto es porque, como se sospechaba, no se busca el momento idóneo, sino que las operaciones van saliendo como churros, dependiendo de dónde esté el cierre respecto a la media.

Cualquiera que diseñe un sistema de trading se quedará bastante insatisfecho con la curva de capital que vemos aquí debajo. En la simulación In Sample todo debería ser perfecto. La curva de capital debería ser una línea recta.

portfolio

Voy a seguir y aplicarle la prueba walk forward. Si un sistema no es perfecto cuando está optimizado pues difícilmente va a ir bien en condiciones más exigentes, pero por si acaso lo probaremos. Aquí debajo el resultado:

chande 3cc

La prueba walk forward nos da unas estadísticas muy similares a las de In Sample:

  • Beneficio neto: 80.000 (frente a 120.000)
  • Ganancia promedio: 332 dólares (frente a 349)
  • Profit Factor: 1.20 (frente a 1.22)
  • Porcentaje aciertos: 30% (igual)

¿Qué quiere decir esto?

Que si un sistema es simple no puede sobreoptimizarse, y sus resultados en muestra van a ser equivalentes a los reales (fuera de muestra). Esto es bueno saberlo. Evidentemente no se puede sobreoptimizar un sistema que genera 344 operaciones variando un solo parámetro. Si fueran solo 10 operaciones y tuviéramos 10 parámetros entonces sí que podríamos sobreoptimizarlo hasta que saliera justo lo que queremos ver.

No sé si recuerda un artículo que escribí para la revista stocks&commodities que mostraba que podemos coger un sistema e irle complicando su lógica hasta que dé unos magníficos resultados en muestra. Pero los resultados fuera de muestra son otra historia ya que a partir de un determinado punto empeoraban, demostrando que estamos sobreoptimizando el sistema.

He repasado los archivos y veo que esto que comento se publicó aquí en Onda4 en julio de 2013. En la página siguiente voy a anexar el gráfico final del artículo donde se resume todo.
---
En el eje de las X’s tenemos los grados de complejidad o las reglas extra que vamos añadiendo a un sistema de trading para que funcione mejor. Por ejemplo un filtro de
tendencia, un objetivo de beneficios, etc.

En el eje de las Y’s tenemos la ganancia neta que sale de las pruebas. La curva verde es la ganancia In Sample. Evidentemente esto siempre será una línea creciente ya que cada nuevo cambio que le hacemos al sistema es para que saque mejores estadísticas. No hay ninguna sorpresa aquí.

Y la curva azul es la ganancia fuera de muestra (reservé un trozo de histórico para probarlo. El sistema era un canal de Donchian). Se puede ver que con 2 grados de complejidad (p.e. la
lógica del canal y el stop loss) los resultados fuera de muestra son óptimos. Pero seguir complicando el sistema no funciona en tiempo real, en realidad lo estropea por SOBREOPTIMIZARLO. Creo que en el informe de hoy ha quedado claro que nos interesan los sistemas sencillos :)

profit

  1. #1

    spidertrader

    una pregunta en relacion a amibroker, que algoritmo de optimizacion utiliza? es una heuristica o un algoritmo exacto? Entiendo que en funcion de este variara mucho la optimizacion.

    sdss!

  2. #2

    Oscar Cagigas

    en respuesta a spidertrader
    Ver mensaje de spidertrader

    Amibroker tiene la opción de optimización exhaustiva (con todos los valores) que es la que he utilizado aquí porque son muy pocas optimizaciones; y distintos algoritmos de búsqueda de valores, como algoritmos genéticos, de partículas, etc.

    Los algoritmos de amibroker son muy buenos y cuando se trata de muchos parámetros la solución no exhaustiva siempre me ha coincidido con la exhaustiva, pero en menos tiempo de cálculo.