如何比較各國政策利率

比較此處使用的九個國家代碼,需要發出九次政策利率請求,每次計為一個計量單位。跨國比較政策利率時,請為每個數值保留對應的工具、幣別與來源日期。

使用 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。每次請求都會回傳該日期或之前最新的來源觀測資料。不會為沒有來源觀測資料的日期虛構資料,因此請保留各自回傳的日期。

發布於 。

後續步驟