amBrain
FinTechSep 24, 2026قراءة 11 دقيقة

بطء تنفيذ الأوامر في شركة تداول خاص صغيرة: أين يذهب الوقت ومن يستطيع إصلاحه

تنفيذ الأوامرالتداول الخاصقياس زمن الاستجابةمن يستطيع إصلاحه
تعذّر تحميل الصورة

بطء تنفيذ الأوامر في شركة تداول خاص صغيرة: قِس زمن كل أمر لتجد التأخير، ثم اتصل بشركة هندسية أو بمزوّد استضافة أو بالوسيط.

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

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

ماذا تعني عبارة «تنفيذ أوامرنا بطيء جدًا»؟

قد تعني هذه الشكوى أربع مشكلات، ولكل منها مسؤول مختلف.

  • كل الأوامر بطيئة. التأخير يكاد يكون نفسه في صباح هادئ وعند افتتاح السوق. وهذا يشير إلى كلفة يدفعها كل أمر، كالمسافة، أو طريقة اتصالك بالوسيط، أو عمل بطيء تؤديه برمجياتك قبل خروج كل أمر
  • الأوامر سريعة إلى أن يزدحم السوق. فعند الافتتاح أو مع الأخبار يقفز التأخير. الأوامر تنتظر في طابور في مكان ما، خلف برنامج لا يستطيع المواكبة، أو حدّ للرسائل، أو جهاز مشغول بعمل آخر
  • الأوامر تصل في وقتها لكنها تُنفَّذ متأخرة. فالأمر المحدد السعر يبقى راكدًا في دفتر الأوامر إلى أن يتداول أحدٌ مقابله، وفي السوق السريعة يبتعد السعر. تُظهر الطوابع الزمنية ما إذا كان الأمر قد تأخر. ولا تستطيع أن تُظهر أي سعر كان متاحًا
  • الشاشة متأخرة. إذا تأخرت الأسعار على شاشة التداول، نقر المتداولون متأخرين ولاموا التنفيذ. وتلك مشكلة بيانات سوق، تتناولها مقالة منفصلة في هذه المدونة

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

أين تذهب المللي ثواني بين نظامنا والبورصة؟

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

  • جانبك. يتخذ المتداول أو الاستراتيجية القرار، ويُبنى الأمر، وتجري فحوصك، ويُرسَل الأمر. وتأتي التأخيرات من العمل المنجز قبل الإرسال، أو من وقفات البرنامج، أو إعدادات الشبكة، أو جهاز مشغول. ويستطيع مطوّروك أو شركة هندسية تغيير هذا الجزء
  • الشبكة. ينتقل الأمر من خادمك إلى نقطة دخول الوسيط. والتأخير هنا تضيفه المسافة وتوجيه الإنترنت والقفزات الإضافية مثل VPN. ويستطيع مزوّد استضافة أو استضافة مشتركة، أو مهندس شبكات، تقصيره
  • الوسيط. تستقبل بوابته الأمر، وتُجري فحوصه، وتوجّهه إلى البورصة. وتأتي التأخيرات من أنظمة الوسيط نفسه ومن فحوصه الإلزامية. والوسيط وحده يستطيع تغييرها؛ أما أنت فتختار طريقة اتصالك وأي وسيط تستخدم
  • البورصة. يقبل محرك المطابقة الأمر ويعيد الإقرار. والوقت الذي يذهب هنا قليل: تذكر Nasdaq أن الرحلة ذهابًا وإيابًا من الأمر إلى الإقرار تقل عن 50 ميكروثانية على شبكة الاستضافة المشتركة 10G عالية السرعة لديها. ولا أحد ممن يمكنك التعاقد معهم يغيّر هذا الجزء؛ كل ما تستطيعه هو الاقتراب منه

في الولايات المتحدة، فحوص الوسيط ليست اختيارية. فالقاعدة 15c3-5 الصادرة عن SEC تُلزم الوسيط الذي لديه وصول إلى السوق بأن «يمنع إدخال الأوامر التي تتجاوز حدود الائتمان أو رأس المال المناسبة المحددة مسبقًا»، وبأن يرفض الأوامر «التي تتجاوز معايير السعر أو الحجم المناسبة». والقاعدة نفسها تضع هذه الضوابط «تحت السيطرة المباشرة والحصرية للوسيط أو المتعامل». يمكنك أن تسأل الوسيط كم تستغرق فحوصه، لكن القاعدة لا تسمح له بإيقافها.

كيف نعرف أين يضيع الوقت؟

سجّل أربعة طوابع زمنية لكل أمر:

  • القرار: اختار المتداول أو الاستراتيجية إرسال الأمر
  • الإرسال: غادر الأمر خادمك
  • الإقرار: وصل إلى خادمك تأكيد الوسيط بأنه قبِل الأمر
  • التنفيذ: وصل رد التنفيذ

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

قِس رقمًا إضافيًا: الرحلة الشبكية ذهابًا وإيابًا من خادمك إلى نقطة دخول الوسيط. فهذا الرقم يخبرك بكم من الفاصل بين الإرسال والإقرار يعود إلى الشبكة.

FIX معيار رسائل للتداول تتولى صيانته FIX Trading Community. فإن كنت تتصل عبره، حملت رسائل الوسيط طابعين زمنيين: أحدهما لوقت إرسال الرسالة، والآخر لوقت وقوع الحدث الذي تبلّغ عنه. وتسمّي مواصفة FIX هذين الحقلين SendingTime وTransactTime، ويستطيع الوسيط أن يخبرك بساعة مَن تضبط كلًّا منهما. ووضعهما إلى جانب طوابعك الزمنية يُظهر أي جزء من الرحلة ذهابًا وإيابًا جرى في جانب مَن.

مقارنة طوابعك الزمنية بطوابع الوسيط لا تنفع إلا إذا كانت الساعتان مضبوطتين. فقاعدة FINRA رقم 6820 تُلزم الوسطاء المتعاملين (broker-dealers) الذين يرفعون تقاريرهم إلى Consolidated Audit Trail بإبقاء ساعات أنظمتهم ضمن 50 مللي ثانية من الساعة الذرية لدى NIST. وبموجب قواعد الاتحاد الأوروبي، على عضو منصة التداول الذي يمارس التداول الخوارزمي عالي التردد أن يُبقي ساعاته ضمن 100 ميكروثانية من UTC. والساعة المسموح لها بأن تنحرف 50 مللي ثانية لا تستطيع تحديد موضع تأخير من بضع مللي ثوانٍ.

الإرسال والإقرار يُقرآن كلاهما من ساعتك أنت، فالزمن بينهما لا يحتاج إلى مزامنة. ابدأ من هناك. إن كانت تلك الرحلة ذهابًا وإيابًا قصيرة والأوامر ما زالت تبدو بطيئة، فانظر في برمجياتك. وإن كانت طويلة، فتحقق أولًا من أن برنامجك لم يكن متوقفًا مؤقتًا أو مشغولًا حين وصل الرد؛ فإن لم يكن كذلك، فالوقت يذهب خارج برمجياتك.

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

ما الذي قد يبطئ التنفيذ في شركة تداول خاص صغيرة؟

افحص هذه الأسباب الستة أولًا.

  • واجهة API لدى الوسيط تمر عبر برنامج عليك تشغيله. فـ Interactive Brokers، مثلًا، تصف واجهة TWS API لديها بأنها قائمة على «الاتصال بـ Trader Workstation أو IB Gateway»، فيمر كل أمر أولًا عبر أحد هذين البرنامجين. ويضع توثيقها حدًا افتراضيًا قدره «50 طلبًا في الثانية» لكل اتصال عميل، ويحذّر من أنه في بعض الحالات، فوق هذا المعدل، «قد تُوضع بعض الأوامر في طابور وتتأخر». ولهذه الحالة تقترح Interactive Brokers الانتقال إلى واجهة FIX API لديها. فإن كان هذا هو عنق الزجاجة لديك، فاسأل الوسيط كيف يمكنك الاتصال بطريقة أخرى
  • الخادم بعيد عن وجهة الأوامر. فجهاز في المكتب أو منطقة سحابية بعيدة يدفع ثمن المسافة مرتين في كل أمر، ذهابًا وإيابًا، ولا يزيلها أي تغيير في الكود. ولأقصر مسافة، تتيح Nasdaq لعملائها أن «يضعوا خوادمهم ومعداتهم في موقع مشترك داخل مركز بيانات Nasdaq». وقبل أن تدفع مقابل الاستضافة المشتركة، قِس الرحلة الشبكية ذهابًا وإيابًا من خادمك إلى نقطة دخول الوسيط
  • عمل بطيء يجري قبل إرسال الأمر. فكتابة الأمر في قاعدة بيانات، أو انتظار وصول سطر السجل إلى القرص، أو سؤال خدمة أخرى عمّا إذا كانت الصفقة مسموحة، كل ذلك يضيف انتظارًا إلى كل أمر. وحين تكون قاعدة البيانات أو القرص مشغولًا، يطول الانتظار. احتفظ بما يحتاجه الأمر في الذاكرة، واكتب السجلات بعد خروج الأمر
  • إعدادات الشبكة تحتجز الرسائل الصغيرة. والأمر رسالة صغيرة. ويقول دليل Linux إنه ما لم يُفعَّل خيار socket يُسمّى TCP_NODELAY، فإن البيانات الصادرة تُخزَّن مؤقتًا «حتى يتجمع منها قدر كافٍ للإرسال». ويستطيع مطوّروك التحقق مما إذا كان مفعّلًا
  • البرنامج يتوقف مؤقتًا. بعض جامعات القمامة توقف البرنامج كله أثناء تنظيف الذاكرة. وحتى جامع القمامة في Go، الذي يؤدي معظم عمله والبرنامج يعمل، لديه «وقفات stop-the-world قصيرة»، ويذكرها دليل جامع القمامة في Go بين المصادر المحتملة لزمن الاستجابة. فإن جاءت وقفة بينما يخرج أمر، خرج الأمر متأخرًا. وللرسوم البيانية أو الاختبارات الرجعية أو التقارير التي تعمل على الجهاز نفسه أثر مشابه، لأن الأمر ينتظر المعالج
  • مسار الوسيط نفسه بطيء. فبوابته وفحوصه وتوجيهه تقع في مسار كل أمر، ولا تستطيع أن ترى ما بداخلها. يمكنك أن تسأل أين نقطة دخوله، وأي أنواع الاتصال يقدّم، وأي حدود للرسائل تنطبق على حسابك، وهل سيشاركك طوابعه الزمنية الخاصة بأوامرك

كيف يُصلَح كل سبب، وما حجم العمل؟

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

أصلح السبب المؤكَّد الأرخص أولًا، واترك إعادة البناء إلى النهاية. لا تُعِد كتابة النظام ولا تغيّر الوسيط قبل أن يقيس أحدٌ زمن أي أمر، فقد يكون التأخير في مكان آخر.

من يستطيع مساعدتنا في إصلاح بطء تنفيذ الأوامر؟

من يستطيع المساعدة يتوقف على المكان الذي يذهب إليه الوقت.

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

أيًّا كان من تستعين به، اطرح عليه أربعة أسئلة أولًا:

  • هل ستقيسون قبل أن تقترحوا إصلاحًا، وما الذي ستضعون عليه طوابع زمنية بالضبط؟
  • هل سيفصل التقرير بين جانبنا والشبكة والوسيط، ويُظهر أبطأ الأوامر لا المتوسط وحده؟
  • لكل رقم تذكرونه: عند أي مئين، وتحت أي حمل، وفي أي تاريخ؟
  • إن تبيّن أن التأخير لدى الوسيط، فماذا ستقولون لنا؟

إن ظلت الإجابة عن السؤال الأخير إعادة بناء نظامك، فواصل البحث.

أين موقع amBrain من ذلك؟

amBrain شركة هندسة برمجيات في يريفان، أرمينيا، تبني منصات تداول منخفضة زمن الاستجابة ومحركات مطابقة وأنظمة مزايدة فورية بـ Rust. وتشخّص amBrain الأنظمة البطيئة في التداول والمراهنات وAdTech: تُقاس المنصة أثناء تشغيلها من طرف إلى طرف، ويسمّي التقرير أين يذهب الوقت.

تبني amBrain بنية تحتية للتداول الخوارزمي: تنفيذ الأوامر، وبيانات السوق، وضوابط المخاطر قبل التداول. ويشمل عملها في التداول تطوير طرفيات التداول، وأنظمة إدارة الأوامر، وتكامل البورصات عبر بروتوكول FIX. وتتسلّم amBrain مشاريع تعثّرت مع فريق آخر وتوصلها إلى بيئة الإنتاج. ثلاث صيغ: تنفيذ كامل، أو فريق مخصّص، أو مهندسون مدمجون في فريقك.

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

أسئلة شائعة

  • هل تجعل إعادة كتابة نظامنا بـ Rust التنفيذ أسرع؟ فقط إن كان الوقت يضيع داخل برمجياتك، وفقط في الجزء الذي يمر به الأمر. يقدّم Rust ضمانات أمان الذاكرة «دون الحاجة إلى جامع قمامة»، وهذا يُخرج وقفات جمع القمامة من بين الأسباب. لكنه لا يفعل شيئًا حيال جهاز مشغول أو المسافة أو الوسيط
  • هل يمكننا القياس دون تغيير الكود لدينا؟ نعم، إذا كان نظامك يسجّل بالفعل الأوامر الصادرة والتأكيدات الواردة مع أوقاتها: فالرحلة ذهابًا وإيابًا من الإرسال إلى الإقرار موجودة في تلك السجلات
  • هل يمنحنا التنفيذ الأسرع أسعارًا أفضل؟ لا أحد يستطيع أن يعد بذلك. فالسرعة تقصّر الزمن بين القرار ووصول الأمر؛ أما السعر الذي تحصل عليه فيتوقف أيضًا على السيولة، ونوع الأمر، وما يفعله السوق في هذه الأثناء

هل لديك تصميم مشابه على الطاولة؟

أحضر بنيتك الحالية وسيناريو الفشل الذي يقلقك، وسنراجعه معًا خلال نصف ساعة.