適合用途:
如果你的需求是:
AInvest 的 earnings calendar API 已經提供完整欄位:
返回資料包含:
eps_actualeps_forecasteps_surpriserevenue_actualrevenue_forecast例如:
GET /calendar/earnings
回傳資料示例:
{
"ticker": "AAPL",
"eps_actual": 1.52,
"eps_forecast": 1.45,
"eps_surprise": 0.07
}
因此你只要簡單比較:
eps_actual > eps_forecast → 高於預期eps_actual < eps_forecast → 低於預期= → 符合預期這些欄位就是用來判斷 earnings surprise 的核心數據。
如果你希望像這樣顯示:
AAPL | 5‑12 盤後
NVDA | 5‑22 盤前
一些 API 已經提供 reportTime 或 before market open / after market close。
例如 MarketData API 返回:
reportTime: "before market open"
reportedEPS
estimatedEPS
surpriseEPS
同時包含:
因此可以同時完成:
另一個類似的服務 EarningsAPI 會把財報事件分組為:
pre(盤前)after(盤後)讓交易系統更容易判斷事件時間。
如果你只是要穩定的財報日曆資料源,以下 API 也很常被用:
Finnhub
可查歷史與未來財報。
Alpha Vantage
提供簡單 REST API。
API Ninjas
可以用 ticker 或日期查詢。
如果你要把它整合到 信號觸發列表,通常會設計一個欄位結構,例如:
ticker
signal_time
earnings_date
earnings_session
status
eps_actual
eps_estimate
surprise
其中:
earnings_session
status
判斷邏輯:
if eps_actual is None:
status = "pending"
elif eps_actual > eps_estimate:
status = "beat"
elif eps_actual < eps_estimate:
status = "miss"
else:
status = "inline"
實際上很多量化系統就是這樣處理 earnings surprise 的。
✅ 實務建議的 API 組合
如果是做量化或交易策略,通常會用這種組合:
這樣就可以在你的信號列表自動顯示:
NVDA | 5‑22 盤後 | 未發布
META | 已發布 | Beat
TSLA | 已發布 | Miss
如果你願意補充一點背景,我也可以幫你推薦最適合你系統的 API 組合: