Un ejemplo simple de aprendizaje por refuerzo basado en Gym Anytrading

Reinforcement Learning (RL) ha recibido mucha atención en el campo del comercio algorítmico en los últimos años. Los algoritmos de aprendizaje por refuerzo aprenden de la experiencia y optimizan las acciones en función de las recompensas, lo que los hace ideales para los bots comerciales. En este artículo, presentaremos brevemente cómo usar el entorno Gym Anytrading y el conjunto de datos comerciales de GME (GameStop Corp.) para construir un robot comercial basado en el aprendizaje por refuerzo.

El aprendizaje por refuerzo es un subcampo del aprendizaje automático que implica que un agente aprenda a interactuar con un entorno para lograr un objetivo específico. El agente realiza acciones en el entorno, recibe retroalimentación en forma de recompensas y aprende a maximizar las recompensas acumuladas con el tiempo. El objetivo del agente es descubrir una política óptima que asigne estados a acciones, lo que lleva al mejor resultado posible.

Gimnasio Anytrading

Gym Anytrading es una biblioteca de código abierto construida sobre OpenAI Gym, que proporciona una serie de entornos de comercio financiero. Nos permite simular varios escenarios comerciales y probar diferentes estrategias comerciales utilizando algoritmos RL.

instalar dependencias

Las principales bibliotecas que se utilizarán son TensorFlow, stable-baselines3 y Gym Anytrading. Ejecute el siguiente código para instalar las dependencias requeridas:

 !pip install tensorflow 
 !pip install stable_baselines3 
 !pip install gym
 !pip install gym-anytrading 
 !pip install tensorflow-gpu

importar biblioteca

Importe las bibliotecas necesarias y configure el entorno para comenzar:

 # Gym stuff
 import gym
 import gym_anytrading
 
 # Stable baselines - RL stuff
 from stable_baselines3.common.vec_env import DummyVecEnv
 from stable_baselines3 import A2C
 
 # Processing libraries
 import numpy as np
 import pandas as pd
 from matplotlib import pyplot as plt

Cargar datos de transacciones de GME

Los datos históricos de transacciones de GameStop Corp. (GME) se utilizarán como ejemplo. Suponemos que tiene datos de transacciones de GME en formato CSV, si no, puede encontrar la dirección de descarga a través de motores de búsqueda.

Cargue los datos comerciales de GME y prepárese para el entorno Gym Anytrading:

 # Load GME trading data
 df = pd.read_csv('gmedata.csv')
 
 # Convert data to datetime type
 df['Date'] = pd.to_datetime(df['Date'])
 df.dtypes
 
 # Set Date as the index
 df.set_index('Date', inplace=True)
 df.head()

Cree un entorno comercial a través de Gym

El siguiente paso es crear un entorno comercial con Gym Anytrading. El entorno representará los datos de transacciones de GME y nuestro agente interactuará con el entorno a través de acciones como comprar, vender y mantener acciones.

 # Create the environment
 env = gym.make('stocks-v0', df=df, frame_bound=(5, 100), window_size=5)
 
 # View environment features
 env.signal_features
 
 # View environment prices
 env.prices

explorar el entorno

Antes de proceder a construir el modelo RL, es posible visualizar el entorno para comprender sus características.

 # Explore the environment
 env.action_space
 
 state = env.reset()
 while True:
     action = env.action_space.sample()
     n_state, reward, done, info = env.step(action)
     if done:
         print("info", info)
         break
 
 plt.figure(figsize=(15, 6))
 plt.cla()
 env.render_all()
 plt.show()

El gráfico muestra una parte de los datos comerciales de GME, junto con las señales de compra y venta generadas por el entorno Gym Anytrading.

Cree modelos de aprendizaje por refuerzo

Usaremos la biblioteca stable-baselines3 para construir el modelo RL. Usaremos el algoritmo A2C (Advantage Actor-Critic)

 # Creating our dummy vectorizing environment
 env_maker = lambda: gym.make('stocks-v0', df=df, frame_bound=(5, 100), window_size=5)
 env = DummyVecEnv([env_maker])
 
 # Initializing and training the A2C model
 model = A2C('MlpPolicy', env, verbose=1)
 model.learn(total_timesteps=1000000)

modelo de evaluación

Después de entrenar el modelo, es posible evaluar su desempeño en diferentes partes de los datos de transacciones de GME.

 # Create a new environment for evaluation
 env = gym.make('stocks-v0', df=df, frame_bound=(90, 110), window_size=5)
 obs = env.reset()
 while True:
     obs = obs[np.newaxis, ...]
     action, _states = model.predict(obs)
     obs, rewards, done, info = env.step(action)
     if done:
         print("info", info)
         break
 
 plt.figure(figsize=(15, 6))
 plt.cla()
 env.render_all()
 plt.show()

Resumir

En esta publicación, describimos cómo usar el entorno Gym Anytrading y la biblioteca stable-baselines3 para construir un robot comercial basado en el aprendizaje por refuerzo. Este artículo es solo un punto de partida, construir un robot comercial exitoso requiere una cuidadosa consideración de varios factores y una mejora continua.

https://evitar.overfit.cn/post/77466ba1f1d34ccca01aa4096c0cf8d7

Dirección:Kabila MD Musa

Supongo que te gusta

Origin blog.csdn.net/m0_46510245/article/details/131801258
Recomendado
Clasificación