最近在一家金融互联网公司工作,接触了不少股票、基金相关的东西,同时人到中年,投资理财成为了一个刚需。还好自己对这块挺赶兴趣的,加上我也算是算法领域里的一个老兵了,自然对量化产生了兴趣。
当然量化这块离不开金融基础知识,入门的话也不需要太多,基金从业资格证考试里的那些知识就足够了,感觉新手可以考一下,很水的,但是能借着这个机会快速过一遍这些知识,什么债务/权益资产定义、资产配置理论、资产评估指标、股票基金ETF等等;另外一块就是python大法了,一般就是各种数据分析包、AI包,加上notebook。有这些东西就可以实践了。
新手,比如我,最好先借助一个平台,这里我选的是聚宽,主要原因是社区做的好,不仅有分享的策略,而且一般新手需要的各种问题,都能在社区里找到解答。
对我来说,在了解基本知识后,最好的学习方法就是研读论坛里的高质量策略,我觉得高质量策略在逻辑上一定要严谨,读后能获得一种美感。今天读了一篇,在这里详细记录一下:https://www.joinquant.com/view/community/detail/4c86b71553e4181fb51289ec3a5f447a?type=1
这个策略是复现了券商的一篇研报,该研报提出了一个叫APM的因子,基于提纯后上午与下午股价行为的差异度,回测时发现如果当月该因子值越小,次月收益越高。其实该因子目前早已失效(单因子策略很容易失效),这里主要关注的是因子分析的那套流程。如果非要解释的话会比较牵强:一天内上午知情交易的成分较高,下午随波逐流成分较高,比值越小的话,说明本月知情交易者越倾向于做空,那么下个月均值回归,收益可能会提高。
整个流程非常关心因子的纯净度和有效性,详细步骤如下:
- 首先,每个月调仓一次,对于一支股票,可以统计过去20个交易日里上午和下午的开盘/收盘价,构造表达量 “收盘价/开盘价-1”
- 上述表达量肯定受市场(这里选沪深300)的影响,所以用回归方式剔除,获得残差,然后计算上午与下午残差的差异度,再除标准差归一化,得到了stat统计量
- 使用当月的净收益作为动量因子(因变量),统计所有沪深300股票,发现该动量因子和当月stat统计量高相关。为了排除这个影响,再做回归,把残差作为最终的选股因子,也就是APM因子,可见该APM因子既排除了市场的影响,又排除了动量因子的相关性,这是很重要的。
- 分析APM因子与次月收益的秩相关系数,发现有比较好的负相关关系。
- 构建策略,按APM因子排序,将股票等分为5组,按月调仓。比较组间,以及与沪深300的年化收益、夏普比率、最大回撤等(有个框架可以做这些事),发现符合预期。
- 又发现APM因子和市值有相关性,因此继续提纯,排除市值和行业(申万)的影响,同样是做回归,取残差作为新的因子
- 用新因子做回测,发现比旧因子收益更好,风险控制也更好
总结:因子提纯的这套流程,还是挺严谨的,符合我心中对高质量策略报告的要求。
网友评论