自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于Gym Anytrading 的強(qiáng)化學(xué)習(xí)簡(jiǎn)單實(shí)例

人工智能 機(jī)器學(xué)習(xí)
近年來(lái)強(qiáng)化學(xué)習(xí)(RL)在算法交易領(lǐng)域受到了極大的關(guān)注。強(qiáng)化學(xué)習(xí)算法從經(jīng)驗(yàn)中學(xué)習(xí)并基于獎(jiǎng)勵(lì)優(yōu)化行動(dòng)使其非常適合交易機(jī)器人。在這篇文章,我們將簡(jiǎn)單介紹如何使用Gym Anytrading環(huán)境和GME (GameStop Corp.)交易數(shù)據(jù)集構(gòu)建一個(gè)基于強(qiáng)化學(xué)習(xí)的交易機(jī)器人。

近年來(lái)強(qiáng)化學(xué)習(xí)(RL)在算法交易領(lǐng)域受到了極大的關(guān)注。強(qiáng)化學(xué)習(xí)算法從經(jīng)驗(yàn)中學(xué)習(xí)并基于獎(jiǎng)勵(lì)優(yōu)化行動(dòng)使其非常適合交易機(jī)器人。在這篇文章,我們將簡(jiǎn)單介紹如何使用Gym Anytrading環(huán)境和GME (GameStop Corp.)交易數(shù)據(jù)集構(gòu)建一個(gè)基于強(qiáng)化學(xué)習(xí)的交易機(jī)器人。

強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)子領(lǐng)域,涉及代理學(xué)習(xí)與環(huán)境交互以實(shí)現(xiàn)特定目標(biāo)。代理在環(huán)境中采取行動(dòng),接收獎(jiǎng)勵(lì)形式的反饋,并學(xué)會(huì)隨著時(shí)間的推移最大化累積獎(jiǎng)勵(lì)。代理的目標(biāo)是發(fā)現(xiàn)一個(gè)將狀態(tài)映射到行動(dòng)的最優(yōu)策略,從而導(dǎo)致最好的可能結(jié)果。

Gym Anytrading

Gym Anytrading是一個(gè)建立在OpenAI Gym之上的開源庫(kù),它提供了一系列金融交易環(huán)境。它允許我們模擬各種交易場(chǎng)景,并使用RL算法測(cè)試不同的交易策略。

安裝依賴

將使用的主要庫(kù)是TensorFlow, stable-baselines3和Gym Anytrading。運(yùn)行以下代碼來(lái)安裝所需的依賴項(xiàng):

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

導(dǎo)入庫(kù)

導(dǎo)入必要的庫(kù)和設(shè)置環(huán)境開始:

# 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

加載GME交易數(shù)據(jù)

將使用GameStop Corp. (GME)的歷史交易數(shù)據(jù)作為示例。我們假設(shè)您擁有CSV格式的GME交易數(shù)據(jù),沒有的話可以通過搜索引擎找到下載地址。

加載GME交易數(shù)據(jù)并為Gym Anytrading環(huán)境做準(zhǔn)備:

# 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()

通過Gym創(chuàng)建交易環(huán)境

下一步就是使用Gym Anytrading創(chuàng)建交易環(huán)境。環(huán)境將代表GME交易數(shù)據(jù),我們的代理將通過購(gòu)買、出售和持有股票等行為與環(huán)境進(jìn)行交互。

# 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

探索環(huán)境

在繼續(xù)構(gòu)建RL模型之前,可以先對(duì)環(huán)境可視化了解其特征。

# 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()

該圖顯示了GME交易數(shù)據(jù)的一部分,以及Gym Anytrading環(huán)境生成的買入和賣出信號(hào)。


構(gòu)建強(qiáng)化學(xué)習(xí)模型

我們將使用stable-baselines3庫(kù)構(gòu)建RL模型。我們將使用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)

評(píng)估模型

在訓(xùn)練模型之后,可以評(píng)估它在GME交易數(shù)據(jù)的不同部分上的表現(xiàn)。

# 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()

總結(jié)

在這篇文章中,我們介紹了如何使用Gym Anytrading環(huán)境和stable-baselines3庫(kù)來(lái)構(gòu)建一個(gè)基于強(qiáng)化學(xué)習(xí)的交易機(jī)器人。本文只是一個(gè)起點(diǎn),構(gòu)建一個(gè)成功的交易機(jī)器人需要仔細(xì)考慮各種因素并不斷改進(jìn)。


責(zé)任編輯:華軒 來(lái)源: DeepHub IMBA
相關(guān)推薦

2017-02-24 13:27:37

阿里開源

2023-10-31 16:40:39

機(jī)器學(xué)習(xí)強(qiáng)化學(xué)習(xí)

2017-07-14 16:24:48

TensorFlow框架開發(fā)

2023-03-09 08:00:00

強(qiáng)化學(xué)習(xí)機(jī)器學(xué)習(xí)圍棋

2020-08-10 06:36:21

強(qiáng)化學(xué)習(xí)代碼深度學(xué)習(xí)

2023-08-14 16:49:13

強(qiáng)化學(xué)習(xí)時(shí)態(tài)差分法

2021-09-17 15:54:41

深度學(xué)習(xí)機(jī)器學(xué)習(xí)人工智能

2020-11-12 19:31:41

強(qiáng)化學(xué)習(xí)人工智能機(jī)器學(xué)習(xí)

2022-04-12 09:21:50

AIPython自動(dòng)駕駛

2022-11-02 14:02:02

強(qiáng)化學(xué)習(xí)訓(xùn)練

2023-11-07 07:13:31

推薦系統(tǒng)多任務(wù)學(xué)習(xí)

2024-12-09 08:45:00

模型AI

2020-06-05 08:09:01

Python強(qiáng)化學(xué)習(xí)框架

2023-08-05 13:08:54

2025-04-18 12:25:34

2024-04-03 07:56:50

推薦系統(tǒng)多任務(wù)推薦

2020-05-12 07:00:00

深度學(xué)習(xí)強(qiáng)化學(xué)習(xí)人工智能

2022-05-31 10:45:01

深度學(xué)習(xí)防御

2024-01-26 08:31:49

2023-12-03 22:08:41

深度學(xué)習(xí)人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)