来自WorldQuant的101个Alpha

发布于: 修改于:雪球转发:2回复:4喜欢:19



2015年底World Quant发表了论文《101 Formulaic Alpha》,论文中给出了101个现实中的alpha。

改一两行就能换alpha哦~~

网页链接

原文pdf:

网页链接

——We emphasize that the 101 alphas we present here are not “toy” alphas but real-life trading alphas used in production. In fact, 80 of these alphas are in production as of this writing.

其中强调80%都仍在使用(当然,这个信着先吧....)。

论文中还科普了一下alpha的简单分类,也就回答了一下收益能解释关联程度等一些问题,其中这些alpha是可以做空使用的,但是在大A股方面做空需要比较复杂,这里只实现做多的一面,然后阶级止损。

在Appendix A:分为了两部分

A.1是101个alpha的计算公式和使用的函数的定义和解释,其中一部分的函数解释:


rank(x) 是一个排名的函数

abs(x) ,logx),sign(x)都是按照命名定义的函数分别是绝对值,对数还有信号函数

delay(x,d) 在d days以前的x 的值

delta(x,d) 今天的x值减去d天以前x的值

correlation(x,y,d) 在过去长度为d 天,x和y的相关性

covariance(x,y,d) 在过去长度为d天,x和y的协方差

ts_min(x,d),ts_max(x,d) 时间序列函数,d天内的最小值和最大值

ts_argmax(x,d),ts_argmin(x,d)是计算ts_min(x,d),ts_max(x,d)发生在哪一天


A.2.部分是描述了我们需要输入的一些数据,大部分跟名字相关。


returns 每日收盘之后的收益

open,close,high,low,volume 对应是开盘价,收盘价,最高价和最低价还有成交量。

vwap 成交量加权平均价

cap 市值

adv(d) d天的平均成交额

还有部分的工业指数(这是美国市场方面的)

我们使用了其中的单因子alpha 2来对399968创业成长成份股进行了回测(我们自己添加了阶级止损的方法),然后收益率是很可观的。

alpha2:(-1*correlation(rank(delta(log(volume),2)),rank(((close-open)/open)),6))


嗯...就是用-1去乘一个6天的相关系数。


相关系数的x是成交量的rank(delta(log(volume),2)) 也就是当天成交量的对数和2天前的成交量对数的差值的排名~


相关系数的y就是rank(((close-open)/open)),收盘价减去开盘价的差去除以开盘价的一个排名~


我知道这很拗口而且也神难懂,所以我们就有了文末的亮点~



代码方面:

alpha:


每天初始化:


买卖:


最后收益图:



亮点

我们Ricequant已经把其中的60个Alpha写成了一个demo,我们已经把alpha都写进去了,每一个alpha都可以独立使用,但是我们鼓励大家去使用这些Alpha去做一个组合。

比如说:

alpha 1和alpha 40去做一个组合,经过各自的回测,我希望看看在alpha 1与alpha 40的权重比设置为30%和70%的情况,会是怎么样的呢?

对alpha值进行计算获得一个新的alpha也是可以的。

使用方法

在before trading 中设置alpha_use=alpha.alpha002()的时候更改后面数字的部分就可以使用不同的alpha,但是注意不同的alpha返回的数值可能是NaN或者是负数,要另作处理呢。

有基础的同学如果使用多因子的话,就要自己手动去增加多个alpha_use然后去计算结果根据自己的方法去回测啦~

最后放上代码地址,快来试试吧~:

网页链接

@量化钢铁侠 @我的兄弟叫弥勒 @啊咪老师 @绝对可怜的小孩 @梧桐居士2010 @量化小王子 @量化小兵sss @漪漪 @饕餮海

全部讨论

2016-12-09 14:09