数据¶
回测的第一步是获取数据。QKA 负责下载、缓存和合并,用户只需指定股票代码。
基本用法¶
以上代码会:
- 从 baostock 下载日线数据
- 每只股票保存为独立的 parquet 文件到本地缓存
- 下次运行时直接读取缓存,无需重复下载
参数¶
| 参数 | 作用 | 默认值 |
|---|---|---|
symbols |
股票代码列表 | 必填 |
period |
数据周期 | '1d' |
adjust |
复权方式:'qfq'(前复权)、'hfq'(后复权)、'bfq'(不复权) |
'qfq' |
source |
数据源:'baostock' 或 'akshare' |
'baostock' |
缓存位置¶
每只股票独立文件。清除缓存直接删除该目录即可。
合并后的数据¶
多股票回测时,QKA 将各股票合并为一张宽表,列名格式为 {股票代码}_{字段名}:
| 日期 | 000001.SZ_close | 600000.SH_close |
|---|---|---|
| 2024-01-02 | 10.2 | 8.1 |
| 2024-01-03 | 10.5 | 8.3 |
策略中无需关心此格式——self.get('close') 自动解析为横截面 Series。
两种加载模式¶
普通模式 — 适用于少量股票(几十只以内):
懒加载(lazy) — 适用于大规模数据(数百只股票),分批计算,降低内存占用:
两种模式下策略代码完全一致,self.get() 和 self.history() 用法不变。
数据源选择¶
| 数据源 | 优点 | 缺点 |
|---|---|---|
| baostock(默认) | 稳定,开箱即用 | 单线程下载 |
| akshare | 支持并发 | 个股接口偶发屏蔽 |