在一个列表中列出所有中央银行会议

通过一次主题列表请求和每家中央银行各一次请求,可以获取预测主题中每家有事件的中央银行的决议日期,并按由近到远的顺序列出。截至2026年10月24日,最近的是加拿大银行、美联储和新西兰储备银行的2026年10月28日,随后是欧洲中央银行的10月29日和日本银行的10月30日。

使用 API 完成操作

使用 central_banks 组中的预测主题构建跨银行列表。脚本保留标题以 rate decision 结尾的主题,读取其事件,并输出每家银行最近的未来日期。每行输出依次包含 UTC 日期和银行名称。

应使用的事件字段是 resolves_at。when 函数读取其时间戳,并将 Z 后缀作为 UTC 偏移量处理。事件必须包含该字段,且时间戳晚于脚本启动时间,才能进入该银行的排序列表。如果同一家银行有多个未来事件,只有最早的一个会进入合并输出。脚本收集完各家银行后再进行最终排序,使不同主题的日期按顺序一起显示。

  1. 获取 API 密钥 创建免费密钥,并将其保存在名为 NARWHAL_API_KEY 的环境变量中。脚本读取该变量,并通过 Authorization: Bearer YOUR_KEY 请求头将密钥发送到 https://api.narwhalapi.com。
  2. 读取中央银行主题 先使用 GET /v1/predictions/topics?group=central_banks 获取主题列表,再对每家银行使用 GET /v1/predictions/topics/{topic_id}。先获取列表,脚本才能拿到请求事件所需的主题 ID。
  3. 运行 Python 脚本 脚本读取每个事件的 resolves_at,保留晚于脚本启动时间的时间戳,并在每家银行的事件中对这些时间戳排序。它取出该银行最早的未来时间戳,将其转换为日期,再把日期和银行名称加入输出。
    Python:各家中央银行的下一次决议
    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)
  4. 按顺序查看日期 最后的循环对合并后的行排序,将最近的日期放在最前面,并将日期相同的银行列在一起。只有主题中存在 resolves_at 为未来时间的事件时,银行才会出现在结果中;脚本会排除没有此类事件的主题。

无需代码查找会议日期

打开中央银行会议指南,按月查看会议。它涵盖美联储、欧洲中央银行、英格兰银行、日本银行、加拿大银行、澳大利亚储备银行和瑞士国家银行。也可以通过各家银行的利率概率页面查看会议事件,无需编写代码。

查看指南所涵盖银行的日期时,使用月度指南。查询某一家银行时,使用该银行的利率概率页面。如果需要合并列出预测主题中所有有未来事件的银行,则运行脚本并查看按日期排序的输出。

不同情况应选哪种方法

情况最合适的方法原因
按月查看会议日期中央银行会议指南按月归类所涵盖银行的会议
列出所有有未来决议日期的银行预测主题脚本按日期顺序合并各家银行最近的未来事件
查看精确的决议时间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 值分别请求事件,避免硬编码 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 = 5,共 11 家

发布于。

后续步骤