| 場景 | API 價值 |
|---|---|
| 自研量化策略 | 高頻實時價 + 歷史 K 線回測 |
| 投資組合 App | 跨市場匯總、波動提醒 |
| 企業財報平臺 | 財務指標、估值比率自動補全 |
| 券商開戶引流 | 實時行情頁快速嵌入 |
| 名稱 | 實時延遲 | 覆蓋市場 | 免費額度 | 按次/月價* | 特色 |
|---|---|---|---|---|---|
| Alpha Vantage | 1 分鐘 | 全球 60+ 交易所 | 5 次/分 永續 | $0 → $49.99/月 | 技術指標、CSV 批量導出 |
| IEX Cloud | <50 ms | 美股 95k+ 證券 | 50 萬次/月 | 按量 $0.0001/次 | 基本面、ETF、期權鏈 |
| Google Finance? | 15 分鐘 | 全球 7k+ 交易所 | 無 | 免費 | 需拼接 URL,無官方 REST |
| Xignite | 10 秒 | 6k+ 交易所 | 5000 條/交易所 | 企業定價 | 合規全棧;10 年留痕 |
| Polygon.io | 1 ms | 紐交所、納斯達 | 5 次/分 | $0 → $199/月 | WebSocket 流;二級快照 |
| Tradier? | 250 ms | 美股 | 無 | $0 → $30/月 | 零門檻;附帶下單接口 |
| Finnhub | 60 ms | 納斯達+赫爾辛基 | 60 次/分 | $0 → $79/月 | 加密貨幣、財報日歷 |
| Alpaca | 200 ms | 美股 (IEX) | 200 次/分 | 免費 → 高級 | Paper Trading 無縫切換 |
| Marketstack | 1 分鐘 | 70+ 國家 | 1k 次/月 | $0 → $79/月 | 30 年歷史;多幣種 |
| Barchart OnDemand | 1 分鐘 | 美股+期貨 | 500 次/日 | 按量 $0.005/次 | AWS 云原生成像數據集 |
| Tiingo | 5 分鐘 | 美股+加密+FX | 500 次/日 | $0 → $29/月 | 社區版含加密 & 新聞情緒 |
| Intrinio | 15 分鐘 | 美股+財報 | 100 次/日 | $0 → 企業價 | 財務報表、估值、行業統計 |
*按次價格以高清實時報價為例,大容量或企業層可議價
?Google Finance 無官方 REST,需解析網頁或借助第三方中轉
?Tradier 需證券賬戶才能獲取實時行情
| 場景 | 推薦 | 理由 |
|---|---|---|
| 散戶自研量化 | Polygon.io + Alpaca | 1 ms 快照 + 零傭金下單 |
| 全球 ETF 組合 | IEX Cloud | 95k+ 證券,基本面齊全 |
| 歷史回測 & 學術論文 | Marketstack / Tiingo | 30 年日線 + 多幣種 |
| 企業財報平臺 | Intrinio / Xignite | 財務指標、估值比率一站式 |
| 高并發交易信號 | Polygon WebSocket | 二級深度,1 ms 延遲 |
??? 寫完行情接入別忘了跑「代碼優化」提示詞,一鍵診斷慢查詢與重復輪詢,讓 K 線加載提速 30 %!
import os, requests, pandas as pd
API_KEY = os.getenv("ALPHAVANTAGE_KEY")
BASE = "https://www.alphavantage.co/query"
def realtime(symbol):
r = requests.get(BASE, params={
"function": "GLOBAL_QUOTE",
"symbol": symbol,
"apikey": API_KEY
})
return r.json()["Global Quote"]
def sma(symbol, period=20):
r = requests.get(BASE, params={
"function": "SMA",
"symbol": symbol,
"interval": "daily",
"time_period": period,
"series_type": "close",
"apikey": API_KEY
})
return float(r.json()["Technical Analysis"][f"SMA"].popitem()[1]["SMA"])
if __name__ == "__main__":
print(realtime("AAPL"))
print("SMA(20):", sma("AAPL"))
IEX_TOKEN = os.getenv("IEX_TOKEN")
base = "https://cloud.iexapis.com/stable"
def earnings_calendar():
url = f"{base}/time-series/fundamentals/earnings/1m"
params = {"token": IEX_TOKEN, "last": 50}
r = requests.get(url, params=params)
return pd.DataFrame(r.json())
print(earnings_calendar().head())
Polygon.io 二級快照流:
import websocket, json
def on_message(ws, msg):
data = json.loads(msg)
print(data["ev"], data["p"], data["s"]) # 事件/價格/股票
def on_open(ws):
ws.send(json.dumps({"action": "auth", "params": POLYGON_KEY}))
ws.send(json.dumps({"action": "subscribe", "params": "T.AAPL,T.MSFT"}))
if __name__ == "__main__":
ws = websocket.WebSocketApp("wss://socket.polygon.io/stocks",
on_message=on_message, on_open=on_open)
ws.run_forever()
Eden AI 股票 API 聚合器優勢:
示例:
def eden_stock(symbol, provider="alpha"):
url = "https://api.edenai.run/v2/finance/stock"
headers = {"Authorization": f"Bearer {EDEN_KEY}"}
data = {"providers": provider, "symbol": symbol}
r = requests.post(url, data=data, headers=headers)
return r.json()[provider]
unsubscribe Q1. 實時行情延遲到底影響量化嗎?
→ 高頻(秒級)策略需 ≤50 ms(IEX/Polygon);日線或小時級 Alpha 可接受 1–15 min
Q2. 可以商用或再分發嗎?
→ 大部分 API 禁止「再售賣原始行情」;需加值后(指標、組合推薦)再對外提供
Q3. 如何確保數據完整性?
→ 啟用「拆分/分紅調整」參數;對缺失值用前向填充 + 異常告警
沒有“萬能”行情 API,只有最匹配業務場景的選項:
先用「代碼生成」快速產出 SDK 與重試邏輯,再用 KPI 面板持續監控行情延遲、調用成功率與成本/萬次,你的投資應用將更快、更穩地搶占市場 ??!
原文鏈接: https://www.cmarix.com/blog/best-stock-market-api/