这个问题的核心是统一复权基准+用复权因子做精准对齐,具体可以按这几步处理:
1. 先确定策略适配的复权方式
量化策略通常优先选「前复权」(保持价格连续性,避免除权跳空干扰信号),如果是计算绝对收益类策略可以用「后复权」,先明确你的策略逻辑需要哪种,避免来回切换。
2. 米筐端导出数据时锁定复权规则
调用米筐`get_price`接口时,必须指定复权参数并导出复权因子:
```python
# 米筐代码示例:导出前复权数据+复权因子
data = get_price(
order_book_id="SHSE.600000",
start_date="2020-01-01",
end_date="2026-06-25",
frequency="1d",
adjust_type="pre", # 锁定前复权
fields=["open", "high", "low", "close", "volume", "factor"] # 必须包含factor字段
)
```
- 注意:米筐的`pre`是向前复权到最新交易日,保证所有历史价格都是以当前股价为基准调整后的连续价格。
3. vnpy端的数据对齐处理
把米筐导出的数据导入vnpy时,不要直接用导出的复权价格,而是用原始价格×复权因子重新计算,确保和米筐的复权逻辑完全一致:
- 如果vnpy策略之前用的是其他复权数据,先清空原有数据,用米筐的原始价格+factor字段生成统一的复权价格;
- 成交量不需要复权,直接保留原始值即可;
- 导入后抽几个关键日期(比如除权除息日)的收盘价和米筐对比,确认没有偏移。
新手最容易踩的2个坑
- 坑1:直接用米筐导出的复权价格导入vnpy,忽略了两边数据源的复权因子差异(米筐用聚源数据,vnpy可能用券商或通达信数据),导致细微价格差积累后信号偏移;
- 坑2:混淆复权方式的适用场景,比如用后复权做趋势跟踪策略,会因为分红导致长期价格虚高,产生错误的趋势信号。
如果在数据导入、复权因子计算或者vnpy策略修改过程中遇到具体问题,微信搜索关注"叩富问财"服务号,输入"量化工具"就能找到我,我可以1对1手把手帮你对齐数据、调试策略,避开这些实操中的坑。
发布于2026-6-26 23:22 南宁



分享
注册
1分钟入驻>

+微信
秒答
电话咨询
18630917047 

