可惜JQ对于分级基金折算这里总是有问题,所以没办法测15年的情况,想必会非常优秀。
很多同学不看前面的回复,现在统一回复一下:
- 轮动策略:
用的非常简单的折价率进行轮动 ,折价率 = 现价/净值,选折价率最低的10只A类持有,
每天选定N个时间点进入计算折价率,卖出高的,买入低的,
特别的为了减少交易次数(使轮动真实有效),仅对折价率差值超过1%时才轮换。
可以改进的点包括:分不同收益率进行轮换等;大家有兴趣自行添加。
- 收益率说明:
a. 仅跑了了16年,原因是JQ目前未进行分级基金的折算处理,所以一但发生折算A类的净值>1的部分,实际上是发生了归零。15年折算较多,多为下折,实际理论上应该A类的收益更高。15年前分级较少,仍然可以轮动,但效果会差一些。
b. 交易量的问题,很多同学说实际上买不到;策略为了简单,未限价卖买,需要的可以自行添加;也可以限制仅对超过一定交易的A类进行轮换,收益肯定会有所下降。
c. 波动性,A类折价率最低有到0.7 ,所以如果目前买入,后续进入大牛市,有可能会能10 的回撤。但因为每次选的最低轮换,所以回撤一定是小于 1- 0.7 的(约为一半);而且回撤越大,后期的收益也一定越大,因为A类最终都会回归净值,即使不是因为利率原因回归,也会因为折算等回归。所以这个回撤与股票的回撤其实是不同的,波动越大越好:是下有底,后有回。前提是一定是需要长期持有(有溢价后可以出)。而且波动越大,最终的收益也会越大。只是要忍受一定的回撤。如果想保险一些,可以等A类折价率低于0.85进(要等到牛市),这样回撤有限收益翻倍。
d. 手绪费的问题,不用太纠节,这个交易次数不多的。
- 模拟盘运行:
我测了一下,主要有两个原因:
一个是似乎没有handle_data,在模拟盘不会运行 before_trading_start ,将这个改改名字,然后用run_daily来跑就OK了;
另一个是有些变量没初始化,比如g.msg。这个去掉也可,大家自行处理一下吧。
另外,**JQ没支持折算**,模拟也没用。:(
给JQ关于分级基金处理的建议:
分级基金属性:
1.能够拿到分级基金的收益率: 3.5, 3.2。。。;
2.是否是永续类的;
3.折算的条件: 是否有定折,时间是什么时间;是否有上下折触发条件是什么
4.能够拿到分级基金AB基金的比例;
5.能够拿到分级基金母基跟踪的指数
折算相关:
1.折算的支持,这个不支持没办法做长时间的回测;具体支持的办法,可以是设置选项,折算为母基,或现金,或相应份额。
2.分级折算时有几天不能交易,可以设定为 paused(目前是仍然是可以交易状态)
3.分级基金手工合并拆分的支持,有此功能才可以做套利策略。