我是量化的初学者。这是我的第一次尝试。
我的第一次尝试没有成功。所以如果寻找成功经验的网友可以看别的帖子了。
一、我的所有工作基于假设:
存在一种策略可以应对各种合约的交易,并且获利。
二、准备工作
- 下载了CFFEX,SHFE,DCE,CZCE的全场的日k线。
- 因为vnpy是在所有数据回放完成以后才去计算每日的盈亏。但是强化学习要求计算每一次行为的立即收益。所以我通过自己创建DailyResult对象在on_bar函数中随时计算之前交易带来的净收益。将净收益作为强化学习的激励。
三、算法
- 观测:bar.volume, bar.open_interest, bar.open_price, bar.close_price, bar.high_price, bar.low_price, self.pos
- 行为:开或加多仓(1个仓位)/平空仓,开或加空仓(1个仓位)/平多仓,平仓多/空仓,无操作。一共4种。
- 采用的算法是RNN PPO强化学习算法
四、结果与分析
经过训练发现agent一开始会尝试各种操作。但是训练收敛后的策略是保持无操作。
是否不存在一种适用所有合约的通用策略?如果真的存在那就是完全不进行任何期货交易。
欢迎一起讨论,我的代码在这里。