yfinance与Yahoo Finance获取LGEN.L五年股价数据差异问题咨询
差异核心原因
两组数据的价格调整规则不一致是导致差异的根本原因:
- 你的代码中设置了
auto_adjust=True,该参数会让yfinance自动对所有历史开高低收价格做全量复权回溯调整:即把历史上的分红、拆股等公司行为全部折算到当前价格口径下,折算逻辑是保持最新价格不变、历史价格按复权因子向下调整,分红越多的标的历史价格下调幅度越大。你获取的5年前价格约150,就是已经扣除了这5年所有分红影响的调整后价格。 - Yahoo Finance官网默认展示的是未做任何复权调整的原始交易价格,不会回溯修改历史成交价,所以同期的原始价格约为210,和其他数据源的原始价格走势一致。
这个逻辑也刚好匹配你观察到的现象:两组数据最新价完全对齐、越往历史区间差异越大。
操作问题说明
你没有对齐两个渠道的价格展示规则,属于参数设置失误:
- 如果需要和Yahoo官网默认展示的原始价格做对比,只需要把代码里的
auto_adjust参数改为False即可,此时yfinance返回的开高低收都是未复权的原始交易数据,和官网数值完全一致。 - 如果你需要使用复权后的数据做分析,不需要开启
auto_adjust,直接取yfinance返回结果中的Adj Close字段即可,该字段的调整规则和Yahoo官网提供的“调整后收盘价”规则完全对齐。
内容的提问来源于stack exchange,提问作者mkemper
相关产品推荐
相关产品推荐

