Python接入美股本地数据从中概股列表到行情与F10的完整管道 IG50免费开源股票数据API接口 Python接入美股本地数据从中概股列表到行情与F10的完整管道最近把研究环境里美股这一块补齐了。起因很简单A股的本地数据管道我已经跑了大半年数据以 JSON 文本文件落在本地磁盘程序直接读文件批处理脚本从不担心限流和并发限制用得很顺手。但每次看中概股都要切回网页查资料行情一个地方、财报一个地方体验割裂得难受。这次干脆把美股也纳入同一套环境从代码清单、实时行情、历史K线到 F10 基本面一次性把管道铺完。数据源用的是本地数据引擎 ig50它的美股数据和A股共用同一套落盘思路所以我基本是用迁移的思路在做这件事。先说结论美股管道和A股管道八成是同构的真正要花心思的只有三件事——代码怎么组织、时区怎么对齐、增量怎么合并。下面按我实际搭建的顺序分六步讲。第一步先把代码清单固定下来。美股列表接口是base/gpus一次拿全大约1.3万只字段很简单dm是股票代码TSLA、BABA 这种字母写法mc是股票名称。这里有个小坑字母代码里偶尔出现带点、带横杠的写法直接拿去做文件名会出问题。我在落盘前做了一层字符替换把非字母数字字符统一映射成下划线清单里另存一列原始代码做映射表读数据时再还原回来。中概股在这个体系里不需要任何特殊处理它们就是美股清单里的普通成员我用mc里的中文公司名做关键词筛出中概股子集单独维护一张关注表比预想的省事。第二步设计落盘目录把美股和A股物理隔离。目录按 base/time/us 三层分base/放低频的列表类数据time/放按时间滚动的高频数据美股的实时、历史、F10 再挂到us/子树下。代码层面统一加us_前缀比如阿里巴巴的落盘标识是us_BABA与sh600519这类A股代码永远不会撞车。这样做最大的好处是后处理脚本可以放心按前缀分发不用在逻辑里到处判断市场归属。目录建好之后我补了一个清单核对脚本定期比对base/gpus的最新快照和本地目录的差集新上市公司第一时间补目录退市的做归档标记但不删除保留历史研究的完整上下文。第三步接实时行情。接口是time/us/real/us_{代码}每只股票一个文件3秒落盘一次。字段沿用我熟悉的简写体系cjsj成交时间、cjjg成交价格、cjl成交量、jyzd交易方向0中性、1买入、2卖出资金面看zlJlr主力净流入L2 指标是ddx、ddy、ddz。3秒级文件的写入频率不低我的策略是行情文件只追加不修改按交易日切文件收盘后把当天文件压缩归档。这样哪怕脚本半夜崩掉已落盘的数据也是完整的恢复成本几乎为零。行情文件的命名我把交易日编进去目录里按文件名排序就是时间线排查断点时肉眼一扫就能定位到具体某天。日内复盘时我把zlJlr的分时曲线和cjjg叠在一张图上看主力资金的进出节点一目了然这是我从A股管道里直接搬过来的老习惯。第四步补历史K线。接口是time/us/history/trade/us_{代码}/{级别}级别按需选分钟和日线我都建了目录分析时按粒度加载。量级先给大家一个体感单只股票的全量K线大约几MB1.3万只全量建仓是几十GB的盘子一次性灌完可以接受之后每天增量补尾部即可。增量规则我统一定为只补缺口读现有文件的最后一条时间戳从那之后追加新数据绝不整段重写既省磁盘也省时间回测取数时再按日期范围切片。级别取舍上我的经验是做事件研究用日线足够做执行层面的观察才需要分钟级不必一上来就全级别建仓先把日线灌满、分钟按需补能省下不少初期时间。第五步铺 F10 层这是美股和A股信息差异最大的部分。F10 全部挂在time/us/f10/下我用到九张表orgprofile公司资料、maincompose主营构成、income利润表、balance资产负债表、cashflow现金流量表、executive高管研究、dividend分红派息、gsds大事提醒以及研究中概股绕不开的short卖空明细。每张表按公司代码分文件一表一个 JSON。我自己的常用组合是用maincompose拆收入结构把income和cashflow拼起来看利润的现金含量财报季前后用gsds做事件核对executive用来查管理层变动short表则盯卖空量的异动。orgprofile虽然只是一页公司资料但上市地、主营业务、行业归类都在本地做批量打标签时比翻网页快得多balance我主要看商誉和有息负债两个科目中概股的问题不少埋在这两处。这些表后续做复权也用得上dividend里的分红派息就是公司行动的原始素材这也是我把 F10 和行情放在同一套目录体系下的原因。第六步收尾时区对齐和加载函数定型。美股数据的更新节奏是美东时间列表每天0点更新F10 每天18:00更新落盘时间和北京时间差12小时。我把所有时间字段统一转成北京时间入库另存一列原始美东时间做对账后来夏令时切换那两天就是靠这列原始时间排掉了两个数据迟到了一小时的假警报。增量策略最终定成两条行情文件追加、F10 整文件覆盖——F10 单表不大覆盖最简单而且天然幂等重跑不会产生脏数据。pandas 的加载函数我没有做得花哨入口参数是代码加数据类别内部按目录约定拼出路径读入后把dm、mc这些字段名映射成可读列名再留一个按日期范围过滤的参数。全市场批量分析就是循环调用加 concat1.3万只的列表类数据秒级载入体验和读A股完全一致。管道跑了两周最大的感受是美股不是另一套系统只是同一套本地化思路换了命名空间。把清单、目录、增量策略这三件事先定死剩下的就是安心灌数据。接口说明base/gpus美股股票列表约1.3万只字段dm股票代码如 TSLA、mc股票名称。time/us/real/us_{代码}美股实时行情3秒落盘字段cjsj成交时间、cjjg成交价格、cjl成交量、jyzd交易方向0中性/1买入/2卖出、zlJlr主力净流入、ddx/ddy/ddzL2指标。time/us/history/trade/us_{代码}/{级别}美股历史K线级别自选单只全量约几MB。time/us/f10/下的九张表orgprofile公司资料、maincompose主营构成、income利润表、balance资产负债表、cashflow现金流量表、executive高管研究、dividend分红派息、gsds大事提醒、short卖空明细。资料参考ig50gitee开源地址github开源地址