分享

宽基ETF轮动策略量化代码实现 

 追梦文库 2022-02-28

上次给大家分享了基金定投的量化回测代码分享两个简单的基金定投策略代码如果大家想尝试稍微复杂一点的策略那就可以从这个轮动策略着手了这个轮动策略是把雪球认证用户宜昌白云飞的算法在聚宽平台上通过Python代码实现方便大家进一步研究和完善代码的源文件请从这里下载量化策略源代码

关于代码的一些说明

1计算结果

为了方便大家检查计算结果我在每天的交易信号确认函数中设置了日志输出行情表格便于大家核实计算结果第1列是序号第2列是对应的基金代码第3列是涨幅百分比第4列是11:30收盘价与均线差值

2轮动标的

和之前的代码类似为了让代码可以根据大家的意愿增减标的我还是采用的一个单独的数组设置参与轮动的指数和基金用法不在赘述请参考分享两个简单的基金定投策略代码关于比价周期和均线周期都是可以自行设置的代码中有注释一看便知

3信号确认时间为11:30下单交易时间为14:40这个可以根据需要自行修改交易成本统一设置为万五不再设置滑点最低佣金5元

4策略逻辑

为了便于大家理解我尽量把策略逻辑写得容易理解一些但是完全没有代码基础可能还是看起来比较困难如果有兴趣继续专研量化交易可以试着学学Python

5持仓逻辑

这个策略的持仓逻辑基本忠实白云飞的算法除了加入涨幅大于0这个条件如果把87行的代码改为
if df.iloc[0,2] > 0:
这相当于只判断11:30收盘价是否高于均线df.iloc[0,2]方括号数字对应输出结果表格中的第1行第3列即均线差值df.iloc[0,1]表示第1行第2列即涨幅因为编号是从0开始编起这点大家要注意

6回测结果

之前因为回测环境参数设置问题导致回测收益异常现在已经修正如果有已经下载了代码的网友请大家重新下载一下下面是创业板沪深300中证500三个指数基金轮动的回测结果因为我这个策略代码不包括闲置资金投资国债或者货币基金的收益遇到不符合持仓条件时仅仅是保持空仓状态大家务必注意这个区别对于单纯研究轮动策略本身的效果来说这种处理方式更简洁一些

7一些可能的改进思路

以下是关于策略的一些值得探讨的改进思路有些处理不需要编程单纯调整参数就可以回测验证希望大家有机会都参与一下一起讨论交流

不同的交易时间对结果有多大的影响

调整比价和均线周期天数对结果有多大的影响

如何过滤震荡造成的反复打脸单纯比较当日11:30收盘价和13日前收盘价在震荡行情中会产生趋势误判

如何过滤不必要的调仓当排名第一的基金和持仓基金涨幅几乎相同时是否要调仓

是否要设置涨幅阈值当涨幅高于一个设定值时我们才认为这个指数处于上升趋势

纳入爆发力更强的行业基金是不是对收益带来正面影响

$创业板(SZ159915)$ $500ETF(SH510500)$ $300ETF(SH510300)$

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多