这么复杂的数据处理也只有专业的量化交易平台可以做了。之前我在聚款做的几次大数据量化处理效果还不错。搞个程序也太费脑了,我现在很少做量化分析了。云蒙你做银行股的量化模型搬砖,找个量化平台相当于开了外挂
。
纳尼?把第二章剧透了。怒丢一张流程图掩盖下:
云蒙嘛,就是云蒙嘛:
云蒙者,雪球大V也。神采飞扬,以善于投资银行股著称,搬砖运动的倡导者和发扬者。
我们先来看一下云蒙在她的原文咋说的,核心观点见下文,原文请参见链接网页链接
总结一下,思路就是通过对盈利性指标(加权平均净资产收益率)、资本约束及稳健指标(核心资产充足率)、以及资本回拨系数来对一个公司进行评判,得出一个财务打分。
小编理解,这个财务打分相当于公司的价值。然后将PB看做股票的价格,那么买的时候就是捡便宜的买啦(价值/价格最高者),所谓得分最高的,也就是比价最高的。所谓搬砖捏,也就是在比价发生变化的时候,重新调整持仓。
为了更好的理解云蒙的流程,我们做了一张图(目前逾期贷款的数据暂时不全,所以只用了不良和拨备):
看起来也不复杂对不对,公式都摆明了,也就是计算出3个指标相乘。而这3个指标,总共需要6个财务字段。
But!如果我们仅仅回测A股:那么近似来看,总共需要回测16只银行股。假设我们从10年开始回测,那么粗略估计,需要的数据量为6*4*16接近600个季报数据。这个工作量其实不小,扣一家银行一个季报的数据算3分钟好了,也就是1800分钟,30个小时的工作量,耽误点时间一周就过去了。
而这些工作量,我们已经帮你省了。(网盘链接:网页链接 密码: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的仓位)
综上。穷举法就是死路一条。在每日更新打分的情况下,人工几乎做不到。
好了,以上这些都是铺垫,我真正想说的是,我们研究了一个小算法,专门针对这个搬砖,得到了一个通解。直接拿来用就行。有兴趣的朋友可以自己研究,也欢迎大家交流。
贴个回测结果小结一下:
我们选取了打分最高的5只银行股持仓,并且每次分数差必须超过5%。蓝线是我们的持仓收益率,红线是沪深300。从10年回测至16年一季度。
可以看到:
1. 在2012年那波银行股引领的反弹之前,这个策略与沪深300的表现不相上下。
2. 12年银行股开始翻身,搬砖策略稳定的跑赢大盘。
3. 回撤大,是因为一直满仓,相当于从10年之后的阴跌全部吃进去。
4. 总之搬砖是有alpha的,每年大概5%左右(凭感觉,没有细究)。从12年之后,银行股表现的也与沪深300有一战之力。最终导致银行搬砖策略未定的超越了大盘。
总之,这个策略整体还是蛮稳定的,不好的时候与沪深300打平,好的时候稳稳跑赢沪深300,如果进一步挖掘,可以尝试往对冲策略方向发展。
如果大家有兴趣,留言中回复,我们可以进行大规模的回测,遍历一下参数。
另外以后有机会与云蒙深度合作,还有新的文章推出,请多关注哦。
未来进步的空间
不论主观交易者,还是量化交易者,假设你现在做出了这个策略,你会怎么想?
如果你就满足了,是没法进步的。
我们这个策略只是alpha0,很多细节有待提高,我们还可以在以下几个方面改进:
银行股自07年集体高潮以后一路向南,12年末雄起了一把,以为独领风骚引领大牛市,结果被13年钱荒教育了一把,告诉你谁才是老大。一帮资金溃不成军,去调戏中小创,你看自此小盘股一路女上位。
但是!重要的话说三遍,我大A股的尿性就是同涨同跌啊,搬砖能搬出什么花来?如果加上我大zi本主义桥头堡,三年中两年不鸟A股的HK市场,那搬起来虎虎生风,说不定战局就逆转了啊。如果善用加杠杆,与创创也有一战之力了啊。
所以,
第一,也是最重要的,把港股加入我们搬砖体系。我相信会大幅提高我们的搬砖alpha。
第二,作为一个投机取巧的人,不一定满仓啊!择时也是我们要研究的一个方向。
第三,如果你不是坚定的银粉,其实可以找点类似的高息,业绩稳定的股票,也参与到搬砖里来啊,构成我们“大搬砖”的体系。
然而
。。。
。。。
你以为这就完了?并没有。这里还有一个附录,也就是手把手教你怎么回测啦。
没有编程基础的朋友也可以试一试,更改参数可以得到不同的回测结果。有兴趣的朋友可以研究下代码。
回测前需要上传文件:
文件名bankshares.csv,记录了09年之后的财报打分情况,先将这个文件导入我们平台
首先进入研究模块:
点击upload,选择相应文件。
上传文件后,戳这里(网页链接),点一键克隆,然后你就可以看到这个页面。点击回测即可:
更改下图红圈处的参数,可以调整入池数量,以及每次搬砖必须保证的分数差,0.05表示5%
Ok,抛砖引玉,我写完了,好累。期待Beta版的搬砖策略吧。
@汪小哟 @风语者_mars @magictit @fai0515 @看空做多就是任性 @Julian-Z @I马甲 @yu4ever @心法不能乱 @过客haiping @lomycat @HIS1963 @掘金者朱 @dafengchui @晴空D @今日话题 @loncf @阳明六道
这么复杂的数据处理也只有专业的量化交易平台可以做了。之前我在聚款做的几次大数据量化处理效果还不错。搞个程序也太费脑了,我现在很少做量化分析了。云蒙你做银行股的量化模型搬砖,找个量化平台相当于开了外挂