VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 3
声望: 0

我是量化的初学者。这是我的第一次尝试。
我的第一次尝试没有成功。所以如果寻找成功经验的网友可以看别的帖子了。

一、我的所有工作基于假设:
存在一种策略可以应对各种合约的交易,并且获利。

二、准备工作

  1. 下载了CFFEX,SHFE,DCE,CZCE的全场的日k线。
  2. 因为vnpy是在所有数据回放完成以后才去计算每日的盈亏。但是强化学习要求计算每一次行为的立即收益。所以我通过自己创建DailyResult对象在on_bar函数中随时计算之前交易带来的净收益。将净收益作为强化学习的激励。

三、算法

  1. 观测:bar.volume, bar.open_interest, bar.open_price, bar.close_price, bar.high_price, bar.low_price, self.pos
  2. 行为:开或加多仓(1个仓位)/平空仓,开或加空仓(1个仓位)/平多仓,平仓多/空仓,无操作。一共4种。
  3. 采用的算法是RNN PPO强化学习算法

四、结果与分析
经过训练发现agent一开始会尝试各种操作。但是训练收敛后的策略是保持无操作。

description

是否不存在一种适用所有合约的通用策略?如果真的存在那就是完全不进行任何期货交易。

欢迎一起讨论,我的代码在这里

Administrator
avatar
加入于:
帖子: 4502
声望: 321

这可能算是个交易领域的常识吧:没有圣杯~

No Holy Grail.

Member
加入于:
帖子: 23
声望: 0

大哥,不能说你用强化学习这个思路错,但你的状态输入holcv/oi也太简单了吧,根本没有自己挖掘有效因子,就靠高开低收这些变量当然无法取得满意的结果啊

Member
avatar
加入于:
帖子: 1
声望: 0

把无操作设成负奖励哈哈哈哈试试

Member
avatar
加入于:
帖子: 337
声望: 27

还有一种可能是,RNN无法解决长期依赖,所以训练的策略只关注最近数据的特征,奖励函数里又考虑了交易费用,动作就直接不变了。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】