كيفية تقدير موقعك في قائمة الانتظار باستخدام بيانات L2
يحدد موقعك في قائمة الانتظار ما إذا كان طلبك السلبي سيحقق ربحاً من الـ spread. تعرف على كيفية تقدير ترتيبك من بيانات السوق المجمعة ومتى تحتاج إلى شراء بيانات MBO.
233433
موقعك في قائمة الانتظار هو ترتيب طلبك بين الطلبات المعلقة عند سعر معين. في منصات التداول التي تعتمد أولوية السعر والوقت، يحدد هذا الترتيب ما إذا كان طلبك السلبي سيستفيد من الـ spread أو لن يتم تنفيذه إطلاقاً. لا توفر بيانات السوق المجمعة هذا الرقم؛ إذ يكتفي سجل Level 2 بإظهار حجم الطلبات عند كل سعر، دون تحديد هوية أصحابها. فيما يلي كيفية تقدير موقعك في قائمة الانتظار باستخدام البيانات المتاحة لمعظم المتداولين، وكيفية تحديد اللحظة التي تصبح فيها هذه التقديرات غير كافية.
فهم أولوية التنفيذ
تعتمد معظم البورصات الحديثة نظام أولوية السعر والوقت. إذا تساوى سعر طلبك مع طلبات أخرى، فإن الأولوية تكون للطلب الذي وصل أولاً. في الأسواق ذات السيولة العالية، قد تتنافس مئات الطلبات عند مستوى سعري واحد. وبما أنك لا تستطيع رؤية ترتيبك الفعلي، فإنك تعتمد على مراقبة التغيرات في حجم الطلبات عند ذلك السعر لتقدير مدى قربك من التنفيذ.
تقدير موقعك في قائمة الانتظار
تقدير الموقع يعتمد على مراقبة تدفق البيانات. عندما تضع طلباً عند سعر معين، يمكنك مراقبة حجم الطلبات الإجمالي (Size) عند هذا المستوى. إذا انخفض الحجم الإجمالي دون أن يتم تنفيذ طلبك، فهذا يعني أن الطلبات التي تسبقك قد تم تنفيذها أو إلغاؤها. إذا زاد الحجم، فهذا يعني دخول طلبات جديدة أمامك في قائمة الانتظار، مما يؤخر دورك.
متى تفقد التقديرات دقتها؟
تصبح عملية التقدير غير مجدية عندما تزداد حدة تقلبات السوق أو عندما تصبح الورقة المالية thinly traded. في الأسواق المتقلبة، تتغير أحجام الطلبات بسرعة كبيرة تجعل من المستحيل تتبع موقعك بدقة. أما في الأوراق المالية ذات السيولة المنخفضة، فقد يؤدي تنفيذ طلب كبير واحد إلى استنفاد مستوى سعري بالكامل، مما يجعل التقدير المبني على الحجم الإجمالي مضللاً. عندما تلاحظ أن طلباتك لا تُنفذ رغم وجود حجم كافٍ عند السعر، فهذا مؤشر على أنك في نهاية قائمة الانتظار أو أن هناك طلبات خفية (Iceberg orders) تؤثر على ترتيب التنفيذ.
لماذا يُعد ترتيبك في قائمة الانتظار الميزة التنافسية الكاملة
يستقر الأمر السلبي (passive order) في سجل الأوامر بانتظار طرف آخر ليعبر الـ spread وينفذ الصفقة معك. بموجب أولوية السعر والوقت، يرتب محرك المطابقة الأوامر المستقرة حسب السعر أولاً، ثم حسب وقت الوصول ثانياً. إذا كان هناك عشرة آلاف سهم معروضة للشراء بسعر $10.00 وأضفت أنت مئة سهم خلفها، فيجب أن تُنفذ تلك العشرة آلاف سهم أو تُلغى قبل أن يحين دورك. إذا قمت بإلغاء أمرك وإعادة إدخاله بنفس السعر، فستعود إلى نهاية الطابور.
هذا الترتيب هو ما يحدد الجدوى الاقتصادية. فإذا كنت في مقدمة الطابور، ستنفذ صفقاتك بشكل متكرر وتجني الـ spread بالإضافة إلى أي خصم على توفير السيولة، وهو موضوع رسوم وخصومات صانع ومستقبل السيولة. أما إذا كنت في نهاية الطابور، فلن تُنفذ صفقاتك إلا بعد تنفيذ جميع من سبقوك، وهو ما يحدث عند تدفق أوامر من جانب واحد وبحجم كبير. تتركز عمليات التنفيذ في نهاية الطابور في اللحظات التي تسبق تحرك السعر ليتجاوز مستواك. نفس السعر، ونفس الأمر، ولكن بنتيجة تجارية معاكسة.
ما يمكن وما لا يمكن لبيانات المستوى الثاني (Level 2) إظهاره
المستوى الأول (Level 1) هو أفضل سعر عرض وأفضل سعر طلب مع حجم كل منهما. أما المستوى الثاني، والذي يُسمى أيضاً "السوق حسب السعر"، فيضيف العمق: قائمة بمستويات الأسعار مع إجمالي الحجم المتاح عند كل مستوى. كلاهما بيانات مجمعة، ويقارن بيانات السوق للمستوى الأول مقابل المستوى الثاني بينهما بالكامل. عندما ينخفض سعر العرض عند 10.00 دولار من عشرة آلاف سهم إلى ثمانية آلاف وخمسمائة سهم، يبلغ التغذية عن اختفاء ألف وخمسمائة سهم. ولا يوضح التقرير ما إذا كانت هذه الأسهم قد نُفذت، أو ما إذا كان أمر واحد قد أُلغي أم أربعون أمراً، أو أين كان موقعها في طابور الانتظار.
عمليات التنفيذ هي النصف المرئي: يسجل شريط التداول كل صفقة مع حجمها، لذا يمكنك طرح تلك بدقة. أما الباقي فهو إلغاء، وهنا يبدأ التخمين. تحسب اللوحة أدناه الرسائل في قمة دفتر الأوامر الموحد مقابل الصفقات المسجلة على الشريط لسهم يتمتع بسيولة عالية خلال جلسة عادية، يوم الأربعاء العاشر من يونيو 2026.
استعلام SQL الدقيق وراء كل رقم
SELECT
q.et_time AS et_time,
q.quote_updates AS quote_updates,
t.trades AS trades,
round(q.quote_updates / t.trades, 1) AS updates_per_trade
FROM
(
SELECT
formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
count() AS quote_updates
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-06-10 12:00:00'
AND sip_timestamp < '2026-06-10 20:00:00'
GROUP BY et_time
) AS q
INNER JOIN
(
SELECT
formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS trade_hour,
count() AS trades
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-06-10 12:00:00'
AND sip_timestamp < '2026-06-10 20:00:00'
GROUP BY trade_hour
) AS t ON q.et_time = t.trade_hour
ORDER BY et_timeتقع ساعة 08:00 قبل جرس الافتتاح: تغيرت قمة دفتر الأوامر 0.8 مرة لكل صفقة هناك، وهي رسائل أقل من عدد الصفقات. داخل الجلسة العادية تنعكس النسبة. في ساعة 15:00 تغيرت قمة دفتر الأوامر 1.6 مرة لكل صفقة، عبر 233433 رسالة في تلك الساعة وحدها. معظم ما يحدث لمستوى السعر في سوق مفتوحة هو وصول الأوامر ومغادرتها دون أن تُنفذ أبداً، وكل حدث من هذه الأحداث يغير موقعك في الطابور بمقدار لا تذكره أي تغذية بيانات مجمعة.
##
افتراض الإلغاء الموحد، ومواضع تجميله للواقع
يفترض التحليل الأولي القياسي أن عمليات الإلغاء تتوزع بالتساوي عبر قائمة الانتظار. لنرمز لعمقك النسبي بالرمز x، وهو عدد الأسهم التي تسبقك مقسوماً على إجمالي الأسهم المستقرة عند سعرك. يحدد النموذج الموحد احتمالية أن يكون أي سهم ملغى قد استقر أمامك بمقدار x، ويُكتب كالتالي: p(x) = x. إذا كنت في منتصف قائمة انتظار تضم عشرة آلاف سهم، وشاهدت إلغاء ألف سهم دون تنفيذ أي صفقة، فإن النموذج يتقدم بك خمسمئة مركز.
تتسم قوائم الانتظار الحقيقية بالانحراف. فالأمر الذي استقر لفترة يميل إلى أن يكون ملكاً لشخص يتقبل الانتظار، بينما الأمر الذي أُضيف قبل لحظات هو على الأرجح عرض عابر يختفي خلال ثوانٍ. تتركز عمليات الإلغاء نحو مؤخرة القائمة، بالقرب منك وخلفك. ومن بين تلك الألف سهم الملغاة، ربما كان مئتان فقط أمامك، بينما منحك النموذج رصيداً بخمسمئة. كرر ذلك طوال اليوم، وستجد أن قائمة الانتظار المحاكية تتقدم أسرع من القائمة الحقيقية. يصب الخطأ في اتجاه واحد: الحصول على تنفيذات أكثر، وفي لحظات أفضل، مما تحققه الأوامر الفعلية في السوق.
كيفية استنفاد قائمة الانتظار
تؤدي عمليات الإلغاء إلى تحريك مركزك في القائمة بشكل غير مرئي. أما الصفقات فتؤدي إلى تحريكك بشكل مرئي، وذلك بحجم الصفقات المنفذة (prints).
استعلام SQL الدقيق وراء كل رقم
SELECT
multiIf(size < 100, 'under 100 shares',
size = 100, 'exactly 100 shares',
size <= 499, '101 to 499 shares',
size <= 999, '500 to 999 shares',
'1000 shares or more') AS trade_size_group,
round(100 * count() / sum(count()) OVER (), 1) AS share_of_prints_pct,
round(100 * sum(size) / sum(sum(size)) OVER (), 1) AS share_of_shares_pct
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-06-10 14:00:00'
AND sip_timestamp < '2026-06-10 20:00:00'
GROUP BY trade_size_group
ORDER BY min(size)مثلت الصفقات التي تقل عن وحدة تداول قياسية (round lot) ما نسبته 90% من إجمالي عدد الصفقات في هذه الجلسة، و42.5% من إجمالي عدد الأسهم. بينما شكلت الصفقات الكبيرة (blocks) التي تبلغ ألف سهم أو أكثر 0.2% من إجمالي الصفقات، و19.9% من إجمالي حجم التداول. تستنفد قوائم الانتظار عبر صفقات صغيرة متتالية، لذا فإن الفجوة بين المركز رقم ألفين والمركز رقم ثلاثة آلاف وخمسمئة تعادل مئات الصفقات من الانتظار. إن أي محاكي يمنحك تنفيذ أمر بعد صفقتين كبيرتين فقط يكون قد تجاوز معظم بيانات شريط التداول (tape).
الطلب الذي لا يمكنك رؤيته
تقتصر بيانات عمق السوق على عدد معين من المستويات. إذا كنت تتلقى عشرة مستويات سعرية وكان طلبك يقع عند المستوى الحادي عشر، فإن طلبك يخرج عن نطاق البيانات المرئية: فلا يمكنك رؤية حجم الطلبات التي تسبقه، ولا الطلبات التي تصطف خلفه. في هذه الحالة، أنت تخمن الرقم بدلاً من تقديره. هذا الموقف شائع وليس استثنائياً، فالطلب الذي لا يلاحق حركة السوق يبتعد بسرعة عن أفضل سعر متاح.
استعلام SQL الدقيق وراء كل رقم
SELECT
formatDateTime(toStartOfFifteenMinutes(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
round(avg(toFloat64(bid_price)), 2) AS best_bid,
uniqExact(bid_price) AS bid_levels_touched
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-06-10 14:00:00'
AND sip_timestamp < '2026-06-10 20:00:00'
AND bid_price > 0
GROUP BY et_time
ORDER BY et_timeفي فئة 10:00، بلغ متوسط أفضل سعر شراء 290.29 دولار، وشهد السهم 187 سعراً مختلفاً خلال خمس عشرة دقيقة. كل سعر من هذه الأسعار يمثل مستوى منفصلاً في سهم يتم تداوله بالسنتات، لذا فإن عرض المستويات العشرة يغطي عشرة سنتات فقط من سجل الأوامر. إن الطلب الذي يُترك عند سعر واحد خلال جلسة كهذه قد يقضي فترات طويلة تحت أعمق مستوى يمكن لصاحبه رؤيته.
حيث تكتسب أولوية الانتظار أعلى قيمة لها
تكتسب أولوية الانتظار أعلى قيمة لها في الحالات التي يستحيل فيها تحسين السعر. فعندما يكون السهم محصوراً في نطاق فرق سعري (spread) يبلغ سنتاً واحداً، لا يتبقى مجال لتجاوز الطابور عبر تقديم سعر أفضل؛ إذ يصطف الجميع عند نفس مستوى السعر، ويصبح وقت الوصول هو العامل الحاسم. أما عندما يكون الفرق السعري واسعاً بعدة سنتات، يمكن للمتداول أن يسبق الطابور بأكمله عبر تقديم زيادة بسنت واحد، وهنا يتفوق قرار السعر على أولوية الانتظار.
استعلام SQL الدقيق وراء كل رقم
SELECT
ticker AS symbol,
round(avg(toFloat64(ask_price - bid_price)) * 100, 2) AS avg_spread_cents,
round(100 * countIf(round(toFloat64(ask_price - bid_price) * 100) <= 1) / count(), 1) AS one_cent_pct
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'KO', 'NVDA', 'MSFT', 'BKNG')
AND sip_timestamp >= '2026-06-10 15:00:00'
AND sip_timestamp < '2026-06-10 19:00:00'
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
ORDER BY avg_spread_centsخلال أربع ساعات من منتصف جلسة التداول نفسها، بلغ متوسط الفرق السعري لأضيق الأسهم الستة، وهو KO، 1.18 سنتاً، وأظهر فرقاً سعرياً مقداره سنت واحد في 82.5% من تحديثاته. أما السهم الأوسع نطاقاً، وهو MSFT، فقد بلغ متوسط فرقه السعري 8.46 سنتاً، مع فرق سعري مقداره سنت واحد في 1.1% من التحديثات. إن نموذج طابور الانتظار الذي تمت معايرته بناءً على السهم الأول لا يقدم أي معلومات مفيدة عن السهم الثاني. وتُشكل الأوامر التي تستقر بين أسعار العرض والطلب، والتي تناولناها في أوامر الربط عند نقطة المنتصف، طابورها الخاص وفق القواعد ذاتها.
أربعة تشخيصات لاختباراتك التاريخية (Backtest)
- قارن معدل التنفيذ المحاكى بمعدل التنفيذ الفعلي لنفس الأصول خلال نفس ساعات التداول. إذا كان المحاكي ينفذ سبعين بالمئة من الأوامر التي نُفذت فعلياً بنسبة أربعين بالمئة فقط، فهو يعكس افتراضاتك أنت لا واقع السوق.
- قسّم التنفيذات المحاكة إلى مجموعتين: تلك التي استمر عندها مستوى السعر لاحقاً، وتلك التي حدثت فقط عند اختراق المستوى بالكامل. إذا كانت المجموعة الثانية هي الأكبر، فهذا يعني أن المحاكي يمنحك تنفيذات لحظة تجاوز السعر لأمرك.
- حدد نطاق الافتراض. أعد تشغيل الاختبار مع افتراض أن كل إلغاء للأوامر يتم من مقدمة قائمة الانتظار، ثم أعده بافتراض أن كل إلغاء يتم من نهايتها. هذان التشغيلان يمثلان هامش الخطأ الحقيقي لأي احتمالية p(x) تختارها.
- قس مدى تكرار بقاء سعرك خارج نطاق العمق الذي يوفره مزود البيانات الخاص بك. أي تنفيذات في ذلك النطاق هي تنفيذات وهمية. يشرح تحيز الاستباق في الاختبارات التاريخية نفس هذا القصور من زاوية أخرى: وهو نتيجة تعتمد على معلومات لم تكن متاحة للاستراتيجية في ذلك الوقت.
متى تتوقف عن النمذجة وتشتري بيانات الأوامر
تحمل بيانات السوق حسب الأمر (MBO) رسالة لكل أمر فردي، بدءاً من لحظة وصوله وحتى لحظة تنفيذه أو إلغائه، حيث يتم وسم كل أمر بمعرفه الخاص. عند إعادة تشغيل هذا التدفق، يصبح ترتيبك في قائمة الانتظار عدداً دقيقاً بدلاً من كونه تقديراً، بمجرد افتراض تأخير واقعي لوصول أمرك الخاص إلى منصة التداول. تكلفتها أعلى من بيانات عمق السوق، كما أن تخزينها يتطلب مساحة أكبر بكثير.
التشخيص الثالث هو قاعدة القرار. إذا كانت كلتا الحالتين المتطرفتين (الأفضل والأسوأ) تجعلان الاستراتيجية مربحة، فإن افتراضاً متوسطاً سيكون كافياً. أما إذا كانت الاستراتيجية تحقق ربحاً في ظل حالة وتخسر في الأخرى، فإن نموذج قائمة الانتظار هو جوهر الاستراتيجية، وشراء تدفق البيانات حسب الأمر يكون أقل تكلفة من الدفاع عن تخمين.
تغيّر منصات التداول التناسبية (Pro-rata) طبيعة المسألة
تقوم بعض أسواق العقود الآجلة والخيارات بتقسيم الطلبات الواردة على الطلبات القائمة عند سعر معين بناءً على حجمها، بدلاً من الاعتماد على أسبقية الوصول. في هذه الأسواق، لا يكتسي عامل الوقت أهمية تذكر، ويصبح الحجم المعروض هو الأداة المؤثرة؛ إذ إن مضاعفة حجم طلبك تؤدي تقريباً إلى مضاعفة حصتك من كل تنفيذ. وينتقل نمط الإخفاق ليصبح متمثلاً في عرض حجم أكبر مما ترغب في امتلاكه فعلياً. يتناول الرابط لماذا لا يتم تنفيذ طلبات الخيارات كيف يبدو هذا الأمر من منظور متداولي التجزئة في سجل أوامر الخيارات.
الأسئلة الشائعة
ما هو ترتيب الانتظار (Queue Position) في التداول؟
ترتيب الانتظار هو مركزك بين الأوامر المعلقة عند نفس السعر وفي نفس منصة التداول. في سجل الأوامر الذي يعتمد أولوية السعر والوقت، يجب أن يتم تنفيذ الأوامر التي تسبقك أو إلغاؤها قبل أن يحين دور أمرك في التنفيذ.
هل يمكنك حساب ترتيب الانتظار من بيانات المستوى الثاني (Level 2)؟
ليس بدقة. تعرض بيانات المستوى الثاني إجمالي الحجم عند كل مستوى سعري دون تحديد هوية الأوامر؛ لذا عندما يختفي حجم معين دون ظهور تنفيذ (print)، لا يمكنك معرفة ما إذا كانت تلك الأسهم تسبقك في الطابور أم تليك. يمكنك تقدير العدد ووضع نطاق لهذا التقدير، لكن الرقم الدقيق يتطلب بيانات على مستوى كل أمر على حدة.
لماذا تكون معدلات التنفيذ في الاختبارات التاريخية (Backtesting) مرتفعة عادةً؟
الافتراض الشائع هو توزيع الإلغاءات بالتساوي عبر طابور الانتظار، بينما تتركز الإلغاءات الحقيقية في نهاية الطابور. النموذج الذي يفترض توزيعاً متساوياً يدفع أمرك المحاكى للأمام بشكل أسرع مما يتحرك الطابور في الواقع، مما يظهر عمليات تنفيذ أكثر وأفضل مما يحققه التداول الفعلي.
ما هي بيانات MBO؟
بيانات السوق حسب الأمر (Market-by-order) تمنح كل أمر فردي رسائله الخاصة، بدءاً من وصوله وحتى تنفيذه أو إلغائه. هي البيانات التي يمكنك من خلالها حساب مكانك في الطابور بدلاً من نمذجته، وهو أمر بالغ الأهمية للاستراتيجيات التي تعمل عند فارق سعري (spread) يبلغ تكة واحدة.
هل يهم ترتيب الانتظار في منصات التداول التي تعتمد التوزيع النسبي (Pro-rata)؟
بدرجة أقل. يقوم التوزيع النسبي بتقسيم الأمر الوارد على الأوامر المعلقة بناءً على حجمها، لذا فإن الوصول أولاً لا يمنحك ميزة كبيرة، بل الحجم المعروض هو الذي يقوم بالعمل. التحقق من نموذج التوزيع الذي تستخدمه المنصة يسبق أي محاولة لنمذجة ترتيب الانتظار.
تحمل كل لوحة هنا استعلام SQL الذي أنتجها. قم بتغيير الرمز (ticker)، وانقل التاريخ، واطرح نفس السؤال حول الأسماء التي تتداولها على محطة Strasmore.