feat(data): raw真实价数据源(task#79)—raw_dir+dir_key路由+新浪源重下
根因: daily_dir mixed-adjust(hfq bulk+akshare raw tail)致3-30 -94%假跌。 方案(Linus三问简化单raw, 除权留分期项#3): - datareader read_parquet_daily/15min 加 dir_key 参数 - data_source iter_bars/fetch_day: adjust=raw→raw_dir(缺配置报错防混源), qfq→daily_dir - engine PaperEngine 默认 adjust=raw - config 加 raw_dir; scripts/raw_redownload.py 新浪源adjust='' 直连+单线程限速 - 验证: 浦发606行close 6.5/14.6 mean10.08 0跳变, 撮合成交价9.71-10.25真实 - 测试9/9+trader全量108/108通过
This commit is contained in:
@@ -86,10 +86,27 @@ cd v2/scripts/data_platform
|
||||
./run_daily_update.sh --skip-15min # 只日线
|
||||
```
|
||||
|
||||
## raw 双数据源(task #79,后续)
|
||||
## raw 真实价数据源(task #79,已实现)
|
||||
|
||||
当前 parquet 是前复权/后复权(成交价显示失真,如浦发 110 元 vs 现价 ~10)。raw 不复权:
|
||||
- BaoStock `adjustflag="3"`(v1 `backfill_15min_baostock.py:131` 已用 raw 下 15min)
|
||||
- akshare `adjust=""`
|
||||
### 根因:daily_dir mixed-adjust 污染
|
||||
`daily_dir`(`/volume1/stock/A股数据/日线数据/daily`)历史数据是 **mixed-adjust**:
|
||||
- 历史 bulk = 早期遗留 **hfq**(浦发 ~196 元)
|
||||
- 近期增量 = akshare **raw** tail(浦发 ~10 元),因 Mac 无 baostock、`adjustflag="2"` 是死代码
|
||||
- 同一 parquet 半截 hfq 半截 raw → 3-30 单日 **-94% 假跌** → 撮合出垃圾结果(假跌停/假低价)
|
||||
|
||||
task #79 接入 raw 双源(撮合/涨跌停/均价用 raw,策略信号用 qfq)。
|
||||
### raw_dir 通路(干净单一 raw)
|
||||
新建 `raw_dir`(`/volume1/stock/A股数据/日线数据/raw`),akshare 新浪源 `adjust=""` 从头重下:
|
||||
- `scripts/data_platform/raw_redownload.py`:**直连**(unset proxy)+ **单线程 SLEEP 限速**(防封 IP)+ 新浪源 `stock_zh_a_daily`
|
||||
- 文件名与 daily_dir 同构(`{prefix}{symbol}_daily.parquet`,按 year 分目录),datareader 直读
|
||||
- 验证(2026-07-07):浦发 606 行 close 6.5/14.6/mean 10.08,**0 跳变 CLEAN**,撮合成交价 9.71–10.25 真实
|
||||
|
||||
### 接口(双目录路由)
|
||||
- `datareader.read_parquet_daily(dir_key="...")`:dir_key 切换 `daily_dir`/`raw_dir`
|
||||
- `data_source.iter_bars(adjust="raw")`→`raw_dir`;`adjust="qfq"`→`daily_dir`;raw 缺 raw_dir **报错**(不 fallback,防混源)
|
||||
- `engine.PaperEngine(adjust="raw")` 默认 raw(撮合+信号共用真实价)
|
||||
|
||||
### 简化决策(单 raw,除权留分期项)
|
||||
原 spec 双源(撮合 raw + 策略 qfq)。Linus 三问简化为**单 raw**:除权缺口对 MA 信号影响低频(年 1-2 次),「分红除权」已列分期项 #3。双源/除权合并进分期项。
|
||||
|
||||
### daily_dir 后续
|
||||
`daily_dir`(mixed)暂保留给 backtest(Phase 2),后续迁 `raw_dir`。`daily_all_update.py` 的 `adjustflag="2"` 在 Mac 无 baostock 时是死代码,实走 akshare raw fallback。
|
||||
|
||||
Reference in New Issue
Block a user