请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3365785 新帖:17

【量化课堂】多因子换档反转策略

大师做交易发表于:5 月 9 日 18:05回复(1)

前言

(这期的前言有点长,不看前言对读懂策略没影响)亲爱的观众朋友们大家好,积日不见,甚是想念。聚宽量化课堂又和大家见面了。说实话,好歹小编也是个科班出身的博士,但不得不说在聚宽的这段时间,大家带给我的进步,那真是一日千里,突飞猛进,就像坐着窜天猴儿一样。在聚宽,给人最直观的冲击就是,每天都能感受到自己的进步。这其中的一部分来自于你对学过的内容,通过实操,进行复习,孔老头说温故而知新,大概可能就是这个道理。另一部分来自于每天要面对的,一大堆自己从来没接触过的新需求。这时就是聚宽体现他美丽的时刻了,聚宽有无数的小伙伴儿,乐于对你倾囊相授,敲黑板敲黑板,是倾囊相授!如果你要问了一个他们解决不了的问题,这些人恨不得现去自学,然后再特么给你讲。所以,如果你是一个注重过程,期待今天的自己总是比昨天好那么一点儿的人;如果你是一个对量化交易感兴趣,是一个对自己的能力所学知识有热爱,肯憧憬的人,那么请戳这里。 好了,说了一堆感言,下面开始进入正题吧。



导语

之前量化课堂的同事出过一个因子研究系列一、 二、 三,小编读完了以后感觉就像是被人开了天灵儿盖一样,灵感咔咔的往外冒。所以推荐大家拜读一下。这个新策略是在原基础上经过筛查,选取 ARL,CFP 和 BP 三个因子(我们把很多其他因子的调用逻辑也写成了函数,并附在了代码的最后,以便大家的使用),以二十天为调仓基准的换档反转策略。这个策略的缺点是年化收益并不像前几个,有着高的邪乎吓人的回报曲线。但其优点也是咔咔的,稳定且完备。妥妥的一名任劳任怨表现稳定的经济适用男。千分之三的滑点,双边交易手续费,佣金全都扣了,还保证个百分之二三十的年化回报。而且入市的时机没有什么要求,简单讲就是,大多数情况下都好使!接下来我们闲言废语不要讲,撇开那些光说不练的假把式,我们正式开始。

因子选取介绍

如果大家知道 ARL,CFP,BP 都是啥,那可以直接跳过下面三个小标题,直接去看策略结构。

ARL ——资产负债率因子:

先抛砖引玉丢个公式吧:ARL=total_liability/total_assetsARL=total_liability/total_assets

没啥难的,资产负债率指总资产除以总负债,结合我们聚宽的财务指标,这里我们使用“负债合计”  total liabilities 和“资产总计”
tatal assets 来计算 ARL 。这一指标反映了总资产中,有多大比例是通过借债来筹资的。举个栗子,家住成都的老王手里有30万存款,然后看上了市郊一套售价100万的房子,无奈手里钱不够,又有刚需,因为没有房子讨不到老婆。老王遂从银行贷了70万,买下了一套市郊的两室一厅。这时,这套100万的房子就是老王的总资产,贷款70万是总负债。我们把老王看成一个公司,这时他的 ARL = 70万总负债/100万总资产 = 0.7 。

从回测结果能看出来,如果我们从上证综指选出 ARL 最高最低的1%和5%,抛开夏普率,波动率,最大回撤这些不谈,只看累计收益我们也能发现,ARL越高,回测收益越好。

ARL 最大1%,震撼不震撼 可是最大回撤也同样震撼
ARL_MAX_1.png

现金收益率: CFP

CFP=1/pcf_ratioCFP=1/pcf_ratio , 这又是个啥呢?

先给大家看个官方解释,现金收益率是公司现金及等价物与股票市值的比例。并且为了方便获取数据,我们使用聚宽量化平台的“市现率”指标的倒数,市现率指每股市价除以过去12个月每股现金流量的倍数。这一指标以比例形式呈现,因此总量计算和每股计算得到的相同。听着有点儿绕是不是,举个例子大家就明白啦,小陈和小睿两个人都在追求王翠花,为表衷心,俩人拿出了自己的存折,交给翠花过目,结果发现二人存款都是五十万。(都比讨不到老婆的小编有钱)这下可特么难坏了村妇王翠花,老娘到底嫁谁好呢?谁更有钱?跟谁在一起的生活质量会更高?婚后生活更幸福呢?困惑的翠花只能去问她的妈妈,菊花。这个姜还得说是老的辣,翠花妈妈直接让小睿和小陈上缴了银行流水,把近几年每个月的现金流入和流出都一五一十的打在了单子上。结果不比不知道,这一比还真吓一跳。虽然都是五十万存款,可老陈平均每月只有两万多的进账,不足三千的开销。就是为了追求翠花,近几月的花费才明显有了增加。小睿则正好相反,把每月的开销随便一加就是大几万,虽然每月没有稳定的进账,但笔笔进账后面都跟着好几个零。所以,跟谁在一起生活的质量高还用想么?高下立判。绕了个大圈子,只是想给大家讲明CFP的道理,用流水除以现值(所以 CFP 越大越好),用动态和静态的财务数据做对比,这样我们就能够比较清晰地分析出,哪家上市公司是真有钱,哪家上市公司是假大款。

为了让大家更直观的看到 CFP 因子的作用,我们把回测结果也 po 在了下面


CFP 最大1%
CFP最大1%.png

账面市值比:BP

最后讲讲 BP 这个因子,还是先丢个公式给大家 BP=1/pb_ratio
账面市值比为股东权益除以股票市值,在计算中这里使用聚宽财务数据中的 pb_ratio(市净率=每股市值/每股净资产)倒数计算得出。其实结果就是 BP = Equity / Market Cap,道理很简单,我就不赘述了,如果有感兴趣的朋友可以点这里获得更详细的内容


BP 最小1%
BP min 1.png

换档反转策略

其实我们的想法很简单, ARL,BP,CFP 这三个因子就好比三个动力强劲但是不很稳定的发动机,他们的表现时好时坏并具有周期性。因此我们运用反转的思想,如果三个因子中,某一个在前三个月的表现非常不好,那我们就期待他会在接下来的一个月有一个小的爆发。因此我们会在合适的时候进行换档,即因子转换,为了便于操作,我们这里设置的调仓时间为20个交易日,如果大家看着不爽可以改哈。

过程中,我们首先从备选股票池中过滤掉停牌股,然后按照前面大家看到的那几张图,以单因子的回测结果为依据,每天获取出 ARL,CFP 最大的前1%的股票和 BP 最小的前1%的股票,并通过研究与回测的联通模块(不会的同学请点这里,有详细讲解哦),来监视每个因子每天的表现。为了方便大家的应用,小编在这里已经把这个复杂的工作整理好了,大家只要下载下面三个因子的CSV文件(点我点我),并存贮在自己账号,研发模块的根目录下,回测引擎就会自动调用啦。当然如果大家自己感兴趣的话,也可以从我们之前的教程中选取其他因子,比如 ROE,ROEC 等等。

关于CSV:

因为有很多朋友对CSV非常感兴趣,那小编就给大家详细介绍一下研究模块和回测的联通功能。这只是一个定性的讲解,如果想从到到尾的撸明白,那么可以点这里。下面,大家可以想象这么个场景,如果你是中国田径队男子100m的主教练,现在马上世锦赛了,你只能派一名队员去,可是有五个种子选手,你应该选谁呢?


抛开耽误腐败和女教练和男运动员这种特殊的关系不谈,答案应该是非常简单的,谁成绩好谁去!所以研究回测联通模块其实就是这么个选拔过程。比如我们有五名队员 A, B, C, D, E, 就相当于五个因子,平时让他们跑模拟盘,记录回测结果。然后用研究模块调用这个回测结果,并计算谁的成绩好。最后我们把这个研究模块的结果存成CSV文件放在研究模块的根目录下,回测引擎就可以直接调用这个结果了。说的再简化一点,这样做的目的实际上就是为了同时开好几个回测引擎,然后哪个结果好就用哪个。生成CSV文件后,我们在回测引擎中要把它转成DataFrame格式,这样就大功告成了!具体的格式嘛,从一个因子的 CSV 读出来的 DataFrame 只有一列,index 是日期,取值是这个因子在回测中的净值,这样就知道每个因子的历史走势了,然后我们就可以根据自定义的规则在因子之间进行换档。

======================荤割线=============================

接下来,我们以60个交易日为一个节点,进行评测。计算出调仓前一个交易日和前六十个交易日之间,单因子策略的回报率(其实就是上面那六张图的切片)。表现最不好的那个单因子策略,就是我们期待着他能反转的那个。这里面的原因会涉及到一点统计学的知识,如果有感兴趣的同学,欢迎大家在评论中踊跃提问,小编一定知无不言,言无不尽。其实马上有同学就可能会问了,你这么整,他万一要是没转过来,我这二十个交易日的持仓,那岂不是赔的裤衩子都没了。为了避免这个问题,我们同之前的 PEG 策略 (点这里点这里) 一样,制定了最高价黑名单制度。小编在聚宽内部做了个小的样本抽样,发现大家对短期内的平均忍耐力大概是以买入价为基准,允许回撤18.799%。之后我们稍微改变了一下思路,如果股票先涨后跌,那我们的止损线,以20天持仓期间达到过的最高价为基准,允许20%的最大回撤。止损后剩余资金买入国债指数,获取无风险利率。为了尽量模拟实盘交易,滑点设为千分之三,交易手续费按照证监会要求和实际执行标准分段设定。接下来的两个回测是全真模拟环境下的收益截图。

但是因为量化课堂的统一标准,所以我们在下面的源码里把手续费 滑点设为了默认的0,请大家一定要注意哦。 废话不多说,光说不练的那是假把式,先来看看我们近一年的从2016.3.27到2017.3.30的收益和从05年以来的长期回报



2016. Mar-2017.Mar
屏幕快照 2017-04-01 下午4.49.33.png


2005. Jan - Today
屏幕快照 2017-04-07 上午10.14.49.png

总结

小编对这个收益率还是比较满意的,毕竟量化课堂校长睿神有句名言,年化回报率离谱的策略,大部分都忽略了某些因素,跑实盘肯定会有问题。比如小编当年的PEG,回报率血高,但是其实并没有考虑滑点,手续费,佣金,停牌股票等一系列问题。这个多因子换档反转的策略考虑的因素非常多,而且回报率稳定,设置更接近实盘,所以在这里推荐给大家。

函数和变量说明书

换档策略图.jpg


全部回复

0/140

量化课程

    移动端课程