طلب إلغاء أمر التداول قبل تأكيده يحتاج قراءة الحالة والكمية معًا. نتتبع سجلًا مؤلفًا لأمر من عشر وحدات، دون اتصال بمنصة أو إرسال طلب حقيقي.
الخلاصة السريعة
استلام طلب الإلغاء ليس النتيجة النهائية؛ في سجلنا يتغير المنفذ أثناء الانتظار، ثم يغلق المتبقي بعد وصول التأكيد المعطى.
- حالة قيد الإلغاء ليست إلغاءً مؤكدًا، وفق FIX. [1] أسماء المثال لا توحد واجهات الوسطاء.
- البداية أمر كميته 10، نُفذت منه 4 وبقيت 6 فعالة. نسجل استلام طلب الإلغاء دون اختراع تنفيذ أو تغيير الكمية لمجرد وصول الطلب.
- يضيف سجلنا تنفيذ وحدتين أثناء الانتظار، فيصبح المنفذ التراكمي 6 والمتبقي الفعال 4، مع استمرار عنوان قيد الإلغاء في هذه المرحلة المعطاة.
- عند تأكيد إلغاء المتبقي في القصة يبقى المنفذ 6، ويصير الفعال صفرًا، وتخرج 4 غير منفذة من الأمر. ميزان التاريخ 10 يساوي 6 منفذة و4 ملغاة وصفر فعال؛ الصفر لا يمحو التنفيذ.
- إذا غابت نهاية السجل، فلا نستنتج الكمية الأخيرة من لقطة الطلب الأولى. يمكن لفرعين مؤلفين مشاركة البداية ثم إضافة صفر أو وحدتين أو ست وحدات؛ هذه احتمالات حسابية وليست توقعات تنفيذ.
- احفظ هوية الأمر وتعريف الأعمدة وتسلسل السجل والتأكيد الذي تملكه. لا تستخرج سعرًا أو تحرير أموال أو موعد تسوية من هذه الكميات؛ المثال ليس سجلًا لحساب فعلي أو تنفيذًا لبروتوكول.
افصل طلب التغيير عن تأكيد النتيجة
يصف FIX قيد الإلغاء بأنه طلب إلغاء مستلم لا يثبت إلغاء الأمر، ويميزه من الحالة الملغاة. [1]
نستخدم هذا التمييز لبناء سجل تعليمي صغير. كل مرحلة فيه تخبرنا بما أضفناه إلى القصة، لا بما نتوقع أنه سيحدث بعد الضغط على زر. عبارة «استلم الطلب» معلومة عن خطوة معالجة، بينما عبارة «وصل تأكيد إلغاء المتبقي» معلومة أخرى نعطيها لاحقًا. وإذا انتقلت من الأولى إلى الثانية دون أن تظهر في المدخلات، فقد أضفت نهاية من عندك بدل قراءة ما يثبته السجل الذي أمامك.
سنستعمل ثلاث خانات للكمية: عدد الأمر الأصلي، والمنفذ التراكمي، والمتبقي الفعال في المرحلة التي نصفها. ونضيف عند إغلاق المثال مقدارًا تاريخيًا للجزء غير المنفذ الذي أُلغي. هذه أسماء توضيحية لتنظيم الأعداد، وليست مخططًا برمجيًا كاملًا أو توحيدًا لأسماء أعمدة جميع الوسطاء. نحتاج هذا الوضوح حتى لا تعني كلمة «الباقي» مرة كمية يمكن أن تدخل في متابعة الأمر، ومرة فرقًا حسابيًا بين الأصل والمنفذ بعد توقف ذلك الأمر.
ولا نعطي في التمرين سعرًا أو عمولة أو عملة أو رصيدًا نقديًا أو نوع ورقة مالية حقيقية. لذلك لا يمكن تحويل الكميات إلى مصروف أو ربح أو مبلغ عاد إلى الحساب. غرضنا مراجعة معنى الحالة وتغير الأعداد في مسار معلوم، لا اقتراح تنفيذ أو إلغاء أو إرسال أمر بديل. وإذا أردت مطابقة حالة فعلية، فستحتاج تعريفات سجل الجهة التي أصدرته وبياناتها، وليس فقط تشابه عنوان عربي مع عنوان استعملناه هنا للتوضيح.
ثبّت لقطة البداية قبل طلب الإلغاء
نعطي الأمر الأصلي عشر وحدات. عند لقطة البداية في القصة تكون أربع وحدات قد نُفذت، وست ما تزال فعالة. يمكن مراجعة المجموع بجمع الأربع والست لإعادة العشر. احتفظ باسم لكل مقدار، ولا تجعل العشر كمية منفذة لأنها كمية الأمر المكتوبة أعلى البطاقة. كذلك لا تجعل الست عددًا نعرف أنه سيلغى لاحقًا؛ هي المتبقي في هذه اللقطة تحديدًا، ولم نصل بعد إلى نتيجة طلب الإلغاء.
في المرحلة التالية نضيف معلومة استلام طلب الإلغاء، ونبقي المنفذ أربعًا والمتبقي الفعال ستًا. لم نعط في هذه الخطوة تنفيذًا جديدًا أو تأكيد إلغاء، ولذلك لا يتغير عدنا فيهما. هذه طريقة لعرض المدخلات التي اخترناها، وليست دعوى بأن كل واجهة تظهر لقطة مطابقة أو في الوقت نفسه. يمكن للقارئ أن يرسم خطًا بين المرحلتين ويكتب فوقه «استلام طلب» كي يتذكر ما تغير فعلًا وما ظل كما هو في المسألة.
ومن الخطأ في هذا الدفتر تحويل الست فورًا إلى جزء ملغى مكتمل. فعل ذلك سيجعلنا نعلن إغلاق الكمية قبل المرحلة التي أعطيناها لهذا الغرض. وقد يبدو الجدول متسقًا ظاهريًا إذا كتبت أربعًا منفذة وستًا ملغاة، لأن مجموعهما عشر، لكن التطابق العددي وحده لا يثبت صحة التوقيت. نحتاج إلى مطابقة معنى كل خانة مع الحدث الذي وصل إليه السجل، لا إلى أي توزيع أعداد يجمع إلى إجمالي الأمر.
لهذا نحتفظ بلقطة البداية ولقطة استلام الطلب منفصلتين، حتى لو تساوت أرقامهما. الفرق بينهما معلومة الحالة، وليس تغيرًا في عدد الوحدات. ولو وصلت إليك صورة واحدة لا تبين المرحلة، فالسؤال الأول هو ما الذي تؤكده: هل هي تسجيل نية، أم استلام طلب، أم نتيجة نهائية معطاة؟ لا نستنتج الجواب من أن الأرقام تبدو مألوفة، ولا نحمل عبارة مختصرة على معنى لم توضحه البيانات التي نقرأها.
تتبّع تنفيذًا إضافيًا مع بقاء عنوان الانتظار
يفصل تقرير FIX حالة الأمر عن غرض الرسالة، وتتحكم أولوية الحالات في اختيار الحالة المعروضة عند اجتماعها. [1]
نضيف الآن إلى قصتنا تنفيذ وحدتين أثناء مرحلة الانتظار. المنفذ التراكمي يصبح أربعًا زائد اثنتين، أي ستًا، والمتبقي الفعال يصبح ستًا ناقص اثنتين، أي أربعًا. لا نستعمل عبارة «نُفذت وحدتان» بدل الست في خانة التراكمي؛ الاثنتان مقدار الحدث الجديد، والست نتيجة جمعه إلى ما سبق. وإذا اختلط العمودان، فقد يبدو أن المنفذ انخفض من أربع إلى اثنتين رغم أن الحدث الذي أضفناه زيادة في التنفيذ.
ونعطي هذه المرحلة عنوان قيد الإلغاء نفسه. إذن يمكن للقارئ في مثالنا رؤية العنوان نفسه فوق صفين مختلفين في الكمية: صف فيه أربع منفذة وست فعالة، وصف لاحق فيه ست منفذة وأربع فعالة. لهذا لا يكفي نسخ عنوان الحالة وحده ليجيب عن مقدار ما نُفذ في المرحلة الأخيرة. نحتاج إلى قراءة الأعداد مع تسلسلها، مع بقاء التسميات شرحًا لسجل مؤلف لا صورة نقلناها من حساب وسيط.
المراجعة الحسابية لها مساران مستقلان: الجمع التراكمي للأحداث يعطي أربعًا ثم ستًا، وطرح المنفذ من أصل العشر أثناء هذه المرحلة النشطة يعطي أربعًا متبقية. يمكن أن يلتقيا في النتيجة نفسها فيكشفا خطأ نقل رقم. لكن نجاح الحساب لا يثبت أن حدثًا وقع فعلًا؛ إثبات الوقوع في قصة حسابية جاء من المدخل الذي أعطيناه، وفي حساب حقيقي يحتاج إلى بياناته. لم نرصد رسائل شبكة أو نختبر ترتيبها أو ننشئ عميل تداول.
اقرأ الصفر بعد التأكيد بمعناه الصحيح
يصف FIX الأمر الملغى بأنه قد يكون مع تنفيذات أو دونها، ويذكر حالات غير نشطة يمكن أن تصبح فيها الكمية المتبقية صفرًا. [1]
نعطي في المرحلة الرابعة تأكيد إلغاء الأربع التي بقيت غير منفذة في القصة. يبقى المنفذ التراكمي ست وحدات؛ لم نضف في هذه المرحلة تنفيذًا أو إلغاء تنفيذ سابق. ويصير المتبقي الفعال صفرًا لأننا أغلقنا الجزء الباقي في تعريف مسارنا. أما الفرق بين العشر والست، وهو أربع، فيحفظ بوصفه جزءًا تاريخيًا غير منفذ أُلغي، لا كمية فعالة ما زالت تنتظر ضمن الأمر الذي أغلقناه.
يمكن كتابة ميزان القصة بعد التأكيد: عشر أصلية تساوي ستًا منفذة وأربعًا ملغاة وصفرًا فعالًا. أما جمع الست المنفذة مع الصفر الفعال وحدهما فلا يعيد العشر، لأنه أسقط من الوصف الجزء الذي خرج غير منفذ. لا نصلح هذا الاختصار باختراع تنفيذ أربع وحدات أخرى، ولا بإعادة كتابة أصل الأمر ستًا. نحفظ معنى الإغلاق بدل إجبار كل مرحلة على معادلة تخص المرحلة النشطة التي سبقتها.
وهنا يظهر الفرق بين إلغاء الأمر المتبقي وإلغاء صفقة منفذة. مسارنا أعطى إغلاقًا للأربع غير المنفذة، ولم يعط حدثًا يعكس الوحدات الست السابقة. لا ننقل إليه عملية مختلفة لمجرد أن كلمة إلغاء مشتركة في اسمها. إذا كان موضوعك تصحيح تنفيذ أو إلغاءه، فذلك يحتاج سجلًا ومدخلات من ذلك النوع. أما في هذا التمرين فالست باقية في عمودها، والجزء الذي تغير وضعه هو ما حددناه صراحة بأنه غير منفذ.

لقطة غير مكتملة لا تحدد كيف انتهى المسار
احجب الآن المرحلتين الأخيرتين، واترك للقارئ أصل الأمر عشرًا والمنفذ أربعًا، مع معلومة استلام طلب الإلغاء. هل يمكن استنتاج المنفذ النهائي؟ لا تعطي هذه المدخلات وحدها رقمًا واحدًا لنهاية القصة. لنبن فروعًا مستقلة لتوضيح نقص المعلومة، دون نسب احتمالات أو مواعيد أو توقع ما سيحدث في منصة. كل فرع سيضيف مدخلًا لم يكن موجودًا في اللقطة المحجوبة، ومن الإضافة يأتي اختلاف النتيجة.
في فرع أول لا نضيف أي تنفيذ بعد الأربع، ثم نعطي تأكيد إلغاء الست المتبقية. المنفذ ينتهي عند أربع والجزء غير المنفذ الملغى ست. وفي فرع ثان نعيد المسار الأساسي: نضيف وحدتين ثم نغلق الأربع الباقية، فتنتهي الكمية المنفذة عند ست. كلا الفرعين يشارك الآخر لقطة البداية نفسها، لكنهما لا يصفان التاريخ اللاحق نفسه. لذلك لا نختار أحد الجوابين من معلومة الاستلام وحدها.
وفي فرع ثالث مؤلف نضيف تنفيذ الست الباقية كلها، فيصبح المنفذ عشرًا والمتبقي صفرًا. لا نعطي في هذا الفرع تأكيد إلغاء ناجحًا أو تفسيرًا لرد نظام؛ أعطينا فقط تنفيذًا يكمل الكمية. الصفر في نهاية هذا الفرع جاء من اكتمال التنفيذ، بينما الصفر في مسارنا الأساسي جاء بعد إغلاق غير المنفذ مع بقاء ست منفذة. تشابه رقم واحد لا يعني تشابه السبب أو التاريخ الذي أنتجه.
يمكنك استعمال الفروع لاختبار صياغة استنتاجك من سجل ناقص. إن قلت «المنفذ النهائي أربع» من لقطة الاستلام وحدها، فسيكشف الفرع الثاني أنك أضفت افتراضًا عن غياب تنفيذ لاحق. وإن قلت «كل العشر أُلغيت»، فستتجاهل الأربع المنفذة الموجودة أصلًا في المدخل. الجواب الدقيق في حالة الحجب هو أن النهاية تحتاج إلى بقية السجل، لا أن نضع صفرًا أو رقمًا مألوفًا مكان معلومة لم تقدم بعد.
احتفظ بالسجل الذي يجيب عن سؤالك
في ورقة المراجعة اكتب هوية الأمر في المثال وكميته الأصلية، ثم المراحل المعطاة والمنفذ الجديد والمنفذ التراكمي والمتبقي الفعال، وأضف مقدار غير المنفذ الذي أُلغي عندما تظهر تلك المعلومة. لا تسمِّ كل الأعمدة «كمية»، ولا تجمع لقطة من أمر مع لقطة من أمر آخر لأنهما يتشابهان في العدد. الربط بين الهوية والمرحلة يسبق محاولة تفسير فرق عددي أو عنوان حالة قصير.
إذا وصل إليك وصف يقول «ملغى» دون أعداد، فاطلب ما يوضح الكمية المنفذة والجزء المقصود بالإلغاء في السجل المعني. وإذا كان لديك عدد منفذ دون نتيجة الطلب، فلا تحول العدد إلى تأكيد لنتيجة لم تعرضها البيانات. هذه أسئلة لقراءة المعلومات، وليست خطوات تشغيل واجهة أو تعليمات لفتح صفقة بديلة. ولم نضع في المقال وقتًا بالثواني أو ضمانًا بمدة المعالجة يمكن تطبيقه على حساب أو سوق بعينه.
كما لا تستنتج من صفر المتبقي أن الرصيد النقدي عاد فورًا أو أن تسوية مالية انتهت؛ لم نعط أصلًا مبالغ أو مواعيد أو قواعد حساب في المدخلات. ولا تكفي الكمية لتحديد سعر التنفيذ أو تكلفته. احتفظ بالسؤال الذي حللناه منفصلًا عن الأسئلة المالية الأخرى، حتى لا تتحول نتيجة مفيدة عن حالة أمر إلى إجابة مزعومة عن رصيد أو رسوم أو استحقاق يحتاج إلى سجل مختلف.
الفائدة العملية أن تقرأ الطلب والحدث والتراكم والنهاية بأسمائها. في مسارنا الرئيسي طلب الإلغاء لم يغلق الست فورًا، والتنفيذ الإضافي رفع المنفذ إلى ست، ثم ترك التأكيد أربعًا غير منفذة ملغاة وصفرًا فعالًا. وفي السجل المحجوب لم نكن نعرف تلك النهاية. إبقاء هذا الفرق ظاهرًا يجعلك قادرًا على شرح ما تثبته اللقطة التي تملكها، وتحديد المعلومة التي تنقصك، دون ملء الفراغ بتوقع أو خلط إلغاء المتبقي بعكس تنفيذ سابق.
المصادر ومتابعة القراءة
- FIX: طبقة التطبيق للتداول، حالات الأمر وتقارير التنفيذ، إصدار أغسطس 2019. (يفتح في نافذة جديدة)fixtrading.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
