Acceder

Trading con Inteligencia Artificial – Mi experiencia y resultados

4 respuestas
Trading con Inteligencia Artificial – Mi experiencia y resultados
Trading con Inteligencia Artificial – Mi experiencia y resultados
#1

Trading con Inteligencia Artificial – Mi experiencia y resultados

 
Hola!  
  
Mi nombre es Joaquín y desde hace más de 15 años trabajo como ingeniero en sistemas para el sector financiero. Tengo una empresa de software donde desarrollamos tecnología principalmente para bancos, fondos de inversión, brókers, etc., especialmente en áreas como IA y Big Data. 

En los últimos años he estado desarrollando una plataforma de inteligencia artificial para hacer trading en acciones de Estados Unidos y me gustaría compartir mi experiencia para aquellos que tienen dudas acerca de cómo funciona esta tecnología, qué beneficios o problemas tiene, así como resolver cualquier duda que pueda surgir al respecto. 
   

Implementación de Inteligencia Artificial en Trading 

Son diversas las opciones que existen para implementar I.A., puntualmente, hablaré de mi caso concreto el cuál llevo 3 años depurando a base de prueba y error hasta llegar a un resultado satisfactorio. 
 
Actualmente, utilizo un modelo de Inteligencia Artificial basado en Llama-2 de Meta y, como "segunda opinión", la API de GPT de OpenAI. 
 
El modelo de IA lo tengo preentrenado según mi estrategia y opera directamente en Interactive Brokers vía API. Las funciones fundamentales del modelo son: 
 
Monitorear en tiempo real el mercado 
El modelo recibe actualizaciones de precios, ratios y noticias en tiempo real y los procesa según la estrategia para detectar oportunidades de compra o venta y ejecutar la orden correspondiente. Esto me permite detectar y gestionar nuevas posiciones o cerrar las existentes, aunque hay algunos pasos adicionales para calificar adecuadamente un trade. 
 
Monitorear la exposición de la cartera 
El modelo procesa y calcula constantemente la exposición de la cartera y el riesgo, así como los resultados obtenidos. Esto permite determinar el tamaño adecuado de una nueva posición basado en el riesgo y la composición actual del portafolio y gestionar las posiciones abiertas y su rendimiento. En lugar de usar Take Profit o Stop Loss, la IA actúa como un trailing stop, tomando ganancias o asumiendo pérdidas según el contexto actual (por ejemplo, al conocerse una nueva noticia positiva y mantener una posición, o negativa y cerrarla). 
 
Calcular estadísticas, ratios y precios 
La IA calcula constantemente los ratios y estadísticas del mercado. Aplico distintas fórmulas matemáticas para dar soporte técnico a los fundamentos anteriores y determinar con precisión los precios de compra o venta, por ejemplo, midiendo el volumen promedio operado en distintos períodos para determinar el VWAP, calcular la variación media histórica del precio del activo, su relación con los índices, etc. 
 
Entrenar el modelo sobre los resultados 
Paralelo al modelo principal, tengo otros dos modelos de IA operando en demo. El primero aprende en tiempo real sobre las posiciones tomadas por el modelo principal y tiene libertad para modificar la estrategia y tomar decisiones. Entrenar este modelo en simultáneo me permite aprovechar la capacidad de la IA de mejorar según la experiencia y luego, después de depurar los resultados, implementar mejoras en mi estrategia principal. El segundo modelo simplemente implementa lo aprendido para probar en un escenario simulado si la nueva estrategia genera mejores resultados que mi estrategia principal. 

Aunque el trasfondo y el funcionamiento son bastante complejos, en la práctica se reduce a determinar si algún evento fundamental podría afectar el precio de una acción, conocer todo el histórico de sucesos y su efecto para medir el impacto potencial que tuvo, tiene o podría tener, y calcular las fórmulas acorde a mi estrategia y la exposición actual de la cartera para decidir si comprar o vender acciones, a qué precio hacerlo, qué cantidad y cuándo tomar ganancias o asumir pérdidas. 

La estrategia de inversión para entrenar un modelo de Inteligencia Artificial 

Sin duda, considero la estrategia de inversión como la parte más crítica para un modelo exitoso. Los modelos de Inteligencia Artificial, en la mayoría de los casos, vienen entrenados genéricamente (como ChatGPT, el cual técnicamente es un LLM y está diseñado y optimizado para conversaciones, no para trading o cálculos). 
 
Esto dependerá tanto de los conocimientos o capacidades técnicas como de los recursos económicos de cada uno. Crear una IA desde cero y entrenarla, y que el resultado sea competitivo frente a las opciones actuales, requiere una capacidad técnica y económica que, en principio, no equilibra la balanza para el propósito
 
Independientemente de si usamos una IA como LLama, GPT, Watson, etc., u optamos por construir algo desde cero, los resultados dependerán en gran medida de los parámetros (el input) mediante los cuales la entrenemos. El equivalente en ChatGPT (y las IA conversacionales) es el prompt; por ejemplo, Dall-E puede crear imágenes e ilustraciones de todo tipo, pero no es lo mismo instruirlo a "crear un logo" que especificarle "Crea un logo para mi negocio de inversiones llamado X, en el cual predomine el color azul marino, utilice una fuente clásica y un estilo conservador". Los resultados que obtendremos serán completamente distintos; en el primer caso exprimiendo la "creatividad" de la IA, y la "capacidad" en el segundo. 

Mi estrategia de inversión 

En términos generales, mi estrategia de inversión considera todos los aspectos mencionados en la parte de implementación (fundamentos macro y micro, acción del precio, estadística), junto con los parámetros de riesgo y exposición adecuados para mi perfil, además de algunas fórmulas propias que he desarrollado a lo largo de los años a base de prueba y error. 
 
En lugar de utilizar indicadores técnicos tradicionales, calculo directamente las variables relevantes para mi estrategia basándome en el histórico de precios. En lugar de usar Take Profit o Stop Loss, mido el impacto en tiempo real de noticias, eventos y la acción del precio, volumen y el libro de órdenes (y lo comparo con todo el histórico) para ajustar el precio de salida. Para determinar qué acciones comprar, me centro en dos factores: el precio actual en relación con el histórico y los eventos que afectaron, afectan o pueden afectar positiva o negativamente al mismo. También calculo el retorno potencial que puede generar y si el riesgo es adecuado para mi portafolio. 
 
En resumen, aplico simplemente la regla de "comprar barato, vender caro". La verdadera clave consiste en saber con la mayor exactitud posible cuándo algo está barato y cuándo está caro. 

Un detalle es que solo tomo posiciones de compra y nunca en corto; esto es opcional y depende del riesgo de cada uno. Otro detalle es que el 85% de las posiciones no permanecen abiertas durante más de 4 días. En promedio, mantengo una posición durante 2 días y es en este período donde genera la mayor rentabilidad.

Los resultados y estadísticas 

Resultados de operar con Inteligencia Artificial
Resultados de operar con Inteligencia Artificial
 
Rentabilidad 
Durante la última semana (desde el viernes 3 de mayo de 2024 al viernes 10 de mayo de 2024), obtuve una rentabilidad neta del 14.86% sobre posiciones cerradas. Si contemplo las posiciones que mantengo abiertas, la rentabilidad supera el 23%. Esta rentabilidad está medida en relación al capital de $100,000 y no a la rentabilidad sobre la inversión efectiva, la cual es considerablemente superior. El rendimiento del S&P 500 para el mismo período fue del 1.85%. 
 
Operaciones realizadas y rentabilidad por posición
Operaciones hechas por Inteligencia Artificial
Operaciones hechas por Inteligencia Artificial
Del total de posiciones, ordenadas por rentabilidad, el mejor rendimiento de un trade fue del 75.41% en ALIT, seguido por el 61.96%, 55.28% y 30.04% en BKKT, PLTN y BNED respectivamente. 
 
Ratios del portafolio 
-   Ratio Sharpe: 17.5 
-   Ratio de Sortino: 255.41 
-   Desviación estándar: 2.6% 
-   Desviación a la baja: 0.18% 
 
Estos ratios reflejan la excepcional relación rentabilidad-riesgo al gestionar el portafolio. 

 

Los aspectos a mejorar 

Un punto débil actual tiene poco que ver con la estrategia o la Inteligencia Artificial, sino más bien con mi propia psicología y el temor a cambiar algo que funciona bien. 
 
Desde la perspectiva de obtener aún más ganancias, el problema que encuentro hoy en día es perder muchas oportunidades por la determinación taxativa del precio de entrada. En otras palabras, pierdo la oportunidad de ganar más dinero (y me ahorro algunas pérdidas) debido al precio límite de compra que establezco al abrir una nueva posición, que muchas veces la acción nunca alcanza. 
 
Si bien actualmente tengo desarrollada una versión mejorada en este aspecto corriendo en demo, comparar los modelos para hacer un cambio implica tiempo y paciencia. El backtesting es una excelente herramienta para probar y depurar distintas estrategias, sin embargo, la precisión real se obtiene operando el mercado en vivo. Probar estrategias en tiempo real implica afrontar el tiempo necesario para exponerse a la infinidad de situaciones y períodos del mercado, y no solo de la acción particular. 
 
Otro aspecto que puede mejorar es el de asumir algo más de riesgo y tomar posiciones más grandes. La mayor evidencia de esto surge al comparar el rendimiento sobre mi cuenta en el período (+23%) respecto al rendimiento por lo efectivamente invertido en el mercado (donde ALIT, que rentó más del 73%, representó solo el 0.68% de la cartera). Si estas 19 posiciones con mejor rendimiento hubiesen tenido un volumen equiponderado (en torno a los $5k sobre $100k), hubiesen rentado un 23.61%, promediando ~$1k de ganancia por posición. Su renta actual para mi portafolio representó poco más del 5%, aportando ~$300 en promedio; la diferencia es abismal, pues el 77% de la ganancia potencial se perdió por una mala ponderación o baja exposición al riesgo. 
 
Otro aspecto importante son los costos fijos por tener funcionando los modelos de inteligencia artificial y las limitantes propias del capital con el que opero, un ratio que se vuelve rentable a medida que la cuenta incrementa su volumen y los ingresos son superiores. 
 
Mantener funcionando los modelos de IA, más los costos de las APIs que proveen precios, fundamentales, noticias, etc., representan mensualmente unos ~$7,500 dólares (sin tener en cuenta el capital humano, ya que soy quien desarrolla y supervisa el modelo a resultado). 
 
Finalmente, hay dinero en juego; esto se traduce en supervisar durante todo el horario del mercado (incluyendo el pre-market y after-market), posiciones, decisiones y el funcionamiento de la Inteligencia Artificial. 
 
En el camino recorrido para llegar a este resultado, han fallado muchas cosas que me han hecho perder dinero, un "costo de aprendizaje"; desde errores propios de programación hasta escenarios o situaciones imprevistas (como por ejemplo, un fallo en la API de precios), las cuales requieren estar alerta para tomar acción inmediata. Esto implica estar 16 horas al día supervisando cada movimiento y el estado de todos los servicios que dependen del modelo; tarea que definitivamente me apasiona y disfruto hacer. 
 
Hoy en día mis intervenciones son nulas y, si bien continúo monitoreando el funcionamiento mientras el mercado permanece abierto, aprovecho para trabajar en las mejoras sobre los modelos secundarios. Obviamente, hay momentos en los que no estoy disponible; en estos casos, la IA, en lugar de tomar decisiones, me notifica y yo tomo la acción manualmente desde mi teléfono.

Las ventajas 

Realmente, las ventajas de hacer trading con Inteligencia Artificial son casi infinitas, y los problemas que tengo están relacionados más con mi propia naturaleza humana que con los resultados. 
 
Como principal ventaja, el poder entrenar a un modelo que analice miles de datos constantemente, realice cálculos y tome conclusiones para decidir en fracciones de segundos, supera cualquier capacidad humana conocida y brinda una ventaja competitiva sin precedentes. 
 
Lo que me motivó a iniciarme en el trading hace ya 13 años fue la idea de que la tecnología en algún momento podría superar al mejor trader del mundo. Esta idea nació mientras programaba un robot para jugar ajedrez y me encontré con un artículo sobre Deep Blue vs. Kasparov. 
 

El futuro 

Desde mi perspectiva, la IA reemplazará completamente la mayoría de las especialidades humanas, y será mucho antes de lo que imaginamos. Médicos, abogados, científicos, ingenieros y diseñadores dependerán de la inteligencia artificial especializada para desempeñar sus tareas cotidianas. Mensualmente, se publican cientos de nuevos artículos científicos con investigaciones y avances en las distintas materias, y estar a la vanguardia requeriría capacidades sobrehumanas. A la IA le tomaría solo unos minutos procesar y entender toda la nueva información disponible. 
 
En el mercado financiero, la IA ha asumido roles tanto pasivos como activos, que van desde el asesoramiento o la prevención hasta la gestión activa de miles de millones de dólares. 

Conclusión final 

Los resultados de operar con Inteligencia Artificial hablan por sí solos; las ventajas y capacidades respecto a hacer trading por mi cuenta son determinantes. 
 
Sin dudas, queda un largo camino por recorrer, al menos en mi caso. Comencé a operar en cuenta real con el modelo desde noviembre del año pasado, empezando tímidamente e incrementando la exposición gradualmente. 
 
Las limitaciones actuales generan una gran barrera de entrada al público general, incluso disponiendo de los conocimientos y la capacidad técnica necesarios, el costo de los recursos que podrían mejorar mucho más estos resultados es muy elevado. 
 
Al final del día, se trata de ganar dinero, y los resultados económicos que he obtenido han superado ampliamente mis expectativas, aunque la satisfacción principal proviene de haber consolidado una estrategia sólida, capaz de generar resultados tanto en mercados alcistas como bajistas, siendo completamente independiente de la coyuntura. 
 
Si estás interesado en implementar Inteligencia Artificial en tus operaciones y no sabes por dónde comenzar, espero que este post sea de ayuda para entender las implicancias de hacerlo. 
 
Gracias por haber leído sobre mi experiencia. Estaré encantado de conocer tu opinión o comentarios, o responder sobre cualquier duda (incluso técnicas) que puedas tener. 
 
Saludos, 
Joaquín.

#2

Re: Trading con Inteligencia Artificial – Mi experiencia y resultados

Buenas,  Joaquín.
Excelente post. Muchas gracias por compartir la información!

Permíteme una pregunta de aprendiz de machine learning con unos conocimientos muy limitados de informática (a ver si me puedes responder en plan divulgativo o con un ejemplo).

¿Cómo se usan esos modelos creados para gestionar lenguaje o imágenes para predecir patrones o hacer cálculos numéricos?

Los modelos que yo he probado son bastante cerrados (árboles de decisión y redes neuronales sencillas). Tú tienes que mojarte aportando las variables que crees importantes y el modelo las usará para aprender, si realmente lo son.
¿Pero esos modelos que usas son completamente abiertos, no? ¿Cómo se diseña o configura uno de esos modelos? ¿Tú le propones también las variables y le dices búscame tal cosa o tal otra?

Como ves, mis conocimientos aún son bastante limitados. Pero te agradezco de antemano la respuesta.

PD: Esto de la IA lo va a cambiar absolutamente todo. La sociedad (y los políticos) aún no son conscientes del cambio que se nos viene encima...
#3

Re: Trading con Inteligencia Artificial – Mi experiencia y resultados

Hola Franchico, gracias por tus comentarios y por leer sobre mi experiencia.

Respondiendo a tu pregunta:
En efecto, los modelos de inteligencia artificial, como los que mencionas para gestionar lenguaje o imágenes, funcionan de manera un poco diferente a los modelos más tradicionales como los árboles de decisión. Por ejemplo, las redes neuronales profundas pueden manejar una gran cantidad de datos con mayor dinamismo.

No quise ser demasiado técnico en mi post, pero aprovechando tu consulta, donde realmente actúa la IA como tal es en el análisis del comportamiento y sentimiento social. Lo demás son redes neuronales o simplemente código para realizar cálculos matemáticos.

En cuanto a la configuración de estos modelos, no son completamente abiertos en el sentido de que pueden hacer cualquier cosa sin orientación. Necesitamos definir lo que se llama la "arquitectura" del modelo, que es como un plano que guía al modelo sobre cómo procesar la información. Luego, como mencionaste, sí, nosotros proponemos las variables y ajustamos el modelo para que busque patrones específicos o realice ciertos cálculos.

En mi caso concreto, partiendo de la base de modelos como Llama o GPT, los he entrenado con todos los datos fundamentales y técnicos sobre las propias empresas y el mercado, lo que abarca una gran cantidad de información, y el resultado es susceptible a ello.

Por ejemplo, imaginemos el caso de AAPL:
Obtenemos todas las noticias, menciones, posts, información de redes sociales y foros, datos financieros, técnicos, calificaciones, etc., sin limitarnos a la compañía y extendiendo la red de información a todo lo relativo a su CEO, su equipo, el contexto macroeconómico, sus competidores, sus proveedores, y más.

Realmente la magnitud de la información parte desde algo muy simple y rápidamente toma dimensiones abismales, donde el propósito es interpretar y "entender" la relación del conjunto de datos para un momento preciso en el tiempo (tick-by-tick), encontrar los patrones y aplicar redes neuronales para definir y consolidar los resultados.

Una vez finalizado el aprendizaje, con el flujo de datos nuevos, podemos calificar el posible impacto de la información y predecir el comportamiento potencial.

Este método es el que a mí personalmente me da resultados, el cual he depurado a base de prueba y error. Las formas y los métodos para trabajar con IA o ML son muy variados, y seguramente haya fórmulas más simples o mejores. Considero aún estar lejos de un sistema con capacidades verdaderamente competitivas (limitaciones propias de mi conocimiento o habilidad, limitación de mi presupuesto, etc.).

En la práctica, absolutamente todo lo procesado lo califico con un puntaje en una escala del 1 al 100, por ejemplo, la información que obtenemos de Bloomberg está mejor calificada que la información de un servicio de prensa; el autor de la información también determina el puntaje, incluso la gramática de un tweet o el impacto en otros casos, relacionados o no.

La sensibilidad del modelo a la información es muy alta, en términos generales: mayor cantidad de información = mejores resultados a largo plazo = menor sensibilidad a eventos presentes.

Espero haber aclarado tus dudas, me gustaría finalizar con lo siguiente:

En todos estos años he trabajado sobre muchas librerías con distintos métodos y aproximaciones y los resultados a largo plazo generalmente han sido buenos, sin embargo, hasta el modelo actual no había logrado resultados consistentes que valgan el riesgo de no invertir directamente en el S&P 500. Dicho esto, la IA simplemente es un complemento que ayuda a determinar los momentos de entrada y salida, lo que realmente marca la diferencia es la combinación con las matemáticas detrás de la estrategia, lo cual es simple código Python y estadística.

PD: Comparto tu opinión respecto a la IA, pienso que la sociedad no es consciente aún de la magnitud e impacto que tendrá (y está teniendo) en nuestras vidas, y que aún no estamos preparados para asumirlo.  

#4

Re: Trading con Inteligencia Artificial – Mi experiencia y resultados

Gracias por la explicación.
Con el ejemplo de Apple ya me he hecho una idea de todo del proceso. Y del curre que te habrás pegado para poder depurar y trabajar con datos tan heterogéneos...

Desde luego, los resultados que has obtenido esta semana han sido impresionantes. Si consigues mantenerlos a la mitad de la mitad durante el resto del año, puedes haber dado con un buen filón!

Un saludo.
#5

Re: Trading con Inteligencia Artificial – Mi experiencia y resultados

Me alegra leerlo!

Imagina que mi capacidad de procesamiento de datos actual podría ser multiplicada x100, por lo cuál, aún estoy lejos de estar satisfecho técnicamente. 

Espero los resultados acompañen, desde hace ya algunos meses vengo con retornos positivos, aunque, semanalmente implemento nuevas versiones con pequeños cambios que me llevaron hasta este último mes dónde obtuve los mayores beneficios. 

Mañana estaré trabajando con una nueva versión -alternativa- desde el pre market, e iré compartiendo en este thread los resultados (buenos o malos). 

Saludos!