Plantilla práctica para construir sistemas de trading

construir sistemas de trading plantilla paso a paso

Organización, ese es el objetivo de hoy. Por esto quiero compartir esta plantilla, para que puedas utilizarla como guía para establecer una estructura en el proceso de construcción de un sistema de trading cuantitativo.

Construir un buen sistema de trading requiere de muchas horas de investigación y mucho análisis. Organizar y documentar el proceso te ayudará a crear una estructura en el proceso diseño y desarrollo de sistemas automáticos o semiautomáticos.

Al final del artículo puedes descargar una plantilla modelo para que puedas adaptarla según tus necesidades. Allá vamos…

Construir sistemas de trading

Define los objetivos de tu sistema

La idea de esta plantilla está inspirada en el en el libro de Kevin Davey «Building Winning Algorithmic Trading Systems»; y como ya habíamos comentado previamente en la reseña del libro, antes de diseñar lo primero a determinar son los objetivos.

¿Qué buscas conseguir con este sistema? Haz una lista con tus objetivos. Y no sólo me refiero a la rentabilidad; el objetivo del sistema puede ser equilibrar tu cartera, complementar a otro sistema que ya tienes funcionando, diversificar en métodos o mercados, etc.

Idea de trading

¿Qué buscas capturar con tus operaciones? El método que utilizarás para la entrada, salida, filtros, etc, dependerá de qué es lo que busques capturar con tus operaciones: spreads, reversiones a la media, expansiones de volatilidad, patrones, tendencias de largo plazo…

¿De dónde viene tu idea? Apunta cuál fue el origen de la idea: deriva de una idea que leíste en un libro, una página web, un programa de radio…
Puede que con el paso del tiempo – cuando tengas muchas ideas de trading dando vuelta tanto en tu cabeza como en tu ordenador- necesites recordar cómo llegaste hasta aquí.

Si te interesa la inversión y el trading verás que con el tiempo llegas a acumular muchas ideas. No digo que todas las ideas sean rentables – en mi caso la mayoría no lo son- pero llegarás a probar un buen puñado. Si estandarizas el proceso para probar los distintos sistemas, podrás compararlos con mayor facilidad.

◊ Entrada al mercado

¿Cómo y cuándo el sistema va a entrar al mercado?
Decidir cuándo abrir una operación es tan sólo una parte de la estructura del sistema, pero suele ser la parte por la que la mayoría de traders suele comenzar a diseñar su sistema de trading.

◊ Filtros o setups

No es obligatorio establecer filtros para lanzar órdenes al mercado, pero como siempre… según cómo sea tu estrategia pueden ser de utilidad.

◊ Salida : cómo y cuándo vas a cerrar tu operación

En este apartado tienes que pensar en todas las formas en las que puedes llegar a salir de tus operaciones.

  • Stop loss
  • Trailing stop
  • Take profit o toma de beneficios
  • Salida por tiempo
  • Salidas parciales

Quizás no te interese utilizar todas, pero es bueno reflexionar sobre las posibilidades que tendrás con cada una de ellas.


Programación

Estamos hablando de sistemas cuantitativos. Por lo tanto, al concluir esta etapa necesitas programar tu sistema de trading —debugging incluido—según el lenguaje y plataforma que utilices para poder efectuar el backtesting.


Mercado y time frame a operar

¿Sobre qué datos vas a probar tu sistema de trading?

Apunta los distintos periodos in sample y out of sample que utilices

datos backtest
Datos: In sample| out of sample

* En caso de ser posible, es buena idea guardar una copia de los datos históricos sobre los que se va a ejecutar el backtest.

Probar el sistema: backtesting

Las pruebas del sistema pueden hacerse de varias maneras:
– Una manera es hacer un backtest global de todo el sistema y luego analizar los resultados.
– Otra manera es dividir las pruebas. De esta forma se analiza por separado tanto las entradas como las salidas, para finalmente llegar a una solución conjunta.

* En este punto yo prefiero trabajar con varias versiones del mismo sistema.
Por ejemplo, puede ocurrir que al testear el método de entrada me encuentre con que un método de entrada similar también da buenos resultados y entonces me interese analizarlo. En consecuencia, puedo llegar a tener varias variantes del mismo sistema.
Las distintas versiones se van numerando en el campo «Número sistema», de esta forma puedo saber cuántos cambios he realizado sobre la estrategia inicial.

Optimizaciones / Walk forward

Con la optimización se busca identificar los mejores valores numéricos para los distintos parámetros del sistema.

La idea es encontrar los valores adecuados para maximizar la función objetivo. Esta función objetivo puede ser por ejemplo un ratio como el recovery factor, K-ratio, el ratio de Sharpe, etc. Lo importante es que la función objetivo elegida simbolice lo que nosotros buscamos en un sistema.

Más detalles en el artículo «Sistemas de trading: optimización y walk forward«

Examinar la robustez del sistema

Si al analizar la robustez del sistema vemos que su rentabilidad cae en picado, eso quiere decir que el modelo se había ajustado a una serie de patrones que no son persistentes. Es decir, que habíamos sobreajustado el sistema y  como consecuencia es muy probable que este sistema no funcione en la realidad como en el backtest original.

montecarlo
Charts simulación de montecarlo

La forma más habitual de analizar la robustez es realizar un análisis de montecarlo. Pero también puedes utilizar otros métodos como por ejemplo testear la sensibilidad añadiendo ruido aleatorio al sistema ( ver artículo test sensibilidad).

Limita el tiempo de cada etapa

Esto es importante.

La idea es evitar dar mil vueltas a la misma idea. Establece una fecha límite para culminar cada etapa. Si no llegas a obtener un sistema que valga la pena en el tiempo previsto, hay que desechar la idea de base y pasar la idea siguiente.

Por último la fase de incubación

Simplemente quiere decir que una vez desarrollado tu sistema lo mejor es dejarlo aparcado por un tiempo. No pasar directamente a operar con tu sistema «recién salido de fábrica» en el mercado.

Después del periodo de incubación, podrás analizar la performance sin el apego psicológico que puedas sentir con tu creación y decidir si el sistema de trading vale la pena para operarlo con dinero real.


Puedes descargar la plantilla de estructura para construir sistemas de trading aquí

AVISO: Este es sólo un modelo para construir sistemas de trading que actualmente a mí me resulta útil. Pero cada trader tiene su manera de ver las cosas, así que si quieres modificarla / mejorarla puedes hacerlo para adaptarla a tus necesidades.
Cualquier recomendación o duda, hablamos en los comentarios.


¿Te interesan los sistemas de trading para operar en bolsa o forex? Entonces, te invito a suscribirte a Estrategias de Trading y podrás recibir los artículos directamente en tu correo. Además puedes seguir / compartir los artículos por nuestra página de Facebook, Twitter o Feedly

6 comentarios en «Plantilla práctica para construir sistemas de trading»

  1. Me ha gustado bastante el articulo, aunque el punto referente a la fase de incubacion no lo comparto.
    La mejor manera de aprender es operando, y no le veo sentido esperar un tiempo, asi como tampoco operar con demos.
    Cuando se pierde o gana dinero real, es cuando te das cuenta de las dificultades del trading.
    saludos

    Responder
    • Hola Jmrcalin,
      En lo que respecta a una operativa discresional si entiendo que el «feeling» del mercado sólo lo puedes obtener operando. Pero, en este caso trataba de sistemas más de tipo automático.
      En mi opinión, por ejemplo la cuenta demo sirve para ver si el programa está enviando correctamente las órdenes tal y como las tienes programadas, opino que es mejor darse cuenta de un error de programación en demo que con dinero real.

      La idea de la fase de «incubación» viene del libro de Davey «Building Winning Algorithmic Trading Systems» . Al leer este libro me he dado cuenta de que esta idea de deja pasar un tiempo antes de operar en live me resultaba útil por dos motivos:
      – por un lado permite ver si después de la optimización el sistema sigue funcionando con datos reales que nunca habíamos visto
      – por otro lado me permite tomar distancia, ver si pasado un tiempo aún sigo pensando que operar el sistema sigue siendo una buena idea o si sólo me había dejado llevar por mi » sesgo ikea».
      Un saludo

      Un saludo,

      Responder
  2. Fenomenal entrada compañero, enhorabuena.

    Pues yo si estoy de acuerdo con el apartado de la incubación, si acabas de trabajarte duro un sistema, programarlo y testearlo, lo que menos conviene es ponerte a operar de ipsofacto, el ego que vamos a tener no va a caber en la habitación en la que tengamos la ofi.

    Discrepo con jmcarlin en lo de que solo se aprende con dinero real, una cuenta demo te sirve para aprender a usar la plataforma, a encontrar tu sistema de trading, a experimentar gran parte de las emociones de la operativa real y todo ello sin desplumarte por el camino, que a fin de cuentas es el objetivo primordial e imprescindible de todo trader.

    Un saludo

    Responder
    • Hola @Tradingpulsar,

      Gracias por tu comentario.

      La etapa de la incubación es algo que estoy incorporando desde hace poco y me parece muy útil.
      Muchas veces queremos poner inmediatamente en práctica una idea o sistema que acaba de nacer, sin dejar un tiempo prudencial de reposo. Y algunas veces a mi me ocurre que esta «super idea» ya no me parece tan brillante después de volver a analizarla posteriormente.

      Un saludo,

      Responder
      • Enhorabuena una vez más por tu artículo Duk2:
        Yo también estoy totalmente de acuerdo respecto del periodo de incubación. Después de unos añitos en esto, he aprendido que después de desarrollar un sistema, una cosa son los resultados del backtest y otra muy distinta los de la operativa real. En mi caso, para sistemas con operativas de corto plazo, no suelo operar ningún sistema en la cuenta real hasta comprobar los resultados en paper trading de al menos 2 trimestres consecutivos. En el caso de los sistemas tendenciales de largo plazo, me suelo guiar más por la robustez de los backtests aplicados a múltiples tipos de activos. Mi preferencia en este tipo de sistemas es tratar de que sean lo más sencillos posible y con un número de parámetros y grados de libertad muy reducidos de forma que evitemos el «curve fitting». Últimamente, estoy trabajando cada vez más en sistemas tendenciales aplicados a gráficos mensuales. El ruido del mercado cada vez es mayor y mi sensación es que es necesario alejar el zoom para poder cobrar alguna ventaja al mercado, aunque también es cierto que este tipo de operativa no está hecha para todos los estómagos.

        Responder
        • Gracias FJO.
          Después me cuentas qué tal van tus nuevas estrategias con gráficos mensuales.
          Creo que poder combinar sistemas con varios times frames puede ser una buena idea.
          Un saludo,

          Responder

Deja un comentario

ESTRATEGIAS DE TRADING