El avance tecnológico en la disciplina del trading ha ido de forma paralela a otros sectores. Tanto desde el punto de vista de las máquinas de las que disponemos actualmente (hardware) como de los programas que utilizamos (software) el cambio ha sido significativo. Y esto ha hecho aflorar entre otras cosas, las posibilidades de aplicar técnicas de desarrollo de software para automatizar nuestro trading de una forma más accesible y sencilla.
El paradigma de poder estar operando sin estar delante de la pantalla es algo que definitivamente resulta atractivo librando al trader de la tediosa tarea de mirar las pantallas. Aunque como siempre, nuestra impresión es que esto se idealiza en exceso, al igual que la profesión del trading en general. Es decir, mucha gente sigue buscando el sistema para operar desde una palmera y yo, sinceramente creo que eso no existe. Algo tan exigente como el trading y las actividades en los mercados financieros requieren de una atención constante y son amantes de pocos lujos en lo que a disponibilidad horaria se refiere.
Hecha esta introducción, también es evidente que la automatización de procesos abre una nueva fase en el desarrollo de las actividades relacionadas con el trading. Sin irnos al extremo del habitual ejemplo de la palmera y la piscina, la automatización puede permitirte ciertas licencias y ganar cierta libertad, que si eres inteligente utilizarás para mejorar aún más tu trading.
SUMERGIÉNDONOS EN EL TRADING ALGORÍTMICO
Existen diversos itinerarios y caminos para llegar a este punto. He de decir que en ese sentido creo que formo parte de un colectivo evidentemente privilegiado. De formación Consultor Tecnológico y habiendo trabajado durante muchos años para entidades financieras, he ido acumulando conocimientos de las dos áreas que serán fundamentales para desarrollar el trading algorítmico:
– Área Tecnológica. Con conocimientos de programación y desarrollo de software
– Área Funcional. Con conocimientos sobre el mundo del trading y de la inversión
En multitud de ocasiones podemos encontrar perfiles que se inician procedentes de una de las dos disciplinas, pero es complicado encontrar estas confluencias. En otros casos las procedencias son incluso distintas a estos dos puntos. Parece evidente pues que el origen de cada uno determinará de una forma importante nuestro itinerario de introducción en el trading algorítmico.
ESTRUCTURA BÁSICA
Para simplificar, y arriesgándonos quizás a hacerlo en exceso, cuando hablamos de trading algorítmico intentamos describir un proceso de automatización de una estrategia de trading para que sea ejecutada desde un ordenador sin necesidad de la intervención directa del trader en el mercado.
Esta para mí sería la definición más ajustada y de la que querría recalcar dos aspectos principales:
– Automatización de una estrategia. Esto permite al operador desconectar un poco de la pantalla, pero gracias al trabajo previo realizado y a la existencia de una estrategia ya definida. Es decir, el proceso de automatización no es el inicio, sino que debemos partir de una estrategia ya pensada y estructurada, por tanto, es necesario un trabajo previo y un paso anterior yo diría que ineludible por el trading discrecional.
– Intervención directa. La automatización te libra de estar pegado a la pantalla, pero no te desvincula. Creo que éste es un concepto erróneo que veo repetido demasiadas veces. La automatización da ventajas, cambia la forma de operar pero el operador, el trader sigue siendo el mismo. Los mercados cambian, evolucionan y normalmente los sistemas no, por lo que debemos monitorizar y evaluar siempre el rendimiento de nuestros sistemas y evolucionarlos a la par. Para ello, debemos seguir al mercado en todo momento de igual forma que si operáramos discrecionalmente.
DANDO NUESTROS PRIMEROS PASOS
De todas formas, independientemente cual sea nuestro origen, desarrollar un sistema automático no es más que afrontar un proyecto tecnológico cualquiera, o al menos esa es mi filosofía. Y como en cual-quier proyecto de envergadura lo primero que se hace es planificarlo y definir las fases de desarrollo.
Nuestro objetivo primordial es claro: implementar una estrategia que sea rentable. Para ello, vamos a utilizar diversas herramientas que nos indicarán si nuestra pequeña criatura tiene una ventaja estadística sobre el mercado, estadística tal y como todos debemos saber indica sobre datos históricos. Este es el máximo de fiabilidad del que disponemos a la espera de que Marty McFly regrese a nuestro tiempo y nos diga la evolución de los mercados, o algo similar.
Pero lejos de despreciar este hecho, debemos valorarlo en su justa medida. Los mercados son cíclicos y por tanto, existen pautas que se repiten. El trabajar con datos históricos es posible que no nos dé la garantía de éxito, pero nos puede proporcionar algo infinitamente más importante: la garantía casi absoluta de que no vamos a destrozar la cuenta. Cuando hemos realizado un proceso de validación (de Backtesting) correcto y detallado de nuestro sistema y éste lo ha superado, es complicado que en un futuro, salvo una situación totalmente excepcional, éste acabe con nuestra cuenta
ANAOMÍS DE UN SISTEMA
Ya hemos explicado que al final, cuando hablamos de trading algorítmico hablamos de un simple pro-grama de ordenador, desarrollado en el lenguaje de programación correspondiente, según la plataforma empleada. Pero vamos a pensar un poco y a diseñar un esqueleto básico de lo que tiene que contener cualquier sistema algorítmico. Para ello vamos a pensar en el ciclo de vida de una operación en el mercado y desarrollaremos una parte del sistema para cada fase de ese ciclo.
Partiendo de esa base podemos pensar en que en la vida de una operación tenemos:
– Una fase previa de exploración del mercado a la espera de que se produzcan ciertas condiciones, los Setup o Filtros de Entrada.
– Una gestión de esa operación abierta al mercado, en función de la evolución del mismo y de los criterios del sistema sobre gestión del riesgo.
– Una fase final en el que el mercado nos da una señal o combinación de señales que nos indican que el movimiento que hemos querido aprovechar ha finalizado. Los Setup o filtros de Salida.
Por tanto, la forma más simple y eficiente de empezar a desarrollar la estructura de nuestro sistema será siguiendo estas tres fases y definiendo zonas o módulos del sistema encargadas de trabajar durante el desarrollo de las mismas.
OBJETIVOS A ALCANZAR
Evidentemente el objetivo final es obtener un beneficio económico de esta actividad, pero aunque parezca paradójico el primer paso hacia el éxito es olvidarse del dinero. Nuestro objetivo debe ser realizar un buen trading y un buen trading significa progresión y una curva de beneficios ascendente a largo plazo.
Cuando desarrollamos una estrategia siempre debe ser pensando en el largo plazo. Aunque operes intradía, si queremos hacer trading de manera consistente las ganancias deben ser constantes en el tiempo. Esto requiere un proceso de validación: el Backtesting. Pero…
… ¿cómo podemos validar esa rentabilidad a largo plazo?
Debemos trabajar con dos variables: el porcentaje de acierto de nuestras operaciones y la ganancia media en cada una de ellas. De esta forma podemos sacar una estimación media de la evolución de nuestra estrategia, lo que conocemos por Esperanza matemática (EM)
EM = PCTwin * AVGwin – PCTloss * AVGloss
La combinación de operaciones ganadoras debe ser superior a la de operaciones perdedoras. Debemos buscar una proporción correcta a largo plazo de estas variables. Como mayor sea el valor positivo de la EM mucho mejor y para mejorar los resultados a largo plazo debemos pensar en cómo mejorar el resultado de este cálculo.
Al final, las características que definen nuestra operativa, que son las que definen a cualquier trader son tres principales:
– Fiabilidad. Porcentaje de acierto de nuestra operativa.
– Apalancamiento. Gestión Monetaria y dimensionamiento de posiciones. Debe ser proporcional al riesgo que se quiere asumir y a nuestro porcentaje de acierto
– Resiliencia. Entendida como la capacidad de mantener operaciones abiertas en el mercado
A destacar de que estamos hablando de tres características que encajan perfectamente en las tres fases de desarrollo de una operación.
NUESTRO ENEMIGO: EL DRAWDOWN
Hemos hablado de la parte positiva, la cara amable del trading que es la búsqueda y el cálculo de beneficios, pero el lado oscuro y su gestión y control es lo más importante de una estrategia. Para ello e invocando el principio de prudencia que siempre debe regir cualquier actividad contable o de inversión, debemos posicionarnos en el peor de los casos, y eso en el trading tiene un nombre: Draw-Down.
El Draw-Down, conocido como la mayor serie histórica de pérdidas conocidas de nuestra estrategia, nos da un indicativo del peor comportamiento de nuestra operativa, pero debemos siempre tener en cuenta una premisa:
“la peor serie de pérdidas está por llegar”
Es básico y fundamental trabajar con esta serie de pérdidas como base para establecer por ejemplo, el apalancamiento en nuestra operativa. Un apalancamiento de nuestras operaciones dimensionado respecto a nuestra mayor serie de pérdidas de forma proporcional nos da una muy buena garantía de que no vamos a arruinar nuestra cuenta.
ANÁLISIS DE LA CURVA DE BENEFICIOS
Una vez ejecutado nuestro Backtesting, la plataforma que estemos utilizando nos va a dar un informe más o menos detallado de cómo se ha desarrollado nuestra operativa. En general, el informe girará en torno a un gráfico que nos mostrará la Curva de Beneficios o el Equity. El gráfico en cuestión nos mostrará cómo evoluciona el saldo de nuestra cuenta al ir acumulando sucesivamente las operaciones que va ejecutando el sistema.
Naturalmente, la primera valoración será respecto a la rentabilidad alcanzada, o sea, proporción de saldo final respecto a saldo inicial, pero éste no debe ser el único aspecto a consultar y a tener en cuenta. Una vez esté en positivo hay que validar otros factores:
LA IMPORTANCIA DE LA TENDENCIA
Al igual que en los gráficos de velas, la tendencia expresada en el gráfico es fundamental. De hecho, todos los estudios estadísticos sobre cualquier materia que queráis ver quieren reflejar normalmente tendencias, no principalmente los valores absolutos que se alcanzan. La información que nos puede proporcionar la observación y análisis de datos históricos, será principalmente la de las tendencias que se forman y no tanto los valores alcanzados.
Esta afirmación también es válida para las curvas de rentabilidad y por tanto la evolución y la forma en qué se produce esta evolución va a darnos mucha información sobre el comportamiento y la personalidad de nuestra estrategia ante el mercado.
Vamos a examinar con detalle la curva que nos ha generado nuestro sistema y a fijarnos en ciertos aspectos:
– Su inclinación o pendiente.
– La periodicidad de operaciones de largo recorrido, tanto a la baja como al alza.
Sólo estos dos aspectos pueden arrojar mucha información. Podemos saber si se trata de un sistema con un alto porcentaje de acierto, o si por el contrario el nivel de aciertos es bajo. El número de operaciones de gran recorrido debe centrar especialmente nuestra atención y debemos analizar casi cada uno de estos casos individualmente, ya que normalmente es un número reducido y conocer su origen nos permite en muchas ocasiones optimizar notablemente nuestro sistema.
A partir de aquí, deberemos trabajar en las diferentes partes de la vida de la operación para mejorar los resultados y la curva. Si vemos que el sistema tiene un porcentaje bajo de acierto podemos revisar los filtros de entrada y colocar algunas restricciones adicionales para intentar eliminar operaciones perdedoras. Si esto nos provoca que se eliminen demasiadas operaciones ganadoras penalizando la rentabilidad, podemos entonces trabajar con la gestión monetaria que hacemos intentando optimizarla siendo más restrictivos con la toma de beneficios, por ejemplo implementando cierres parciales, o directamente modificar los criterios de salida para incrementar la prudencia y disminuir el riesgo, o prolongar nuestra presencia en el mercado con tendencia a favor.
Como veis, nosotros encaramos la optimización de nuestro sistema con una estrategia determinada de eliminación y descarte pensando siempre en nuestra fórmula de EM (Esperanza Matemática).
La dualidad del mercado
El mercado es dual en muchos sentidos y tener claras esas relaciones nos ayudará mucho en desarrollar nuestras estrategias. Una de estas dualidades es la expresada por el binomio Riesgo – Rentabilidad. Su relación es inversamente proporcional por lo que sólo obtendremos más rentabilidad si asumimos más riesgo y al contrario.
Podemos ver un ejemplo claro de esto en el dimensionamiento de los stops de pérdidas. Como más alejado esté nuestro stop de la apertura de nuestra posición, más riesgo estamos asumiendo pero la pérdida será menos frecuente. Una gran parte del éxito de nuestro sistema radicará en definir de forma correcta ese equilibrio en función de diversos factores (actividad del sistema, volatilidad…)
ADAPTÁNDONOS AL MERCADO
Teniendo claros estos conceptos ya podemos empezar a desarrollar nuestro sistema pensando siempre en adaptarnos al mercado y buscando nuestra ventaja competitiva. Para ello y como primera decisión debemos escoger qué situaciones de mercado vamos a operar, definiendo desde el punto de vista del riesgo, dos configuraciones distintas:
– Movimientos en tendencia
– Movimientos de rotura
Estas dos configuraciones implican planteamientos muy distintos a la hora de desarrollar nuestra operativa. Planteamientos que afectan a características que van a ser decisivas para nuestro sistema como el apalancamiento, la frecuencia de las operaciones, nuestro porcentaje de éxito.
CICLO DE VIDA DEL DESARROLLO DE UN SISTEMA
Una vez tenemos definido nuestro objetivo dentro del mercado, pasaremos a desarrollar nuestro sistema. Para ello debemos planificar cuidadosamente cada uno de nuestros pasos. Nosotros seguimos una metodología dividida en cuatro fases para el desarrollo de un nuevo sistema:
– Backtesting. Ciclo de pruebas con datos históricos hasta tener suficiente Esperanza Matemática
– Test Demo. Test del sistema en una plataforma Demo para comprobar todas las situaciones de mercado.
– Test Real. Test del sistema en una cuenta real con poco capital para comprobar rendimientos y comportamientos en el mercado
– Producción. Puesta en marcha aumentando progresivamente el apalancamiento hasta llegar al nivel previamente definido en el sistema.
CONCLUSIONES
Como se ha podido deducir, muchas de las características que hemos definido de los sistemas automáticos son comunes a los discrecionales. La diferencia básica radica en que aplicar estas metodologías y estrategias de forma discrecional es muchas veces extremadamente complicado y exige mucha disciplina. Esa es la gran ventaja del trading automático y que debemos aprovechar. El sistema nos libera de muchas tareas que son ineludibles para el trader y nos permite dedicarnos a otras cosas para potenciar nuestro trading.
Es evidente que queda mucho recorrido, pero las máquinas hay cosas en las que son infinitamente superiores a nosotros si ejecutan el software correcto, pero todo ello necesita de una definición exacta y precisa de cada una de las partes de nuestro sistema no dejando lugar para la improvisación ni la interpretación. Un sistema nos fuerza a ser concretos y exactos en el momento de definir sus parámetros y condiciones, las cuáles ejecutará con una gran exactitud.
Por tanto, el gran peso y esfuerzo de esta tarea estará en las fases de diseño de toda la estrategia, debiendo probar una y otra vez de forma repetida cada una de las modificaciones que efectuemos hasta dar con la combinación que buscamos en nuestro binomio Riesgo – Beneficio.
Una vez desarrollada la estrategia, el trader no se convierte en espectador, sino en Gestor. Un sistema necesita de una monitorización constante de comportamiento y resultados para asegurar la máxima rentabilidad al menor riesgo.
“El trabajo del trader no finaliza al poner el sistema en marcha y acabar las fases de desarrollo, sino que en ese momento, acaba de empezar”
Una vez nuestro sistema ya trabaja en el mercado, deja de trabajar el diseñador o desarrollador y empieza a trabar el gestor o trader de nuestra operativa con un rol distinto al del trader tradicional. Debemos dejar al sistema trabajar con la plena confianza de obtener resultados a largo plazo, que es para lo que el sistema se ha desarrollado, pero monitorizando en todo momento que su comportamiento se ajuste al mostrado en el periodo de pruebas.