简单的利用 Logistic 训练的因子模型 年化超额 alpha 超过 20% - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
datayes2015
V2EX    Python

简单的利用 Logistic 训练的因子模型 年化超额 alpha 超过 20%

  •  
  •   datayes2015 2016-09-19 16:41:06 +08:00 6700 次点击
    这是一个创建于 3387 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个模型的思路就是利用历史月度数据建立分类器,选取了大概 20 个因子(继续加也没问题),然后以月度收益大于 25%的作为强势股+1 小于-10%的为弱势股-1 (这里用绝对强度而不是相对强度) 用得到的数据用 Logistic 模型训练,每过一期就把每个月的数据直接加到训练集里面,当然用滚动窗口训练也没问题(懒得做) 我也尝试过用 svm 分类,但是实际上效果并不好,据我做机器学习的同学表示, svm 在特征不够好的情况下 表现确实是还不如 logistic 模型的,这种二分类而因子模型本身不太可能做到样本外 80%以上的 AUC ,那太夸张了,所以似乎是 logistic 会好点,决策树我没试过 或者用 adaboost 或者随机森林什么的

    当然模型还是有一点我想了很多办法也没法改进的问题:
    1.首先,模型在市场风格急剧变化的情况下表现较差 在这里 牛熊变化的关口表现不好 波动性大 15 年股灾的的时候回测有差不多 45% 我本来想加个择时控制仓位的因子进去,但是怎么也选不好
    2.对 1 里面的问题我还有一个思路,如果用随机梯度递减的算法是不是能较快反应出市场变化呢?不过这样的话训练集似乎太少了
    3.可能会有点过拟合,但是并不会很明显,我改变参数回测了好几次,夏普比率都在 1 左右,最低也有 0.8 4.机器学习方法的通病就是逻辑性的不足,这里虽然是线性模型,也有一定这样的问题

    总之这个模型还算稳定,基本上每年都可以获得超额收益,大家可以一起讨论改进

    完整高清源代码请移步: https://uqer.io/community/share/5763ad63228e5b8199a55ebc
    最大年化收益率高达 34.2%!

    23 条回复    2016-10-19 18:51:15 +08:00
    ytmsdy
        1
    ytmsdy  
       2016-09-19 16:44:09 +08:00
    如果能控制回撤那就更好了。
    menc
        2
    menc  
       2016-09-19 16:53:50 +08:00   4
    1. 单纯 LR 在 time series 数据上有这样的效果,我是不信的
    2. “机器学习方法的通病就是逻辑性的不足”这句话槽点满满, LR 的可解释性是足够的
    3. 选取的因素中有很多相关度高的特征,造成过拟合几乎是必然的,然而还是有这样的收益,效果简直让人发指。
    4. 这代码 LR 的路子比较野,没有 normalization ,也没有 split ,特征维度 20 ,建议仔细打一下特征权重看一下。
    bugmenein
        3
    bugmenein  
       2016-09-19 17:29:37 +08:00
    网站挂了
    skydiver
        4
    skydiver  
       2016-09-19 18:32:18 +08:00
    交易成本是多少
    panins
        5
    panins  
       2016-09-19 22:00:41 +08:00
    请问数据源是来自于哪里?
    alexapollo
        6
    alexapollo  
       2016-09-19 23:24:54 +08:00   2
    夏普比在 3 以下的模型大多直接用于实战都有一些问题,建议还是直接交易试试吧
    datayes2015
        7
    datayes2015  
    OP
       2016-09-20 14:52:54 +08:00
    datayes2015
        8
    datayes2015  
    OP
       2016-09-20 14:53:12 +08:00
    @alexapollo 蟹蟹亲的建议
    datayes2015
        9
    datayes2015  
    OP
       2016-09-20 14:53:53 +08:00
    @panins 来自于通联数据
    xiaoyu9527
        10
    xiaoyu9527  
       2016-09-20 15:23:13 +08:00
    好牛逼呀
    ycge234
        11
    ycge234  
       2016-09-20 17:24:41 +08:00
    这算是新风口吗现在开始流行炒这个?
    server
        12
    server  
       2016-09-20 17:59:38 +08:00
    这广告牛逼
    kimboqi
        13
    kimboqi  
       2016-09-20 18:06:34 +08:00
    抽取的特征还是太少了, 楼主应该看看市面上的一些普通策略,就拿简单的小市值策略来说, 策略涉及到的特征不多基本都是股票的基本特征比如总市值,市盈率再利用移动平均线做好止损,简简单的策略年化收益就能上百。当然我一直相信只要特征够多,用机器学习的方法来预测还是有效的。
    myrual
        14
    myrual  
       2016-09-21 17:30:25 +08:00
    这都年化 30%还不卖房卖地卖车进去干?
    skyworker
        15
    skyworker  
       2016-09-23 11:39:40 +08:00
    @myrual 太宏观的模型, 碰到一次大跌,就把棺材本都陪进去了.
    myrual
        16
    myrual  
       2016-09-23 13:00:18 +08:00   1
    @skyworker 自动交易应该是有止损设计的吧。 @datayes2015
    datayes2015
        17
    datayes2015  
    OP
       2016-09-26 15:26:37 +08:00
    @myrual 是的
    icylord
        18
    icylord  
       2016-09-26 19:04:15 +08:00
    能剔除 2015 年的牛市数据再看看收益吗?
    grindsgears
        19
    grindsgears  
       2016-10-19 17:08:16 +08:00
    哎,。。。。。又是一个
    你的策略基本就是复制基准的基础上稍微优化下,
    1. 如果你是 15 年 6 月这个系统开始 run ,,,几个月,你会失去信心, 或者,根本不可能有人投钱给你
    2 ,你们的通病都是没有考虑过, 停牌, 流动性不够等等的问题, 说白了,就是拿一段数据意淫而已。随便找一段随机的 ohlc 的数据,我可以弄两个 strategy ,一个收益曲线向上,一个曲线向下, lol 。
    3. 优矿的数据精度完全不够。 tick 数据应该没有, orderbook 更不可能有, 涨停的你买不进,跌的时候你跑不掉,。
    4. 总而言之,这些都是纸上谈兵, 建议你们都不要浪费时间了, 和真正的策略距离很远,。 你更多的是要考虑股票之间的 correlation 。股票和基准的 beta 率,你策略的资金容量, gross captial exposure ,等等等等等等等等。

    那种梦想找到一个策略然后赚钱,几乎不要考虑了,


    目前主流的基本一下几种
    1 ,基于 orderbook 的 marketmaking
    2 ,基于 spread 和 correlation 的 arbitrage
    3. 那些 beautiful mind guys 的各种模型
    即使是这样,大部分也是多策略同步运行的, 比如,一个追涨或者追跌的策略,在震荡的时候被杀到爆,, 你想避免,重点是,你怎么知道什么时候震荡结束? 或者什么时候开始

    真心不要浪费时间了

    最后告诉你, 中国股票不是这么做的, 一个只可以做多的市场,在熊市随便什么策略都挂。
    topdown 一直 bottom up 下来, 找到板块, 做多最强的, 最空最多的, 同时用 vix 的 option 对冲大波动风险。
    中国股票,可以试试建立一个类似 50etf+500etf 的 portfolio ,用 a50 。 fxi 之类的对冲, 应该还有点机会
    这一行,比的不是谁活得好,是比谁活的长,。 lol

    说话比较直接,不要介意,,,
    祝你好运
    aksoft
        20
    aksoft  
       2016-10-19 17:13:19 +08:00
    楼上是老 nb...
    lixuda
        21
    lixuda  
       2016-10-19 17:27:15 +08:00
    @grindsgears 完全同意
    xieyingli
        22
    xieyingli  
       2016-10-19 17:35:04 +08:00
    @grindsgears 哈哈哈,好有道理,感谢今天把这个帖子挖出来。
    grindsgears
        23
    grindsgears  
       2016-10-19 18:51:15 +08:00 via iPhone
    打错一个字。 是做多那个板块最强的股票同时做空同板块最弱的股票
    关于     帮助文档     自助推广系统     博客     API     FAQ    Solana     3662 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 05:09 PVG 13:09 LAX 21:09 JFK 00:09
    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