本篇文章由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%的条件。
看起来不难,但是稍微操作一下,你考虑周全了吗?这里有两个大坑等着你踩:
第一个坑指的是回测方面的坑:
第二个坑指的是搬砖规则的坑: 搬砖的原则听起来不难,打分从大到小排序,排排坐,赤裸裸,哦不!吃果果!按照比例分配就好啦。唯一要注意的是为了减少摩擦成本,只有打分变动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年一季度。
可以看到:
如果大家有兴趣,留言中回复,我们可以进行大规模的回测,遍历一下参数。 另外以后有机会与云蒙深度合作,还有新的文章推出,请多关注哦。
。。。 。。。
你以为这就完了?并没有。 不论主观交易者,还是量化交易者,假设你现在做出了这个策略,你会怎么想? 如果你就满足了,是没法进步的。
我们这个策略只是alpha0,很多细节有待提高,我们还可以在以下几个方面改进:
银行股自07年集体高潮以后一路向南,12年末雄起了一把,以为独领风骚引领大牛市,结果被13年钱荒教育了一把,告诉你谁才是老大。一帮资金溃不成军,去调戏中小创,你看自此小盘股一路女上位。
但是!重要的话说三遍,我大A股的尿性就是同涨同跌啊,搬砖能搬出什么花来?如果加上我大zi本主义桥头堡,三年中两年不鸟A股的HK市场,那搬起来虎虎生风,说不定战局就逆转了啊。如果善用加杠杆,与创创也有一战之力了啊。
所以,第一,也是最重要的,把港股加入我们搬砖体系。我相信会大幅提高我们的搬砖alpha。
第二,作为一个投机取巧的人,不一定满仓啊!择时也是我们要研究的一个方向。
第三,如果你不是坚定的银粉,其实可以找点类似的高息,业绩稳定的股票,也参与到搬砖里来啊,构成我们“大搬砖”的体系。
Ok,抛砖引玉,我写完了,好累。期待Beta版的搬砖策略吧。 |
|
来自: 吴敬锐 > 《joinquant》