来自 WorldQuant 的 101 个 Alpha - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thinkingmind
V2EX    推广

来自 WorldQuant 的 101 个 Alpha

  •  
  •   thinkingmind 2016-12-09 12:12:58 +08:00 6261 次点击
    这是一个创建于 3279 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    原文 pdf : https://arxiv.org/pdf/1601.00991.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 然后去计算结果根据自己的方法去回测啦~

    第 1 条附言    2016-12-09 20:11:06 +08:00
    策略源码和一键克隆,还请到策略原帖: https://www.ricequant.com/community/topic/2129
    1 条回复    2016-12-09 12:31:46 +08:00
    thinkingmind
        1
    thinkingmind  
    OP
       2016-12-09 12:31:46 +08:00
    策略源码和一键克隆,还请到策略原帖: https://www.ricequant.com/community/topic/2129
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3146 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 00:35 PVG 08:35 LAX 16:35 JFK 19:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86