Alphamon 发布于2016-04-21
回复 33
浏览 15752
253
量化交易中的要点,不外乎择股,择时以及风险控制。如果买卖时机的选择看的是你对市场波动的敏感度,股票的选择就是看你对证券价值的判断标准了。凭借什么样的条件来选择想要持有的股票,不同的投资者有不同的标准,可能是依据公司三大表数据的基本面和财务面分析;也可能是依赖于公司证券在市场中价格波动的市场面分析。孰优孰劣不做评价,本帖侧重于向社区里的小伙伴提供封装好的各类筛选函数~同时利用这些选股策略做了简单的对比研究和回测,分析了不同选股策略在不同市场的表现情况。欢迎小伙伴添加补充。
**一、策略背景**
国内一般将基本面和财务面将这两者统称为基本面分析,他们都依赖于公司三大表的财务数据。不过本文就先将其划分成两类讨论:前者基于财务报表的直接数据,后者需要进行二次计算换算成各类比率等。市场面分析即我们常说的技术分析,依赖于各项市场指标对个股进行分析选股。贴一个简单的框架图直观展示这种关系:
![因子选股.png][1]
**1.基本面分析**
在基本面选股指标中,比较典型的有每股盈余(EPS),营收环比(同比)增长,公司净值和股本等指标。
![基本面.png][2]
**2.财务面分析**
财务面选股比较典型的指标有ROE、ROA、毛利率、资产负债率和营业利润率等。
![财务面.png][3]
**3.市场面分析**
市场面因子很多,这里举几个典型的,涨幅、流通市值、成交量等。
![市场面.png][4]
**二、策略介绍**
策略主要侧重选股,将各类指标筛选函数封装成函数,社区的各位小伙伴可以根据自己需求选取和组合,每一类分析方式都有一个主函数来根据命令挑选筛选指标函数:
1.基本面选股:主函数为FundamentalAnalysis(context,index,method = '1234'),method输入为字符串,1代表根据EPS指标选股,2代表根据营业指标选股,3代表根据净值选股,4代表根据股本选股;
2.财务面选股:主函数为FianceStateAnalysis(context,index,method = '12345'),method输入为字符串,1代表根据资产报酬率指标选股,2代表根据股东权益报酬率指标选股,3代表根据毛利率选股,4代表根据资产负债率选股;5代表根据营业利益率选股
3.市场面选股:主函数为TechAnalysis(context,index,method = '12345'),method输入为字符串,1代表根据个股涨幅指标选股,2代表根据成交量指标选股,3代表根据流通市值选股。
4.基于各指标的筛选函数均只定义了一个阈值进行筛选,除了资产负债率为上限阈值之外其他均为下限阈值,如有需要修改函数的可以自行到函数中的逻辑判断部分进行修改。
举个例子,比如我想选用基本面选股的方法选取上证股票,然后只想使用EPS指标、营业指标,EPS指标和营业指标的编号对应是1和2;那函数调用的格式如下:
```Python
FundamentalAnalysis(context,index,method = '12')
```
Context是JQ自带的参数,index就是你所选取的市场,传入方法method后就能够得到筛选后的股票了;而筛选的阈值可以在initialize的全局参数中设定。如果有同学想修改为多阈值判断,只需要到函数里修改代码逻辑即可。
**三、研究及回测结果**
1.研究部分:我们应用不同的因子进行了选股,并在研究环境中对比了2016年3月1日到2016年4月20日的选股效果:
基本面选股策略选取了EPS指标选股,营业指标,净值,股本作为筛选条件,阈值设定分别为:0.5、0.1、5、10^8;
财务面选股策略选取了资产报酬率指标,股东权益报酬率指标,毛利率选股,资产负债率选股和营业利益率,阈值分别设定为:0.2、0.2、0.2、0.6、0.2;
市场面选股策略选取了涨幅、流通市值和成交量,其相关规则设定如下:涨幅指标设定为选取过去一个月涨幅最高的8支股票;流通市值指标设定为选取个股流通市值占总市值比分布中四分位以上的个股;成交量指标设定为过去一周平均成交量大于过去一月平均成交量的个股。对比结果如下:
![上证.png][5]
![深证.png][6]
可以看到,在上证指数中,财务面因子的收益率最高,技术面次之基本面选股策略收益最差,但都跑赢了这一个月的上证指数收益;而在深证成指中表现则较为一般,只有财务面选股收益跑赢指数,基本面选股策略次之,而技术面最后。
2.回测部分:测试了15年以来策略表现情况,未加止损函数,操作股票数量为3只;结合了3项选股策略进行选股,如果筛选后股票多于3只则根据个股涨幅进行排序,取最高的3只股票。
**四、结论**
本帖还是旨在提供各类选股策略的对比和思路;不过通过研究对比也可以看到不同股票市场,不同选股策略表现也不同;当然,不同时间段策略收益不同也是极有可能的。
然后,没然后了,祝大家在震荡股市中获取稳稳收益哈~
[1]: https://image.joinquant.com/2e957b6c3e6cd5c84c8adf09d923b80e
[2]: https://image.joinquant.com/7691007f59eaaaaabe5932580b66aa7d
[3]: https://image.joinquant.com/1b9f3e68d8806f5eada70c17e7bf321a
[4]: https://image.joinquant.com/4cf4c7951b865d51b336823cb3b7a793
[5]: https://image.joinquant.com/f22cf6f8dc0764540d5799496723d2de
[6]: https://image.joinquant.com/5121e2bdadaf2a735df0415be0d32dc0
评论
@天大hero 互相交流学习~
2016-04-22
@sky_dede 感谢支持^.^
2016-04-22
随便加个止损收益就很可观了吧,赞一个!
2016-04-22
@kuhn 理论上应该是的吧,谢谢支持~
2016-04-22
有大神把代码转成通信达选股公式吗?
2016-04-23
@liuleguan 可以到社区或者Q群里问问哈哈,我没用过通达信_(:з」∠)_
2016-04-24
不错呀,代码写得比我的简洁多了,学习一下
2016-04-25
@Alphameow 两位ID好像
2016-04-25
@landmine 都是alphago的对头
2016-04-25
@Alphameow 遇见表亲的节奏~
2016-04-25
好文,先收藏,后面学习下。关于多因子生成交易信号实际上一直还有点疑问,之前考虑过用ANN这种ML的方法去做 ,但是感觉很容易过拟合,现在还在想有没有啥好的方法来整合因子
2020-08-15
@哈哈大王_文韬武略搞期货 费脑筋还没效果
2020-08-15