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
LittleUqeer
V2EX  ›  Python

如何简单的利用 Logistic 训练的因子模型使得年化超额 alpha 超过 20%,最大年化收益率高达 34.2%!

  •  
  •   LittleUqeer · 2016-12-22 18:59:19 +08:00 · 1518 次点击
    这是一个创建于 2882 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个模型的思路就是利用历史月度数据建立分类器,选取了大概 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


    大家有什么看法都可以看过之后在下方留言讨论哟~乐意与大家尽情讨论!比心:)
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3621 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 246ms · UTC 04:22 · PVG 12:22 · LAX 20:22 · JFK 23:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.