天驭学院 · 教学材料 · Python 量化交易实战
分步讲解(文字)
Pandas 基础
本节为可手动翻页的文字讲解,不含视频或音频。按自己的节奏阅读,完整推演与材料见下方讲义。
课程讲义
Pandas的Series是带索引的一列,DataFrame组织多列;按标签与按位置选择不同。时间索引须排序且唯一,不能用行号冒充交易时间。
读CSV→查看列名/类型/行数→解析UTC→排序去重→设置索引→只选择需要列;保留原始文件和清洗报告。
运行pandas_lab.py,另用三行close=100/102/101写出行数、首个收益缺失原因和最后SMA2。
三行;首行没有前一收盘而缺失;最后SMA2=(102+101)/2=101.5。完整数据应240有效、1重复、3隔离,不能把缺值都填0。
合成收盘100、102、101对应收益缺失、0.02、−0.00980392。若把101行复制一遍,须先去重再计算。SMA2在第二行101、第三行101.5。只有当信号使用时点早于计算数据时才需要额外滞后;不是所有rolling都机械shift一次。
df.shift(-1)可用于事后标签但不能进入特征;不要把缺失的首个收益填成可训练的有效样本。
把配套文件下载到同一目录,安装README列出的依赖,再执行。完整脚本同时输出清洗报告与OHLC重采样,下面不是虚构API。
import pandas as pd
df = pd.read_csv('ohlcv-synthetic.csv')
df['timestamp'] = pd.to_datetime(df['timestamp'], utc=True)
df = df.sort_values('timestamp').drop_duplicates('timestamp')
df = df.set_index('timestamp')
df['return'] = df['close'].pct_change(fill_method=None)
df['sma_3'] = df['close'].rolling(3, min_periods=3).mean()
print(df[['close', 'return', 'sma_3']].head(8))课程数值、价格、账户和案例均为教学假设;固定材料可离线复现。完成标记仅记录学习,不是能力认证、服务批准或收益保证。
本节要点
完成标记仅记录个人学习,不代表能力认证。练习使用教学假设或合成数据,不要求真实开户、入金或交易。