Trading algorítmico 101 – Lección 5: Más aprendizaje automático

En nuestra última lección, presentamos algoritmos de aprendizaje automático supervisados, no supervisados ​​y semi supervisados. Como se discutió, los algoritmos ML tienen grandes beneficios relacionados con la ejecución automatizada. Sin embargo, todavía hay decisiones humanísticas a tener en cuenta. Al igual que otros enfoques de negociación algorítmica, no existe un método correcto: diferentes tipos de datos y / o funciones objetivas funcionan mejor o peor de acuerdo con tipos específicos de algoritmos ML. Los métodos deben probarse constantemente para encontrar la solución óptima para su caso de uso.

ML Framework

En esta lección, exploraremos algunas técnicas específicas con mayor detalle. A medida que avanzamos en la lista, aquí hay un marco general para tener en cuenta. Al crear un algoritmo de AA:

Tipos de algoritmos ML

Bayes

ingenuo

Este método es útil para determinar la probabilidad de variables de clasificación categóricas. Por ejemplo, si el precio de Ethereum disminuyó durante los últimos dos días, ¿cuál es la probabilidad de que el precio aumente hoy? “Ingenuo” en este contexto implica que todas las variables son independientes entre sí, y “Bayes” se refiere al Teorema de Bayes, que relaciona probabilidades condicionales.

Matemáticamente, el algoritmo Naïve Bayes tiene el siguiente aspecto:

A continuación, se muestra un ejemplo del modelo, que utiliza la hora del día como evento y si el precio aumentó o disminuyó según el evento :


Por tanto, si la hora indicada es mañana , tenemos una mayor probabilidad de que haya una disminución en el precio. Si bien este ejemplo utiliza una variable aleatoria discreta, también podemos modelar distribuciones de probabilidad más complejas: Gaussiana, Bernoulli o Poisson, por ejemplo. Sin embargo, la fórmula de Naive Bayes seguirá siendo la misma, solo el cálculo de las probabilidades individuales será diferente.

Para utilizar este modelo en el comercio, deberá decidir en qué nivel de probabilidad tiene suficiente confianza para actuar de acuerdo con esa predicción. En este ejemplo, ¿hay un 60% de probabilidad de que el precio baje por la mañana lo suficientemente alto como para vender sus posiciones?

Para obtener más información sobre el algoritmo Naive Bayes, consulte este artículo (Clasificación Naive Bayes con Sklearn). Además, este GitHub tiene una implementación de Naïve Bayes en Python que se puede adaptar a sus necesidades.

Procesamiento del lenguaje natural

Hoy, los precios de los activos fluctúan en relación con las noticias. Los artículos, tweets y otros contenidos pueden viajar por el mundo en segundos. Los comerciantes a menudo leen los titulares y toman decisiones sobre sus posiciones en función del sentimiento interpretado. Sin embargo, el tiempo para que una mente humana lea, procese y opere basándose en un titular a menudo puede ser demasiado lento. Procesamiento del lenguaje natural (NLP): enseñar a las computadoras a leer palabras y frases y comprender su significado, puede ayudar a mejorar la velocidad de reacción de los operadores. Además, un algoritmo eficaz puede tomar automáticamente las posiciones adecuadas en función de las noticias.

Supongamos que hay un artículo que dice “ZRX está en auge después de que el administrador de fondos compra participación”. Si una persona lee esta oración, reconocerá que la connotación de esta oración implica que el ZRX aumentará de valor.

Un algoritmo de PNL podría analizar esta oración en:

El algoritmo entonces funciona de manera similar al algoritmo del árbol de decisión; evalúa cada palabra dentro de la frase para determinar una relación positiva o negativa. Algunas palabras como “piratear” se pueden definir para significar siempre un efecto negativo. Algunas palabras como “inflación” son significativas pero carecen de significado sin conocer la palabra predecesora (“mayor” o “menor”). El Stanford Sentiment Treebank y bases de datos similares ya clasifican muchas palabras de uso común.

Y tampoco tenemos que depender de un solo título. Podríamos procesar muchos titulares, de muchos sitios web, feeds de Twitter u otras fuentes, para contar la frecuencia de las palabras clave. Y si hay una actividad en línea significativa del mismo sentimiento, podemos predecir cuánto aumentará o disminuirá el valor de un determinado activo.

Para leer más sobre cómo incorporar algunos de estos enfoques en sus estrategias comerciales, le sugerimos los siguientes recursos:

Aprendizaje por refuerzo

Los métodos de aprendizaje por refuerzo se basan en ejecutar muchas iteraciones de un modelo para comprobar cuáles son las recompensas o las consecuencias dentro de cada estado. Esta es la técnica utilizada por AlphaGo y otros proyectos similares para enseñar a las computadoras a vencer a los humanos en juegos o tareas específicas. Dentro de un juego, cada movimiento tiene implicaciones para movimientos futuros. Cuando juegan un juego de ajedrez, los grandes maestros a menudo piensan en numerosos movimientos para ver cuáles serán las posiciones futuras.

De manera similar, el algoritmo de aprendizaje por refuerzo crea un sistema en el que recompensaremos las buenas decisiones y castigaremos las malas. La recompensa será una variable cuantificable que intentaremos maximizar. En cada estado, un agente puede tomar cualquier número fijo de decisiones posibles; en un contexto comercial, esas serían las decisiones de comprar , retener o vender . Después de su decisión, el algoritmo lo lleva al siguiente estado o período de tiempo y evalúa si esa decisión es recompensada o castigada. Cuando el algoritmo se ejecuta por primera vez, esencialmente realiza conjeturas aleatorias sobre cuál debería ser la acción. Sin embargo, en varias iteraciones, el algoritmo aprende qué acciones pueden ser más beneficiosas en diferentes contextos . Por supuesto, si el modelo se ejecuta demasiadas veces, nos encontraríamos con un problema de sobreajuste. Esto es cuando el algoritmo opera de acuerdo con los puntos de datos dados demasiado cerca y no puede adaptarse a los nuevos datos.

Supongamos que estamos viendo un modelo de dos pasos en el que intentamos ir del punto A al punto C, y podemos elegir entre B1 o B2 para los pasos intermedios. Asignemos las siguientes recompensas y castigos por los movimientos respectivos:

A → B1 = 10
A → B2 = -15
B1 → C = -25
B2 → C = 25

En la ruta A → B1 → C, obtenemos un resultado neto de 10-25 = -15
En la ruta A → B2 → C, obtenemos un resultado neto de – 15 + 25 = 10
Entonces, en este ejemplo, la ruta a través de B2 es la ruta óptima (ya que termina en un valor más alto).

Al estar en el estado A, naturalmente es más beneficioso pasar al estado B1 en lugar del estado B2, ya que el resultado inmediato es 10 frente a -15 para la primera acción. Sin embargo, también podemos ver que a largo plazo , es más rentable elegir B2, ya que terminamos con un resultado neto de 10 frente a -15.

En términos comerciales, podría pensar en el tiempo intermedio B como nuestro “PnL no realizado” y una vez que llegamos al estado C, nos “damos cuenta” de nuestro PnL final. Un modelo de refuerzo, cuando se ejecuta varias veces, puede optimizar qué camino tomar, incluso si parece que ciertos estados son la opción menos rentable. Por eso es importante examinar el horizonte de tiempo más largo en el comercio en lugar de preocuparse por movimientos diarios singulares. Una ventaja de estos modelos son las optimizaciones de extremo a extremo al tiempo que se tienen en cuenta las posibles reducciones del modelo. Una desventaja de estos modelos es que a medida que crecen sus nodos y acciones, aumenta el tiempo para estimar este modelo.

Para leer más sobre el aprendizaje por refuerzo en un contexto comercial, intente:

Aprendizaje profundo / Redes neuronales / LSTM

Estos métodos utilizan entradas y salidas anteriores para determinar cómo podemos predecir salidas futuras. Específicamente, una red neuronal es un algoritmo de aprendizaje automático que está diseñado de la misma manera en que funciona su cerebro, donde los “recuerdos” más recientes tienen más relevancia / peso que los recuerdos más antiguos.

En una red neuronal recurrente, tomamos entradas y las ejecutamos a través del algoritmo para proporcionar salidas. Para cada punto de datos, obtenemos pesos del algoritmo para ver cuánto impacto debería tener en el siguiente punto de datos. A medida que introducimos más y más puntos de datos de series de tiempo en el modelo, los pesos de los puntos más antiguos disminuyen hasta que se vuelven cero y se eliminan de nuestro modelo.

Por ejemplo, supongamos que incluye el volumen de actividad comercial como una variable explicativa de su modelo para predecir un precio. El volumen de actividad comercial es importante para la posición que está tomando el día 1. En 10 días, el impacto del volumen del día 1 será menor de lo que fue inicialmente para predecir el precio del día 1 , y en 100 días el impacto del volumen del día 1 tendrá un impacto insignificante en el precio. En cambio, el volumen del día 99 tendrá el mayor peso. El modelo actualiza recursivamente las ponderaciones cada vez para proporcionar el mejor análisis en el momento dado. Para ver un ejemplo de redes neuronales aplicadas al comercio de Bitcoin, consulte este estudio (comercio técnico de Bitcoin con red neuronal artificial).

Otra aplicación del “aprendizaje profundo” es el algoritmo LSTM (Long Short Term Memory). Un comerciante puede tener una visión general de los precios a largo plazo, pero también desea realizar un seguimiento (y posiblemente aprovechar) las variaciones de precios a corto plazo. En los modelos LSTM, hay un estado “oculto” que realiza un seguimiento de los estados a corto plazo y los sopesa en relación con su impacto a largo plazo. Estos modelos también se pueden ajustar para centrarse en la predicción del estado a corto plazo si se presenta una buena oportunidad comercial. Determinar los plazos correctos a corto y largo plazo puede ser difícil, pero si se optimizan correctamente, estos modelos pueden conducir a predicciones precisas en un entorno comercial en vivo. Consulte este documento (Machine Learning the Cryptocurrency Market) para ver un modelo LSTM aplicado al comercio de criptomonedas.

Desafío n. ° 5: Modelos de aprendizaje automático

* Recuerde, cualquier que participe en Telegram o nos envíe una solución en cualquier momento durante el transcurso de nuestra serie Algorithmic Trading 101 es elegible para recibir parte de $ 5000 en premios de criptomonedas .

__________________________

🤖 Enlaces a lecciones 🤖
El programa de estudios & amp; Cómo ganar
Lección 1: Análisis de series de tiempo
Lección 2: Datos, diseño de estrategias y reversión a la media
Lección 3: Introducción a las estrategias de arbitraje
Lección 4: Gestión de carteras y aprendizaje automático en Python
Lección 5: Más aprendizaje automático

¡Recuerde unirse a nuestro Telegram si tiene alguna pregunta!

Síganos en Twitter en @TheOceanTrade o suscríbase a nuestro boletín para mantenerse informado.