جميع المقالات
أدلةبيانات الأسواقالاختبار الرجعيدليل الشراء

كيف تختار واجهة API لبيانات Polymarket

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

9 دقيقة للقراءة

إذا كنت تبحث عن بيانات Polymarket التاريخية، فقد اصطدمت بالفعل بالجدار الذي يقود الجميع إلى هنا: API الخاصة بـ Polymarket لا تقدّم إلا الحالة الراهنة. اطلب دفتر الأوامر لسوق محسوم وستحصل على 404؛ وسجل الأسعار الذي تحتفظ به يقارب نقطة واحدة في الدقيقة، دون أي شيء عن العمق. ولا أي منهما محجوب خلف خطة مدفوعة. الدفتر ببساطة غير موجود.

لذا تحتاج إلى مزوّد سجّل الدفتر أثناء تشغيل الأسواق. المشكلة أن كل مزوّد في هذا المجال يسوّق الرقم الرئيسي نفسه، وهو من أقل الأرقام المتاحة إفادة. إليك ما يجب التحقق منه بدلًا من ذلك.

نحن نبني واحدًا من هذه

PolyTest واجهة API لبيانات Polymarket، لذا لسنا طرفًا محايدًا. ما يلي هو قائمة التحقق التي كنا سنستخدمها لو كنا مشترين لا بائعين — بما في ذلك قسم عن الحالات التي لا ينبغي لك فيها أن تدفع لأحد، ونحن منهم. أجرِ الاختبارات بدلًا من الوثوق بتسويق أي جهة، وتسويقنا في المقدمة.

1. اللقطات لكل سوق في الدقيقة، لا إجمالي اللقطات

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

ما تحتاج فعلًا إلى معرفته هو: في السوق المحدد الذي يهمني، كم لقطة أحصل عليها في الدقيقة؟ سوق مدته 5 دقائق يُؤخذ منه عينتان في الدقيقة يمنحك عشر نقاط بيانات لنمذجة دورة حياة سوق كاملة. وهذا لا يكفي لاختبار أي شيء.

# Pull the same market from each provider, then compare density.
snaps = fetch_snapshots(market_id)          # provider-specific call

span_s  = (snaps[-1]["timestamp"] - snaps[0]["timestamp"]) / 1000
per_min = len(snaps) / (span_s / 60)

print(f"{len(snaps)} snapshots over {span_s:.0f}s = {per_min:.1f}/min")

# Gaps matter more than the average. One 90-second hole in a 5-minute
# market means you cannot model the part where it was decided.
gaps = [
    (b["timestamp"] - a["timestamp"]) / 1000
    for a, b in zip(snaps, snaps[1:])
]
print(f"max gap: {max(gaps):.1f}s   median: {sorted(gaps)[len(gaps)//2]:.1f}s")

تحقّق من أكبر فجوة، لا من المتوسط

المتوسطات تخفي نمط الفشل. تغذية بمتوسط 4 لقطات/دقيقة لكن فيها ثغرة مدتها 90 ثانية خلال الدقيقة الأخيرة من سوق مدته 5 دقائق عديمة الفائدة في الفترة التي تهمك بالضبط. اطلب من أي مزوّد أكبر فجوة في سوق عيّنة — وإن لم يستطع الإجابة، فهذا يخبرك بشيء.

2. عمق حقيقي للدفتر، أم أعلى الدفتر فقط؟

هذا هو العامل الأكبر منفردًا في تحديد ما إذا كان لاختبارك الرجعي أي معنى، وهنا تصبح لغة التسويق أكثر مراوغة. فعبارة "بيانات دفتر الأوامر" قد تعني أي شيء من السلّم الكامل إلى زوج واحد من الشراء/البيع.

ما تحصل عليهما يمكنك اختباره
السعر الأوسط فقطلا شيء تقريبًا. السعر الأوسط ليس سعرًا يمكنك التداول عنده.
أفضل سعر شراء / أفضل سعر بيعما إذا كان الفارق يلتهم أفضليتك — ضروري لكنه غير كافٍ.
سلّم العمق الكاملأسعار التنفيذ الفعلية لحجم معيّن، بما في ذلك الانزلاق السعري.

إذا كنت تخطط للتداول بأي حجم معتبر، فأنت تحتاج إلى السلّم. أمر بحجم 500 سهم في سوق Up/Down ضعيف السيولة لا يُنفَّذ عند المستوى الأعلى — بل يمشي عبر الدفتر، والفرق بين المستوى الأعلى ومتوسط تنفيذك الحقيقي كثيرًا ما يكون أكبر من الأفضلية التي تختبرها.

def simulate_fill(levels, qty):
    """Walk the ladder. This is what actually happens to your order."""
    filled = cost = 0.0
    for lvl in levels:
        take = min(lvl["size"], qty - filled)
        cost += take * lvl["price"]
        filled += take
        if filled >= qty:
            break
    if filled < qty:
        return None            # Not enough liquidity to fill at all.
    return cost / filled

book = snapshot["orderbook"]["asks"]
print("top of book:", book[0]["price"])
print("true fill  :", simulate_fill(book, 500))
# A gap of 2-3c here on a $1 binary is routine, and it is
# larger than most claimed edges.

3. هل يُحتفظ بالأسواق المحسومة فعلًا؟

السبب الوحيد للدفع مقابل هذه البيانات هو أن Polymarket تتخلص منها. لذا تحقّق من أن المزوّد يحتفظ بها فعلًا، بدلًا من تمرير نقاط النهاية المباشرة عبر ذاكرة تخزين مؤقت.

يستغرق الاختبار دقيقة: ابحث عن سوق حُسم قبل أسابيع، واطلب لقطاته، وتأكد من حصولك على مسار سعري كامل مع العمق — لا مجرد سجل بيانات وصفية يقول أي جانب فاز. معرفة النتيجة ليست بيانات؛ فكل استراتيجية تستحق الاختبار تتعلق بالمسار، لا بالجواب.

البيانات الوصفية ليست سجلًا تاريخيًا

بعض المصادر تُرجع بكل سرور سؤال السوق المحسوم وحجم تداوله والنتيجة الفائزة، لأن هذا القدر يبقى في التغذيات العامة. هذه بيانات معدلات أساسية. لا يمكنها أن تخبرك بالسعر الذي كان سيُنفَّذ عنده أمرك، وأي انحياز ظاهر في المعدلات الأساسية يكون صانعو السوق قد سعّروه قبل أن تراه.

4. نافذة السجل مقابل عمق السجل

يبيع المزوّدون السجل التاريخي بشكلين مختلفين، والتمييز بينهما أهم من عدد الأيام الخام:

  • نافذة متجددة — آخر N يومًا، مع خروج البيانات الأقدم تدريجيًا. مناسبة للضبط وفق ظروف السوق الحالية.
  • أرشيف محفوظ — كل شيء منذ بدء الجمع. ضروري إذا أردت الاختبار عبر أنظمة تقلب مختلفة.

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

احذر من الاختبار في نظام سوق واحد

الطريقة الأكثر شيوعًا التي يكذب بها الاختبار الرجعي هي إجراؤه بالكامل ضمن نظام سوق واحد. الاستراتيجية المضبوطة على 30 يومًا هادئًا تبدو متينة حتى يصل التقلب. إذا كانت نافذتك قصيرة، فعلى الأقل قسّمها وتحقق من أن النتيجة صامدة في النصفين.

5. إنتاجية يمكنك استخدامها فعلًا

تبدو حدود المعدل تفصيلًا ثانويًا حتى تجري أول اختبار رجعي حقيقي. سحب كل لقطة لشهر من أسواق الـ 5 دقائق عبر ثلاث عملات يعني طلبات كثيرة، وحد 10 طلبات/ثانية يحوّل ظهيرة من البحث إلى مهمة تستغرق الليل.

رقمان مهمان وغالبًا ما ينشر المزوّدون واحدًا فقط: الإنتاجية المستدامة (الطلبات في الدقيقة) وسعة الدفعات (الطلبات في الثانية). حد مرتفع في الدقيقة مع دفعات منخفضة لا يزال يعطّل الجلب المتوازي.

الخطةالطلبات / دقيقةالدفعة / ثانيةالسجل التاريخي
PolyTest Free302الأسواق الحديثة
PolyTest Builder2501214 يومًا
PolyTest Pro75040الأرشيف الكامل
PolyTest Enterpriseمخصصمخصصكامل + تصدير مجمّع
أرقامنا الخاصة، للمرجعية — تحقّق من الحدود المنشورة لأي مزوّد وقارن العمودين. راجع الأسعار وحدود المعدل.

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

6. هل يمكنك تقييمه قبل الدفع؟

لا يمكنك تقييم جودة البيانات من صفحة تسويقية. أي مزوّد واثق من بياناته سيتيح لك الاطلاع عليها قبل الدفع، عبر مستوى مجاني أو فترة تجريبية، ويُفضَّل مع مرجع API يمكنك قراءته دون تسجيل.

لكن كن واضح الرؤية بشأن الغرض من المستوى المجاني أو الفترة التجريبية. فترتنا التجريبية مدتها 3 أيام لخطة Builder الكاملة، بما فيها عمق دفتر الأوامر، لتتمكن من التحقق من التغطية وكثافة اللقطات وشكل الاستجابة قبل الالتزام — لكن ثلاثة أيام ونافذة مدتها 14 يومًا تجعلها أداة تقييم لا مستوى بحثيًا. أيًّا كان المزوّد، حدّد الأجزاء التي يمكن تجربتها فعلًا مجانًا قبل استخلاص النتائج.

7. هل تستطيع أدواتك قراءة الوثائق؟

اعتبار أحدث، ويستحق التحقق منه لأنه غير مرئي حتى يسبب مشكلة. إذا كنت تبني باستخدام Cursor أو Claude Code أو Codex، فإن قدرة مساعدك على كتابة تكامل صحيح تعتمد على قدرته على قراءة وثائق المزوّد.

بعض مزوّدي البيانات يحجبون زواحف الذكاء الاصطناعي في robots.txt — وهو خيار مشروع بشأن بيانات التدريب، لكنه يعني أن النماذج لا تستطيع رؤية وثائقهم وستلجأ إلى ارتجال واجهة API بدلًا من ذلك. يمكنك التحقق من أي مزوّد في نحو خمس ثوانٍ:

curl -s https://<provider>/robots.txt | grep -iA1 "GPTBot\|ClaudeBot\|Google-Extended"

# "Disallow: /" under those agents means your AI assistant
# cannot read their docs and will guess at the API instead.

للمرجعية، تسمح PolyTest بتلك الزواحف وتنشر llms.txt وllms-full.txt ومواصفات OpenAPI. لكن الاختبار العملي أبسط من قراءة ملفات السياسات: اطلب من مساعدك كتابة تكامل مع كل مزوّد وانظر أيها ينتج شيفرة تعمل.

متى لا ينبغي أن تدفع لأحد

يستحق قوله بوضوح، لأنه ينطبق علينا كما ينطبق على أي أحد. لا تحتاج إلى مزوّد بيانات مدفوع إذا:

  • كنت تحتاج إلى البيانات المباشرة فقط. واجهة API العامة وتدفقات WebSocket الخاصة بـ Polymarket مجانية، ولا تتطلب مصادقة لبيانات الأسواق، وجيدة تمامًا. مزوّدو البيانات التاريخية موجودون للسجل التاريخي، لا لشيء آخر.
  • كنت تختبر البنية التحتية، لا استراتيجية. المصادقة والتحليل وإعادة الاتصال والتعامل مع حدود المعدل يمكن تجربتها كلها مقابل نقاط النهاية المباشرة المجانية.
  • كانت استراتيجيتك لا تعتمد على التنفيذ. إذا كنت تدرس المعدلات الأساسية أو ترددات الحسم، فتلك المعلومات تبقى في البيانات الوصفية العامة.
  • كنت مستعدًا لتسجيلها بنفسك. تشغيل أداة جمع مقابل WebSocket العام خيار قابل للتطبيق فعلًا. تكلفته خادم صغير والانضباط لإبقائه يعمل — المشكلة أنك تبدأ بلا أي سجل ولا يمكنك ملء الماضي، لذا لا يفيد إلا إذا بدأت قبل حاجتك إلى البيانات بوقت طويل.

مبرر الدفع ضيق ومحدد: تريد سجلًا لم تسجّله أنت، بدءًا من اليوم.

اختبار يمكنك إجراؤه بعد ظهر اليوم

  1. سجّل في المستوى المجاني أو الفترة التجريبية لكل مزوّد في قائمتك.
  2. اختر سوقًا واحدًا — العملة نفسها، والإطار الزمني نفسه، واليوم نفسه — واسحبه من كل مزوّد.
  3. قارن اللقطات في الدقيقة وأكبر فجوة. الكثافة والاستمرارية تتفوقان على كل رقم رئيسي.
  4. تحقّق من مستويات الدفتر في كل لقطة. إن لم يكن سلّمًا، فلا يمكنك نمذجة التنفيذ.
  5. اطلب سوقًا حُسم قبل شهر وتأكد من حصولك على مسار كامل، لا مجرد نتيجة.
  6. شغّل أثقل نمط استعلام واقعي لديك وانظر أي مزوّد يقيّدك أولًا.
  7. اطلب من مساعدك الذكي كتابة تكامل مع كل منها وانظر أي الوثائق يستطيع قراءتها فعلًا.

يستغرق هذا التسلسل ظهيرة واحدة ويخبرك بأكثر مما يخبرك به أي جدول مقارنة، بما فيه هذا الجدول. إذا أردت البدء بخدمتنا، فهناك فترة تجريبية مجانية لمدة 3 أيام، ومرجع نقاط النهاية متاح للقراءة دون أي تسجيل.

الأسئلة الشائعة

ما الذي يجب أن أبحث عنه في مزوّد بيانات Polymarket التاريخية؟
تحقّق من اللقطات لكل سوق في الدقيقة بدلًا من إجمالي عدد اللقطات، ومن أكبر فجوة بين اللقطات بدلًا من المتوسط. تأكد من حصولك على سلّم كامل لدفتر الأوامر بدلًا من السعر الأوسط أو أعلى الدفتر فقط، إذ لا يتيح لك نمذجة تنفيذ واقعي إلا السلّم. تحقّق من أن الأسواق المحسومة محفوظة فعلًا بمسارها السعري الكامل، لا بالبيانات الوصفية فقط. ثم قارن حدود المعدل المستدامة وحدود الدفعات، وما إذا كان بإمكانك تقييم البيانات قبل الدفع.
لماذا لا يمكنني استخدام API الخاصة بـ Polymarket للاختبار الرجعي؟
لا تقدّم API الخاصة بـ Polymarket إلا حالة السوق الراهنة. بمجرد حسم السوق، يُرجع طلب دفتر أوامره 404 مع الرسالة "No orderbook exists for the requested token id"، وسجل الأسعار الذي تحتفظ به يقارب نقطة واحدة في الدقيقة. تبقى البيانات الوصفية مثل النتيجة الفائزة وإجمالي حجم التداول، لكن عمق الدفتر لا يبقى، وسعر واحد في الدقيقة أخشن من أن يحاكي التنفيذ، لذا لا يوجد ما تختبر عليه التنفيذ رجعيًا دون أرشيف من طرف ثالث.
هل العدد الأكبر من اللقطات أفضل؟
ليس بالضرورة. إجمالي عدد اللقطات ليس إلا معدل الالتقاط مضروبًا في الأسواق المتتبَّعة مضروبًا في مدة الجمع، لذا قد يعني الرقم الأكبر دقة أفضل، أو جمعًا أطول، أو تغطية أوسع، أو ببساطة مزيدًا من الصفوف المكررة في أسواق ضعيفة السيولة. ما يحدد صلاحية البيانات هو كثافة اللقطات في الأسواق المحددة التي تتداولها، وأكبر فجوة بين لقطتين متتاليتين، وما إذا كانت كل لقطة تحمل عمقًا حقيقيًا للدفتر.
هل أحتاج إلى عمق دفتر الأوامر أم يكفي السعر الأوسط؟
تحتاج إلى العمق إذا كنت تخطط للتداول بحجم معتبر. السعر الأوسط ليس سعرًا يمكنك التعامل عنده، وفوارق أسواق Up/Down على Polymarket تبلغ عادةً ⁦2-5⁩ سنتات على عقد يُسوّى عند $1 — وغالبًا ما تكون أكبر من الأفضلية التي يجري اختبارها. يتيح لك السلّم الكامل المشي عبر الدفتر وحساب متوسط تنفيذ حقيقي بما في ذلك الانزلاق السعري، وهذا ما يفصل الاختبار الرجعي عن التمرين الحسابي.
هل يمكنني تسجيل بيانات Polymarket بنفسي بدلًا من الدفع؟
نعم، وهو خيار معقول. تدفقات WebSocket العامة الخاصة بـ Polymarket مجانية ولا تتطلب مصادقة لبيانات الأسواق، لذا يمكن لأداة جمع تعمل على خادم صغير أن تبني أرشيفك الخاص. القيد أنك تبدأ بلا أي سجل ولا يمكنك ملء الماضي — فلا تحصل على البيانات إلا من لحظة بدء الجمع. الدفع لمزوّد منطقي تحديدًا عندما تحتاج إلى سجل لم تسجّله أنت.

احصل على البيانات التاريخية التي لا تحتفظ بها Polymarket

يسجّل PolyTest أسواق Up/Down للعملات المشفرة على Polymarket أثناء تشغيلها — 240M+ لقطة مع 8 مستويات من عمق دفتر الأوامر، وطوابع زمنية بدقة أقل من الثانية، مع الاحتفاظ بالأسواق المحسومة. ابدأ بفترة تجريبية مجانية لمدة 3 أيام.

تابع القراءة