相似文件
换一批
经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
引言: 邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。 【必读文章】:[url=https://《10年400倍策略分享-附视频逐行讲解代码》[/url] 《EOS期现套利,一周时间,15%无风险收益》[/url] 【历史文章汇总】:[/url]
个人微信:xbx9585,有问题欢迎交流
接上文
我们用来回测交易策略的数据,时间不能太短。 回测时间太短会有什么影响呢? 一方面,股票市场通常是周期性变化的。我们的数据最好至少包含一轮完整的牛熊周期,这样才可以评价我们的交易策略在不同周期的表现。 针对A股的话,回测数据一般从2006、2007年开始。从那之后已经有两轮完整牛熊。并且07年股股权分制改革、财务报表改革,从那之后的财务数据都比较统一。
上证指数及其2006年之后的两轮牛熊
tushare这个Python第三方库,是很多人的数据来源。安装方便、免费,是他的优点。 但它的一个缺点是,目前只能获取近3年的日线数据。 下面获取新湖创业股票历史数据的代码,可以看到他只获取了最早到2017-05-02的数据。
获取数据的代码
代码运行结果
另一方面,股票数据中会有很高的噪声。在回测时间比较短的情况下,还会出现在数据挖掘中经常遇到的一个情况:“过拟合”。
过度拟合示意图
什么是过拟合呢?举个例子来说就是,我们的策略过于复杂,并且在用于寻找最优参数的样本数据中表现很好。但是将优化好的模型应用在非样本数据中表现却很差。 增加样本数量,也就是增加股票历史数据的长度,可以帮助解决过拟合的问题。
在股票市场里,因为分红派息、拆股送股等原因,股价会发生异常变化。 比如十送十的股票,在送完之后,股价会从原来的价格直接变为一半。 为了消除这些异常变化,大家往往会对股票数据进行复权处理。 如果没有经过复权处理会发现有时候股票价格从30块变为15块,一下子就跌了50%。所以未复权数据作为回测策略输入的时候,回测结果和实际情况会有很大的出入。 可以看下图享通光电2015年9月中旬有一个巨大的价格缺口的情况。可以很好的说明复权和未复权的差别。
未复权(上图)和复权(下图)比较
可以再看看万得数据库中享通光电的数据。
享通光电未复权数据截图
可以发现如果没有选择复权选项,那么2015-9-23 到 2015-9-24 收盘价的变化将会非常大。 所以我们在获取一份股票数据的时候,一定要去关注下,它的股票价格是否复权,如果没有复权,这个数据是不能用的。 更详细的有关股票复权的信息可以看邢不行之前的这篇公众号文章:量化投资中,计算技术指标时常见的8个坑 如果对如何计算复权价格感兴趣,可以加邢不行微信讨论:xbx9585。
到目前我们已经看了这么多准备数据的过程中可能会踩的坑。其实避免这些坑的目的都是为了尽可能的还原历史的真实情况。这样我们的回测结果和对模型的评价才更加可靠。 为了帮助《Pyhton股票量化投资》课程的同学解决数据准备中的这些问题,我也提供了我自己清洗整理的股票历史数据,包含了完整、干净的数据。 联系邢不行:关于量化的任何问题,或者想要了解其他内容,可以加我的微信(xbx9585)和我交流。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|