تحويل Prediction Market Odds إلى نسبة احتمال

في المثال التوضيحي ليوم 24 أكتوبر 2026، كان السعر 0.88 يعني احتمالًا ضمنيًّا قدره 88.0%. وإذا زاد مجموع الأسعار الخام لجميع نتائج السؤال على 1، فاقسم كل سعر على مجموعها.

نفّذ ذلك باستخدام واجهة API

في مثال 24 أكتوبر 2026، تتبع أسعار المنصات عُرف تسعير النتيجة بين 0 و1، بالدولار لكل دولار واحد من العائد. لذلك يعطي السعر الاحتمال الضمني الخام لتلك النتيجة. ويستخدم التطبيع الأسعار معًا، لأن المجموع يخص جميع نتائج السؤال الواحد.

تعيد Narwhal لكل نتيجة probability مدمجًا عبر المنصات، ولكل منصة أيضًا quotes خاصة بها. حدّد الحقل الذي تحتاج إليه قبل أي عملية حسابية: الاحتمالات المُعادة جاهزة للقراءة، أما أسعار النتائج الخام فتستخدم لها التحويل الوارد في مثال Python. يشترك REST وMCP في مفتاح API نفسه، فاستخدم مفتاح حسابك في Narwhal.

  1. احصل على مفتاح API الخاص بك احصل على مفتاح مجاني واحفظه في متغير بيئة اسمه NARWHAL_API_KEY. أرسل المفتاح في الترويسة Authorization: Bearer YOUR_KEY عند إجراء الطلب.
  2. قراءة السؤال بالنسبة إلى قرار الاحتياطي الفيدرالي في 28 أكتوبر 2026، استخدم GET /v1/predictions/scalar/usa-fed-2026-10 على https://api.narwhalapi.com. اقرأ probability لكل نتيجة للحصول على النتيجة المدمجة، أو quotes الخاصة بالمنصة عندما تريد أسعارها هي.
  3. اقرأ الأودز مع تاريخها تحمل كل لقطة as_of. اللقطة المؤرخة 24 أكتوبر 2026 قيمة as_of فيها 2026-10-24T00:00:00Z؛ احتفظ بهذا التاريخ بجانب أي أرقام تأخذها منها.
  4. طبّع الأسعار الخام عند الحاجة بالنسبة إلى الأسعار الخام التوضيحية ليوم 24 أكتوبر 2026، اجمع أسعار جميع نتائج السؤال نفسه ثم اقسم كل سعر على هذا المجموع. استخدم هذا الحساب عندما تبدأ من أسعار خام؛ فقيم probability التي تعيدها Narwhal مجموعها 1 أصلًا.
    Python: من الأسعار الخام إلى الاحتمالات
    # A venue quotes each outcome as a price between 0 and 1 (cents on the dollar).
    # Narwhal returns the probabilities already
    # normalised, but if you start from raw prices you remove the overround yourself.
    yes_prices = {"cut": 0.05, "hold": 0.88, "hike": 0.10}  # example raw prices, sum 1.03
    total = sum(yes_prices.values())
    for outcome, price in yes_prices.items():
        print(
            f"{outcome:5} price {price:.2f}  implied {price:.1%}  "
            f"normalised {price / total:.1%}"
        )
    print("overround", round(total - 1, 2))

نفّذ ذلك في جدول بيانات أو دون شيفرة

ضع الأسعار الخام لجميع نتائج السؤال نفسه في جدول بيانات. وفي مثال 24 أكتوبر 2026 استخدم B2:B4 للأسعار، وأدخل =B2/SUM($B$2:$B$4) بجوار السعر الأول. انسخ الصيغة بجوار بقية الأسعار وطبّق تنسيق النسبة المئوية على النتائج.

تُبقي علامات الدولار المجموع مرتبطًا بالنطاق نفسه عند نسخ الصيغة. يستخدم كل صف سعره هو بسطًا ومجموعة أسعار النتائج كلها مقامًا. أدرج كل النتائج في هذا النطاق، لأن التطبيع يستخدم مجموع السؤال بأكمله.

إذا أردت قراءة سؤال دون إجراء حساب، فافتح صفحات التنبؤات في Narwhal؛ إذ تعرض الاحتمالات مباشرة. استخدم جدول البيانات عندما تبدأ من مجموعة أسعار خام وتريد رؤية ناتج كل قسمة بجوار السعر الأصلي.

متى تستخدم كل خيار

الحالةالخيار الأنسبالسبب
سؤال واحد في التطبيقاقرأ الاحتمال الذي تعيده واجهة APIهو مطبَّع بالفعل
أسعار خام من مصدر آخراقسم كل سعر على المجموعبهذا تُزال الـ overround
الأودز العشرية أو الكسرية أو الأمريكيةحوّل بالصيغ ثم طبّعيعطي التحويل احتمالات ضمنية خام

الأودز العشرية والكسرية والأمريكية

ابدأ بالصيغة المناسبة لطريقة عرض الأودز. للأودز العشرية d يكون الاحتمال الضمني 1/d. وللأودز الكسرية a/b استخدم b/(a+b). وللأودز الأمريكية الموجبة +X استخدم 100/(X+100)، وللسالبة -X استخدم X/(X+100)، حيث X هو مقدار الرقم المعروض.

في هذه الأمثلة التوضيحية ليوم 24 أكتوبر 2026، تعني الأودز العشرية 2.50 والكسرية 3/2 والأمريكية +150 كلها احتمالًا ضمنيًّا قدره 40.0%، أما الأودز الأمريكية -200 فتعني 66.7%. اختر الدالة المناسبة لصيغة السعر المعروض وعبّر عن القيمة المُعادة كنسبة مئوية.

تقبل دالة الأودز الأمريكية القيمة المعروضة بإشارتها، فاحتفظ بالإشارة الموجبة أو السالبة معها. وفي الأودز السالبة تستخدم الدالة مقدارها في القسمة. أما دالة الأودز الكسرية فتأخذ البسط والمقام منفصلين؛ فأدخلهما بالترتيب نفسه الذي يظهران به في الأودز الكسرية.

Python: من صيغ الأودز إلى الاحتمال
def from_decimal(d):          # decimal odds, e.g. 2.50
    return 1 / d

def from_fractional(a, b):    # fractional odds a/b, e.g. 3/2
    return b / (a + b)

def from_american(x):         # American odds, e.g. +150 or -200
    return 100 / (x + 100) if x > 0 else -x / (-x + 100)

print(f"decimal 2.50   -> {from_decimal(2.50):.1%}")
print(f"fractional 3/2 -> {from_fractional(3, 2):.1%}")
print(f"American +150  -> {from_american(150):.1%}")
print(f"American -200  -> {from_american(-200):.1%}")

تحوّل هذه الصيغ كل سعر على حدة. وإذا كانت لديك الأودز لجميع نتائج السوق نفسه، فاجمع احتمالاتها الضمنية الخام واقسم كلًّا منها على المجموع. تغيير صيغة السعر لا يزيل الـ overround، لذا فالتحويل والتطبيع حسابان منفصلان.

لماذا يزيد مجموع الأسعار على 100.0%؟

قد تجعل فروق الأسعار والرسوم مجموع أفضل أسعار شراء كل النتائج أعلى قليلًا من العائد الكامل. هذه الزيادة هي الـ overround. اقسم كل سعر خام على مجموع النتائج كلها لإزالتها وللتعبير عن النتائج بوصفها مجموعة احتمالات مطبَّعة.

هل السعر توقّع؟

هو ما يدفعه المتداولون، أي احتمال ضمني في السوق وليس ضمانًا.

هل أطبّع أرقام Narwhal مرة أخرى؟

لا، فمجموع قيم probability المُعادة هو 1 أصلًا. اقرأ هذه القيم مباشرة عندما تحتاج إلى الاحتمالات المدمجة لسؤال ما. طبّق حساب الأسعار الخام على الأسعار الخام فقط، ولا تعامل الاحتمالات المُعادة كأسعار ما زالت فيها overround.

مثال محسوب: تحويل أسعار النتائج الخام

أرقام هذا المثال التوضيحي مأخوذة من 24 أكتوبر 2026.

لنفترض مثلًا أن الأسعار الخام هي 0.05 للخفض و0.88 للإبقاء و0.10 للرفع. مجموعها 1.03. اطرح العائد الكامل 1 من هذا المجموع، فتكون الـ overround هي 0.03، أي 3 نقاط مئوية.

اقسم كل سعر على 1.03 لتحصل على حصته من المجموع. تأتي النسب الضمنية الخام مباشرة من الأسعار، أما النسب المطبَّعة فتستخدم هذا المقام المشترك. استخدم المقام نفسه لكل نتيجة حتى يشمل الحساب مجموعة الأسعار كلها.

النتيجةالسعر الخامالاحتمال الضمني الخامالحسابالاحتمال المطبَّع
خفض الفائدة0.055.0%0.05 / 1.034.9%
تثبيت الفائدة0.8888.0%0.88 / 1.0385.4%
رفع الفائدة0.1010.0%0.10 / 1.039.7%

نُشر في .

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