0% encontró este documento útil (0 votos)
76 vistas12 páginas

Agente de Trading con Reinforcement Learning

Este documento propone el desarrollo de un agente de trading basado en algoritmos de aprendizaje por refuerzo (reinforcement learning) para maximizar las ganancias a través de diferentes acciones de trading durante un período de prueba. El agente será entrenado primero para aprender cuándo tomar cada acción, y luego se evaluarán los resultados y se compararán con otras estrategias de inversión. El objetivo final es contribuir al creciente campo de la inteligencia artificial y el machine learning en el sector financiero.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
76 vistas12 páginas

Agente de Trading con Reinforcement Learning

Este documento propone el desarrollo de un agente de trading basado en algoritmos de aprendizaje por refuerzo (reinforcement learning) para maximizar las ganancias a través de diferentes acciones de trading durante un período de prueba. El agente será entrenado primero para aprender cuándo tomar cada acción, y luego se evaluarán los resultados y se compararán con otras estrategias de inversión. El objetivo final es contribuir al creciente campo de la inteligencia artificial y el machine learning en el sector financiero.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Planteamiento de un Agente de Trading basado el

algoritmos de Machine Learning (Reinforcement Learning)


Por: Marcos Ferrer
Asesor: Julio E. Villarreal
Co-asesor: Andrés Felipe Arias
Resumen
Hoy en día Machine Learning es un área de vital temas de actual importancia. En ese sentido, En
importancia y que se puede aplicar en múltiples este proyecto de investigación se utilizará
problemas o situaciones del mundo. Por ejemplo,
Reinforcement Learning para plantear y obtener
entre los usos más comunes se encuentra la
diferentes estrategias de trading con derivados.
seguridad de datos, la seguridad personal, el
Se utilizarán temas como el pricing de diferentes
comercio financiero, el cuidado de la salud, el
opciones a partir del método de Black-Scholes.
marketing personalizado, la detección de fraudes,
También, se utilizarán Procesos de decisión de
entre otros. Sin embargo, el uso de Machine
Markov para definir las acciones y las
Learning en el área de finanzas ha aumentado
probabilidades de transición de los diferentes
drásticamente durante los últimos años. Esto se
estados del modelo de Reinforcement Learning.
puede observar en los modelos de machine
Se unirán estos dos modelos para lograr llegar al
Learning que se utilizan en el área financiera para
objetivo de plantear las estrategias de trading
la gestión de crédito, Regtech y el trading
teniendo en cuenta simulaciones de Monte-
automatizado (Corporate Finance Institute, s.f.)
Carlo.
Así, la importancia de este trabajo de grado se
debe a que el área de Machine Learning está en Abstract
pleno crecimiento y desarrollo. Es un área que
trae varios beneficios en la forma en que se llevan Today Machine Learning is an area of vital
a cabo diferentes procesos y la metodología para importance and that can be applied in multiple
la toma de decisiones. Además, es un área que problems or situations in the world. For example,
aplica todo el conocimiento acerca de among the most common uses are data security,
probabilidad y estadística para lograr buscar personal security, financial commerce, health
mejores métodos y maneras de describir care, personalized marketing, fraud detection,
variables, separarlas y poder realizar predicciones among others. However, the use of Machine
acerca de nueva información. Por otro lado, con Learning in finance has increased dramatically in
respecto a el área de finanzas, es un área que es recent years. This can be observed in the machine
de vanguardia y que ha generado varios cambios learning models that are used in the financial area
en el sector. Cada vez se integran más estos dos for credit management, Regtech and automated
mundos para buscar solución a diferentes trading (Corporate Finance Institute, s.f.) Thus,
problemas como la probabilidad de un banco de the importance of this degree work is because the
hacer default, el modelamiento de precios o Machine Learning area is in full growth and
diferentes estrategias de trading. Debido a la development. It is an area that brings several
relevancia y la importancia mundial que está benefits in the way in which different processes
tomando el tema de Machine Learning y su and the methodology for decision making are
aplicación en el área de finanzas se considera que carried out. In addition, it is an area that applies
este proyecto puede ser de gran beneficio para all the knowledge about probability and statistics
conocer e indagar más en este mundo y abordar to find better methods and ways of describing
variables, separating them and being able to

1
make predictions about new information. On the se ha acelerado rápidamente en 2020, ya que los
other hand, regarding the finance area, it is an operadores de compra a nivel mundial
area that is at the forefront and that has recurrieron a los algoritmos equipados con
generated several changes in the sector. These Machine Learning del banco de inversión para
two worlds are increasingly integrated to seek lidiar con la intensa volatilidad del mercado. (The
solutions to different problems such as the Trade News, 2021) Sumado a esto,
probability of a bank to default, price modeling or recientemente JP Morgan ha utilizado tecnología
different trading strategies. Due to the relevance de Reinforcement Learning para crear señales
and global importance that the subject of avanzadas para el enrutamiento y la colocación
Machine Learning and its application in the de pedidos. (The Trade News, 2021)
finance area is taking, it is considered that this
Por lo que, en el siguiente documento, se busca
project can be of great benefit to know and
entender y aplicar esta nueva ola del
investigate more in this world and address issues
conocimiento para el área financiera a través del
of current importance. In that sense, in this
Trading automatizado. Para esto se planteará y
research project Reinforcement Learning will be
programará un agente de trading basado en
used to propose and obtain different derivatives
algoritmos de Machine Learning, más
trading strategies. Topics such as the pricing of
específicamente Reinforcement Learning. El
different options will be used based on the Black-
objetivo de este agente será maximizar su
Scholes method. Also, Markov decision processes
recompensa (basada en las ganancias) a partir de
will be used to define the actions and the
las diferentes acciones/decisiones que tomará
transition probabilities of the different states of
durante la ventana de tiempo de prueba. Para
the Reinforcement Learning model. These two
esto, el agente será entrenado en una ventana de
models will be joined to achieve the objective of
tiempo diferente a la de prueba para que este
proposing trading strategies considering Monte-
aprenda los momentos en que cada acción le
Carlo simulations.
optimiza sus recompensas. Seguidamente, se
1. Introducción mostrarán los pasos de la construcción del
modelo de Reinforcement Learning. Luego, se
El mercado de inteligencia artificial de Machine evidenciarán los resultados y el análisis
Learning está creciendo a una tasa compuesta comparativo a otras maneras de inversión.
anual del 18,14% durante el período de Finalmente se presentan las conclusiones y
pronóstico 2020-2026. (KSU | The Sentinel recomendaciones a partir de los resultados
Newspaper, 2021) Asimismo, el crecimiento de obtenidos.
este mercado ha generado que cada vez más
diferentes empresas y organizaciones se 2. Marco Teórico
interesen en las ventajas competitivas de contar 2.1 Investigaciones Recientes
con este tipo de herramientas que buscan el uso
de toda la información o datos relacionados a Son varias las investigaciones y los modelos de
cualquier negocio para mejorar sus procesos, Machine Learning que se han realizado buscando
automatizar funciones o tomar decisiones críticas mejoras y la automatización inteligente de las
más rápidamente. (La República, 2021) estrategias de trading en base de las nuevas
oportunidades y necesidades del sector. Entre
Entre las compañías más beneficiadas por esta estas investigaciones e información reciente del
disciplina científica de la Inteligencia Artificial son tema se encuentran varios libros: Machine
las que hacen parte del sector financiero. Un Learning for Algorithmic Trading, Hands-On
ejemplo de esto es el crecimiento en el comercio Machine Learning for Algorithmic, ambos de
algorítmico de futuros de renta fija en JP Morgan Stefan Jansen y Hands-On Machine Learning with

2
Scikit-Learn, Keras & TensorFlow de Aurélien Sin embargo, estas tareas o problemas de
Géron, entre otros. Del mismo modo, hay varios Machine Learning pueden ser clasificados de
algoritmos, repositorios y modelos estudiados de acuerdo con su funcionalidad y complejidad.
diferentes autores disponibles en la web. En
2.2.1.1 Tareas de percepción
towards data science, un medio de publicaciones
compartidas de conceptos, ideas y códigos, se Las tareas de percepción se caracterizan por
encuentran “How My Machine Learning Trading tener una acción fija, como clasificar una imagen,
Algorithm Outperformed the SP500 For 10 o traducir un texto. Un ejemplo de estas tareas
Years”, un algoritmo de trading usando Python y son los problemas de clasificación o de regresión
Quantopian para vencer el mercado de acciones y el resultado es una función 𝑓(𝑥) aprendida a
por más de 10 años creado por Tomiwa y “Deep partir de los datos disponibles.
Reinforcement Learning for Automated Stock
Trading”, donde se usa Reinforcement Learning 2.2.1.2 Tareas de acción
para el trading de varias acciones utilizando
Las tareas de acción son iguales a las tareas de
Python y OpenAi Gym creado por Bruce Yan y
percepción, sin embargo, en estas se pueden
presentado en ICAIF 2020. Del mismo modo, se
realizar múltiples acciones posibles. Por esta
pueden encontrar varios avances y publicaciones
razón, se acercan más a el aprendizaje humano.
acerca del tema. Una muestra de esto son las
Además, en caso de problemas secuenciales, las
publicaciones “An Intelligent System for Insider
tareas de acción involucran una planeación y una
Trading Identification in Chinese Security Market”
previsión del futuro.
de Deng, Wang, Fu y Wang; y “Machine Learning
for Market Microstructure and High Frequency 2.2.2 Reinforcement Learning2
Trading” en los cuales se aplica Machine Learning
En Reinforcement Learning, un agente
tanto en el mercado de securities de China como
programado realiza observaciones y toma
para el trading de alta frecuencia.
acciones dentro de un ambiente, y en retorno
2.2 Estado del Arte recibe recompensas. Su objetivo es aprender a
2.2.1 Machine Learning1 actuar en la forma que va a maximizar sus
recompensas esperadas a lo largo del tiempo. De
Todas las tareas de Machine Learning se basan en esta manera, se puede asemejar a que el agente
problemas conformados por un agente y el buscara obtener las recompensas positivas y
ambiente. En dichos problemas el agente evadir las negativas. En pocas palabras, el agente
interactúa con el ambiente para aprender de él y actúa en el ambiente y aprende por prueba y
obtener un mejor desempeño en sus tareas lo error para maximizar sus recompensas positivas y
que resulta en un problema de realizar las minimizar las negativas. Por otro lado,
acciones óptimas para lograr un objetivo. Reinforcement Learning puede ser aplicado a una
gran variedad de tareas, por ejemplo: el agente
puede ser el programa que controla un robot, el
agente puede ser el programa que controla el
juego de PacMan, el agente puede observar el
precio de una acción en el mercado y decidir
cuanto comprar o vender cada segundo,

Ilustración 1. Machine Learning

1 2
Definición obtenida de Hands-On Machine Learning Definición obtenida de Hands-On Machine Learning
with Scikit-Learn, Keras & TensorFlow with Scikit-Learn, Keras & TensorFlow
3
2.2.2.4 Proceso de Decisión de Markov

Un proceso de decisión de Markov es un proceso


estocástico de espacios de estados discretos en el
que la evolución futura solo depende de su
estado presente y es independiente de la
evolución pasada del proceso. Es decir, cumple
con la propiedad de no memoria.

2.2.2.4.1 Definición Formal


Un proceso estocástico de tiempo discreto
{𝑥𝑛 , 𝑛 ≥ 0} con espacios de estados discretos 𝑆
es una Cadena de Markov de Tiempo Discreto si
cumple que 𝑃{𝑥𝑛+1 = 𝑗, 𝑥𝑛−1 = 𝑖1 , 𝑥𝑛−2 =
𝑖2 , … , 𝑥0 = 𝑖0 } = 𝑃{𝑥𝑛+1 = 𝑗|𝑥𝑛 = 𝑖} para todos
los estados 𝑖, 𝑗 ∈ 𝑆 y todo índice 𝑛 ≥ 0. Es decir
Ilustración 2. Reinforcement Learning que la probabilidad de que el proceso este en el
estado 𝑗 en el momento 𝑛 + 1 solo depende del
2.2.2.1 Búsqueda de Política
momento 𝑛 y no de los momentos anteriores.
El algoritmo que utiliza el agente para determinar
Por otro lado, las Cadenas de Markov son
sus acciones se conoce como política. La política
homogéneas en el tiempo. Esto quiere decir que
puede ser cualquier algoritmo y no
cuando la Cadena de Markov cumple con
necesariamente debe ser determinístico. De tal
𝑃[𝑥𝑛+1 = 𝑗|𝑥𝑛 = 𝑖] = 𝑃[𝑥1 = 𝑗|𝑥0 = 𝑖] se dice
modo, cuando la política implica alguna
que es homogénea en el tiempo. Es decir, la
aleatoriedad se llama política estocástica. Así,
probabilidad de que el proceso pase de un estado
esta política con la cual el agente tomara las
a otro no depende del tiempo en el que se hace
decisiones se encuentra a partir de la
la observación. Así, la evolución del estado
implementación de dos parámetros de política,
depende solo del último estado observado, lo
algoritmos genéticos o gradientes de política.
cual no es necesariamente el último estado de la
2.2.2.2 Políticas de Redes Neuronales cadena.

Una política de redes neuronales se basa en que 2.2.2.4.2 Matriz de probabilidades de


la red neuronal tomará una observación como transición
input y retornará como output la acción que se
Al tener una Cadena de Markov homogénea en el
debe ejecutar. Más específicamente, la red
tiempo es de interés conocer las probabilidades
neuronal va a estimar la probabilidad de cada
condicionales dadas por 𝑃[𝑥𝑛+1 = 𝑗|𝑥𝑛 = 𝑖] que
acción y luego va a seleccionar una acción
no dependen del valor de 𝑛 y que se denotan
aleatoriamente de acuerdo con las
como 𝑃𝑖𝑗 . Así, la matriz que contiene las
probabilidades estimadas.
probabilidades 𝑃𝑖𝑗 para todo 𝑖𝑗 es:
2.2.2.3 Gradiente de política
𝑃11 𝑃12 𝑃1𝑗

Los algoritmos de “policy gradient” o gradiente de 𝑃21 𝑃22 𝑃2𝑗
𝑃=
política buscan optimizar los parámetros de una ⋮ ⋱ ⋮
política siguiendo los gradientes hacia mejores [ 𝑃𝑖1 𝑃𝑖2 ⋯ 𝑃𝑖𝑗 ]
recompensas.

4
Donde 𝑃 es una matriz cuadrada donde cada fila ambiente. Así, cuando una política es actualizada,
y columna está asociada a un estado 𝑆 y el la recolección de experiencias utilizadas se olvida
componente de la fila (𝑖) y la columna (𝑗) es la y se toma una nueva colección a partir de las
probabilidad de que en el sistema se pase del decisiones tomadas con la nueva política. Esto,
estado 𝑖 al estado 𝑗 en un paso. genera que este algoritmo sea del tipo “on-policy
Learning” donde las experiencias tomadas son
2.2.2.4.3 Estado Inicial solo útiles para la actualización de la política
Otro parámetro importante para definir una actual. (Python Lessons, 2020)
Cadena de Markov de Tiempo Discreto es el
2.2.3.1 Estructura modelo Actor-Critic
estado inicial del proceso. Este se caracteriza a
través de 𝑎𝑖 = 𝑃[𝑥0 = 1] o la probabilidad de PPO utiliza la aproximación Actor-Critic para el
que el estado inicial del proceso sea 𝑖. agente, lo que significa que utiliza dos modelos,
uno llamado el Actor y otro llamado Critic. El
2.2.2.4.4 Ecuación de Bellman modelo del Actor se encarga de aprender qué
Bellman encontró la manera para estimar el valor acción tomar bajo la observación de un estado
óptimo de estado de cada estado S, denotado particular del ambiente. De manera similar, el rol
como 𝑉 ∗ (𝑠), que es la suma de todas las principal del modelo Critic es aprender a evaluar
recompensas futuras descontadas que el agente si la acción tomada por el modelo Actor mejora el
puede esperar en promedio después de alcanzar rendimiento en el ambiente o no, y envía
el estado S, asumiendo que actúa en optimalidad. realimentación al Actor. El modelo Critic envía un
Bellman demostró que, si un agente actúa en numero indicando el rating (Q-value) de la acción
optimalidad, entonces la Ecuación de tomada en el estado anterior. Así, comparando
Optimalidad de Bellman aplica. los rating obtenidos, el modelo Actor puede
comparar su política actual con la nueva y decidir
Ecuación 1. Ecuación de Optimalidad de Bellman cómo quiere mejorar para tomar mejores
acciones.
𝑉 ∗ (𝑠) = max ∑ 𝑇(𝑠, 𝑎, 𝑠 ′ )[𝑅(𝑠, 𝑎, 𝑠 ′ ) + 𝛾
a
𝑠 3. Metodología
∗ 𝑉 ∗ (𝑠 ′ )] ∀ 𝑠 3.1 Ambiente
Donde,
Una parte importante de la implementación de
• 𝑇(𝑠, 𝑎, 𝑠 ′)
es la probabilidad de Reinforcement Learning para plantear un agente
transición del estado 𝑠 al estado 𝑠 ′ , dado de trading es el ambiente. Para esto, se creó un
que el agente escoge la acción 𝑎. ambiente personalizado del cual el agente
• 𝑅(𝑠, 𝑎, 𝑠 ′ ) es la recompensa que recibe obtendrá la información y le permitirá tomar
el agente cuando pasa del estado 𝑠 al diferentes acciones durante la ventana de
estado 𝑠 ′ , dado que el agente escoge la tiempo. Este ambiente personalizado cuenta con
acción 𝑎. cuatro funciones fundamentales para correr al
• 𝛾 es el factor de descuento. agente y permitir que aprenda. Estas funciones
son la iniciación, paso, reset y render.
2.2.3 Proximal Policy Optimization 3.1.1 Iniciación
PPO o “Proximal Policy Optimization” es uno de La función de iniciación se utiliza principalmente
los métodos de Reinforcement Learning más para declarar el espacio de acciones que se
populares. PPO se basa en la actualización de las podrán ejecutar y el espacio de estados que
políticas de decisión del agente en base a la contiene toda la información del ambiente.
recolección de experiencias interactuando con el Además, en esta función se tienen en cuenta el
5
número de pasos de la ventana de tiempo, la De esta manera, el agente tendrá toda la
información de las ordenes realizadas y el dinero información relevante al momento de tomar una
inicial con el cual el agente podrá comprar o acción.
vender la acción. En esta función también se
3.1.2.2 Acciones
inicializarán los parámetros y el optimizador de la
Red Neuronal. El agente podrá tomar principalmente 3 acciones:
comprar, vender y mantener. Sin embargo, según
3.1.2 Paso
la información que obtenga de los estados y el
En la formulación del agente de trading cada paso dinero disponible podrá tomar 9 acciones. Estas
será la transición de un estado a otro a partir de acciones serán comprar utilizando el 25%,
una acción. Así, si en el momento T1 y el estado S1 50%,75% o 100% del presupuesto; o vender el
el agente toma la acción A1 este pasará a un 25%, 50%, 75% o 100% de las posiciones que
estado S2 en T2 a través de un paso. tiene en el mercado. Teniendo en cuenta que en
cada momento puede decidir mantener la
3.1.2.1 Estados posición que tiene desde el paso anterior. Cabe
Para la construcción del algoritmo se tienen en aclarar, que para tomar cada acción se tendrá en
cuenta 5 estados de los cuales en cada instante cuenta el presupuesto inicial que se le otorga a el
de tiempo se obtendrá la información. Estos agente.
estados son 𝑆1, 𝑆2 , 𝑆3 , 𝑆4 y 𝑆5 donde: Ahora bien, se llamará valor neto a la suma entre
𝑆1 : 𝑁𝑜 𝑡𝑒𝑛𝑒𝑟 𝑑𝑖𝑛𝑒𝑟𝑜 𝑖𝑛𝑣𝑒𝑟𝑡𝑖𝑑𝑜 el valor que tiene disponible en efectivo el agente
y el valor de las posiciones abiertas que tiene en
𝑆2 : 25% 𝑑𝑒𝑙 𝑑𝑖𝑛𝑒𝑟𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙 𝑖𝑛𝑣𝑒𝑟𝑡𝑖𝑑𝑜 el mercado. Así, cada una de las acciones va a
𝑆3 : 50% 𝑑𝑒𝑙 𝑑𝑖𝑛𝑒𝑟𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙 𝑖𝑛𝑣𝑒𝑟𝑡𝑖𝑑𝑜 estar condicionada y tendrá un resultado
diferente en el valor neto de nuestro agente.
𝑆4 : 75% 𝑑𝑒𝑙 𝑑𝑖𝑛𝑒𝑟𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙 𝑖𝑛𝑣𝑒𝑟𝑡𝑖𝑑𝑜 (Anexo 1)
𝑆5 : 100% 𝑑𝑒𝑙 𝑑𝑖𝑛𝑒𝑟𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙 𝑖𝑛𝑣𝑒𝑟𝑡𝑖𝑑𝑜 Cabe aclarar, que en esta cadena de Markov
Por otra parte, la información que se tiene en (Anexo 2) no se tiene en cuenta la matriz de
cuenta en los estados serán todos los datos que probabilidad ya que al tomar una acción la
se deben tener en cuenta al momento de tomar probabilidad de pasar a el otro estado será de 1.
una acción al momento de realizar Trading. Para
3.1.3 Reset
poder tener en cuenta toda esta información se
tendrá en cada estado la historia de las órdenes y La función de Reset es utilizada para reiniciar el
la historia del mercado. Como historia de las ambiente a un estado inicial y donde se calculan
ordenes se tendrá la información del balance, el las recompensas. En esta función parámetros
valor neto generado por las decisiones tomadas y como el dinero inicial, el Valor Neto generado por
la información de las acciones tomadas en los el agente y la historia del mercado vuelven a
últimos 50 pasos. Ahora bien, como historia del tomar los valores iniciales otorgados en la función
mercado se tendrá la información del precio para de iniciación.
los últimos 50 pasos. Así, la información de los
estados estaría contenida en un arreglo de 10
3.1.4 Render
columnas por 50 filas donde cada fila tiene la La función de Render será utilizada para imprimir
siguiente estructura: los resultados periódicamente. A través de esta
[𝐵𝑎𝑙𝑎𝑛𝑐𝑒, 𝑉𝑎𝑙𝑜𝑟, 𝐶𝑜𝑚𝑝𝑟𝑎, 𝑉𝑒𝑛𝑑𝑒, 𝑀𝑎𝑛𝑡𝑖𝑒𝑛𝑒, visualización se observará cómo el agente toma
las decisiones, qué tipo de acciones toma en cada
𝑂𝑝𝑒𝑛, 𝐻𝑖𝑔ℎ, 𝐿𝑜𝑤, 𝐶𝑙𝑜𝑠𝑒, 𝑉𝑜𝑙𝑢𝑚𝑒]
6
momento de tiempo y el profit o valor neto algoritmo de PPO, por lo que, es necesario
generado por las decisiones tomadas. plantear la estructura del modelo Actor-Critic
para el algoritmo.
3.1.5 Recompensa
En cuanto a la recompensa se busca que
promueva el valor neto o las ganancias a largo
plazo. Por esto para cada paso se calcula la
diferencia entre el valor neto del periodo actual
con respecto al periodo anterior.

𝑟𝑒𝑐𝑜𝑚𝑝𝑒𝑛𝑧𝑎 = 𝑉𝑎𝑙𝑜𝑟 𝑁𝑒𝑡𝑜𝑡 − 𝑉𝑎𝑙𝑜𝑟 𝑁𝑒𝑡𝑜𝑡−1


3.2.2.1 Modelo Actor
Así, se busca que al largo plazo el agente logre
generar ganancias prolongadas durante la Para el agente de trading, el modelo Actor recibe
ventana de tiempo más allá de solo generar como input 10 valores de la historia de las
ganancias con estrategias insostenibles. órdenes y la historia del mercado que
representan el estado actual del agente de
3.2 Agente trading. Luego, con esta información el modelo
3.2.1 Agente Random retorna que acción llevar a cabo.

Primero, se creó un agente que toma las


decisiones sin ningún criterio y poder verificar y
comparar el funcionamiento del Agente RF.

3.2.2 Agente Reinforcement Learning


La forma más común de utilizar Reinforcement
Learning es a partir de un agente que observa el
estado actual del ambiente y basado en su
política de decisión toma una acción. Al tomar
3.2.2.1.1 Perdida PPO
esta acción el agente dará un paso en la línea de
tiempo y generará una recompensa que indicará A partir del entreno del modelo y el avance en la
si la acción que acaba de tomar es positiva o ventana de tiempo, se espera que el agente
negativa. Utilizando esta información el agente empiece mejorar las probabilidades de acción y
busca la manera en la cual puede editar su política así obtener mejores acciones conforme pasa la
actual en busca de obtener mejores recompensas ventana de tiempo. Para esto es importante
en el futuro. controlar los cambios que toma el agente, por lo
que, se hace importante el cálculo de la perdida
PPO. Con este cálculo básicamente se busca
generar medidas para que el modelo solo cree
pequeñas actualizaciones en un paso y así
estabilizar el proceso de entrenamiento. Esto se
logra a través del cálculo de las diferencias entre
las probabilidades encontradas entre dos pasos
adyacentes y colocando un margen de cambio el
Ahora bien, aunque esta metodología es muy cual se está dispuesto a tolerar.
buena, para el agente de trading con el cual se
buscará generar ganancias se utilizará el
7
3.2.2.2 Modelo Critic políticas de toma de decisiones. Estas variables
serán el número de ordenes por episodios y el
Primero, el modelo Actor decide qué acción valor neto promedio teniendo en cuenta que se
tomar en el ambiente. Luego, el modelo Critic inicia con un valor de US$1000.
toma las recompensas, positivas si la acción
tomada genera ganancias o negativas si la acción
tomada genera pérdidas, de la acción tomada.
Después, el modelo Critic debe aprender a
evaluar si la acción tomada por el Actor hace que
el nuevo estado en el ambiente sea mejor o peor
que el anterior y darle realimentación. Esto se
logra a través del Q-value, un valor real que
posiciona las acciones tomadas conforme a la
recompensa de cada una. Así, al comparar las
posiciones de las diferentes acciones, el modelo
Actor puede escoger cuál es la mejor política y
decidir cómo mejorar las acciones que toma.
A partir de las ordenes por episodio se observa
que el agente inicia tomando alrededor de 160
decisiones en la ventana de tiempo. En
comparación, en los últimos episodios se observa
que el agente toma aproximadamente 70
decisiones durante la ventana de tiempo.

4. Resultados
4.1 Entrenamiento del Agente

En cuanto a el entrenamiento del Agente, se


guardan los últimos 100 valores del valor neto y
se lleva el rastreo del mejor promedio de todos
los valores netos. Luego, se conectan el modelo
Actor con el modelo Critic y se busca predecir las
mejores acciones que puede tomar el agente
para maximizar sus recompensas. Para este
punto se utilizan datos intradiarios de Bitcoin y se De igual forma, en el caso del valor neto
corren 20.000 episodios con una ventana de promedio se observa que el agente inicia
tiempo de 21 días (500 horas) cada uno. generando un valores cercanos a los US$1020, es
Ahora bien, la información de estos episodios que decir, una ganancia de US$20. En cambio, en los
se corren se guarda en diferentes archivos para últimos episodios el agente genera valores
tener en cuenta el aprendizaje al momento de cercanos a los US$1040, es decir, una ganancia de
que el agente tome nuevas decisiones. Del mismo US$40.
modo, se tendrán en cuenta dos variables para Teniendo en cuenta lo anterior, se observa que
medir y confirmar que el Agente está nuestro agente si está cambiando su política de
aprendiendo y generando cambios en sus decisión debido a la reducción significativa de las
8
decisiones que toma durante la ventana de 4.2.2 Agente Reinforcement Learning
tiempo que se tiene en cuenta. Asimismo, se
observa que a pesar de que el agente reduzca el La prueba del agente entrenado, con una política
número de decisiones que toma, el valor neto de decisión mejorada a través del entrenamiento,
promedio aumenta. Por esta razón, se puede se realizó con datos de 5 empresas: Apple,
concluir que el agente efectivamente está Amazon, Facebook, Microsoft y Tesla. Para las
aprendiendo y mejorando su política de decisión pruebas se utilizó una ventana de tiempo de 65
al tomar un menor número de acciones y generar días con datos intradiarios de estas empresas, se
mayores ganancias. debe tener en cuenta que solo se tiene
información de los días y las horas bursátiles.
4.2 Prueba del Agente
4.2.1 Agente Random

Primero, se probó el Agente Random para


obtener una primera visión del funcionamiento
del ambiente y unos resultados iniciales. Para
esta prueba se le otorgo al agente un saldo inicial
de US$1000, una ventana de tiempo de 65 días
con datos intradiarios y se utilizaron 5 empresas:
Apple, Amazon, Facebook, Microsoft y Tesla. Para
cada empresa se probaron 1000 episodios
obteniendo una ganancia promedios de US$55
para Apple, US$58 para Amazon, US$99 para
Facebook, US$ 66 para Microsoft y US$53 para
Tesla. Es decir, una ganancia promedio de US$66
dólares para las 5 empresas. Sin embargo, cabe
aclarar que este Agente utilizó un promedio de Para cada empresa se probaron 1000 episodios
170 órdenes para cada empresa, por lo que, los obteniendo una ganancia promedios de US$131
resultados obtenidos son congruentes con lo para Apple, US$126 para Amazon, US$336 para
esperado. Además, se observa que a pesar de que Facebook, US$196 para Microsoft. Por otro lado,
se generan ganancias, es inviable por el número se obtuvo una pérdida de US$67 para Tesla. Por
de órdenes para obtener esos resultados. lo que, se obtuvo una ganancia promedio de
US$144 dólares para las 5 empresas. Ahora bien,
se debe tener en cuenta que para obtener estas
ganancias el agente entrenado utilizó un
promedio de 8 ordenes por empresa, por lo que,
se observa una política de decisión viable y
acertada.

4.2.3 Comparación de rendimientos


Primero, se calcula el rendimiento promedio del
agente entrenado. Las ganancias promedio para
las 5 empresas fueron de US$144. Por lo que, se
tuvo un rendimiento de 14.46% para los 65 días
de la ventana de tiempo. Así, al pasar este
rendimiento a efectivo mensual se observa que el
agente tuvo un rendimiento de 6.43% mensual a
9
partir de la política de decisión obtenida. Por otro Learning (in Finance):
lado, el rendimiento mensual del índice S&P500 https://corporatefinanceinstitute.com/resources
es de 5.29% según Yahoo Finance. Así, al /knowledge/other/machine-learning-in-finance/
comparar el resultado obtenido por el agente y el
Geron, A. (2017). Hands-On Machine Learning
rendimiento del índice de mercado se observa
with Scikit-Learn and TensorFlow
que gracias a la política de decisión utilizada el
agente obtiene mayores rendimientos que el Gershenfeld, N. (1999). The Nature of
mercado. Mathematical Modeling
5. Conclusiones y Recomendaciones Halperin, I. (2018). The QLBS Q-Learner Goes
NuQLear: Fitted Q Iteration, Inverse RL, and
Finalmente, se observa que el planteamiento de
Option Portfolios. NYU Tandon School of
un agente de trading basado en algoritmos de
Engineering.
Reinforcement Learning da buenos resultados al
momento de tomar decisiones de inversión en Halperin, I. (2019). QLBS: Q-Learner in the Black-
diferentes acciones del mercado. A través del Scholes(-Merton) Worlds.
algoritmo de Proximal Policy Optimization se
KSU | The Sentinel Newspaper. (4 de Mayo de
logró obtener una ganancia promedio de
2021). Obtenido de
USD$144 y un rendimiento de 6.43% mensual con
https://ksusentinel.com/2021/05/04/machine-
acciones de empresas como Apple, Amazon,
learning-artificial-intelligence-market-impact-
Facebook, Microsoft y Tesla. Sin embargo, estos
and-recovery-analysis-report-anki-cloudminds-
resultados se generaron sin tener en cuenta los
deepmind-google-facebook/
diferentes costos de transacción asociados a la
compra y venta de acciones en el mercado. Por La República. (27 de Abril de 2021). La República.
esta razón, al momento de llevar este tipo de Obtenido de La República:
algoritmos a la práctica es importante tener en https://www.larepublica.co/especiales/la-banca-
cuenta el riesgo asociado a estos costos y la del-manana/la-inteligencia-artificial-entre-las-
disminución de las ganancias por los mismos. Por nuevas-opciones-tecnologicas-que-incluyo-la-
otra parte, se podrían utilizar otros algoritmos de banca-3160194
Reinforcement Learning para entrenar al agente
y observar si se encuentran mejores resultados, Marsland, S. (2009) Machine Learning: An
además, de utilizar más información o Algorithmic Perspective
indicadores del mercado para mejorar la toma de Murphy, K.P. (2012) Machine Learning: A
decisiones tanto en el proceso de entrenamiento Probabilistic Perspective
del agente como para la prueba.
Potters, M., Bouchaud, J.-P., & Sestovic, D.
6. Bibliografía (2000). Hedged Monte-Carlo: low variance
derivative.
Barber, D. (2012) Bayesian Reasoning and
Machine Learning Python Lessons. (13 de Noviembre de 2020).
LunarLander-v2 with Proximal Policy
Bishop, C. (2006) Pattern Recognition and
Optimization . Obtenido de LunarLander-v2 with
Machine Learning
Proximal Policy Optimization :
Black, F., & Litterman, R. (1992). Global Portfolio https://pylessons.com/LunarLander-v2-PPO/
Optimization. Financial Analysts Journal.
The Trade News. (8 de Abril de 2021). The Trade
Corporate Finance Institute. (s.f.). Machine News. Obtenido de The Trade News:
Learning (in Finance). Obtenido de Machine https://www.thetradenews.com/machine-
10
learning-futures-algo-trading-surges-at-jp- El dinero en efectivo se disminuye en
morgan/
𝐷𝑖𝑛𝑒𝑟𝑜𝑡 = 𝐷𝑖𝑛𝑒𝑟𝑜𝑡−1 + 𝑋 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜𝑡
Wiering, M., & Van Otterlo, M. (2011).
La posición en el número de acciones aumenta en
Reinforcement Learning. Springer.
#𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡 = #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 − 𝑋
7. Anexos
7.1 Anexo 1. Condiciones y resultados • Acción 3: Comprar con el 50%
de las acciones Condición:
• Acción 0: Mantener
El dinero disponible debe ser mayor al 50% del
Condición: presupuesto inicial.
Ninguna Resultado:
Resultado: Se comprarán X acciones donde X es:
El dinero disponible en efectivo se mantiene y el 𝑋 = 50% ∗ 𝑃𝑟𝑒𝑠𝑢𝑝𝑢𝑒𝑠𝑡𝑜0 /𝑃𝑟𝑒𝑐𝑖𝑜𝑡
valor de las posiciones abiertas aumenta o
disminuye en: El dinero en efectivo se disminuye en

#𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠 ∗ (𝑃𝑟𝑒𝑐𝑖𝑜𝑡 − 𝑃𝑟𝑒𝑐𝑖𝑜𝑡−1 ) 𝐷𝑖𝑛𝑒𝑟𝑜𝑡 = 𝐷𝑖𝑛𝑒𝑟𝑜𝑡−1 − 𝑋 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜𝑡

• Acción 1: Comprar con el 25% La posición en el número de acciones aumenta en

Condición: #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡 = #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 + 𝑋

El dinero disponible debe ser mayor al 25% del • Acción 4: Vender el 50%
presupuesto inicial. Condición:
Resultado: El valor de la posición abierta debe ser mayor al
Se comprarán X acciones donde X es: 50% del presupuesto inicial.

𝑋 = 25% ∗ 𝑃𝑟𝑒𝑠𝑢𝑝𝑢𝑒𝑠𝑡𝑜0 /𝑃𝑟𝑒𝑐𝑖𝑜𝑡 Resultado:

El dinero en efectivo se disminuye en Se venderán X acciones donde X es:

𝐷𝑖𝑛𝑒𝑟𝑜𝑡 = 𝐷𝑖𝑛𝑒𝑟𝑜𝑡−1 − 𝑋 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜𝑡 𝑋 = # 𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 ∗ 50%

La posición en el número de acciones aumenta en El dinero en efectivo se disminuye en

#𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡 = #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 + 𝑋 𝐷𝑖𝑛𝑒𝑟𝑜𝑡 = 𝐷𝑖𝑛𝑒𝑟𝑜𝑡−1 + 𝑋 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜𝑡

• Acción 2: Vender el 25% La posición en el número de acciones aumenta en

Condición: #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡 = #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 − 𝑋

El valor de la posición abierta debe ser mayor al • Acción 5: Comprar con el 75%
25% del presupuesto inicial. Condición:
Resultado: El dinero disponible debe ser mayor al 75% del
Se venderán X acciones donde X es: presupuesto inicial.

𝑋 = # 𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 ∗ 25% Resultado:

11
Se comprarán X acciones donde X es: El valor de la posición abierta debe ser mayor al
100% del presupuesto inicial.
𝑋 = 75% ∗ 𝑃𝑟𝑒𝑠𝑢𝑝𝑢𝑒𝑠𝑡𝑜0 /𝑃𝑟𝑒𝑐𝑖𝑜𝑡
Resultado:
El dinero en efectivo se disminuye en
Se venderán X acciones donde X es:
𝐷𝑖𝑛𝑒𝑟𝑜𝑡 = 𝐷𝑖𝑛𝑒𝑟𝑜𝑡−1 − 𝑋 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜𝑡
𝑋 = # 𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 ∗ 100%
La posición en el número de acciones aumenta en
El dinero en efectivo se disminuye en
#𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡 = #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 + 𝑋
𝐷𝑖𝑛𝑒𝑟𝑜𝑡 = 𝐷𝑖𝑛𝑒𝑟𝑜𝑡−1 + 𝑋 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜𝑡
• Acción 6: Vender el 75%
La posición en el número de acciones aumenta en
Condición:
#𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡 = #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 − 𝑋
El valor de la posición abierta debe ser mayor al
75% del presupuesto inicial. 7.2 Anexo 2. Cadena de Markov

Resultado:

Se venderán X acciones donde X es:

𝑋 = # 𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 ∗ 75%
El dinero en efectivo se disminuye en

𝐷𝑖𝑛𝑒𝑟𝑜𝑡 = 𝐷𝑖𝑛𝑒𝑟𝑜𝑡−1 + 𝑋 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜𝑡


La posición en el número de acciones aumenta en

#𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡 = #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 − 𝑋

• Acción 7: Comprar con el 100%

Condición:

El dinero disponible debe ser mayor al 100% del


presupuesto inicial.

Resultado:

Se comprarán X acciones donde X es:

𝑋 = 100% ∗ 𝑃𝑟𝑒𝑠𝑢𝑝𝑢𝑒𝑠𝑡𝑜0 /𝑃𝑟𝑒𝑐𝑖𝑜𝑡


El dinero en efectivo se disminuye en

𝐷𝑖𝑛𝑒𝑟𝑜𝑡 = 𝐷𝑖𝑛𝑒𝑟𝑜𝑡−1 − 𝑋 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜𝑡


La posición en el número de acciones aumenta en

#𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡 = #𝐴𝑐𝑐𝑖𝑜𝑛𝑒𝑠𝑡−1 + 𝑋

• Acción 8: Vender el 100%

Condición:

12

También podría gustarte