Este libro tiene como objetivo mostrar cómo el ML puede agregar valor a las estrategias comerciales algorítmicas de una manera práctica pero integral. Cubre una amplia gama de técnicas de aprendizaje automático, desde la regresión lineal hasta el aprendizaje por refuerzo profundo, y demuestra cómo crear, realizar pruebas retrospectivas y evaluar una estrategia comercial impulsada por predicciones de modelos.
En cuatro partes con 23 capítulos más un apéndice , cubre en más de 800 páginas :
Este repositorio contiene más de 150 cuadernos que ponen en práctica los conceptos, algoritmos y casos de uso que se analizan en el libro. Proporcionan numerosos ejemplos que muestran:
Recomendamos encarecidamente revisar los cuadernos mientras lee el libro; normalmente se encuentran en estado de ejecución y a menudo contienen información adicional que no se incluye debido a limitaciones de espacio.
Además de la información contenida en este repositorio, el sitio web del libro contiene un resumen del capítulo e información adicional.
Para que a los lectores les resulte más fácil hacer preguntas sobre el contenido del libro y los ejemplos de código, así como sobre el desarrollo y la implementación de sus propias estrategias y desarrollos de la industria, estamos alojando una plataforma en línea.
Únase a nuestra comunidad y conéctese con otros operadores interesados en aprovechar el aprendizaje automático para estrategias comerciales, comparta su experiencia y aprenda unos de otros.
En primer lugar, este libro demuestra cómo se pueden extraer señales de un conjunto diverso de fuentes de datos y diseñar estrategias comerciales para diferentes clases de activos utilizando una amplia gama de algoritmos de aprendizaje supervisados, no supervisados y de refuerzo. También proporciona conocimientos matemáticos y estadísticos relevantes para facilitar el ajuste de un algoritmo o la interpretación de los resultados. Además, cubre los antecedentes financieros que lo ayudarán a trabajar con datos fundamentales y de mercado, extraer características informativas y administrar el desempeño de una estrategia comercial.
Desde un punto de vista práctico, la segunda edición tiene como objetivo equiparlo con la comprensión conceptual y las herramientas para desarrollar sus propias estrategias comerciales basadas en ML. Con este fin, enmarca el ML como un elemento crítico en un proceso en lugar de un ejercicio independiente, presentando el ML de extremo a extremo para el flujo de trabajo comercial desde el abastecimiento de datos, la ingeniería de características y la optimización de modelos hasta el diseño de estrategias y las pruebas retrospectivas.
Más específicamente, el flujo de trabajo ML4T comienza generando ideas para un universo de inversión bien definido, recopilando datos relevantes y extrayendo características informativas. También implica diseñar, ajustar y evaluar modelos de ML adecuados para la tarea predictiva. Finalmente, requiere desarrollar estrategias comerciales para actuar sobre las señales predictivas de los modelos, así como simular y evaluar su desempeño sobre datos históricos utilizando un motor de backtesting. Una vez que decida ejecutar una estrategia algorítmica en un mercado real, se encontrará repitiendo este flujo de trabajo repetidamente para incorporar nueva información y un entorno cambiante.
El énfasis de la segunda edición en el flujo de trabajo de ML4t se traduce en un nuevo capítulo sobre backtesting de estrategias, un nuevo apéndice que describe más de 100 factores alfa diferentes y muchas aplicaciones prácticas nuevas. También hemos reescrito la mayor parte del contenido existente para mayor claridad y legibilidad.
Las aplicaciones comerciales ahora utilizan una gama más amplia de fuentes de datos más allá de los precios diarios de las acciones estadounidenses, incluidas las acciones internacionales y los ETF. También demuestra cómo utilizar ML para una estrategia intradía con datos de acciones de frecuencia minuto. Además, amplía la cobertura de fuentes de datos alternativas para incluir presentaciones de la SEC para análisis de sentimiento y pronósticos de retorno, así como imágenes de satélite para clasificar el uso de la tierra.
Otra innovación de la segunda edición es replicar varias aplicaciones comerciales publicadas recientemente en las principales revistas:
Todas las aplicaciones ahora utilizan las últimas versiones de software disponibles (en el momento de escribir este artículo), como pandas 1.0 y TensorFlow 2.2. También existe una versión personalizada de Zipline que facilita la inclusión de predicciones de modelos de aprendizaje automático al diseñar una estrategia comercial.
Los ejemplos de código se basan en una amplia gama de bibliotecas de Python de los dominios de ciencia de datos y finanzas.
No es necesario intentar instalar todas las bibliotecas a la vez porque esto aumenta la probabilidad de encontrar conflictos de versiones. En su lugar, le recomendamos que instale las bibliotecas necesarias para un capítulo específico a medida que avanza.
Actualización de marzo de 2022:
zipline-reloaded
,pyfolio-reloaded
,alphalens-reloaded
yempyrical-reloaded
ahora están disponibles en el canalconda-forge
. El canalml4t
sólo contiene versiones obsoletas y pronto será eliminado.
Actualización abril 2021: con la actualización de Zipline ya no es necesario utilizar Docker. Las instrucciones de instalación ahora hacen referencia a archivos de entorno específicos del sistema operativo que deberían simplificar el funcionamiento de las computadoras portátiles.
Actualización de febrero de 2021: la versión 2.0 de muestra de código actualiza los entornos conda proporcionados por la imagen de Docker a Python 3.8, Pandas 1.2 y TensorFlow 1.2, entre otros; El entorno de backtesting de Zipline ahora utiliza Python 3.6.
conda
e instalar los paquetes utilizados en las computadoras portátiles directamente en su máquina si lo prefiere (y, dependiendo de su sistema, está preparado para hacer un esfuerzo adicional).Si tiene alguna dificultad para instalar los entornos, descargar los datos o ejecutar el código, plantee un problema de GitHub en el repositorio (aquí). Aquí se describe cómo trabajar con problemas de GitHub.
Actualización : puede descargar los datos de algoseek utilizados en el libro aquí. Consulte las instrucciones para el preprocesamiento en el Capítulo 2 y un ejemplo intradiario con un modelo de aumento de gradiente en el Capítulo 12.
Actualización : el directorio de figuras contiene versiones en color de los gráficos utilizados en el libro.
El libro consta de cuatro partes que abordan los diferentes desafíos que surgen al obtener y trabajar con fuentes de datos de mercado, fundamentales y alternativos, desarrollar soluciones de aprendizaje automático para diversas tareas predictivas en el contexto comercial y diseñar y evaluar una estrategia comercial que se base en señales predictivas generadas por un modelo de aprendizaje automático.
El directorio de cada capítulo contiene un archivo README con información adicional sobre contenido, ejemplos de código y recursos adicionales.
Parte 1: De los datos al desarrollo de estrategias
Parte 2: Aprendizaje automático para el comercio: fundamentos
Parte 3: Procesamiento del lenguaje natural para el comercio
Parte 4: Aprendizaje profundo y de refuerzo
La primera parte proporciona un marco para desarrollar estrategias comerciales impulsadas por el aprendizaje automático (ML). Se centra en los datos que impulsan los algoritmos y estrategias de ML discutidos en este libro, describe cómo diseñar y evaluar características adecuadas para los modelos de ML y cómo administrar y medir el desempeño de una cartera mientras se ejecuta una estrategia comercial.
Este capítulo explora las tendencias de la industria que han llevado al surgimiento del ML como fuente de ventaja competitiva en la industria de inversiones. También veremos dónde encaja el ML en el proceso de inversión para permitir estrategias comerciales algorítmicas.
Más específicamente, cubre los siguientes temas:
Este capítulo muestra cómo trabajar con datos fundamentales y de mercado y describe los aspectos críticos del entorno que reflejan. Por ejemplo, la familiaridad con varios tipos de órdenes y la infraestructura comercial es importante no sólo para la interpretación de los datos sino también para diseñar correctamente las simulaciones de backtest. También ilustramos cómo utilizar Python para acceder y manipular datos comerciales y de estados financieros.
Los ejemplos prácticos demuestran cómo trabajar con datos comerciales de datos de ticks de NASDAQ y datos de barras de minutos de Algoseek con un rico conjunto de atributos que capturan la dinámica de oferta y demanda que luego usaremos para una estrategia intradiaria basada en ML. También cubrimos varias API de proveedores de datos y cómo obtener información de estados financieros de la SEC.
En particular, este capítulo cubre:Este capítulo describe categorías y casos de uso de datos alternativos, describe criterios para evaluar el creciente número de fuentes y proveedores y resume el panorama actual del mercado.
También demuestra cómo crear conjuntos de datos alternativos mediante el scraping de sitios web, como la recopilación de transcripciones de llamadas de ganancias para usarlas con procesamiento de lenguaje natural (NLP) y algoritmos de análisis de sentimientos en la tercera parte del libro.
Más específicamente, este capítulo cubre:
Si ya está familiarizado con el aprendizaje automático, sabrá que la ingeniería de funciones es un ingrediente crucial para realizar predicciones exitosas. Importa al menos tanto en el ámbito comercial, donde investigadores académicos y de la industria han investigado durante décadas qué impulsa los mercados y los precios de activos, y qué características ayudan a explicar o predecir los movimientos de precios.
Este capítulo describe las conclusiones clave de esta investigación como punto de partida para su propia búsqueda de factores alfa. También presenta herramientas esenciales para calcular y probar factores alfa, destacando cómo las bibliotecas NumPy, pandas y TA-Lib facilitan la manipulación de datos y presentan técnicas de suavizado populares como las wavelets y el filtro de Kalman que ayudan a reducir el ruido en los datos. Después de leerlo, sabrás sobre:
Los factores alfa generan señales que una estrategia algorítmica traduce en operaciones que, a su vez, producen posiciones largas y cortas. Los rendimientos y el riesgo de la cartera resultante determinan si la estrategia cumple con los objetivos de inversión.
Existen varios enfoques para optimizar las carteras. Estos incluyen la aplicación de aprendizaje automático (ML) para aprender relaciones jerárquicas entre activos y tratarlos como complementos o sustitutos al diseñar el perfil de riesgo de la cartera. Este capítulo cubre:
La segunda parte cubre los algoritmos fundamentales de aprendizaje supervisados y no supervisados e ilustra su aplicación a las estrategias comerciales. También presenta la plataforma Quantopian que le permite aprovechar y combinar los datos y las técnicas de ML desarrolladas en este libro para implementar estrategias algorítmicas que ejecuten operaciones en mercados reales.
Este capítulo inicia la Parte 2 que ilustra cómo se puede utilizar una variedad de modelos de ML supervisados y no supervisados para el comercio. Explicaremos los supuestos y los casos de uso de cada modelo antes de demostrar aplicaciones relevantes utilizando varias bibliotecas de Python.
Hay varios aspectos que tienen en común muchos de estos modelos y sus aplicaciones. Este capítulo cubre estos aspectos comunes para que podamos centrarnos en el uso específico del modelo en los siguientes capítulos. Prepara el escenario al describir cómo formular, entrenar, ajustar y evaluar el rendimiento predictivo de los modelos de ML como un flujo de trabajo sistemático. El contenido incluye:
Los modelos lineales son herramientas estándar para inferencia y predicción en contextos de regresión y clasificación. Numerosos modelos de valoración de activos ampliamente utilizados se basan en la regresión lineal. Los modelos regularizados como la regresión Ridge y Lasso a menudo producen mejores predicciones al limitar el riesgo de sobreajuste. Las aplicaciones de regresión típicas identifican factores de riesgo que impulsan la rentabilidad de los activos para gestionar riesgos o predecir rentabilidades. Los problemas de clasificación, por otro lado, incluyen pronósticos direccionales de precios.
El Capítulo 07 cubre los siguientes temas:
Este capítulo presenta una perspectiva integral sobre el diseño, la simulación y la evaluación de una estrategia comercial impulsada por un algoritmo ML. Demostraremos en detalle cómo realizar una prueba retrospectiva de una estrategia impulsada por ML en un contexto histórico de mercado utilizando las bibliotecas de Python backtrader y Zipline. En última instancia, el flujo de trabajo ML4T tiene como objetivo recopilar evidencia de datos históricos que ayuden a decidir si implementar una estrategia candidata en un mercado real y poner en riesgo los recursos financieros. Una simulación realista de su estrategia debe representar fielmente cómo operan los mercados de valores y cómo se ejecutan las operaciones. Además, varios aspectos metodológicos requieren atención para evitar resultados sesgados y descubrimientos falsos que conduzcan a malas decisiones de inversión.
Más específicamente, después de trabajar en este capítulo podrá:
Este capítulo se centra en modelos que extraen señales del historial de una serie temporal para predecir valores futuros para la misma serie temporal. Los modelos de series temporales se utilizan ampliamente debido a la dimensión temporal inherente al comercio. Presenta herramientas para diagnosticar características de series temporales, como la estacionariedad, y extraer características que capturen patrones potencialmente útiles. También introduce modelos de series de tiempo univariados y multivariados para pronosticar datos macro y patrones de volatilidad. Finalmente, explica cómo la cointegración identifica tendencias comunes a lo largo de series temporales y muestra cómo desarrollar una estrategia de negociación de pares basada en este concepto crucial.
En particular, cubre:
Las estadísticas bayesianas nos permiten cuantificar la incertidumbre sobre eventos futuros y refinar las estimaciones según principios a medida que llega nueva información. Este enfoque dinámico se adapta bien a la naturaleza cambiante de los mercados financieros. Los enfoques bayesianos del aprendizaje automático permiten obtener nuevos conocimientos sobre la incertidumbre en torno a las métricas estadísticas, las estimaciones de parámetros y las predicciones. Las aplicaciones van desde una gestión de riesgos más granular hasta actualizaciones dinámicas de modelos predictivos que incorporan cambios en el entorno del mercado.
Más específicamente, este capítulo cubre:
Este capítulo aplica árboles de decisión y bosques aleatorios al comercio. Los árboles de decisión aprenden reglas a partir de datos que codifican relaciones no lineales de entrada-salida. Mostramos cómo entrenar un árbol de decisiones para hacer predicciones para problemas de regresión y clasificación, visualizar e interpretar las reglas aprendidas por el modelo y ajustar los hiperparámetros del modelo para optimizar el equilibrio entre sesgo y varianza y evitar el sobreajuste.
La segunda parte del capítulo presenta modelos de conjunto que combinan múltiples árboles de decisión de forma aleatoria para producir una única predicción con un error menor. Concluye con una estrategia larga y corta para acciones japonesas basada en señales comerciales generadas por un modelo de bosque aleatorio.
En resumen, este capítulo cubre:
El aumento de gradiente es un algoritmo de conjunto alternativo basado en árboles que a menudo produce mejores resultados que los bosques aleatorios. La diferencia fundamental es que el impulso modifica los datos utilizados para entrenar cada árbol en función de los errores acumulativos cometidos por el modelo. Mientras que los bosques aleatorios entrenan muchos árboles de forma independiente utilizando subconjuntos aleatorios de datos, el impulso procede de forma secuencial y repondera los datos. Este capítulo muestra cómo las bibliotecas de última generación logran un rendimiento impresionante y aplican mejoras a los datos diarios y de alta frecuencia para realizar pruebas retrospectivas de una estrategia de negociación intradiaria.
Más específicamente, cubriremos los siguientes temas:
La reducción de dimensionalidad y la agrupación son las principales tareas del aprendizaje no supervisado:
Más específicamente, este capítulo cubre:
Los datos de texto son ricos en contenido, pero su formato no está estructurado y, por lo tanto, requieren más preprocesamiento para que un algoritmo de aprendizaje automático pueda extraer la señal potencial. El desafío crítico consiste en convertir el texto a un formato numérico para que lo utilice un algoritmo, al mismo tiempo que se expresa la semántica o el significado del contenido.
Los siguientes tres capítulos cubren varias técnicas que capturan matices del lenguaje fácilmente comprensibles para los humanos, de modo que los algoritmos de aprendizaje automático también puedan interpretarlos.
Los datos de texto son muy ricos en contenido pero muy desestructurados, por lo que requieren más procesamiento previo para permitir que un algoritmo ML extraiga información relevante. Un desafío clave consiste en convertir el texto a un formato numérico sin perder su significado. Este capítulo muestra cómo representar documentos como vectores de recuentos de tokens mediante la creación de una matriz de términos de documento que, a su vez, sirve como entrada para la clasificación de texto y el análisis de opiniones. También presenta el algoritmo Naive Bayes y compara su rendimiento con modelos lineales y basados en árboles.
En particular, en este capítulo se cubre:
Este capítulo utiliza el aprendizaje no supervisado para modelar temas latentes y extraer temas ocultos de documentos. Estos temas pueden generar información detallada sobre un gran corpus de informes financieros. Los modelos de temas automatizan la creación de características de texto sofisticadas e interpretables que, a su vez, pueden ayudar a extraer señales comerciales de extensas colecciones de textos. Aceleran la revisión de documentos, permiten agrupar documentos similares y producen anotaciones útiles para el modelado predictivo. Las aplicaciones incluyen la identificación de temas críticos en divulgaciones de la empresa, transcripciones o contratos de llamadas de ganancias y anotaciones basadas en análisis de sentimiento o utilizando retornos de activos relacionados.
Más específicamente, cubre:
Este capítulo utiliza redes neuronales para aprender una representación vectorial de unidades semánticas individuales como una palabra o un párrafo. Estos vectores son densos con unos pocos cientos de entradas de valor real, en comparación con los vectores dispersos de dimensiones superiores del modelo de bolsa de palabras. Como resultado, estos vectores incrustan o ubican cada unidad semántica en un espacio vectorial continuo.
Las incrustaciones resultan del entrenamiento de un modelo para relacionar tokens con su contexto con el beneficio de que un uso similar implica un vector similar. Como resultado, codifican aspectos semánticos como las relaciones entre palabras a través de su ubicación relativa. Son características poderosas que usaremos con modelos de aprendizaje profundo en los siguientes capítulos.
Más específicamente, en este capítulo cubriremos:
La cuarta parte explica y demuestra cómo aprovechar el aprendizaje profundo para el comercio algorítmico. Las poderosas capacidades de los algoritmos de aprendizaje profundo para identificar patrones en datos no estructurados los hacen particularmente adecuados para datos alternativos como imágenes y texto.
Las aplicaciones de muestra muestran, por ejemplo, cómo combinar texto y datos de precios para predecir sorpresas en las ganancias de las presentaciones ante la SEC, generar series temporales sintéticas para ampliar la cantidad de datos de capacitación y capacitar a un agente comercial mediante el aprendizaje por refuerzo profundo. Varias de estas aplicaciones replican investigaciones publicadas recientemente en las principales revistas.
Este capítulo presenta las redes neuronales de avance (NN) y demuestra cómo entrenar de manera eficiente modelos grandes utilizando la propagación hacia atrás mientras se gestionan los riesgos del sobreajuste. También muestra cómo utilizar TensorFlow 2.0 y PyTorch y cómo optimizar una arquitectura NN para generar señales comerciales. En los siguientes capítulos, aprovecharemos esta base para aplicar varias arquitecturas a diferentes aplicaciones de inversión con un enfoque en datos alternativos. Estos incluyen NN recurrente adaptado a datos secuenciales como series temporales o lenguaje natural y NN convolucional, particularmente adecuado para datos de imágenes. También cubriremos el aprendizaje profundo no supervisado, como cómo crear datos sintéticos utilizando Generative Adversarial Networks (GAN). Además, discutiremos el aprendizaje por refuerzo para capacitar agentes que aprendan interactivamente de su entorno.
En particular, este capítulo cubrirá
Las arquitecturas de CNN continúan evolucionando. Este capítulo describe los componentes básicos comunes a las aplicaciones exitosas, demuestra cómo el aprendizaje por transferencia puede acelerar el aprendizaje y cómo usar CNN para la detección de objetos. Las CNN pueden generar señales comerciales a partir de imágenes o datos de series temporales. Los datos satelitales pueden anticipar las tendencias de los productos básicos a través de imágenes aéreas de áreas agrícolas, minas o redes de transporte. Las imágenes de la cámara pueden ayudar a predecir la actividad del consumidor; Mostramos cómo construir una CNN que clasifique la actividad económica en imágenes de satélite. Las CNN también pueden ofrecer resultados de clasificación de series temporales de alta calidad aprovechando su similitud estructural con las imágenes, y diseñamos una estrategia basada en datos de series temporales formateados como imágenes.
Más específicamente, este capítulo cubre:
Las redes neuronales recurrentes (RNN) calculan cada salida en función de la salida anterior y los nuevos datos, creando efectivamente un modelo con memoria que comparte parámetros en un gráfico computacional más profundo. Las arquitecturas prominentes incluyen memoria a largo plazo (LSTM) y unidades recurrentes cerradas (Gru) que abordan los desafíos de aprender dependencias de largo alcance. Los RNN están diseñados para asignar una o más secuencias de entrada a una o más secuencias de salida y son particularmente adecuados para el lenguaje natural. También se pueden aplicar a series de tiempo univariadas y multivariadas para predecir datos de mercado o fundamentales. Este capítulo cubre cómo RNN puede modelar datos de texto alternativos utilizando la palabra incrustaciones que cubrimos en el Capítulo 16 para clasificar el sentimiento expresado en los documentos.
Más específicamente, este capítulo aborda:
Este capítulo muestra cómo aprovechar el aprendizaje profundo no supervisado para el comercio. También discutimos Autoencoders, a saber, una red neuronal entrenada para reproducir la entrada mientras aprende una nueva representación codificada por los parámetros de una capa oculta. Los autoencoders se han utilizado durante mucho tiempo para la reducción de la dimensionalidad no lineal, aprovechando las arquitecturas NN que cubrimos en los últimos tres capítulos. Replicamos un artículo reciente de AQR que muestra cómo los autoencoders pueden apuntalar una estrategia comercial. Utilizaremos una red neuronal profunda que se basa en un autoencoder para extraer factores de riesgo y predecir los rendimientos de capital, condicionado en una variedad de atributos de capital.
Más específicamente, en este capítulo aprenderá sobre:
Este capítulo presenta redes adversas generativas (GaN). GANS capacita a un generador y una red de discriminadores en un entorno competitivo para que el generador aprenda a producir muestras que el discriminador no puede distinguir de una clase dada de datos de capacitación. El objetivo es producir un modelo generativo capaz de producir muestras sintéticas representativas de esta clase. Si bien más popular entre los datos de imágenes, los GAN también se han utilizado para generar datos de series de tiempo sintéticas en el dominio médico. Experimentos posteriores con datos financieros exploraron si los GAN pueden producir trayectorias de precios alternativas útiles para capacitación de ML o compras de estrategia. Replicamos el papel GaN de series de tiempo Neurips 2019 para ilustrar el enfoque y demostrar los resultados.
Más específicamente, en este capítulo aprenderá sobre:
El aprendizaje de refuerzo (RL) modela el aprendizaje dirigido por objetivos por un agente que interactúa con un entorno estocástico. RL optimiza las decisiones del agente con respecto a un objetivo a largo plazo al aprender el valor de los estados y las acciones de una señal de recompensa. El objetivo final es derivar una política que codifique las reglas de comportamiento y mapea a los estados a las acciones. Este capítulo muestra cómo formular y resolver un problema RL. Cubre métodos basados en modelos y sin modelos, introduce el entorno de gimnasio Operai y combina el aprendizaje profundo con RL para entrenar a un agente que navega por un entorno complejo. Finalmente, le mostraremos cómo adaptar RL al comercio algorítmico modelando a un agente que interactúa con el mercado financiero mientras intenta optimizar una función objetivo.
Más específicamente, este capítulo cubrirá:
En este capítulo final, resumiremos brevemente las herramientas, aplicaciones y lecciones esenciales aprendidas en todo el libro para evitar perder de vista el panorama general después de tantos detalles. Luego identificaremos áreas en las que no cubrimos, pero que valdría la pena centrarnos a medida que se amplíe en las muchas técnicas de aprendizaje automático que presentamos y se vuelve productivo en su uso diario.
En resumen, en este capítulo,
A lo largo de este libro, enfatizamos cómo el diseño inteligente de las características, incluido el preprocesamiento y la renovación apropiados, generalmente conduce a una estrategia efectiva. Este apéndice sintetiza algunas de las lecciones aprendidas sobre la ingeniería de funciones y proporciona información adicional sobre este tema vital.
Con este fin, nos centramos en la amplia gama de indicadores implementados por TA-LIB (ver Capítulo 4) y el documento de Alphas Formulaic 101 de Worldquant (Kakushadze 2016), que presenta factores de comercio cuantitativos de la vida real utilizados en la producción con un período de tenencia promedio de la tenencia de la tenencia de la tenencia de 0.6-6.4 días.
Este capítulo cubre: