只要中央銀行在預測主題中有事件,就能先請求一次主題清單,再為每家銀行各請求一次,依日期由近到遠列出其決策日期。截至 2026 年 10 月 24 日,最近的是加拿大央行、聯準會與紐西蘭準備銀行的 2026 年 10 月 28 日決策,接著是歐洲央行的 10 月 29 日及日本銀行的 10 月 30 日決策。
使用 API
使用 central_banks 群組中的預測主題,建立跨銀行的清單。指令碼會保留標題以 rate decision 結尾的主題,讀取其事件,並輸出每家銀行最接近的未來日期。每個輸出列都先列出 UTC 日期,再列出銀行名稱。
應使用的事件欄位是 resolves_at。when 函式會讀取其時間戳記,並將 Z 後綴按 UTC 時差處理。事件必須具有該欄位,且時間戳記晚於指令碼啟動時間,才會加入該銀行的排序清單。同一家銀行若有多個未來事件,只有最早的事件會加入合併輸出。指令碼收集完各家銀行後才進行最後排序,因此不同主題的日期會一起依序排列。
- 取得 API 金鑰 建立免費金鑰,並將它存放在名為
NARWHAL_API_KEY的環境變數中。指令碼會讀取該變數,並透過Authorization: Bearer YOUR_KEY標頭,將金鑰傳送至https://api.narwhalapi.com。 - 讀取中央銀行主題 先使用
GET /v1/predictions/topics?group=central_banks取得主題清單,再為每家銀行使用GET /v1/predictions/topics/{topic_id}。先取得清單,指令碼就能取得請求事件所需的主題 ID。 - 執行 Python 指令碼 指令碼會讀取每個事件的
resolves_at,保留晚於啟動時間的時間戳記,並在各家銀行的事件中依時間戳記排序。接著取出該銀行最早的未來時間戳記,將它轉為日期,再把日期與銀行名稱加入輸出。import os from datetime import datetime, timezone import requests HEADERS = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"} BASE = "https://api.narwhalapi.com/v1/predictions" def get(path, **params): r = requests.get(f"{BASE}{path}", params=params, headers=HEADERS, timeout=10) r.raise_for_status() return r.json() now = datetime.now(timezone.utc) def when(text): return datetime.fromisoformat(text.replace("Z", "+00:00")) topics = [ t for t in get("/topics", group="central_banks")["topics"] if t["title"].endswith("rate decision") ] rows = [] for topic in topics: events = get(f"/topics/{topic['topic_id']}")["events"] upcoming = sorted( when(e["resolves_at"]) for e in events if e.get("resolves_at") and when(e["resolves_at"]) > now ) if upcoming: rows.append( ( upcoming[0].date().isoformat(), topic["title"].removesuffix(" rate decision"), ) ) for day, bank in sorted(rows): print(day, bank) - 依順序查看日期 最後一個迴圈會將合併後的資料列依日期由近到遠排序,日期相同的銀行會排在一起。只有當銀行主題中的事件具有未來的
resolves_at時,該銀行才會出現在清單中;指令碼會排除沒有這類事件的主題。
不寫程式查詢會議日期
開啟中央銀行會議指南,依月份查看會議。涵蓋的銀行包括聯準會、歐洲央行、英格蘭銀行、日本銀行、加拿大央行、澳洲準備銀行與 SNB。各家銀行的利率機率頁面,也是無需寫程式即可查看其會議事件的方式。
若要查看指南涵蓋銀行的日期,請使用按月編排的指南。若問題涉及特定銀行,請使用該銀行的利率機率頁面。若要將預測主題中所有具有未來事件的銀行合併成一份清單,請使用指令碼,並查看依日期排序的輸出。
各種情況適合的方式
| 情況 | 最適合的方式 | 原因 |
|---|---|---|
| 依月份查看會議日期 | 中央銀行會議指南 | 依月份分組列出涵蓋銀行的會議 |
| 列出所有具有未來決策日期的銀行 | 預測主題指令碼 | 依日期順序合併各家銀行最早的未來事件 |
| 查看確切的決策時間 | topic == "policy_rate" 的經濟行事曆項目 | 依 2026 年 10 月 24 日的清單,包含 USA、AUS、BRA 與 MEX 在 2026 年 10 月 24 日至 12 月 31 日期間的確切時間 |
日期清單與經濟行事曆適用於不同的排程需求。使用預測主題,將各家銀行的決策日期彙整到同一份輸出中。若也需要查看具體時刻,請使用行事曆中的 policy_rate 項目。
為什麼經濟行事曆中沒有某些銀行?
經濟行事曆提供決策時間的國家,比預測主題涵蓋的國家少。截至 2026 年 10 月 24 日,其在 2026 年 10 月 24 日至 12 月 31 日期間的 policy_rate 項目涵蓋 USA、AUS、BRA 與 MEX,該期間共有八次決策。
預測主題涵蓋更多銀行,並提供會議日期,但不一定提供具體時刻。因此,某家銀行未出現在這些行事曆項目中,不代表預測主題中也沒有它的決策日期。請讀取該銀行的主題事件,取得指令碼使用的日期。
這些日期是官方日期嗎?
這些是來自 resolves_at 的預測市場會議事件日期,依各家銀行公布的時程設定;最終仍以銀行公布的資訊為準。指令碼會將該時間戳記轉為 UTC 日期,用於合併清單。結果中的每一列表示該銀行會議事件所附的日期。
主題 ID 會變動嗎?
每次建立清單時,都從 GET /v1/predictions/topics?group=central_banks 取得主題 ID。請如同指令碼的做法,使用回傳的 topic_id 值發出個別事件請求。指令碼會先依標題從該群組篩選出利率決策主題,再請求其事件。
實作範例:2026 年 10 月 26 日當週
資料取自 2026 年 10 月 24 日。取出每家銀行最早的未來決策日期,再將所有日期一起排序。結果清單中有十一家銀行具有未來的決策事件;UTC 日期如下:
| UTC 決策日期 | 銀行 |
|---|---|
| 2026-10-28 | 加拿大央行 |
| 2026-10-28 | 聯準會 |
| 2026-10-28 | 紐西蘭儲備銀行 |
| 2026-10-29 | 歐洲央行 |
| 2026-10-30 | 日本央行 |
| 2026-11-03 | 澳洲儲備銀行 |
| 2026-11-04 | 巴西央行 |
| 2026-11-05 | 英格蘭銀行 |
| 2026-11-05 | 墨西哥央行 |
| 2026-11-18 | 印尼央行 |
| 2026-12-18 | 俄羅斯央行 |
每一列代表 2026 年 10 月 24 日資料中,某家銀行最早的未來事件。計算日期落在指定週內的銀行家數,再加總每天的家數。若也需要該週之後的決策日期,請在完整清單中保留後續資料列。
若要計算 2026 年 10 月 26 日當週的決策次數,請保留日期落在該週內的資料列。在 2026 年 10 月 24 日的資料中,10 月 28 日星期三有加拿大央行、聯準會與紐西蘭準備銀行。10 月 29 日星期四有歐洲央行,10 月 30 日星期五則有日本銀行。
| 2026 年 10 月 26 日當週日期 | 2026 年 10 月 24 日資料中的決策 |
|---|---|
| 10 月 28 日星期三 | 3 |
| 10 月 29 日星期四 | 1 |
| 10 月 30 日星期五 | 1 |
| 當週合計 | 3 + 1 + 1 = 11 家中的 5 家 |
發布於 。
後續步驟
建立免費金鑰,從自己的程式碼呼叫 API。 取得免費 API 金鑰
