ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Vibe-Trading 数据技能实战:Tushare 美股复权行情(us_daily_adj)接口从入门到精解

Vibe-Trading 数据技能实战:Tushare 美股复权行情(us_daily_adj)接口从入门到精解 Vibe-Trading 数据技能实战Tushare 美股复权行情us_daily_adj接口从入门到精解【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading本文以 Vibe-Trading 开源仓库内置的 Tushare 数据技能为背景围绕us_daily_adj美股复权行情接口展开系统讲解从接口权限与数据口径到全部输入/输出参数的逐项说明、复权因子的计算逻辑再到单股票、单日全市场、分页循环等实战调用写法。读完本文你将掌握在 Vibe-Trading 的 Agent 工作流中稳定、正确地获取与使用美股复权行情数据的能力并理解它与未复权行情、独立复权因子接口之间的分工关系。一、接口定位什么是「美股复权行情」在 Vibe-Trading 仓库的 Tushare 技能 中美股数据被划分为基础信息、日线行情、复权因子、复权行情、交易日历以及三大财务报表等多个独立接口。其中编号为338的us_daily_adj美股复权行情承担的是「一条记录里同时包含价格、成交、股本、市值与复权因子」的复合日线视图覆盖范围美股全市场股票数据内容OHLC 价格、涨跌、成交量额、均价VWAP、复权因子、换手率、流通/总股本、流通/总市值、交易所代码核心价值由于行情与复权因子、股本、市值同表返回做美股策略回测、因子计算时无需再跨接口 join数据一致性更高。它与同目录下另外两个行情类接口的分工是接口文档是否复权附带指标us_daily美股日线行情未复权含 PE、PB 等估值指标us_adjfactor美股复权因子仅因子本身cum_adjfactor累计复权因子、收盘价us_daily_adj美股复权行情因子同表返回股本、市值、换手率等从源码结构看us_daily_adj是 Vibe-Trading 美股数据链路中的「复权口径」主力接口仓库的数据路由模块对^[A-Z]\.US$形式的美国股票代码优先路由到 Yahoo 等境外数据源其他无法识别或链路失败的情况会回退到tushare默认源见market_data.py中return tushare的回退分支而 Tushare 技能下正是us_daily_adj这类接口为美股回测提供历史行情。二、权限与准备积分门槛与 Token 配置原接口文档明确了使用门槛限量单次最大可提取8000 条数据可循环获取全部支持分页提取权限120 积分可试用查看数据开通正式权限需参考 Tushare 权限说明文档原文档指向tushare.pro/document/1?doc_id290。在 Vibe-Trading 中接入该接口需完成三步准备参见 Tushare 技能入口 的「快速上手」一节安装依赖推荐 Python 3.7并安装tushare包SKILL.md 建议使用清华 PyPI 镜像pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple注册获取 Token在 Tushare 官网注册账户、获取 token 后配置环境变量export TUSHARE_TOKENyour_token初始化 Pro API从环境变量或本地配置读取 token 后创建接口实例。仓库对 Token 的管理是工程化的API 层的配置接口把TUSHARE_TOKEN视为受管密钥并对{, your-tushare-token}这类占位符做有效性校验示例脚本 stock_data_example.py 展示了标准取法import os import tushare as ts # 读取环境变量中的token, 或者读取本地记录的token from src.config.accessor import get_env_config token get_env_config().data.tushare_token or ts.get_token() # 初始化pro接口 pro ts.pro_api(token)也就是说在 Vibe-Trading 中即使不显式设置环境变量只要本地已记录过 tokents.get_token()或配置中心已录入tushare_token即可直接初始化pro实例。三、输入参数详解us_daily_adj的全部 7 个输入参数均为可选必选列均为 N按查询维度可分成「单票区间」「单日截面」「分页控制」三组名称类型必选描述ts_codestrN股票代码e.g. AAPLtrade_datestrN交易日期YYYYMMDDstart_datestrN开始日期YYYYMMDDend_datestrN结束日期YYYYMMDDexchangestrN交易所NAS/NYS/OTCoffsetintN开始行数limitintN每页行数各参数的实战口径ts_code美股的 ticker 代码如AAPL、MSFT。与 A 股的000001.SZ式带后缀编码不同美股在 Tushare 中通常直接使用英文代码可参考 美股基础信息 获取完整代码列表。trade_date单日截面的查询键格式YYYYMMDD。与ts_code一样都是「不传即全市场/全历史」的组合键二者可以单独使用也可以组合精确锁定某只股票某一天的数据。start_date/end_date区间查询键配合ts_code使用可提取单只股票在指定时间段内的全部交易日行情。注意区间为闭区间包含两端日期。exchange交易所过滤取值为NAS纳斯达克、NYS纽交所、OTC场外/粉单市场。从相邻的 美股复权因子 数据示例可以看到实际返回的交易所代码还可能出现ARC美交所 Archipelago等取值因此按日拉全市场后做交易所维度的统计分析时建议对未知取值做容错处理。offset/limit分页控制。offset为起始行号从 0 开始计数limit为每页返回行数。由于单次上限 8000 条超出上限的历史区间必须用offset逐页推进来取全。四、输出参数详解18 个字段全解读接口共返回 18 个字段默认全部显示按业务含义可归为五类名称类型默认显示描述ts_codestrY股票代码trade_datestrY交易日期closefloatY收盘价openfloatY开盘价highfloatY最高价lowfloatY最低价pre_closefloatY昨收价changefloatY涨跌额pct_changefloatY涨跌幅volintY成交量amountfloatY成交额vwapfloatY平均价adj_factorfloatY复权因子turnover_ratiofloatY换手率free_shareintY流通股本total_shareintY总股本free_mvfloatY流通市值total_mvfloatY总市值exchangestrY交易所代码字段使用要点价格与涨跌close/open/high/low为当日未复权的原始价格pre_close为前一日收盘价change close - pre_close涨跌额pct_change为涨跌幅百分比数值例如0.02表示涨 2%。成交信息vol为成交量整数单位通常是股amount为成交额vwap为当日成交量加权平均价Volume Weighted Average Price。股本与市值free_share流通股本、total_share总股本、free_mv流通市值、total_mv总市值用于计算市值分位、流动性筛选等因子也是复权行情接口区别于普通日线接口的重要增量。exchangeNAS/NYS/OTC等交易所代码参考输入参数节的说明。五、复权机制价格 × 因子 复权价格原接口文档给出了一个必须牢记的复权口径美股复权逻辑是价格 * 复权因子 复权价格比如close * adj_factor 前复权收盘价。这段描述包含两层信息复权方向是「前复权」将历史价格统一折算到当前口径。以 AAPL 的数据示例为例2024 年初adj_factor 0.9974接近但小于 1.0说明期间发生过除权除息事件而 2024 年 7 月adj_factor 1.0000当前日期附近因子归 1。计算前复权价时20240102 的 close(185.15) × 0.9974 ≈ 184.67即把该历史价格按最新的权益口径做了向下折算从而与 7 月的价格因子为 1.0连续可比。与独立复权因子接口的关系us_daily_adj表内直接携带每日的adj_factor而 美股复权因子 接口us_adjfactor返回的是cum_adjfactor累计复权因子 收盘价。两者同源us_daily_adj相当于把因子与行情「预 join」后对外提供减少了使用方的对齐成本。文档还特别提醒了一个重要的数据维护细节复权因子历史数据可能除权等被刷新请注意动态更新。也就是说当一只股票发生新的分红送转等公司行为后Tushare 会刷新整个历史因子序列导致历史区间的前复权价格随之改变。因此做回测或研究时必须动态重取复权因子与复权行情不能长期缓存历史结果若需要「某一时点真实可见」的价格应使用 美股日线行情us_daily未复权口径并附带 PE/PB 估值指标做收益计算与因子研究时再切换为复权口径。六、接口调用实战原文档给出的两段核心调用示例可覆盖绝大多数使用场景。场景一获取单一股票的区间复权行情pro ts.pro_api() # 获取单一股票行情 df pro.us_daily_adj(ts_codeAAPL, start_date20240101, end_date20240722)df为 pandas DataFrame行按交易日排列包含上述 18 个字段。场景二获取某一日某个交易所的全部股票pro ts.pro_api() # 获取某一日某个交易所的全部股票 df pro.us_daily_adj(trade_date20240722, exhangeNAS)注意原文档示例中exhange为笔误实际参数名应为exchange否则会被 Tushare 当作未知关键字抛出参数错误。正确的写法是df pro.us_daily_adj(trade_date20240722, exchangeNAS)场景三全市场全历史分页循环推荐写法受单次 8000 条上限约束按日拉全市场 按offset翻页是取全量数据的标准组合。以下代码展示了「按交易日逐日拉取全市场再对超过 8000 条的单日做 offset 分页」的双层循环模式pro ts.pro_api() def fetch_us_daily_adj(trade_date: str, exchange: str | None None, page_size: int 8000): 拉取指定交易日的美股全市场复权行情自动处理单次8000条上限的分页。 rows, offset [], 0 while True: kwargs dict(trade_datetrade_date, offsetoffset, limitpage_size) if exchange: kwargs[exchange] exchange df pro.us_daily_adj(**kwargs) if df is None or df.empty: break rows.append(df) offset len(df) if len(df) page_size: # 不足一页说明已取完 break return pd.concat(rows, ignore_indexTrue) if rows else pd.DataFrame() # 按交易日历循环即可覆盖全历史 # for d in trade_dates: fetch_us_daily_adj(d)如果只需要少量字段以降低带宽与内存开销还可显式传入fields参数做投影裁剪例如df pro.us_daily_adj( ts_codeAAPL, start_date20240101, end_date20240722, fieldsts_code,trade_date,close,adj_factor,total_mv )七、数据样例解读原文档给出的 AAPL 2024 年 1 月至 7 月部分数据如下节选ts_code trade_date close pre_close pct_change vol amount vwap adj_factor turnover_ratio 0 AAPL 20240722 223.96 224.31 0.00 48201836 10846348215.6184 225.02 1.0000 0.31 1 AAPL 20240719 224.31 224.18 0.00 49151454 11046273687.7475 224.74 1.0000 0.32 ... 134 AAPL 20240108 185.07 180.70 0.02 59144469 10903064025.6147 183.86 0.9974 0.38 135 AAPL 20240105 180.70 181.43 0.00 62379661 11321622148.8560 181.02 0.9974 0.40 136 AAPL 20240104 181.43 183.77 -0.01 71983563 13102384071.8889 181.54 0.9974 0.47 137 AAPL 20240103 183.77 185.15 -0.01 58414461 10767233840.9328 183.84 0.9974 0.38 138 AAPL 20240102 185.15 192.02 -0.04 82488688 15330365936.2928 185.36 0.9974 0.53解读几个值得注意的细节因子分段2024 年 1 月区间内adj_factor恒为0.99747 月区间内恒为1.0000说明两次「跳变」之间因子保持不变这是前复权因子的典型形态仅在除权除息日发生阶跃pct_change的小数口径如0.00、0.02、-0.04即涨跌幅以百分比数值表示0.02对应上涨 2%而非小数比例 0.02%vol与amount的量级AAPL 单日成交量在数千万股量级、成交额在百亿人民币量级10846348215.6184约 108 亿元amount为浮点数而vol为整数vwap与close的关系vwap如 225.02通常与close223.96接近但不相等反映了当日成交的加权成本。八、与仓库其他能力的协同使用在 Vibe-Trading 中us_daily_adj通常不是孤立使用的它与仓库中以下能力配合可构成完整的美股研究链路交易日历对齐美股与 A 股节假日不同使用 美股交易日历us_tradecal获取有效交易日列表再按日循环拉取全市场复权行情可避免在非交易日请求导致空数据。代码清单先用 美股基础信息us_basic获取全市场代码再逐票或分批提取区间行情。未复权对照涉及「当时真实可见价格」的归因、事件研究时对照 美股日线行情us_daily的未复权 OHLC 与 PE/PB 估值字段。独立因子校验需要累计复权因子做深度计算时可交叉引用 美股复权因子us_adjfactor的cum_adjfactor序列。工程化接入参考 Tushare 技能入口 的接口清单us_daily_adj位于编号 338与 股票数据获取示例 的调用范式在 Agent 工作流中数据路由由 market_data.py 统一管理美股行情请求在境外源不可用时默认回退到 Tushare 链路。九、注意事项与最佳实践小结参数笔误exchange常被误写为exhange原文档示例即存在此笔误调用前务必核对参数名。限量与分页单次上限 8000 条全历史/全市场数据必须依赖offset/limit分页或按日期循环禁止一次性请求超大区间。动态更新因子除权除息会刷新历史复权因子缓存过期的前复权价格会直接污染回测结果建议每次研究开始时重新拉取。口径区分us_daily_adj复权用于收益与因子计算us_daily未复权用于估值与事件研究两者不可混用复权计算统一遵循「价格 × 复权因子 前复权价格」。容错处理exchange可能出现NAS/NYS/OTC/ARC等取值单日全市场数据量较大时注意内存与调用频率配合交易日历错峰拉取。通过以上章节你已完整掌握 Vibe-Trading 中 Tushare 美股复权行情接口的权限配置、参数语义、复权原理、调用写法与工程注意事项可以直接将其接入美股回测、因子研究与 Agent 数据工作流。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表