← 返回工具目录 · 全部教程

EODHD 海外数据实操:把美股接进同一条流水线

系列·数据篇续集 — akshare 管 A 股,这篇把美股/全球日线接进同一个 SQLite,回测代码一行不改

📖 本篇是数据篇的海外续集,前置:akshare 数据实操(里面的 SQLite 增量落库骨架这篇直接复用)。

01 · 什么时候需要海外数据源

akshare 的主场是 A 股:免费、无需注册,聚合国内公开数据源。但两类需求它覆盖不了——做美股/全球市场的策略,以及需要官方契约的稳定接口(聚合爬虫接口偶尔会变,第三方付费源有正式的 API 合同)。EODHD 属于后者:一家 API 覆盖全球主要交易所的日线/分钟线,REST 直白,有免费档可以先把流程跑通, 适合个人研究者从 A 股流水线平滑扩展到海外市场。

选型口径:先想清楚市场,再选数据源——只做 A 股,akshare 够;要碰美股,HK、全球指数,再考虑付费源。

02 · 注册拿 Token

注册后进 dashboard 就能拿到自己的 api_token,所有请求都带它。官方还有个 DEMO token 供零注册试跑,但只能拉 AAPL 一只,正式使用换成自己的。免费档的额度以官网实时为准——本教程的代码 每天增量更新,免费档跑单只股票足够演示全流程。

🌐 注册入口(含本站推广归属,你的价格不变):

EODHD 官网 · 注册拿 Token →

教程不构成任何投资建议;付费档价格与额度以官网实时为准。

03 · 第一个请求:拉苹果日线

美股代码要带 .US 后缀(AAPL → AAPL.US),其他交易所各有后缀规则,查不对接口会返回 空结果。以下代码本站实测可跑(2026-08 用 DEMO token 验证):

import requests
import pandas as pd

TOKEN = "你的token"   # DEMO token 只能拉 AAPL,试跑可用

url = "https://eodhd.com/api/eod/AAPL.US"
params = {
    "api_token": TOKEN,
    "fmt": "json",
    "order": "d",            # 新日期在前(实测确认)
    "from": "2026-01-01",    # from/to 按日期过滤,增量更新的关键
    "to": "2026-08-28",
}
data = requests.get(url, params=params, timeout=30).json()

df = pd.DataFrame(data)
df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date").sort_index()   # 落库前统一旧→新
print(df[["open", "high", "low", "close", "volume"]].tail())

注意返回里有两列价格:close当时真实成交价,adjusted_close 按拆股/分红复权后的价格——回测算收益用后者,看历史价位用前者,这和 akshare 篇的 qfq 是同一个问题换了张脸。

04 · 并进你已有的 SQLite 流水线

akshare 篇的 daily 表加两列来源字段,海外数据就能和 A 股数据同库共存,下游回测代码不用改:

import sqlite3

conn = sqlite3.connect("a_daily.db")
# 老库升级:补 source/exchange 两列(新库直接建表时带上)
cols = [r[1] for r in conn.execute("PRAGMA table_info(daily)")]
if "source" not in cols:
    conn.execute("ALTER TABLE daily ADD COLUMN source TEXT DEFAULT 'akshare'")
    conn.execute("ALTER TABLE daily ADD COLUMN exchange TEXT DEFAULT 'SSE/SZSE'")

out = df.reset_index()[["date", "open", "high", "low", "close", "volume"]].copy()
out["code"] = "AAPL"
out["source"] = "eodhd"
out["exchange"] = "US"
out.to_sql("daily", conn, if_exists="append", index=False)
conn.close()

增量逻辑照抄 akshare 篇:库里查 MAX(date),把 from 设为缺失段起点。唯一区别是美股 收盘在北京时间早上,自动任务排北京时间上午跑昨日数据刚好定型(对应 akshare 篇的「18:30 盘后」)。

05 · 避坑清单(延续系列传统)

📊 数据就绪,下一步还是那件事——让第一个策略在真实数据上跑起来:

下一篇:backtrader 回测入门 →

教程不构成任何投资建议;EODHD 条款与额度以官网实时为准,本站入口含推广归属。