如何比较各国政策利率

比较此处使用的九个国家代码需要发起九次政策利率请求,每次请求按一个计量单位计费。跨国比较政策利率时,请为每个数值保留对应的利率工具、币种和来源日期。

使用 API 完成操作

所有套餐均提供政策利率实时数据,包括 Free。每次请求返回一个国家的最新观测数据,其来源日期不晚于 UTC 当天。比较使用 USA、CAN、AUS、SWE、NOR、BRA、CZE、MYS 和 DEU。DEU 代表欧洲中央银行(ECB)的存款便利利率。

  1. 设置你的 API 密钥 在 shell 中使用 export NARWHAL_API_KEY="your_api_key" 设置 NARWHAL_API_KEY 环境变量。使用 python -m pip install requests pandas 安装 Python 依赖。脚本从环境变量读取密钥,并通过 Authorization 请求头发送。
  2. 请求各国最新利率 使用一个 requests.Session,循环遍历大写国家代码。为每个代码调用一次 /v1/economics/{country}/central-bank/policy-rate。请将响应字段一同保留,使每个利率都保留其币种、利率工具和日期。
  3. 计算用于比较的单一数值 对于单点响应,读取 rate。对于区间响应,使用十进制运算计算 (lower_bound + upper_bound) / 2。该中点由你自行计算:Narwhal API 返回已发布的上下限,从不计算中点。数值为十进制字符串,以年利率百分比表示。
  4. 构建表格并排序 创建包含 country、currency、instrument、rate 和 date 的 pandas DataFrame。从 effective_on 或 observed_on 读取日期;每个响应仅包含其中一个字段。按计算出的利率排序。保留 Decimal 数值可保留所提供字符串的精度。
  5. 运行完整脚本 将其保存为 compare_rates.py,在公共访问开放后运行 python compare_rates.py。脚本按从低到高的顺序打印利率。HTTP 错误会通过 raise_for_status() 停止脚本,因此数据不可用的国家不会在没有提示的情况下从比较中消失。
    获取并比较政策利率
    import os
    from decimal import Decimal
    
    import pandas as pd
    import requests
    
    api_key = os.environ["NARWHAL_API_KEY"]
    base_url = "https://api.narwhalapi.com"
    countries = ["USA", "CAN", "AUS", "SWE", "NOR", "BRA", "CZE", "MYS", "DEU"]
    rows = []
    
    with requests.Session() as session:
        session.headers.update({"Authorization": f"Bearer {api_key}"})
    
        for country in countries:
            response = session.get(
                f"{base_url}/v1/economics/{country}/central-bank/policy-rate",
                timeout=10,
            )
            response.raise_for_status()
            observation = response.json()
    
            if observation["rate_type"] == "point":
                rate = Decimal(observation["rate"])
            elif observation["rate_type"] == "range":
                rate = (
                    Decimal(observation["lower_bound"])
                    + Decimal(observation["upper_bound"])
                ) / Decimal("2")
            else:
                raise ValueError(f"Unexpected rate_type for {country}")
    
            date = (
                observation["effective_on"]
                if "effective_on" in observation
                else observation["observed_on"]
            )
            rows.append({
                "country": observation["country"],
                "currency": observation["currency"],
                "instrument": observation["instrument"],
                "rate": rate,
                "date": date,
            })
    
    comparison = pd.DataFrame(
        rows,
        columns=["country", "currency", "instrument", "rate", "date"],
    ).sort_values("rate")
    
    print(comparison.to_string(index=False))
    

各国利率衡量什么?

这些利率只能作大致比较。隔夜利率目标、回购利率和存款利率描述的是不同的利率工具。它们各自对应的币种也有各自的通胀率。仅凭数值排名,无法判断哪个国家的货币政策更紧。

国家代码币种政策利率工具
USAUSD联邦基金利率目标区间;早期历史采用单点目标
CANCAD隔夜目标利率
AUSAUD现金利率目标;早期历史包含目标区间
SWESEK政策利率,在 8 June 2022 之前称为回购利率
NORNOK活期存款利率
BRABRLSelic 目标利率
CZECZK两周期回购利率
MYSMYR隔夜政策利率
DEUEURECB 存款便利利率

保存的美国示例中,联邦基金利率目标区间为 3.50 至 3.75 百分比,生效日期为 11 December 2025。计算出的中点为 (3.50 + 3.75) / 2 = 3.625 百分比。该数值是根据示例得出的比较值,并非已发布的单点目标,也不表示当日利率。

如果保留比较结果,请同时保留原始上下限。仅使用中点会使打印表格不再体现目标区间的宽度。对于巴西,请使用 BRA 返回的 Selic 目标利率。

这些观测记录的来源声明如下:

  • Source: Board of Governors of the Federal Reserve System
  • 来源:加拿大银行。此信息可在加拿大银行网站免费获取:https://www.bankofcanada.ca。Narwhal 对格式进行了标准化处理。
  • Source: Reserve Bank of Australia 2026. This information is available free of charge on the RBA website: https://www.rba.gov.au. No endorsement is implied.
  • Source: Sveriges Riksbank, with the date of the data.
  • Source: Norges Bank
  • Source: Banco Central do Brasil (SGS 432), Open Data Commons Open Database License (ODbL).
  • Source: the CNB
  • Source: Bank Negara Malaysia. Data and information are subject to Terms of Use for BNM Datasets. https://www.bnm.gov.my/terms-of-use-bnm-datasets
  • 来源:欧洲中央银行(ECB)。此信息可在 ECB 网站免费获取:https://www.ecb.europa.eu。Narwhal 仅修改了格式。

如何比较实际利率

一种简单的实际利率近似算法,是从名义政策利率中减去通胀率:real rate ≈ policy rate − inflation。相减的两个数值均应使用百分比。对于目标区间,请明确名义利率输入值是自行计算的中点。

对于提供通胀路由的国家,请请求 /v1/economics/{country}/inflation 并读取 year_over_year。这些国家包括 USA、CAN、AUS 和 DEU。404 表示没有数据;请让该国的实际利率结果保持缺失,不要将通胀率替换为零。

请在政策利率日期旁保留通胀时期,因为两项观测记录可能对应不同时间。实际利率计算说明了这一减法。即使经过通胀调整,底层政策利率工具之间的差异仍然存在。

为什么欧元区只有一行?

任何受支持的欧元区成员国代码都会返回相同的 ECB 存款便利利率。仅使用一次 DEU,可避免在比较中重复同一利率工具。对于历史请求,覆盖范围从各成员国采用欧元的日期开始,因此不同成员国代码的可用历史可能不同。

为什么各国的日期不同?

effective_on 是利率生效日期。observed_on 是来源记录该数值的日期。各来源发布观测记录的规律也不同,因此最新响应的日期不一定相同。未来生效的利率不会提前替换当前利率。

进行历史比较时,请为每次请求添加相同的 date=YYYY-MM-DD。每次请求都会返回该日期当天或之前最新的源观测记录。不会为没有源观测记录的日期编造数据,因此请保留每次返回的日期。

发布于。

后续步骤