首先看看今年的回测曲线:
以及2007年1月1日至今的回测结果:
什么策略这么牛?
下面我们来正式展开。
这个策略是以银行为基础的轮动策略。
之所以会想起使用银行进行轮动,主要是前不久,看了雪球大V的分析:
《雪球访谈:云蒙解读银行股当前投资价值》
链接如下:
https://xueqiu.com/1287305957/88727694
文中对银行未来的前景非常看好,这里我就不复述了,有兴趣你可以可以去看看。
基于这样的原因,我就回忆起在之前聚宽上,看到的排名第一的量化策略:
这是该策略模拟盘的效果:
接着在看评论的过程中,我发现这么好的策略竟然是开源的,可以通过以下链接进行打开:
https://www.joinquant.com/post/3549?tag=new
如果任性点的话,这篇文章到这里就可以结束了,但本着提供价值的心态,我又进行了一些研究。
在此之前,我们先看看原来的策略在2007年1月1日到2017年7月13日的回测结果:
策略的逻辑是:
计算每个银行当前的价格和前一天价格的比值,最大比值和最小比值之差大于千分之五就开仓,持仓股票比值和最小比值之差大于千分之五就换仓。
之所以只在4大行中间轮动,估计是这些银行的波动幅度小吧。
有没有发现,其实这里的收益和回撤比我上面的截图稍微要小一点。
原因其实是本来是4个银行轮动,我改成了3个,这是回测结果:
中国银行、工商银行、农业银行三者的轮动效果最好。
其实,这个策略有一个最重大的缺点:
策略设置的是0滑点,意味着实盘必须使用限价单交易。
由于这几个银行交易量都很大,前面可能有一大堆的单子在排队,我们的下单的结果,很有可能是不能成交的。
因为这几个银行股股价过小,而中国股市中最小的变化单位是1分钱。
这就意味着,如果我们通过买一卖一交易,最少也要承担千分之二的滑点。
一买一卖就是千分之四,而策略的交易触发的价格比之差是千分之五……
所以,设置了2分钱的滑点的回测结果是这样的:
也许有人认为,我们交易就有滑点,不能实盘,这个策略还有什么意义呢?
我本来也是这样认为的,但是策略原创人的实盘给了我信心:
虽然比模拟盘差,但也算是不错的收益了。
所以,交易的时候:
一定要使用限价单。
就算是交易不成功,也不要勉强交易。
其实打印出日志,我发现交易的机会还是挺多的:
价格经过波动,并再次回到了原位,这也就意味着,我们的限价单能够成交。
其实该策略的重点,是在两个银行价格比差值扩大的时候,就卖出高的,买入低的。
所以,这意味着,就算我们错过了其中一个,还可以买其他的。
例如,农业银行换工商银行,卖出了农业银行之后,发现工商银行价格上涨了,那就再换仓到工商银行就不合适了。
而此时,农业银行价格下跌,我们又可以将它买回来。
类似的,中国银行换工商银行,如果发现换工商银行不划算,也可以换成农业银行。
只要我们轮换的价差能够覆盖切换的成本就可以了。
切换的成本大概是多少呢?
目前大部分券商的佣金是0.025%,一买一卖两次交易的切换成本就是:
(0.025% + 0.002% + 0.00487%) × 2 + 0.1% = 0.16374%
由于印花税是在卖出的时候才需要的,所以是单向收费的,但它也是费用最高的,你可以看到切换成本的主要构成就是印花税。
再看上面例子中的农业银行,3.11卖出,3.10买回来,赚了多少呢?
(3.11-3.10) ÷ 3.11 = 0.3215%
也就是说,这是一笔合算的交易。
论证完了策略的可行性,再说说其中的缺点:
1.全仓只持有一个股票,如果出现黑天鹅,三大行之一倒闭了,就血本无归了,倒闭的概率自行判断。
2.基本上每天都需要交易一次,考虑到不能成交只能通过打印的数据换仓,需要花费一点时间来盯盘。
暂时就想到这么多了,如果你有什么建议,请留言。