《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 242|回复: 1
收起左侧

[其它] 分享一个简单的单财务因子的分析

  [复制链接]

签到天数: 10 天

[LV.3]偶尔看看II

发表于 2017-3-27 10:54:10 | 显示全部楼层 |阅读模式
本帖最后由 ansunckj 于 2017-3-27 12:04 编辑

        构建一个策略系统的过程,选股是第一要素,构建自己的股票池,首先要把这个股票池做一个标签,例如“怎样的股票我认为是好的,纳入”等,这里分享一个单财务因子的分析过程:
                1、选择样本,这里选择沪深300成份股作为样本数据,以及以沪深300指数作为基准对照
                2、时间框架,这里选择2010年1月到2016年12月
                3、换仓时间,这里选择每一季度报告期的后一天换仓,也就是1月,4月,7月,10月的第一个交易日进行换仓
                4、这里选择使用每天涨跌幅计算净值,而不是用仿真交易;由于是固定日期换仓,忽略手续费和滑点
                5、基准成份数据用Wind,个股复权行情数据、财务因子数据和基准行情数据均来源与Sina
                6、方法:
                        a)、换仓日期读取上一个报告期的财务因子,按财务因子的大小对样本进行排序,并进行分组
                        b)、分组的目的是为了以组合的形式分散各公司的其他公司风险
                        c)、在计算期内,计算各分组的日收益率
                        d)、对日收益率进行处理,计算出每组在时间框架内的净值变化
                        e)、对各组净值进行分析处理,计算各组的绩效
                        f)、绘图
       
       
        以下是一些运行的结果:
        财务因子是每股收益:
       
       
       
        图一是保存下来的变量
                confident是通过T检验输出3个值
                第一个输出值是 换仓后第一组收益率与基准收益之差是否大于0
                第二个输出值是 换仓后第一组收益率与最后一组之差是否大于0
                第三个输出值是 换仓后前三组的收益率与最后三组的收益率之差是否大于0
                confident的三个输出值都是1,在T检验中,在置信区间内,可以相信,上述3个假设都是拒绝原假设的

                Group_Statu保存了原始的每一组每一天的收益率

                T_Group_Statu保存了整理后的每一组每一天的净值

                T_CorrMatrix保存了每一次换仓时每一组的收益率--序列的相关系数
       

        图二是Performance
                我们看到,总体来说,组一的表现真的很好,回撤比其他组要低,净值处于1以上的时间也占多数,年化收益也很可观,每次换仓后的胜率也是将近有60%,总的来说,前三组的数据还是明显优于后三
        组的数据,这里可以相信,“每股收益”是选股的好指标

        图三是对各组净值以及各次换仓的收益率--序列相关系数和基准收益的直观图
                直观上看,前三组的表现的确是优于后三组的表现,而且第一组尤其突出
                相关系数上看,大部分的换仓期都是处于收益率--序列的负相关(排序越往后,收益率越低),但这个并不是一定的
                当然,在图表内反映了更多的细节,例如不同基准表现下,各组的表现情况等
       
       
        我们再来看另一个因子“每股经营性现金流”
       
       
       
        我们看到,三个的T检验结果都是0,所以不能拒绝原假设,差值等于0,也就是说,上述3个假设的差值在置信区间内等于0,换句话说,就是两者没明显的差别
       
        从绘图中,我们也发现大部分时间各组的分化并不是很明显,收益率--序列的相关性也是大部分时间处于弱相关,在绩效表格来看,虽然前三组的胜率和回撤都比后三组的要好,但表现出来的程度并没有“每股收益”这个指标表现出来的优异。

        综上,我认为,“每股经营性现金流”并没有“每股收益”这个因子优秀,在我的因子库中进行剔除。

       
        写在后面:
        这个分析固然是很粗糙的,为什么,因为这里只是进行了单因子的研究,现实情况中,因子之间也会有关联,我们应该把其扩展到多因子测试,这里,也有一个保存的变量GroupXX,这个变量保存了每一次换仓的股票--因子排序,通过回看这个变量,我们可以找到那些因子选出来的股票组合是相似的,然后有把握相信,这两个因子互有关联,当然这只是一个很粗糙的方法
        另外,这里选用的数据是Sina数据,为的是保持数据的一致性,牺牲了程序的效率,我跑一个因子需要非常长的时间,大概4小时,这个很不是效率,原因在于在Sina上获取的数据都很原始,要更换格式啊,拼接啊,对齐啊,等等,浪费了很多时间,这里我们可以用第三方数据商,例如Wind和掘金去直接获取清洗过的数据,但是为什么我不去用,除了一致性外,我发现Wind的个人版的某些数据是缺失的,最后不得不用Sina的
        这个程序的结构还需要很多改进的空间,希望论坛的朋友给我提出意见,谢谢。

       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册账号

x

评分

参与人数 1威望 +8 贝壳 +8 贡献 +8 收起 理由
faruto + 8 + 8 + 8 感谢您分享自己珍贵的资料

查看全部评分

签到天数: 218 天

[LV.7]常住居民III

发表于 2017-6-10 17:29:41 来自手机 | 显示全部楼层
好,实在是好。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 陕ICP备08102094号  

GMT+8, 2017-10-18 09:42 , Processed in 1.112140 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表