(9-6)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):交易

文章讲述了使用A2C算法对道琼斯30支股票进行交易的实验,包括数据预处理、环境构建、模型预测及结果分析,展示了每日回报率和交易动作数据的处理过程,并将数据保存为CSV文件。
摘要由CSDN通过智能技术生成

9.9  交易

假设我们在2019年1月1日有1,000,000美元的初始资本,接下来使用A2C模型来交易道琼斯30支股票。

(1)下面的代码划分了名为df的数据集,选择了日期范围从'2020-07-01'到'2021-10-31',并使用之前定义的参数env_kwargs创建了一个名为e_trade_gym的股票交易环境。

trade = data_split(df,'2020-07-01', '2021-10-31')
e_trade_gym = StockPortfolioEnv(df = trade, **env_kwargs)

(2)下面的代码返回trade数据集的形状(行数和列数),由于提供的代码片段中未包含完整的上下文,无法提供确切的答案。如果需要获取trade数据集的形状,请将这行代码与其上下文一起使用。

trade.shape

执行后会输出:

(9436, 19)

(3)使用经过训练的A2C模型 (trained_a2c) 对测试环境 (e_trade_gym) 进行预测,并返回两个数据框 (df_daily_return 和 df_actions)。df_daily_return 包含每日回报率,而 df_actions 包含了每个交易日的模型预测的股票权重。

df_daily_return, df_actions = DRLAgent.DRL_prediction(model=trained_a2c,
                        environment = e_trade_gym)

执行后会输出:

=================================
begin_total_asset:1000000
end_total_asset:1363803.996631671
Sharpe:  1.8078156710226434
=================================

hit end!

(4)下面的代码显示了 df_daily_return 数据框的前几行内容,该数据框包含了每日的回报率信息。

df_daily_return.head()

执行后会输出:

     date      daily_return

0 2020-07-01 0.000000

1 2020-07-02 0.005197

2 2020-07-06 0.014996

3 2020-07-07 -0.013876

4 2020-07-08 0.005758

(5)将df_daily_return数据框保存为 CSV 文件(df_daily_return.csv),并显示了 df_actions 数据框的前几行内容,其中包含了每个交易日的交易动作信息。

df_daily_return.to_csv('df_daily_return.csv')
df_actions.head()

执行后会输出:

AAPL	AMGN	AXP	BA	CAT	CRM	CSCO	CVX	DIS	GS	...	MMM	MRK	MSFT	NKE	PG	TRV	UNH	VZ	WBA	WMT
date																					
2020-07-01	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714	...	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714	0.035714
2020-07-02	0.026683	0.072532	0.026683	0.026683	0.049773	0.050339	0.044964	0.026683	0.026782	0.026683	...	0.026683	0.026683	0.026683	0.072532	0.054498	0.042832	0.026683	0.029133	0.053768	0.026683
2020-07-06	0.026683	0.072532	0.026683	0.026683	0.049773	0.050339	0.044964	0.026683	0.026782	0.026683	...	0.026683	0.026683	0.026683	0.072532	0.054498	0.042832	0.026683	0.029133	0.053768	0.026683
2020-07-07	0.026683	0.072532	0.026683	0.026683	0.049773	0.050339	0.044964	0.026683	0.026782	0.026683	...	0.026683	0.026683	0.026683	0.072532	0.054498	0.042832	0.026683	0.029133	0.053768	0.026683
2020-07-08	0.026683	0.072532	0.026683	0.026683	0.049773	0.050339	0.044964	0.026683	0.026782	0.026683	...	0.026683	0.026683	0.026683	0.072532	0.054498	0.042832	0.026683	0.029133	0.053768	0.026683

(6)将 df_actions数据框保存为 CSV 文件(df_actions.csv),具体实现代码如下所示。

df_actions.to_csv('df_actions.csv')

未完待续

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农三叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值