قارِن بين Kalshi و Polymarket بأمان
تبدأ مقارنة Kalshi و Polymarket من العقد نفسه. يمكن لقائمتين أن تصفا نفس الحدث بلغة إنجليزية بسيطة بينما تدفعان على نتائج أو نوافذ رصد أو مصادر بيانات أو حدود مختلفة. وضع سعريهما جنبًا إلى جنب قبل التحقق من هذه الشروط يُنتج مقارنة تبدو دقيقة بين ادعاءين مختلفين.
يطابق Dino القوائم ذات الصلة في كائن Market واحد ويحتفظ بفروق التسوية مرفَقة بذلك الكائن. يستخدم هذا الدرس Python SDK لفحص زوج واحد وحساب فارق السعر بعد مراجعة فحوصات العقد فقط.
سحب Market مطابَق وتفاصيله
أنشئ مفتاح API مجاني وثبّت العميل. ثم اطلب فئة أسواق مفتوحة. يستخدم هذا المثال الطقس لأن فروق المحطة والفئات فيه سهلة الملاحظة في الإفصاح:
export DINO_API_KEY=sk_live_...
pip install dino-markets
from dino_markets import Dino
client = Dino()
catalog = client.markets(
category="weather",
market_type="weather_high",
status="open,live",
limit=20,
)
summary = next(
(
market
for market in catalog["markets"]
if market["coverage"]["kalshi"]
and market["coverage"]["polymarket"]
),
None,
)
if summary is None:
raise SystemExit("No two-venue weather comparison is available right now.")
market = client.market(summary["id"])
توفّر نتيجة القائمة id ثابتًا من Dino إلى جانب الأسعار المتأخرة الحالية. يضيف client.market(id) سياقًا موحَّدًا وهويات المنصات وعمق السوق وإفصاح التسوية لمقارنة كاملة.
تحويل الإفصاح إلى قائمة مراجعة
تُظهر الدالة التالية أربعة فحوصات قبل أي حساب للسعر:
def comparison_checks(market):
settlement = market.get("settlement") or {}
risks = settlement.get("risks") or []
served_blocking = [
risk
for risk in risks
if risk.get("severity") == "high"
]
fully_priced = bool(market["outcomes"]) and all(
outcome.get("kalshi") is not None
and outcome.get("polymarket") is not None
for outcome in market["outcomes"]
)
return {
"entity_match_served": market["match"] == "high_confidence",
"full_price_coverage": fully_priced,
"settlement_parity": settlement.get("parity") is True,
"served_blocking_risks": served_blocking,
}
checks = comparison_checks(market)
print(checks)
يجيب match عن سؤال الهوية: هل لدى Dino أدلة كافية على أن القوائم تمثّل نفس الحدث أو الادعاء الأساسي ليقدّمها معًا. يجيب اكتمال تغطية السعر عن ما إذا كان يمكن مقارنة كل نتيجة عبر المنصتين. يُظهر تكافؤ التسوية وقائمة المخاطر المقدَّمة ما إذا كانت النتائج المطابَقة تُدفع بشروط متوافقة، رهنًا بإفصاح الإلغاء أدناه.
يمكن أن يكون Market مقارنة صالحة بين المنصتين بينما يحمل تحفّظ تسوية. في هذه الحالة يبقى signal عنده spread، وينبغي أن يظهر التحفّظ بجانب الأسعار. لدى Opportunity المؤكَّدة بوابة أعلى وتأتي من مورد /v2/arbitrage المنفصل.
قراءة العقد على طبقات
استخدم حقول تفاصيل Market كترتيب مراجعة ثابت:
| الفحص | الحقل | ما الذي يجب التحقق منه |
|---|---|---|
| الهوية | match، title، سياق الفئة | تشير قوائم المنصتين إلى نفس الحدث أو الادعاء. |
| النتائج | outcomes[].key، outcomes[].name | تغطي الفئات نفس النتائج الواقعية. |
| التغطية | coverage، أسعار النتائج | لدى المنصتين سعر حقيقي أينما احتاجت المقارنة إليه. |
| التسوية | settlement.parity، settlement.risks[]، settlement.kalshi_text، settlement.poly_text | مصادر التسوية وحدود القطع متوافقة أو مُفصَح عنها. اقرأ نص قواعد كل منصة لصياغة الإلغاء. |
يستبعد settlement.risks[] المقدَّم عمدًا أحداث cancel_* الداخلية. اقرأ kalshi_text وpoly_text لشروط الإلغاء الخاصة بكل منصة. يحسب Dino settlement.parity وsignal من مجموعة المخاطر الداخلية الكاملة قبل ترشيح تلك الأحداث من قائمة المخاطر العامة.
توضّح أسواق الطقس سبب أهمية كل طبقة. قد يسمّي عقدا حد أقصى يومي نفس المدينة بينما يُسوَّيان من محطتَي طقس مختلفتين. وقد تكون فئات الحرارة فيهما أيضًا مُزاحة بدرجة واحدة. يحتفظ Dino بالفئات الفعلية لكل منصة ويبلّغ عن التداخلات بدلاً من اختلاق سعر مُدمَج.
تكشف أسواق عتبة العملات المشفَّرة عن مشكلة حدود مختلفة. يمكن أن تُسوّي إحدى المنصتين "عند سعر التنفيذ أو أعلى منه" بينما تستخدم الأخرى "أعلى منه" فقط. عندئذ يشير فارق السعر عند العتبة الدقيقة إلى عقود بمجموعات فوز مختلفة، حتى عندما يذكر كلا العنوانين نفس الأصل والرقم.
حساب فروق الأسعار أخيرًا
بعد مراجعة الإفصاح، احسب الفارق الملاحَظ لكل نتيجة مسعَّرة بالكامل:
for outcome in market["outcomes"]:
kalshi = outcome.get("kalshi")
polymarket = outcome.get("polymarket")
if kalshi is None or polymarket is None:
continue
gap_pts = abs(kalshi - polymarket) * 100
print(
outcome["name"],
f"Kalshi {kalshi:.2f}",
f"Polymarket {polymarket:.2f}",
f"gap {gap_pts:.1f} pts",
)
النتيجة هي فارق سعر بين المنصتين عند طابع الوقت priced_at الخاص بـ Market. يبيّن مدى تباعد السعرين الملاحَظين. يتطلّب التنفيذ بيانات دفتر الأوامر الحالية والحجم المتاح والرسوم وشروط تسوية متوافقة. هذه بيانات لمطورين لا نصيحة تداول أو مالية.
استخدم كيف يطابق Dino الأسواق لبوابتي الهوية والتفعيل، ومرجع كائن Market لكل حقل استُخدم أعلاه. تعرض اللوحات المباشرة نفس الإفصاح في عرض مقروء للبشر.
المزيد من المدونة
راقب Kalshi وPolymarket باستخدام Python
ابنِ مراقبًا بلغة Python لأسواق Kalshi وPolymarket المطابَقة، ثم وسّع لقطة REST المتأخرة بتحديثات في الوقت الفعلي.
خادم Kalshi و Polymarket عبر MCP في Claude و Cursor
صِل Claude أو Cursor بخادم MCP الخاص بـ Dino لأسواق Kalshi و Polymarket، وافحص الأسواق المطابَقة مع سياق التسوية.
وصلت الأموال المؤسسية إلى أسواق التنبؤ. السلع هي الاختبار
دعمت ICE وTradeweb كلاً من Polymarket وKalshi. ستُظهر سيولة السلع ما إذا كانت البنية التحتية المؤسسية ستتحول إلى تدفق تداول فعلي.