Zihao

Make small but daily progress

0%

【量化小讲堂-Python、pandas技巧系列】极简方法将日线数据转为周线、月线或其他周期

分析股票数据的时候,往往会用不同的周期进行分析,以期得到更加全面的结果。比如日线、周线、月线,或者5分钟、15分钟、30分钟、60分钟。甚至有的时候会想,为什么的我的周期必须是自然周或者自然月,我能不能每11天或者每24天一个周期。 面对这样的需求,就必须写程序在不同的周期之间进行转换。本篇文章以将日线数据转换为周线数据为案例例,向大家介绍pandas的以下功能:

  • 使用pandas导入和导出输出
  • resample函数的用法

下面开始正文。 需要把日线转为周线,那么首先必须要有日线数据,从这个网站可以下载到所有股票历史上的日线数据,可以作为我们计算的原始数据。数据下载下来是下图这个样子:

每个股票一个csv文件

每一行是每一天的数据

这个日线数据有以下的字段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
【code】 股票的代码,上证股票以sh开头,深证股票以sz开头
【date】 交易日期
【open】 开盘价
【high】 最高价
【low】 最低价
【close】 收盘价
【change】 涨跌幅,复权之后的真实涨跌幅,保证准确
【volume】 成交量
【money】 成交额
【traded_market_value】 流通市值
【market_value】 总市值
【turnover】 换手率,成交量/流通股本
【adjust_price】 后复权价,复权开始时间为股票上市日,精确到小数点后10位
【report_type】 最近一期财务报告的类型,3-31对应一季报,6-30对应半年报,9-30对应三季报,12-31对应年报
【report_date】 最近一期财务报告实际发布的日期
【PE_TTM】 最近12个月市盈率,股价 / 最近12个月归属母公司的每股收益TTM
【PS_TTM】 最近12个月市销率, 股价 / 最近12个月每股营业收入
【PC_TTM】 最近12个月市现率, 股价 / 最近12个月每股经营现金流
【PB】 市净率,股价 / 最近期财报每股净资产

在进行日线周线转换的时候,一定要注意,大部分周线的指标是这个日线指标在这一周最后一个交易日的值。比如周线的【close】应该等于这一周最后一天日线数据的【close】。但是有的指标是例外,比如周线的【high】应该等于这一周所有日线【high】中的最大值,周线的【volume】应该等于这一周所有日线【volume】的和。有了这样的理解之后,直接上程序截图,里面有详细的注释,有问题可以留言。

把数据和程序下载下来,在程序中修改好文件的路径,应该就可以直接运行了。

思考题:
本案例中是将日线数据转换为周线,那么如何将日线数据转换为月线数据呢? 答案:只要修改代码中的一个字母就行了。

欢迎关注我的其它发布渠道