个人量化交易初探之二(数据的预处理)

本文探讨了股票数据预处理的重要性,特别是复权处理,包括向前和向后复权。介绍了除权实例及复权代码实现,强调了预处理对于准确反映股票收益变动的关键作用。此外,还涉及股票的过滤筛选,如市值范围和特定行业选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要预处理

我们从网站上爬取的每日股票数据,包含开盘价,收盘价,最高价,最低价;这些都是在当前的实际价格。但我们关心的是一段时间内的涨跌幅,比如,从2020-08-01到2020-09-01这段时间内的股票涨跌情况,并用作预测模型训练时候的目标变量。这里就存在一个问题,假如在这段时间内,由于新增股份,派发股份等导致股票的除权;如果我们将除权前和除权后的股价一视同仁,那么计算出来的涨跌幅并不能反映收益的涨跌,因而是不准确的。所以,正如一些股票软件(如同花顺)上面显示一段时间内股价变动(日/周/月K线图)的时候,一般采用的是向前复权或者向后复权的方式展示;我们在建立股票预测模型的时候,也需要进行向前或者向后的复权,以便能准确反映收益的变动。

另外,我们在对A股股票进行分析的时候,我们希望针对特定类型的股票进行分析,而不是所有的股票统一分析。例如,我们希望分析市值在300亿到1000亿之间的股票在一段时间内的股价变动情况(统计值),又例如,我们希望分析特定行业(如材料化学)的股票在一段时间的股价变动情况。

再有就是,我们希望比较不同特征的股票的走势。例如,在季度财报公布后,我们比较同比增长为正的股票和同比增长为负的股票在一段时间的走势,是否有正相关性。例如,对于每支股票,我们取出过去180天的平均/中位价格,并且根据当前价格是否出去过去中位价格之上或者之下划为两类股票,比较位于中位价格之上和位于中位价格之下的股票的未来走势的比较。

以上两种情况,都涉及到股票的过滤筛选。

复权的预处理

我们先讨论复权的预处理。

一个除权的例子

举例说明,中国石油(601857)在2021-09-16 派发红利,每10股派发1.304元红利,其价格变动如下(取自history data table, 见“数据的爬取”):
在这里插入图片描述

在未发生除权的情况下,对于特定一只股票,每个交易日的last_close_price等于上个交易日的close_price(停盘期间除外)。但除权发生的时候,这两个值会不一致。

两者之间的倍数即为复权系数。我们可以简单验证一下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值