تابع أسعار فائدة البنوك المركزية عبر Central Bank Rates API

اقرأ سعر السياسة الحالي لكل بنك مركزي وتاريخ تغييره من نقاط نهاية economics، ثم أضف المسار الذي يسعّره السوق من predictions API. يبيّن السعر موقع السياسة اليوم، ويعطي المسار احتمال الخفض أو التثبيت أو الرفع في كل اجتماع قادم.

اقرأ سعر السياسة الحالي

يعيد GET /v1/economics/{country}/central-bank/policy-rate السعر السارِي الآن لدولة ما. يطلب هذا الطلب الولايات المتحدة.

curl، سعر السياسة في الولايات المتحدة
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/economics/USA/central-bank/policy-rate"
الاستجابة
{
  "country": "USA",
  "authority": "federal_reserve",
  "currency": "USD",
  "instrument": "federal_funds_target_range",
  "unit": "percent",
  "effective_on": "2026-09-17",
  "observed_on": null,
  "announced_on": null,
  "rate_type": "range",
  "lower_bound": "3.75",
  "upper_bound": "4.00"
}

يحدد الاحتياطي الفيدرالي نطاقًا مستهدفًا، لذلك يكون rate_type هو range وتتضمن الاستجابة lower_bound بقيمة 3.75 وupper_bound بقيمة 4.00 بالنسبة المئوية. بدأ سريان النطاق في effective_on وهو 2026-09-17. أما البنك الذي يحدد سعرًا واحدًا فقيمة rate_type عنده point وفيه حقل rate واحد بدل الحدّين.

الدولةinstrumentسعر الفائدةحقل التاريخ
USAfederal_funds_target_range3.75 إلى 4.00effective_on 2026-09-17
GBRbank_rate3.75effective_on 2025-12-18
JPNovernight_call_rate_target1.25observed_on 2026-10-27

شاهد كيف وصل السعر إلى هنا

أضف /history لقراءة سلسلة ملاحظات السعر. يحدد المعامل start أول تاريخ، ويتنقل limit وcursor بين صفحات التواريخ الطويلة. يبدأ هذا الطلب في سبتمبر 2025.

curl، تاريخ سعر السياسة الأمريكي من تاريخ بداية
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/economics/USA/central-bank/policy-rate/history?start=2025-09-01"
الاستجابة
{
  "country": "USA",
  "observations": [
    {
      "country": "USA",
      "authority": "federal_reserve",
      "currency": "USD",
      "instrument": "federal_funds_target_range",
      "unit": "percent",
      "effective_on": "2025-09-18",
      "observed_on": null,
      "announced_on": null,
      "rate_type": "range",
      "lower_bound": "4.00",
      "upper_bound": "4.25"
    },
    {
      "country": "USA",
      "authority": "federal_reserve",
      "currency": "USD",
      "instrument": "federal_funds_target_range",
      "unit": "percent",
      "effective_on": "2025-10-30",
      "observed_on": null,
      "announced_on": null,
      "rate_type": "range",
      "lower_bound": "3.75",
      "upper_bound": "4.00"
    }
  ],
  "next_cursor": null
}

تضم الاستجابة الكاملة أربعة صفوف، الأقدم أولًا، وتعرض الكتلة اثنين منها. طرح كل حد أعلى من الذي قبله يعطي الحركات: -25 نقطة أساس في 2025-10-30 و-25 في 2025-12-11 و+25 في 2026-09-17. يجري السكربت أدناه هذا الطرح بـDecimal فلا يدخل خطأ الفاصلة العائمة إلى أي سعر. وللتاريخ الطويل، مرّر end أيضًا أو تابع next_cursor حتى يصبح null.

اقرأ المسار الذي يسعّره السوق

يعيد GET /v1/predictions/policy-paths/federal-reserve الاحتمالات لكل اجتماع قادم. يحمل المسار التغييرات فقط ولا يحمل السعر الحالي أبدًا، لذلك اقرأ السعر من نقطة النهاية أعلاه.

curl، مسار سياسة الاحتياطي الفيدرالي
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/predictions/policy-paths/federal-reserve"
الاستجابة
{
  "as_of": "2026-11-03T02:34:00Z",
  "meetings": [
    {
      "event_id": "usa-fed-2026-12",
      "p_cut": "0.0096",
      "p_hold": "0.2533",
      "p_hike": "0.7371",
      "expected_change_bps": "18.6",
      "cumulative_change_bps": "18.6",
      "resolves_at": "2026-12-09T19:00:00Z"
    },
    {
      "event_id": "usa-fed-2027-01",
      "p_cut": "0.0280",
      "p_hold": "0.7055",
      "p_hike": "0.2665",
      "expected_change_bps": "6.0",
      "cumulative_change_bps": "24.6",
      "resolves_at": "2027-01-27T19:00:00Z"
    }
  ]
}

يحدد as_of تاريخ الاحتمالات. في كل اجتماع، resolves_at هو وقت القرار، وp_cut وp_hold وp_hike احتمالات مجموعها 1. احتمال الرفع في الاجتماع الأول 73.7%، وexpected_change_bps يساوي 18.6. يجمع cumulative_change_bps الاجتماعات: 18.6 زائد 6.0 يساوي 24.6 بعد الاجتماع الثاني.

غيّر الجهة authority في المسار لبنوك أخرى، مثل bank-of-japan. استجابة قائمة meetings فيها فارغة تعني أنه لا توجد اجتماعات مدرجة لتلك الجهة، وهذا ما كان عليه الحال مع bank-of-england عند كتابة هذه الصفحة.

قارن ثلاثة بنوك في جدول واحد

تحتاج قائمة المتابعة إلى الأعمدة نفسها لكل بنك. خذ السعر من نقطة نهاية السعر، وخذ الاجتماع الأول من المسار باسم الجهة authority للبنك: federal-reserve أو bank-of-england أو bank-of-japan.

الدولةAuthorityالسعر الآنالاجتماع الأول في المساراحتمال الرفع
USAfederal-reserve3.75 إلى 4.002026-12-0973.7 في المئة
GBRbank-of-england3.75لا يوجدغير متاح
JPNbank-of-japan1.252026-12-1883.6 في المئة

يبقى صف المملكة المتحدة فارغًا لأن مسارها لم يضم اجتماعات عند كتابة هذه الصفحة، بينما سعرها ما زال حاليًا. احتفظ بصف لمثل هذا البنك في جدولك على أي حال. عرض السعر مع مسار فارغ أنفع من حذف البنك. أعد قراءة كل مسار قبل الاعتماد عليه، لأن as_of يتحرك مع تحديث الاحتمالات.

ضع السعر والمسار في سكربت واحد

  1. احصل على مفتاح API احصل على مفتاح API من صفحة التسجيل واحفظه في NARWHAL_API_KEY.
  2. اقرأ السعر لكل دولة يطبع السكربت الأداة instrument والسعر والتاريخ. يستخدم effective_on ويعود إلى observed_on حين تكون قيمة effective_on هي null.
  3. احسب الحركات والاحتمالات تعطي الفروق بين الحدود العليا المتتالية الحركات بنقاط الأساس، ويطبع الاجتماعان الأولان احتمالي الرفع والتثبيت كنسب مئوية.
    Python، الأسعار والحركات والاحتمالات
    import os
    from decimal import Decimal
    import requests
    
    BASE = "https://api.narwhalapi.com"
    HEADERS = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}
    
    
    def get(path, **params):
        r = requests.get(f"{BASE}{path}", headers=HEADERS, params=params, timeout=10)
        r.raise_for_status()
        return r.json()
    
    
    def text(o):
        if o["rate_type"] == "range":
            return f"{o['lower_bound']} to {o['upper_bound']}"
        return o["rate"]
    
    
    def top(o):
        return Decimal(o["upper_bound"] if o["rate_type"] == "range" else o["rate"])
    
    
    for country in ("USA", "GBR", "JPN"):
        o = get(f"/v1/economics/{country}/central-bank/policy-rate")
        print(country, o["instrument"], text(o), "since", o["effective_on"] or o["observed_on"])
    
    rows = get("/v1/economics/USA/central-bank/policy-rate/history", start="2025-09-01")["observations"]
    for before, now in zip(rows, rows[1:]):
        print(now["effective_on"], int((top(now) - top(before)) * 100), "bp")
    
    for m in get("/v1/predictions/policy-paths/federal-reserve")["meetings"][:2]:
        print(m["resolves_at"][:10], "hike", f"{Decimal(m['p_hike']) * 100:.1f}%",
              "hold", f"{Decimal(m['p_hold']) * 100:.1f}%", "expected", m["expected_change_bps"], "bp")
مخرجات السكربت
USA federal_funds_target_range 3.75 to 4.00 since 2026-09-17
GBR bank_rate 3.75 since 2025-12-18
JPN overnight_call_rate_target 1.25 since 2026-10-27
2025-10-30 -25 bp
2025-12-11 -25 bp
2026-09-17 25 bp
2026-12-09 hike 73.7% hold 25.3% expected 18.6 bp
2027-01-27 hike 26.6% hold 70.6% expected 6.0 bp

أي تاريخ يبيّن متى تغيّر السعر؟

استخدم effective_on حين تكون له قيمة، وإلا فاستخدم observed_on. أعادت الولايات المتحدة والمملكة المتحدة effective_on. وأعادت اليابان observed_on مع effective_on بقيمة null. وكان announced_on بقيمة null في الاستجابات الثلاث.

هل أستطيع قراءة السعر في تاريخ سابق؟

نعم. مرّر date إلى نقطة نهاية سعر السياسة. طلب date=2025-11-15 للولايات المتحدة أعاد النطاق من 3.75 إلى 4.00 مع effective_on بقيمة 2025-10-30، وهو تاريخ بداية ذلك النطاق.

هل يحتوي المسار على السعر الحالي؟

لا. إنه يحمل الاحتمالات والحركات المتوقعة بنقاط الأساس لكل اجتماع، فأضف الحركة إلى السعر الذي قرأته من نقطة نهاية سعر السياسة. اقسم نقاط الأساس على 100 لتحصل على نقاط مئوية: 18.6 نقطة أساس للاجتماع الأول تساوي 0.186 نقطة مئوية.

هذا متوسط مرجّح بالاحتمالات عبر نتائج الخفض والتثبيت والرفع، فهو مزيج من النتائج وليس حجم أي حركة سيعلنها البنك.

نُشر في .

الخطوات التالية