En X-Trader.net tenemos el placer de entrevistar a un buen amigo y seguidor de la web como es Valentín Morala aka Tiotino. En esta entrevista nos cuenta su forma de enfocar el trading, nos habla de cómo Python ha supuesto un cambio en su forma de analizar los mercados y de cómo lo utiliza en su Darwin FOO.
X-Trader (XT): Hola Valentín, la verdad es que ya era hora de entrevistarte… Cuéntanos: ¿por qué te dio por registrarte un buen día en el foro de esta web allá por 2002? ¿No habría sido mejor montar una taberna en las playas de Cádiz?
Tiotino (TT): La verdad es que siempre me habían gustado los temas de Bolsa: había hecho ya algunas inversiones, pero un día fui a un evento llamado Bolsalia y me cambió bastante mi forma de invertir en Bolsa. Fue la primera vez que probé un programa llamado Visual Chart y pensé que con mi formación y una media móvil, yo a esto le ganaría bastante dinero.. Me puse a buscar información, bastante limitada por entonces, y me encontré un foro de un tal X-Trader que por aquel entonces estaba alojado en Bolsamania, muy interesante. A partir de ahí, el enganche fue total.
Respecto a la taberna, ahora está muy de moda ser nómada digital, pero hace un tiempo estaba más de moda ir a Cádiz a vivir. En fin, los tiempos cambian y todos cambiamos.
XT: ¿Cómo definirías tu estilo de trading?
TT: Aunque he pasado por diferentes estilos, actualmente diría que mi estilo de trading es absolutamente estadístico. Con estadistico me refiero a cómo calculo la variable Y, si voy a por el rendimiento de uno, tres o cinco días. En mi caso, generalmente suelo ir a por el rendimiento de cinco días. Luego hago un tratamiento clásico de los datos, esto es, normalización o estandarización de las variables, creando así nuevas variables.
Como modelo estadístico utilizo árboles de decisión que me permiten establecer si en un momento dado debo estar largo o corto en un índice. Por supuesto, no sin antes validar todas las hipótesis del modelo, evitando de por medio los problemas de sobreoptimización.
Creo que muchas veces hacemos más hincapié en las técnicas que en los datos, y la importancia de los datos es fundamental. El proceso de estandarización o normalización es muy importante. Veo que hay muchos programas dedicados al trading que no toman la menor importancia en este proceso. También la discretización de los datos tiene su importancia. Hay una confusión muy grande entre indicadores gráficos e indicadores estadísticos y no se deberían mezclar.
Observo que hay lo que yo denomino “programas de contabilidad” (por ejemplo Metatrader es muy bueno a la hora de contabilizar operaciones o gestionar órdenes, pero no en el tratamiento estadístico) que pasan por programas de Estadística y no me parece nada normal.
Por hacer un símil, me gusta mucho esta anécdota de Ferrán Adriá: un día se dio cuenta de que en la cocina salada había diferentes formas de contabilizar los ingredientes, desde una cucharadita, una pizca, un litro, un kilogramo. etc. y aplicó lo que ya se venía aplicando en la cocina dulce, que era pesar los ingredientes. Esto le permitió hacer siempre los mismos sabores y texturas. Pues bien, en el trading sucede un poco lo mismo: el porcentaje sería nuestro peso, y el porcentaje no se mide en euros ni en dólares: el CAGR se calcula porcentualmente, lo mismo que el Máximo Drawdown o el VaR, mientras que el ratio de Sharpe se calcula como CAGR/Desv_Típica. En Metatrader u otras plataformas no se calculan estos datos, o bien lo hacen de manera indirecta; lo que os decía, son meros programas de contabilidad.
XT: ¿Trading automático, discrecional o ambos? ¿Por qué?
TT: Yo solo realizó aquel trading que me permite escribir las estrategias con reglas. Esto conlleva que puedo mejorarlas y por tanto establecer diferentes hipótesis de comportamiento. Este proceso de mejora es la base del método científico y también de nuestro éxito.
XT: ¿Cuáles serían las estadísticas de un sistema ideal?
TT: El sistema ideal es aquel que predice, según el método científico. Para mí no es tan importante la estadística en sí, aunque es verdad que debemos estar atentos a ella, pues lógicamente no admitiremos grandes drawdowns o grandes volatilidades en la curva de nuestra equity.
Para que se entienda mejor: un modelo puede tener malos años pero posee capacidad predictiva, como puede ser una estrategia basada en un cruce de medias, y en cambio no tener grandes estadísticas. Y lo mismo puede suceder al contrario: un sistema puede tener unas magníficas estadísticas y no predecir. Esto es, lo que viene a ser un falso positivo (o, más bien, un falso negativo :D).
Ahora bien: ¿qué quiero decir con que un sistema predice? Básicamente que gane dinero, pero además debe presentar un ratio de Sharpe mayor de 1 al menos en el período de entrenamiento y test. Otros ratios como el CAGR y Máximo Drawdown dependen del Value at Risk con el que trabajes. Para un Value at Risk del 10% te diria que un 30% en CAGR y en torno al 20% en el Max Drawdown sería estupendo. Todo ello considerando un período entre entrenamiento y test de al menos 15 años.
XT: ¿En qué mercados y productos operas habitualmente?
TT: He operado de todo: acciones, futuros, opciones… Pero últimamente solo opero el Nasdaq en CFD. Creo que los futuros no los volveré a tocar, por su excesivo riesgo.
XT: Cuéntanos un poco acerca de tu equipo y el software que utilizas tanto para el desarrollo de sistemas como para ejecutarlos.
TT: Tengo un equipo bastante sencillo, con un procesador de 4 núcleos, 4 Gb de RAM y disco duro SSD. El sistema operativo que uso es Linux Ubuntu y el lenguaje con el que hago todo es Python. Las librerías que más utilizo en este entorno son Pandas, Numpy, SciKit y Matplotlib. También utilizo Docker y aplicaciones en la nube como Notebooks.ai. Precisamente ahora mismo estoy en el proceso de trasladar todo a la Nube.
A este respecto, no creo que para hacer trading algorítmico sea necesario un gran equipo, pero sí conocer partes de la ingeniería de datos como bases de datos, principamente SQL (aunque yo trabajo a base de CSV), servicios en la Nube como Docker (en mi blog explico cómo usarlo), Git (para el control de versiones) y aplicaciones de Dashboarding (principalmente Streamlit y Flask).
La correspondencia entre el mercado y nuestra simulación es vital (es lo que yo llamo “ingeniería de mercado”). Con ello, me refiero a que sistemas que ganan dinero de forma simulada lo puedan perder en real, ya sea por problemas de comunicación de las órdenes o por aumentos de los spreads.
He visto multitud de sistemas que en el último segundo de una barra, calculan una media, un stop, una limit, un RSI… y sobre esa información envían una orden al mercado. Muchas veces el mercado ya se ha ido. Esto ocurre de manera continua en la Fórmula 1 con los simuladores, que no se comportan como en real. En mi caso, calculo mis órdenes con mucha anterioridad a la hora de ejecutarlas, así evito este tipo de situaciones.
XT: ¿Cómo es tu día a día a la hora de enfrentarte a los mercados?
TT: Solo opero en diario, asi que no necesito estar pendiente del mercado y puedo optar al chiringuito de la playa. Con estar a las 22.00 h. enfrente de la pantalla del ordenador para meter órdenes es suficiente. El resto del tiempo lo dedico a aprender, programar (estoy estudiando ahora la cointegración en Forex) y proyectos de investigación que me propongo (he realizado diferentes proyectos de fondos sobre valores del Ibex, Cac 40, Nikkei 225, largo y corto en el Ibex, cointegración, etc.)
XT: ¿Cómo controlas el riesgo en tu trading? ¿Qué reglas o algoritmos de gestión monetaria utilizas habitualmente?
TT: Aplico el VaR 95, o distribución de los rendimientos mensuales, al 10%. Esto implica que mi peor mes no irá más allá del 20% y me permite controlar el riesgo moldeándolo vía capital. El mayor riesgo que tenemos es que un sistema esté roto, de ahí que incluya en su lógica una regla para que deje de operar si es necesario.
La gestión monetaria te la hace el VaR 95, manteniendo siempre el mismo riesgo. Esto obliga a ir aumentando el número de contratos según va creciendo nuestra equity, por lo que necesariamente tengo que operar en instrumentos que permitan crecer el número de contratos fácilmente, como ocurre con Forex y CFDs, con los que puedo pasar de 2 lotes a 2,01 lotes. Si operas en futuros esto es más complicado pues para pasar de 2 a 3 contratos debes de ganar un 50%.
XT: ¿Qué pasos sigues a la hora de diseñar una estrategia de trading? ¿Algún consejo o truco especial para mejorar los resultados de un sistema?
TT: Más o menos los pasos que sigo serían los siguientes:
- Lo primero recomiendo leer a los clásicos, tratando de buscar la sencillez.
- Aplicar siempre el método científico (entrenamiento y test)
- Poner especial énfasis en el tratamiento de los datos: ¡a nadie se le ocurre mezclar peras con manzanas!
- Optimizar lo menos posible: cuando veo que la fuerza de un sistema se debe a que ha sido sobreoptimizado, me genera multitud de dudas aunque pueda funcionar.
- Si sale todo perfecto es que seguramente algo está mal (por ejemplo, por una filtración de futuro).
- Tener un solo sistema sobre un instrumento es una invitación a que todo vaya mal.
- Por último un apunte personal: la descorrelación no existe, es solo un mito.
XT: Sabemos que eres todo un fanático del lenguaje Python, así que dinos: ¿por qué crees ese lenguaje es mejor que otros (i.e. R) para desarrollar sistemas de trading?
TT: Python o R no dejan de ser al final una herramienta. Lo que nos permiten es mejorar la estrategia, esa es la importancia. Me inclino por Python por la claridad a la hora de leer código y facilidad a la hora de aprenderlo. Ambos permiten hacer cálculo vectorial y me permiten hacer multitud de análisis en menos de un minuto. Con otros programas los análisis son interminables en el tiempo (lo que digo, son programas de contabilidad).
XT: ¿Qué es lo que más te gusta del trading? ¿Y lo que menos?
TT: Ganar dinero no es divertido; en cambio, perderlo, no veas como sube la adrenalina. A todos nos ocurre seguro. El trading es una realidad paralela dentro de otra realidad.
XT: ¿Qué opinas del impacto de la psicología en el trading?
TT: La emoción es importante en todos nuestros ámbitos, pero en mi caso es menor, pues al ser trading algorítmico, la emoción se devalúa.
XT: Todo trader se ha arruinado alguna vez o ha pasado por un momento realmente difícil, en el que ha estado a punto de perder hasta la camisa. Cuéntanos cómo fue ese momento en tu caso.
TT: He creído y sigo creyendo en el vellocino de oro, sobre todo cuando empecé en esto del trading. Y si bien no me he arruinado, si lo comparamos frente a las expectativas que tenía, ha sido un colapso total. Por supuesto, no os voy a engañar: al igual que todos me he fundido alguna que otra cuenta. Sin duda, no olvidaré el el 8-8-8 (8 de agosto de 2008): estaba viendo las olimpiadas de Pekín y, de repente, empezó a bajar el EURUSD. Operaba con un sistema de grid trading y de repente todo se acabó.
Sobre todo esto, pienso que hay dos formas de arruinarse en el trading: una por un mal sistema (poco probable, dale la vuelta y tienes un gran sistema) o por no tener un objetivo de riesgo (mucho más probable).
Recuerdo de nuestras famosas kedadas que si no estabas en un famoso broker no eras nadie. Abrías una cuenta, depositabas 10.000 € y operabas apalancado el futuro del Eurostoxx; en cuanto tenías un poquito de drawdown, ya tenias que poner más dinero.
XT: Aunque algunos no lo sepan, eres el creador del Darwin FOO. ¿Qué nos puedes contar sobre su funcionamiento?
TT: FOO es la combinación de 4 sistemas en el Nasdaq. El período de entrenamiento va desde el año 2000 a 2016 y de test entre 2017 y 2018. Tiene un Sharpe en torno al 1,5 y para un VaR 95 del 10% estaríamos hablando de un CAGR en torno al 50% y un Drawdown del 25%. Estos valores en Darwinex serán menores debido al gestor de riesgos de este broker.
Lleva un año en real con un CAGR del 24% y Drawdown del 8%. Podría decirse que se trata de un fondo de alta rentabilidad y fácil comprensión para cualquier persona. Podéis obtener las estadísticas actualizadas en mi web tradingpython.blogspot.com.
XT: ¿Cómo te ves dentro de 10 años en tu relación con el trading? ¿Qué proyectos tienes en mente?
TT: Malamente, pues con lo del Covid ¡me van a cerrar el chiringuito! La verdad es que Python me ha permitido dar un paso adelante en mi desempeño en el trading; me veo como un nómada digital, ligado al trading, en una furgoneta o en una bicicleta, cerca de un chiringuito…. Los proyectos que tengo en mente serían de asesoramiento de inversiones, creación de fondos, de nuevos productos, etc.
XT: ¿Cuáles son tus películas y libros de trading favoritos?
TT: Los clásicos como Richard Donchian, Nicolas Darvas, Welles Wilder, Larry Williams, Lawrence Connors, Howard Bandy, etc. son fundamentales pero no iría más allá. Prefiero libros de Estadística enfocados al tratamiento de datos y creación de variables. Ah y os propongo este repositorio sobre Data Engineering: https://github.com/andkret/Cookbook.
En cuanto a películas, siempre nos gustaría ser un El Lobo de Wall Street, pero prefiero un clásico como Big: siempre recuerdo cómo el protagonista descubre que están haciendo mal los juguetes.
También me gusta el pequeño juego de predicción que plantea Regreso al Futuro: muchos de los gadgets inventados para la película han resultado falsos; en cambio, en el malo de la película, acierta: ¡es clavado a Trump! Claro que este acierto puede ser fruto de la casualidad.
XT: Danos una recomendación especial para los lectores de X-Trader.net.
TT: Primero quiero pedir que seamos fieles a esta web y a la labor de su creador Alberto Muñoz, ¡gracias amigo!
También que potenciemos aquellas comunidades que permiten crecer mediante el intercambio de ideas. Hay mucha gente reacia a que les copien o que les digan que están haciendo algo mal. Copiar todos copiamos, pero el que otros nos digan que no estamos haciendo lo correcto tiene mucha importancia. Pensemos en el caso de la Fórmula 1: dicen que Honda ha gastado más dinero equivocándose, y que habría pagado fuertes sumas de dinero por que le dijeran a sus ingenieros en qué se equivocaban para ahorrarse esas pérdidas. De ahí la importancia de estas comunidades.
En Madrid se ha creado un grupete muy majo entorno a las kedadas de X-Trader.net, pero hay otros proyectos realmente interesantes como son Robotrader y sus conferencias, la comunidad de Rupertacho, el grupo de Telegram de Paduel o proyectos como los de Ferran Parareda y sus podcasts de Tecnología y Trading, que me parecen de diez.
Incluso recuerdo las FXStreet Sessions organizadas por tí, junto a FXStreet y XTB, que aunque tenían obviamente tenían un objetivo comercial, me parecía un proyecto interesantísimo para conocer gente metida en esto del trading.
Os animo a que participeis o creeis otras nuevas, seguro que no os arrepentis.
XT: Tus pensamientos finales sobre el trading y la despedida de rigor.
TT: El trading es la vida misma, vive el trading. Muchas gracias a ti Alberto y también a mis inversores en FOO. Por supuesto, me tenéis a vuestra disposición en el Foro y en Twitter como @tiotino.
XT: Gracias a ti por esta excelente entrevista, Valentín.