logo

La misión de Quantpedia es procesar la investigación académica financiera de una forma más fácil de usar, para ayudar a cualquiera que busque nuevas ideas de estrategias cuantitativas y algorítmicas. Nuestro equipo está formado por miembros experimentados con diferentes antecedentes: financieros, matemáticos y traders, combinados con miembros con un sólido conocimiento técnico y de TI.
Quantpedia / Quantpedia.com

 

El tiempo vuela. Han pasado más de seis meses desde nuestro último artículo, y medio año en un campo de rápido desarrollo como la inteligencia artificial parece diez veces más. ¡Así que revisaremos nuestro artículo y probaremos algunos nuevos trucos! ¿El chatbot de OpenAI ha hecho alguna mejora significativa? ¿Se puede usar ChatGPT como motor de backtesting? ¡Retomamos nuestra asignación de activos de paridad de riesgo y volvemos a probar los límites del desarrollo actual de IA!

Resumen del vídeo:

Introducción

Comenzaremos con una breve recapitulación, además de que crearemos una cartera de referencia en Excel para compararla con los resultados que obtendremos de la IA. ¡Vamos a sumergirnos directamente en ello!

Datos

Nuestra fuente de datos es Yahoo Finance. Utilizamos las columnas Fecha y Cierre de Adj de los datos descargados que tienen en cuenta los splits y los dividendos. Tenemos dos archivos separados por comas, que podemos editar aún más con el software de hoja de cálculo que elijamos. Como se mencionará más adelante, utilizaremos datos de dos activos:

Justificación

Queremos que la IA pruebe una simple asignación de activos de paridad de riesgo:

  • El universo de inversión consiste en
    • SPY y
    • ETF GLD.
  • Cuando asignamos un 50% de peso a cada ETF y lo reequilibramos mensualmente, entonces tenemos una asignación de activos de referencia igualmente ponderada.
  • Queremos que una IA construya una mejor estrategia de asignación de activos que la igualmente ponderada, por lo tanto:
    • Omitimos parte del conjunto de datos (un año [agosto de 2017 a agosto de 2018]) y
    • deja que la IA sugiera mejores métodos de ponderación. Luego elegimos la paridad de riesgo inversa ponderada por volatilidad. Dejamos que AI utilice los datos de los últimos 12 meses para calcular la volatilidad de cada ETF, calcular el peso de cada ETF en la cartera para el próximo mes, realizar la prueba posterior de la siguiente estrategia de asignación de activos y calcular las nuevas estadísticas apropiadas.

Aquí está el gráfico que muestra las estrategias de asignación de activos ponderadas por puntos de referencia y la volatilidad inversa que se utilizaron como puntos de referencia para los backtest realizados por la IA:

Simple Asset Allocation Strategy

Este está hecho por nosotros los humanos. Pero, ¿podemos convencer a ChatGPT de que produzca gráficos similares y calcule las estadísticas necesarias?

Si lees nuestro anterior artículo verás como la IA se negó a enumerar más de lo posible métodos y probar una simple asignación de activos ponderada por igual. Y eso fue todo. Por lo tanto, trataremos de impulsar aún más la IA en la tarea de convertirse en un útil “analista de datos junior virtual”.

Limitaciones

Mientras escribía este artículo, el ChatGPT de OpenAI permitió compartir conversaciones completas con otras personas. Sin embargo, hemos optado por no profundizar en esta función y, en su lugar, compartir solo las indicaciones y respuestas más relevantes para mantener el artículo lo más sencillo posible. También eliminamos las respuestas redundantes y duplicadas, así como las respuestas que estaban en el artículo anterior.

Hay una última cosa que queremos mencionar antes de llegar a la parte principal del artículo. Somos conscientes de los problemas con el LLM (grandes modelos de lenguaje) y las limitaciones de la IA (inteligencia artificial) cuando se trata de resolver problemas complejos (modelado financiero). ChatGPT tiene mucha confianza en dar respuestas que no siempre son correctas. A menudo se conoce como la alucinación de los LLM. Ten en cuenta esto cuando trabajes con IA.

Análisis de asignación de activos en ChatGPT

1. Prueba con los complementos de ChatGPT

Los complementos se introdujeron gradualmente a finales de marzo de 2023 y están impulsados por aplicaciones de terceros que OpenAI no controla. Los complementos conectan ChatGPT a aplicaciones externas. ChatGPT elige automáticamente cuándo usar los complementos durante una conversación, dependiendo de los complementos que hayas habilitado. No puede seleccionar uno de los múltiples complementos para usar si habilita más de uno. El artículo introductorio lo explica mejor con una analogía. Los complementos pueden ser “ojos y oídos” para los modelos de lenguaje, dándoles acceso a información que es demasiado reciente, personal o específica para ser incluida en los datos de entrenamiento.

Picture 322 ChatGPT Plugins

Al principio, seleccionamos y probamos algunos complementos relevantes con el uso de (clasificados de los más a los menos útiles para la tarea seleccionada):

  • El complemento Polygon trae datos de mercado, noticias y fundamentos para acciones, opciones, divisas y criptomonedas de Polygon.io El complemento es útil para obtener datos financieros externos de alta calidad en el entorno de ChatGPT y nos ayuda a no confiar en los datos almacenados en algún lugar del modelo de lenguaje de ChatGPT que pueden ser muy borrosos o incompletos.
  • Savvy Trader AI tiene datos de acciones, criptomonedas y otros datos de inversión en tiempo real, y este también proporciona respuestas oportunas,
  • Statis Fund Finance promete ser una herramienta de datos financieros para analizar las acciones. Puedes obtener cotizaciones de precios, analizar promedios móviles, RSI y más. Tienen datos precisos y también han mostrado algunos resultados prometedores.
  • Quiver Quantitative, con el que se puede acceder a datos sobre el comercio de acciones del Congreso, el cabildeo, el comercio de información privilegiada y la legislación propuesta, fue de poca utilidad en esta prueba, pero sigue siendo un complemento interesante
  • El complemento PortfolioMeta afirma que da ayuda y debe usarse para analizar acciones y obtener datos y análisis de inversión integrales en tiempo real. Aún así, no lo usamos, ya que nunca fue elegido para ser utilizado en ninguna combinación.
  • TradingBro obtiene datos financieros de ChatGPT para su trading/aprendizaje: resultados empresariales, vista de analistas, DCF, detalles de ventas, operaciones con información privilegiada, etc.

El mejor uso para nosotros que encontramos fue la combinación de cualquiera de los dos

  • Polygon, Savvy Trader AI y/o Statis Fund Finance

ya que puedes habilitar tres complementos simultáneamente. Como se mencionó anteriormente, ChatGPT elige el más adecuado (no somos conscientes de los algoritmos específicos que evalúa y elige). Podemos tener algo de control sobre eso si solicitas seleccionar un complemento específico para una tarea en un mensaje enviado a ChatGPT durante tu análisis de datos.

Decidimos deliberadamente omitir las indicaciones que ya se habían utilizado en nuestro artículo anterior y centrarnos en nuevas investigaciones y respuestas.

Compartimos la transcripción seleccionada de la conversación:

Aquí, tenemos el primer detalle significativo e interesante. En nuestro artículo anterior, nos quedamos solos con ChatGPT, que se negó, además de enumerar alternativas interesantes, a hacer cualquier cálculo. Ahora, con el uso de complementos, la situación es un poco diferente:

image

Ahora, lo hace, pero necesitábamos ajustar, cuidar y dirigir ChatGPT para producir resultados deseables. Encontramos: “Calculate volatility from 12 previous months, and use it for next month and do it interatively from August 2018 to August 2021.“. Incitar a funcionar realmente de la manera que lo pretendíamos. Y lo hace muy bien:

image 1

En intentos anteriores, ChatGPT intentó calcular la volatilidad, pero la calculó erróneamente para todo el año y utilizó ese valor para cada mes, lo que dio resultados incorrectos. Como puede ver, necesitábamos regenerar las respuestas y actualizar nuestras indicaciones para afinarlas.

image 2

Y la respuesta continúa:

image 3

Además, aquí tenemos la comparación con el modelo de igual ponderación que se hizo anteriormente, incluso cuando no lo pedimos. Lo vemos como una contribución interesante, pero a veces puede ser molesto si no obtienes la respuesta que estás buscando exactamente y te distrae de tu objetivo principal.

image 4

Pero aquí viene lo que los plug-ins no pueden hacer: visualizar los resultados. Desafortunadamente, debido a que no hay un entorno de ejecución, producen código, pero no pueden ejecutarlo:

image 5

En su lugar, quiere visualizar los datos como una tabla, que no es lo que queremos, y decidimos no incluirlos aquí.

2. Análisis avanzado de datos (anteriormente conocido como intérprete de código)

Code Interpreter es un emocionante complemento a ChatGPT de OpenAI, introducido en marzo de 2023.

Todavía está en desarrollo y está marcado como una versión alfa. Dicho de forma sencilla, es un modelo experimental de ChatGPT que puede usar Python, manejar cargas y descargas, y trabajar como un intérprete de Python en funcionamiento en el entorno de ejecución con cortafuegos. Obviamente, hay algunas limitaciones, a saber, una sesión que está viva durante la duración de una conversación de chat (con un tiempo de espera superior) y las llamadas posteriores pueden acumularse unas sobre otras. Admite la carga de archivos en el espacio de trabajo de conversación actual y la descarga de los resultados de su trabajo. Así que la herramienta tiene muchas ventajas y algunas desventajas, pero eso no nos limita a probarla para el análisis estadístico de los datos financieros.

Al escribir nuestro artículo (agosto y septiembre de 2023), OpenAI lanzó su cambio de marca y lo cambió de nombre a Advanced Data Analysis (junto con el lanzamiento de ChatGPT Enterprise).

Para el análisis avanzado de datos (intérprete de código), necesitábamos cargar los datos de Yahoo Finance, como se mencionó anteriormente.

image 6

En la herramienta, puedes ver el código que produjo, y también describe muy bien el contenido del archivo.

Íbamos a someternos al procedimiento de nuevo, dándole las mismas indicaciones de nuevo para preservar la reproducibilidad con la mayor precisión posible. Y todo el proceso comienza de nuevo. Esta es la parte más importante de la conversación que proporciona respuestas a las preguntas planteadas.

image 7

Como estábamos haciendo cálculos en diferentes días, ChatGPT nos pidió que volvamos a cargar archivos de datos csv, lo que hicimos.

wckBfQu2gEF9QAAAABJRU5ErkJggg==

A continuación, hacemos una curva de equidad usando matplotlib en Python.

Finalmente, ChatGPT, en su forma de Análisis Avanzado de Datos, podría producir un código de trabajo para representar la curva de equidad y visualizar su cambio de tiempo; ¡lo empujamos e incluso pedimos un estilo de gráficos similar al de Quantpedia! Y, volià:

image 8

6542f276 d91f 46d0 a669 b756325ecd1c

Además de todo, cuando se le pide que resuma el código anterior, ChatGPT proporciona un resumen lo suficientemente justo. Así que nunca te sientes excluido cuando necesitas entender algo que hace.

Conclusión y comparación

Ahora, nos gustaría comparar nuestro intento inicial de probar la estrategia de asignación de activos con los nuevos enfoques con

  • nuevo modelo (ChatGPT 4.0),
  • nuevo modelo (ChatGPT 4.0) con el mejor uso de complementos y
  • nuevo modelo (ChatGPT 4.0) con el uso de Análisis Avanzado de Datos (también conocido como Intérprete de código)

Primero hagámoslo cuantitativamente, comparando los resultados en forma de números, y luego escribamos nuestras impresiones basadas en probar cada opción.

Evaluaremos las carteras de volatilidad igualmente ponderadas e inversa.
Igual de ponderación
CAR p.a. Volatilidad p.a. Ratio de nitidez creación de la curva de capital
Cálculo manual de Excel
16,37% 12,18% 1.34 sí, manual
ChatGPT 3.5 (artículo anterior)
16,25% 9,15% 1.49 no
ChatGPT 4 (con complementos)
aproximadamente los igual solo genera código
ChatGPT 4 (plug-ins) 16,68% 12,37 % 1.26 solo genera código
ChatGPT 4 (ADD) 16,557% 12,18% 1.34 sí, automático
Volatilidad inversa
CAR p.a. Volatilidad p.a. Ratio de nitidez
Cálculo manual de Excel
15,67 % 12,04 % 1.30
ChatGPT 3.5 (artículo anterior)
rechazado a Calcular
ChatGPT 4 (con complementos)
rechazado a Calcular
ChatGPT 4 (plug-ins) 16,12 % 12,12 % 1.26
ChatGPT 4 (ADD) 1.30

Podemos ver que para ambas carteras, el uso de análisis avanzado de datos nos da los resultados más cercanos a la realidad calculados de forma independiente. Sorprendentemente, los resultados de nuestro artículo anterior, aparte del cálculo de volatilidad perdido, no son tan malos para una cartera igual ponderada, pero, por supuesto, no produce ningún resultado para el método de ponderación basado en la volatilidad, aparte de las sugerencias del proceso de cálculo.

Cada solución tiene sus propias ventajas y desventajas. Hagamos un resumen:

Enfoque manual: Cuando haces las cosas manualmente, es lento, pero si sabes lo que quieres lograr, puedes llegar allí con un control total sobre el proceso de análisis y con la oportunidad de solucionar posibles problemas.

Eso fue hasta ahora. Pero aquí está el futuro. ¿Qué pueden aportar los LLM?

  1. Los viejos modelos de GPT (incluidos los pre-3.5) no pueden con cálculos un poco más avanzados, como el uso de diferentes métodos de ponderación en su estrategia de asignación de activos. Pero podemos verlos como lo suficientemente “creativos” como para darle buenas ideas de lo que podría ser bueno probar en su análisis de datos.
  2. Nuevos modelos GPT (post 4.0): su imaginación está mejorando y puede ayudarlo a pensar fuera de la caja aún mejor; el uso de varios complementos les da la capacidad de usar datos de varias fuentes que se combina con una mejor comprensión rápida, lo que los hace capaces de procesar varias consultas más difíciles, y pueden hacer tales ponderaciones de volatilidad y demás. Después de numerosos intentos, encontrará las secuencias rápidas para dar a ChatGPT para producir el resultado deseado.
  3. Análisis avanzado de datos: como su nombre podría sugerir, esta es probablemente el complemento más avanzado al LLM de OpenAI y es adecuado para realizar tales tareas. Además de eso, debuga, personaliza y ejecuta el código Python que produces. Incluso puedes ver el código y ver si está haciendo el trabajo previsto.

Entonces, ¿cuál es la conclusión final? Hasta ahora, acabamos de realizar un análisis de datos financieros relativamente fácil, pero el Análisis Avanzado de Datos (Intérprete de Código) parece ser una herramienta útil para borradores rápidos y verificación de nuevas ideas y conceptos. Su potencia es probablemente limitada en este momento, y no podemos usarla para cálculos a gran escala (principalmente debido al espacio en disco limitado y a la memoria disponible). Pero el potencial de este nuevo  “juguete” de investigación para los quants es, sin duda, increíble.

Autor: Cyril Dujava, Analista Quant, Quantpedia