مهارات الحياة

تحديث كمية دفتر الأوامر: الاستبدال والحذف لا جمع الرسائل

رجل بالغ في مشهد قراءة خيالي يقارن ثلاث بطاقات فارغة بجوار دفتر وآلة حاسبة وحاسوب مغلق.
صورة توضيحية مولدة بالذكاء الاصطناعي؛ لا تعرض شاشة سوق أو اتصالًا بمنصة أو سجل عميل أو نتيجة تداول، والبطاقات بلا قيم تثبت المثال.

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

الخلاصة السريعة

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

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

اقرأ معنى الكمية قبل تحديث الصف

يشرح مرجع Kraken للإصدار الأول أن تحديث مستوى موجود يقدم حجمًا جديدًا عند السعر نفسه، فيتغير الحجم القديم إلى القيمة الجديدة. نقرأ هذه الدلالة المحددة قبل إجراء أي جمع، ولا نعممها على كل مصدر بيانات من دون معرفة تعريفه.[1]

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

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

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

من ثلاثة إلى واحد، لا إلى أربعة

تصل في المثال رسالة للمستوى مئة وواحد بكمية جديدة مقدارها واحد. تحت قاعدة الاستبدال يصبح صفه واحدًا، ويبقى المستوى مئة واثنان بوحدتين، فيكون المجموع ثلاث وحدات. نقص مجموع الجدول وحدتين من الخمس السابقة، لأننا أزلنا القيمة القديمة الثلاث ووضعنا الجديدة الواحد مكانها، ولم نغير الصف الآخر أو أسعار الصفين.

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

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

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

الصفر الصريح وغياب الصف مختلفان

ينص دليل Kraken للإصدار الثاني على إزالة مستوى السعر عند تحديث كميته بصفر. نأخذ معنى هذا الحذف المحدد، ولا نعتبر عدم ذكر سعر في رسالة جزئية مساويًا لوجود ذلك الأمر الصريح.[3]

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

أما مستوى مئة واثنان فلم يذكر في تلك الرسالة الجزئية، فتظل وحدتاه في جدولنا. حذفه لأنه لم يظهر يجعل الدفتر فارغًا بلا مدخل يأمر بذلك في النموذج. افرق بين عبارة «تحديث هذه الأسعار» وعبارة «هذه كل الحالة الجديدة». ننفذ أثر الرسالة في النطاق الذي عرفناه، ولا نستعمل قائمة مختصرة كأنها لقطة كاملة عن جميع الصفوف الموجودة.

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

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

ترتيب القيم وتكرار الرسالة

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

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

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

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

هوية المستوى تشمل الجانب والأداة

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

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

وحين يمثل النص «مئة» و«مئة فاصلة صفر» القيمة العددية نفسها في قصتنا، لا ننشئ منهما مستويين مستقلين لمجرد اختلاف الكتابة. وفي الاتجاه الآخر، لا نقرب مئة فاصلة صفر واحد إلى مئة ثم ندمج مستويين كانا مختلفين قبل التقريب. حدد معنى الهوية العددية ودقة المدخل، وافصل شكل العرض الذي تراه عن القيم التي تختار المقارنة عليها.

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

حدود العمق لا تعني حذفًا من السوق

يوضح دليل Kraken للإصدار الثاني أن الدفتر المحلي يقص إلى عمق الاشتراك، وأن المستويات التي تخرج من نطاقه لا يلزم أن يصل لها تحديث صفر. نطاق العرض لا يساوي كل ما يمكن أن يوجد خارج ذلك النطاق.[3]

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

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

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

لقطة جديدة ومجموع أحداث

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

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

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

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

بطاقة مراجعة للحالة والمدخل

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

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

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

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

المصادر ومتابعة القراءة

  1. Kraken: الإصدار الأول ومعنى الحجم الجديد (يفتح في نافذة جديدة)support.kraken.com
  2. Kraken: تحديثات الدفتر في الإصدار الثاني (يفتح في نافذة جديدة)docs.kraken.com
  3. Kraken: الصفر وعمق الدفتر المحلي (يفتح في نافذة جديدة)docs.kraken.com

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.