这是 Python 进阶课的第七节 - 时间序列,进阶课的目录如下:
NumPy 上
NumPy 下
Pandas 上
Pandas 下
SciPy 上
SciPy 下
之前基础版的 11 节的目录如下:
编程概览
元素型数据
容器型数据
流程控制:条件-循环-异常处理
函数上:低阶函数
函数下:高阶函数
类和对象:封装-继承-多态-组合
字符串专场:格式化和正则化
解析表达式:简约也简单
生成器和迭代器:简约不简单
装饰器:高端不简单
Pandas 中的 DataFrame 非常适合金融时间序列的建模,用以下数据格式
index 是一组时间日期
columns 是资产或因子
value 是对应的值
学完本课后你会:
1. 了解时间序列数据类型的基本概念 (日期时间、期、频率、转换日期格式、用日期做切片) 和基本函数 (shift, diff, pct_change 等)
2. 标准化和重采样操作
一般来讲,不同股票价格的量纲不同,不同股票时间序列的频率也不同,在比较时通常会用
标准化 (standardization) 调成同量纲 (same scale)
重采样 (resample) 调成同频率 (same frequency)
多个时间序列的频率可能不同,为了比较它们,通常需要改变某些序列的频率,这个过程叫做重采样 (resampling),有两种方法:
上采样 (upsampling):将低频数据变成高频数据,填充 (fill) 或者内插 (interpolate) 中间缺失值。
下采样 (downsampling):将高频数据变成低频数据,将多个数据整合 (aggregate) 为一个。
上采样和下采样的比较图如下:
3. 计算多种滚动指标。
窗口期 (window) 定义时间序列的子期 (sub-period)。
在窗口期中计算每一个子期的指标
创建一个关于指标的新的时间序列
两种窗口期:
Rolling: 相同大小,滑动
Expanding: 越来越大,扩张
下图展示了 rolling 和 expanding 的区别。
以上三个知识点就是该课的前三节,之后就可以在第四节应用这些知识点来解决实际投资组合的问题,比如
创建任何一个股票投资组合上创建价值加权指数
计算每个成分股的对指数收益的贡献度
比对基准 (benchmark) 评估该组合表现
计算相关性系数矩阵来检查组合的分散度
付费用户(付 1 赠 1)可以获得:
观看课程视频 (108 分钟)
Python 代码 (Jupyter Notebook)