分享

雪球云蒙银行股搬砖策略的实现

 吴敬锐 2016-08-25

本篇文章由JoinQuant官方推出,将会被JoinQuant量化课堂收录。

本文已经思路提供者云蒙授权。 


作为一个想在金融市场发展的有(du)志(bo)青年,练级打怪的初期想法不多怎么办啊?尤其是空有一身编程的武艺,想找个策略切磋一下都无从下手。这当如何是好?!解决办法之一就是:可以借鉴大V!


什么意思呢?大威嘛,威起来的前提条件就是发了好多干货,分享了好多投资理念,思路,文章!

这些文章呢,有的适合你,有的不适合你;有的很犀利,有的有糟点;有的简明清晰,咔嚓咔嚓两下就写成代码。有的云里雾里,好像不容易把规则抽象出来。不过站稳不慌,有条件可以回测,没条件找小编,小编还是可以开开脑洞,创造条件强行回测的呦。


而且你会发现在这个过程中,你对金融市场越来越熟悉,能力槽也开始飙升,蓝槽max!是不是很high。


今天我们就来举一个例子,把雪球上云蒙mm的思路写成代码。不懂编程的朋友也甭怕,我们已经把代码改好了,如果你愿意,只需要稍微调整就可以实现不同参数的回测。


如果你实在看代码头大,我们还把云蒙银行打分所涉及的银行数据都洗了一遍,并且弄成excel表格提供给大家。这个价值也是不小的^_^。


纳尼?把第二章剧透了。怒丢一张流程图掩盖下:



云蒙嘛,就是云蒙嘛:


云蒙者,雪球大V也。神采飞扬,以善于投资银行股著称,搬砖运动的倡导者和发扬者。

 

我们先来看一下云蒙在她的原文咋说的,核心观点见下文,原文请参见链接https://xueqiu.com/3037882447/68184966

 


总结一下,思路就是通过对盈利性指标(加权平均净资产收益率)、资本约束及稳健指标(核心资产充足率)、以及资本回拨系数来对一个公司进行评判,得出一个财务打分。

 

小编理解,这个财务打分相当于公司的价值。然后将PB看做股票的价格,那么买的时候就是捡便宜的买啦(价值/价格最高者),所谓得分最高的,也就是比价最高的。所谓搬砖捏,也就是在比价发生变化的时候,重新调整持仓。

 

为了更好的理解云蒙的流程,我们做了一张图(目前逾期贷款的数据暂时不全,所以只用了不良和拨备):




看起来也不复杂对不对,公式都摆明了,也就是计算出3个指标相乘。而这3个指标,总共需要6个财务字段。

 

But!如果我们仅仅回测A股:那么近似来看,总共需要回测16只银行股。假设我们从10年开始回测,那么粗略估计,需要的数据量为6*4*16接近600个季报数据。这个工作量其实不小,扣一家银行一个季报的数据算3分钟好了,也就是1800分钟,30个小时的工作量,耽误点时间一周就过去了。

 

而这些工作量,JoinQuant已经帮你省了。(网盘链接:http://pan.baidu.com/s/1eRZL7WY 密码:g9y9)。有两个excel表格,一个文件(云蒙财务指标梳理.xlsx)包含详细的原始数据,以及一步一步的打分过程。另外一个文件(bankshares.csv),按照一定格式记录的回测结果,我们在平台上回测的时候需要把这个文件导入(具体怎么导入请参见后文)

 

前者的大概长这个样子:


 

后者大概长这个样子:

 


别看错了哦。

 

但有了打分就可以直接回测了嘛?na?ve啊!


回测规则不难:

每天开盘前检查一下,看看财报打分有没有变动,并且参考昨收价的PB进行打分,把打分排序。

 

始终保持选择评级最高的num=4只股票加入投资组合(num可自己设置)。要注意,我们只有分数变动k>=5%时才会进行调仓(k可自己设置)。假设原先的前4名是A,B,C,D。现在的前四名是A,B,C,E。为了不频繁调仓,减少摩擦成本,只有当E的打分比D高5%以上时,我们才会进行调仓。

 

对于这num=4只股票,我们会为它们分配一个权重,初始权重按照评分从高到低为4:3:2:1。即假设一共有100万的资产,则如果当前的四只股票比例为4:3:2:1,则第一只股票买100*4/(1+2+3+4)万元。如果num=5,那么持仓股票的比例为5:4:3:2:1。但注意,同样的,内部调仓也需要满足k>=5%的条件。

 

看起来不难,但是稍微操作一下,你考虑周全了吗?这里有两个大坑等着你踩:

 

第一个坑指的是回测方面的坑:

  1. 财务指标公布的时间可不是严格按照季末那个时间点更新的哦,而是陆续的披露出来。你的回测也得考虑这个情况,否则提前几天知道了数据会有未来函数。

  2. 手续费考虑了吗?分红考虑了吗?停牌考虑了吗?涨停买不上,跌停卖不出去考虑了吗?滑点设置不设置?那些股票在回测期间都上市了吗?

  3. 以上我们的回测引擎和代码全考虑了。

 

第二个坑指的是搬砖规则的坑:

搬砖的原则听起来不难,打分从大到小排序,排排坐,赤裸裸,哦不!吃果果!按照比例分配就好啦。唯一要注意的是为了减少摩擦成本,只有打分变动5%以上时,才进行调仓。

 

嘿嘿,不妨稍微考虑几种情况,感受一下这个规则。

 

下面的图中,竖条的长短表示上一期的持仓数量(4:3:2:1),你看到不是按照从左到右依次递减,说明打分变动,要调仓啦

第一种,最简单的,ABCD变成了ABDC,如果D的打分比C高5%,搬砖!搬一块砖即可。


 

第二种,ABCD变成了ADCB,这时就麻烦啦,你得智能的找出原来是B和D之间分差起了作用,所以如果D比B的分数高5%,直接从D搬到B两块砖


 

再增加点难度,ABCD变成了DACB,这时候你得综合考虑,新的打分出来以后,第4位的砖是不是要挪到第一位上?那么第二位的砖要不要挪到第一位上?



还没完,以上的都算形状规整的,但是下面这种捏?




什么?你说这种情况怎么可能产生?当然可能产生了,你要注意到不到5%的时候是不搬砖的嘛,那么七挪八挪,啥形状都有可能。

 

再何况,如果是5只股票的持仓呢?如果还要考虑其他没有入池的十几只股票呢?(这些可以看成是权重为0的仓位)

 

综上。穷举法就是死路一条。在每日更新打分的情况下,人工几乎做不到。

 

然而前面都是铺垫。我们甚至研究了一个小算法,专门针对这个搬砖,得到了一个通解。直接拿来用就行。有兴趣的朋友可以自己研究,也欢迎大家交流。

 


那怎么用呢?


没有编程基础的朋友也可以试一试哦。代码我们写好了,更改参数即可

 

回测前需要上传文件:

文件名bankshares.csv,记录了09年之后的财报打分情况,需要将这个上传

先进入研究模块:




点击upload,选择相应文件。 

 



上传文件后,戳这里(https://www./post/1359),点一键克隆,然后你就可以看到这个页面。点击回测即可:



 

更改红圈处的参数,可以调整入池数量,以及每次搬砖必须保证的分数差,0.05表示5%



 

贴个回测结果小结一下:



 

我们选取了打分最高的5只银行股持仓,并且每次分数差必须超过5%。蓝线是我们的持仓收益率,红线是沪深300。从10年回测至16年一季度。

 

可以看到:

  1. 在2012年那波银行股引领的反弹之前,这个策略与沪深300的表现不相上下。

  2. 12年银行股开始翻身,搬砖策略稳定的跑赢大盘。

  3. 回撤大,是因为一直满仓,相当于从10年之后的阴跌全部吃进去。

  4. 总之搬砖是有alpha的,每年大概5%左右(凭感觉,没有细究)。从12年之后,银行股表现的也与沪深300有一战之力。最终导致银行搬砖策略未定的超越了大盘。

 

如果大家有兴趣,留言中回复,我们可以进行大规模的回测,遍历一下参数。

另外以后有机会与云蒙深度合作,还有新的文章推出,请多关注哦。

 

 

 

。。。

。。。

 

 

 

你以为这就完了?并没有。


不论主观交易者,还是量化交易者,假设你现在做出了这个策略,你会怎么想?

如果你就满足了,是没法进步的。

 

我们这个策略只是alpha0,很多细节有待提高,我们还可以在以下几个方面改进:

 

银行股自07年集体高潮以后一路向南,12年末雄起了一把,以为独领风骚引领大牛市,结果被13年钱荒教育了一把,告诉你谁才是老大。一帮资金溃不成军,去调戏中小创,你看自此小盘股一路女上位。

 

但是!重要的话说三遍,我大A股的尿性就是同涨同跌啊,搬砖能搬出什么花来?如果加上我大zi本主义桥头堡,三年中两年不鸟A股的HK市场,那搬起来虎虎生风,说不定战局就逆转了啊。如果善用加杠杆,与创创也有一战之力了啊。

 

所以,第一,也是最重要的,把港股加入我们搬砖体系。我相信会大幅提高我们的搬砖alpha。

 

第二,作为一个投机取巧的人,不一定满仓啊!择时也是我们要研究的一个方向。

 

第三,如果你不是坚定的银粉,其实可以找点类似的高息,业绩稳定的股票,也参与到搬砖里来啊,构成我们“大搬砖”的体系。

 

Ok,抛砖引玉,我写完了,好累。期待Beta版的搬砖策略吧。


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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多