تبادل المعلومات المالية
بروتوكول تبادل المعلومات المالية ( FIX ) هو بروتوكول اتصالات إلكترونية أُطلق عام 1992 لتبادل المعلومات المتعلقة بمعاملات الأوراق المالية والأسواق المالية دوليًا في الوقت الفعلي. ونظرًا لتداول تريليونات الدولارات سنويًا في بورصة ناسداك وحدها، تستخدم مؤسسات الخدمات المالية تقنية الوصول المباشر إلى السوق (DMA) لزيادة سرعة وصولها إلى الأسواق المالية. ويتطلب إدارة عمليات تسليم تطبيقات التداول والحفاظ على زمن استجابة منخفض فهمًا متزايدًا لبروتوكول FIX.
تاريخ
وُضعت مواصفات بروتوكول FIX في الأصل عام 1992 على يد روبرت "بوب" لامورو وكريس مورستات لتمكين التواصل الإلكتروني لبيانات تداول الأسهم بين شركتي فيديليتي للاستثمارات وسالومون براذرز . في البداية، عالج بروتوكول FIX تبادل المعلومات بين شركات الوساطة المالية وعملائها من المؤسسات. في ذلك الوقت، كان يتم تبادل هذه المعلومات شفهيًا عبر الهاتف. أدركت فيديليتي أن المعلومات الواردة من شركات الوساطة المالية التابعة لها قد تُحوّل إلى المتداول الخطأ، أو تُفقد ببساطة عند انتهاء المكالمات. لذا، أرادت استبدال هذه الاتصالات ببيانات قابلة للقراءة آليًا ، يمكن مشاركتها بين المتداولين وتحليلها واتخاذ الإجراءات اللازمة بناءً عليها وتخزينها. على سبيل المثال، تتصل شركات الوساطة المالية لإبداء اهتمامها بشراء أو بيع كمية من الأسهم. وقد أدت مبادرة FIX إلى استحداث رسائل جديدة مثل رسالة إبداء الاهتمام.
وفقًا لمجتمع تداول FIX، أصبح بروتوكول FIX المعيار الفعلي للمراسلة قبل التداول وأثناء التداول في أسواق الأسهم العالمية، ويتوسع ليشمل مجال ما بعد التداول لدعم المعالجة الآلية الكاملة ، بالإضافة إلى استمراره في التوسع في أسواق الصرف الأجنبي والدخل الثابت والمشتقات . [ 1 ]
مجتمع تداول FIX
تُعدّ جمعية FIX Trading Community هيئة معايير غير ربحية، مدفوعة بالقطاع، وتتمثل مهمتها في معالجة القضايا التجارية والتنظيمية التي تؤثر على تداول الأصول المتعددة في الأسواق المالية العالمية، وذلك من خلال زيادة استخدام المعايير، بما في ذلك لغة مراسلة بروتوكول FIX، مما يُحقق الكفاءة التشغيلية، ويزيد الشفافية، ويُقلل التكاليف والمخاطر لجميع المشاركين في السوق. [ 2 ]
المستخدمون
يُستخدم بروتوكول FIX على نطاق واسع من قبل كل من جانب الشراء (المؤسسات) وجانب البيع (الوسطاء/التجار) في الأسواق المالية . ومن بين مستخدميه صناديق الاستثمار المشتركة ، وبنوك الاستثمار ، والوسطاء، وبورصات الأوراق المالية، وشبكات الاتصال الإلكترونية (ECNs) .
أصبح بروتوكول FIX المعيار الإلكتروني للاتصالات قبل التداول وتنفيذ الصفقات. ورغم أنه يُستخدم بشكل أساسي في معاملات الأسهم في قسم التداول الأمامي ، إلا أنه يُستخدم أيضًا في مشتقات السندات ومعاملات العملات الأجنبية. يمكن القول إن بروتوكول SWIFT هو المعيار لمراسلات قسم التداول الخلفي ، بينما يُعد FIX المعيار لمراسلات قسم التداول الأمامي. واليوم، تُوسّع عضوية شركة FIX Protocol Ltd. نطاق استخدام FIX ليشمل تخصيص الصفقات الكبيرة ومراحل أخرى من عملية التداول، في جميع الأسواق، ولجميع فئات الأصول تقريبًا.
المواصفات الفنية
كان معيار FIX في الأصل معيارًا متكاملًا، يشمل دلالات طبقة التطبيق، وتشفير الرسائل، وطبقة الجلسة في مواصفة تقنية واحدة. وظل كذلك حتى الإصدار 4.2 من FIX. [ 3 ] بعد ذلك، بدأ فصل تشفيرات الرسائل ومواصفات طبقة الجلسة إلى وثائق منفصلة، وفي النهاية، تطور FIX إلى مجموعة من المعايير التقنية ذات الصلة. [ 4 ]
ترميزات الرسائل
إن ترميز الرسائل، والذي يسمى طبقة العرض في نموذج الربط البيني للأنظمة المفتوحة ( نموذج OSI )، مسؤول عن تنسيق الرسائل السلكية.
ترميز قيمة الوسم (FIX الكلاسيكي)
يُعرف ترميز رسائل FIX الأصلي باسم ترميز قيمة الوسم. يتكون كل حقل من وسم رقمي فريد وقيمة. يُحدد الوسم الحقل دلاليًا، ولذلك فإن الرسائل ذاتية الوصف. يعتمد ترميز قيمة الوسم على الأحرف، باستخدام رموز ASCII .
إصلاح تنسيق رسالة قيمة الوسم
تتكون الرسالة من رأس وجسم وتذييل. يتم فصل حقول الرسالة بواسطة حرف بداية العنوان (SOH) ( ASCII 0x01).
حتى الإصدار FIX.4.4، يحتوي الرأس على ثلاثة حقول: 8 ( BeginString)، 9 ( BodyLength)، و 35 ( MsgType).
ابتداءً من FIXT.1.1 / FIX.5.0، يحتوي الرأس على خمسة أو ستة حقول: 8 ( BeginString)، 9 ( BodyLength)، 35 ( MsgType)، 49 ( SenderCompID)، 56 ( TargetCompID) والاختياري 1128 ( ApplVerID).
يتم تحديد محتوى نص الرسالة بواسطة نوع الرسالة (35 MsgType) في الترويسة.
يحتوي الجزء الأخير من الرسالة على الحقل الأخير، 10 ( Checksum)، والذي يتم التعبير عنه دائمًا كرقم مكون من ثلاثة أرقام (على سبيل المثال 10=002).
مثال على رسالة FIX، تقرير التنفيذ ( 35=8)، حيث يمثل رمز الأنبوب ( |) رمز SOH:
8=FIX.4.2 | 9=178 | 35=8 | 49=PHLX | 56=PERS | 52=20071123-05:30:00.000 | 11=ATOMNOCCC9990900 | 20=3 | 150=E | 39=E | 55=MSFT | 167=CS | 54=1 | 38=15 | 40=2 | 44=15 | 58=PHLX EQUITY TESTING | 59=0 | 47=C | 32=0 | 31=0 | 151=15 | 14=0 | 6=0 | 10=128 |
جسم
تتكون رسائل FIX من عدة حقول؛ لكل حقل زوج من قيمة الوسم، يفصل بينهما فاصل SOH (0x01). الوسم عبارة عن عدد صحيح يشير إلى معنى الحقل. أما القيمة فهي مصفوفة من البايتات تحمل معنىً محددًا للوسم (مثلاً، الوسم 48 هو SecurityID، وهو سلسلة نصية تُعرّف جهاز الأمان؛ والوسم 22 هو IDSource، وهو عدد صحيح يشير إلى فئة المعرّف المستخدمة). قد تكون القيم نصًا عاديًا أو مُشفّرة كبيانات ثنائية (وفي هذه الحالة، يسبق القيمة حقل طول). يُحدد بروتوكول FIX معاني معظم الوسوم، ولكنه يُبقي مجموعة من الوسوم محجوزة للاستخدام الخاص بين الأطراف المُتفقة.
يُحدد بروتوكول FIX أيضًا مجموعات من الحقول التي تُشكل رسالة معينة؛ ضمن هذه المجموعة، يكون بعضها إلزاميًا والبعض الآخر اختياريًا. لا يُهم ترتيب الحقول داخل الرسالة عمومًا، إلا أن المجموعات المتكررة تُسبق بعدد، والحقول المُشفرة تُسبق بطولها. تُقسم الرسالة إلى ثلاثة أقسام متميزة: الرأس، والجسم، والذيل. يجب أن تبقى الحقول ضمن القسم الصحيح، وقد يكون موقعها داخل كل قسم مهمًا، حيث يمكن أن تعمل الحقول كفواصل تمنع تداخل الرسائل. الحقل الأخير في أي رسالة FIX هو الوسم 10 ( مجموع التحقق ).
توجد مجموعتان رئيسيتان من الرسائل: رسائل الإدارة ورسائل التطبيق. تتولى رسائل الإدارة معالجة أساسيات جلسة FIX، حيث تسمح ببدء الجلسة وإنهائها واستعادة الرسائل المفقودة. أما رسائل التطبيق فتتعلق بإرسال واستقبال المعلومات المتعلقة بالتداول، مثل طلبات الشراء أو معلومات الحالة الراهنة، بالإضافة إلى تنفيذ تلك الطلبات.
طول الجسم
يُعرَّف طول النص بأنه عدد الأحرف بدءًا من الوسم 35 (مشمولًا) وحتى الوسم 10 (غير مشمول)، بما في ذلك فواصل SOH اللاحقة. المثال أدناه (المعروض باستخدام فواصل SOH كـ '|') يبلغ طول نصه 65 حرفًا.
8=FIX.4.2|9=65|35=A|49=SERVER|56=CLIENT|34=177|52=20090107-18:15:16|98=0|108=30|10=062| ^ ٥ + ١٠ + ١٠ + ٧ + ٢١ + ٥ + ٧ ^ = ٦٥
مجموع التحقق
يُمثل مجموع التحقق لرسالة FIX دائمًا الحقل الأخير في الرسالة، ويتكون من وسم 10وقيمة من ثلاثة أحرف. [ 5 ] ويُحسب بجمع قيم ASCII لجميع الأحرف في الرسالة (باستثناء حقل مجموع التحقق نفسه)، ثم إجراء عملية باقي القسمة على 256. [ 6 ] على سبيل المثال، في الرسالة أعلاه، ينتج عن مجموع جميع قيم ASCII (بما في ذلك أحرف SOH ذات قيمة ASCII تساوي 1) القيمة 4158. وبإجراء عملية باقي القسمة، نحصل على القيمة 62. وبما أن مجموع التحقق يتكون من ثلاثة أحرف، فإن النتيجة هي 0 10=062.
FIXML
FIXML [ 7 ] هو مخطط XML لرسائل FIX. وهو مكافئ دلاليًا للرسائل المشفرة بقيم العلامات، ولكنه يستفيد من تقنية محلل XML. يُستخدم FIXML عادةً في تطبيقات المكاتب الخلفية والمقاصة، وليس في التداول.
التشفير الثنائي البسيط (SBE)
يُعرّف ترميز البيانات الثنائي البسيط [ 8 ] تنسيقًا سلكيًا باستخدام أنواع بيانات أولية أصلية لأنظمة الحوسبة. ولذلك، يكون ترميز الرسائل وفك ترميزها أقل زمن استجابة بكثير من البروتوكولات القائمة على الأحرف، إذ لا حاجة إلى ترجمة البيانات إلى تنسيق يمكن للحواسيب استخدامه. وإلى جانب مزايا زمن الاستجابة، يكون الأداء أكثر قابلية للتحديد لأن رسائل ترميز البيانات الثنائي البسيط مقيدة بقوالب، ويُفضّل استخدام عناصر بيانات ثابتة الطول. ومن النتائج الأخرى أن الحقول تكون عادةً في موضع ثابت، ما يُغني مُرشّحات الرسائل والموجّهات عن فك تشفير الرسالة بأكملها للوصول إلى الحقول الرئيسية.
طُوِّر بروتوكول SBE من قِبَل فريق عمل الأداء العالي في بروتوكول FIX لدعم التداول عالي الأداء. وقد اعتُبِر ترميز Tagvalue غير مناسب للغرض المطلوب لأنه يعتمد على الأحرف بدلاً من النظام الثنائي، كما أن حقوله ورسائله ذات الأطوال المتغيرة تؤدي إلى أداء غير حتمي.
على عكس بروتوكولي tagvalue وFIXML، فإن رسالة SBE لا تصف نفسها بنفسها. يتم إرسال البيانات فقط عبر الشبكة مع ترويسة بسيطة لتحديد القالب الذي يتحكم في الرسالة. أما البيانات الوصفية التي تصف بنية الرسالة، فيتم تبادلها خارج نطاق الشبكة بين الأجهزة المتصلة.
تنشر منصة FIX Trading Community مخطط XML لمخططات رسائل SBE. قد يحتوي مخطط الرسالة على أي عدد من قوالب الرسائل. يصف القالب الحقول التي تُشكّل الرسالة. بالإضافة إلى ذلك، يُقدّم المخطط قائمة بأنواع البيانات البسيطة والمركبة التي يُمكن إعادة استخدامها بواسطة أي عدد من الحقول.
من الناحية العملية، بافتراض تطبيق بلغة C/C++، ومع مراعاة ترتيب البايتات : تُقابل معظم الأنواع غير المركبة في الرسالة مباشرةً نفس النوع في اللغة. على سبيل المثال، يُقابل عدد صحيح 32 بت uint32_t، وتُقابل السلاسل النصية الثابتة const char *، وتُقابل الأعداد العشرية، floatوهكذا. يمكن إنشاء ملف C/C++ structمن تعريف المخطط. بعد ذلك، عند إعطاء مؤشر إلى مخزن مؤقت للرسالة، فإن الوصول إلى الحقول غير المركبة في الرسالة يُعادل تحويل نوعها إلى مؤشر إلى بنية والوصول إلى عناصر البنية مباشرةً.
/* تم إنشاء بنية من المخطط */ struct Message { ... uint32_t qty ; ... const char * symbol ; ... };void consume_message ( void * incoming_message ) { const struct Message * msg = ( const struct Message * ) incoming_message ; printf ( "تم تداول %u من %s \n " , msg -> qty , msg -> symbol ); ... }ترميزات FIX الأخرى
كما طورت مجموعة FIX Trading Community خرائط قياسية بين بروتوكول FIX وبروتوكولات الرسائل الأخرى، بما في ذلك:
بروتوكولات الجلسة
تتولى طبقة الجلسة مسؤولية تبادل الرسائل بما في ذلك آليات استعادة نقاط التفتيش.
خدمة النقل الثابتة (FIXT)
لم يكن لبروتوكول جلسة FIX الأصلي اسم خاص به، إذ كان جزءًا من مواصفات شاملة تغطي دلالات طبقة التطبيق وتشفير الرسائل أيضًا. مع ذلك، بدءًا من إصدار FIX 5.0، تم فصل طبقة الجلسة كمواصفة مستقلة مع إطلاق FIXT. [ 9 ] كان FIXT مشابهًا إلى حد كبير لطبقة الجلسة الأصلية غير المسماة في الإصدار 4.x، ولكنه قدم ابتكارًا هامًا واحدًا، وهو توفير آلية لدمج إصدارات طبقة تطبيق FIX عبر إصدار جلسة مشترك. الإصدار الحالي من FIXT هو 1.1.
من الناحية النظرية، فإن بروتوكول FIXT مستقل عن النقل. ومع ذلك، فإنه يستخدم عادة عبر بروتوكول التحكم في الإرسال (TCP).
بروتوكول FIXT هو بروتوكول اتصال مباشر بين نقطتين ، يضمن وصول الرسائل في كلا الاتجاهين. تحمل الرسائل المرسلة في كل اتجاه رقم تسلسلي في رأس الرسالة. في حال حدوث عطل في الاتصال، يمكن للطرف الآخر طلب إعادة إرسال الرسائل المفقودة. يدعم البروتوكول وصول الرسائل حتى في حالة انقطاع الاتصال ثم إعادة إنشاء الجلسة لاحقًا.
لتنفيذ إنشاء الجلسات وضمان التسليم، يحدد كل من بروتوكول FIXT وبروتوكول FIX 4.x الكلاسيكي أنواع رسائل الجلسات التالية:
- نبض القلب
- طلب اختبار
- إعادة إرسال الطلب
- يرفض
- إعادة ضبط التسلسل
- تسجيل الخروج
- تسجيل الدخول
- XMLnonFIX
طبقة جلسة أداء FIX (FIXP)
طُوِّر بروتوكول FIXP [ 10 ] من قِبَل فريق عمل FIX عالي الأداء [ 11 ] لتلبية احتياجات التداول عالي الأداء. وتتمثل الحاجة الأساسية في ترميز وفك ترميز الرسائل بزمن استجابة منخفض، والتحكم في ضمانات تسليم الرسائل.
لضمان زمن استجابة منخفض، تُدعم ترميزات الرسائل الثنائية لكلٍ من طبقة الجلسة ورسائل التطبيق. يتم تجريد تنسيق البيانات الفعلي في مواصفات FIXP، مما يتيح للمستخدمين اختيار ترميز FIX الذي يناسبهم، شريطة أن يتفق النظراء على بروتوكول مُحدد. وقد استُخدم الترميز الثنائي البسيط في المراحل الأولى من التطوير.
يغطي بروتوكول FIXP حالات الاستخدام من نقطة إلى نقطة وحالات البث المتعدد باستخدام العناصر الأساسية المشتركة.
عند إنشاء جلسة اتصال من نقطة إلى نقطة، يتفاوض النظراء على ضمانات التسليم من بين الخيارات التالية:
- قابل للاسترداد: يتم تسليم الرسائل مرة واحدة فقط. في حال اكتشاف ثغرات، يمكن استرداد الرسائل المفقودة عن طريق إعادة الإرسال.
- خاصية التكرار: يتم التسليم مرة واحدة على الأكثر. في حال اكتشاف أي ثغرات، يتم إخطار المرسل، ولكن عملية الاسترداد تخضع لسيطرة التطبيق، إن تم ذلك أصلاً.
- غير متسلسل: لا يضمن التسليم. هذا الخيار مناسب إذا كانت الضمانات غير ضرورية أو إذا تم توفير الاسترداد على مستوى التطبيق أو من خلال قناة اتصال مختلفة .
- ملاحظة: لا ينبغي إرسال أي رسائل تطبيقية في اتجاه واحد من الجلسة.
قد تكون ضمانات التسليم غير متناظرة. على سبيل المثال، قد يُدخل المتداول أوامر عبر تدفق بيانات غير قابل للتنفيذ، بينما تُعاد الأوامر عبر تدفق بيانات قابل للاسترداد. في الأسواق سريعة الحركة، غالبًا ما يكون التأخير المتأصل في إعادة الإرسال غير مرغوب فيه، مما يؤدي إلى ضياع فرص أو صفقات خاسرة.
تمثيل تخطيطي لنظام FIX
يوضح الرسم التخطيطي أدناه كيفية إصلاح شكل الرسائل بين جانب المشتري/العميل وجانب البائع/المورد. [ 12 ]
![]()
آخر التطورات في بروتوكول FIX
يقوم أحدث إصدار من بروتوكول FIX بتنفيذ "استقلالية النقل" من خلال السماح بنقل إصدارات متعددة من رسائل التطبيق عبر إصدار واحد من جلسة FIX المستقلة عن النقل (FIXT.1.1 وما فوق).
كما أن استقلالية النقل تمهد الطريق لاستخدام بروتوكولات النقل مثل قوائم انتظار الرسائل وخدمات الويب بدلاً من بروتوكول FIX التقليدي عبر TCP.
يدعم بروتوكول FIX الآن التداول الخوارزمي باستخدام لغة تعريف التداول الخوارزمي FIX (FIXatdl) .
في عام 2005، أصدرت مجموعة FIX Trading بروتوكول FAST ، وهو اختصار لـ FIX Adapted for Streaming. يُعد FAST بروتوكولًا ثنائيًا، ويُستخدم في الغالب لإرسال بيانات السوق متعددة البث عبر اتصالات UDP.
علاوة على ذلك، في عام 2020، أصدر مجتمع تداول FIX ترميزًا ثنائيًا جديدًا لبروتوكول FIX، يعتمد على الترميز الثنائي البسيط (SBE)، ويهدف إلى استكمال ترميز FAST الحالي. [ 13 ]
انظر أيضاً
- FIXatdl
- أنواع رسائل SWIFT
- قائمة بروتوكولات التداول الإلكتروني
ملحوظات
- ↑ "ما هو بروتوكول FIX؟" . منظمة بروتوكول FIX. 8 يونيو 2009. مؤرشف من الأصل في 9 سبتمبر 2004.
- ↑ "نظرة عامة • مجتمع تداول FIX" . مجتمع تداول FIX . تم الاطلاع عليه بتاريخ 2018-12-06 .
- ↑ "مواصفات FIX 4.2 مع تصحيحات 20010501 • مجتمع FIX للتداول" . مجتمع FIX للتداول . تم الاطلاع عليه بتاريخ 2018-12-05 .
- ↑ "معايير FIX • مجتمع تداول FIX" . مجتمع تداول FIX . تم الاطلاع عليه بتاريخ 2018-12-05 .
- ↑ إصلاح 4.2 : حقل مجموع التحقق <10> | قاموس الإصلاح
- ↑ الملحق ب - حساب مجموع التحقق | قاموس FIX
- ↑ "FIXML • مجتمع تداول FIX" . مجتمع تداول FIX . تم الاطلاع عليه بتاريخ 2018-12-05 .
- ↑ "الترميز الثنائي البسيط (SBE) • مجتمع تداول FIX" . مجتمع تداول FIX . تم الاطلاع عليه بتاريخ 5 ديسمبر 2018 .
- ↑ "FIX Transport (FIXT) • FIX Trading Community" . FIX Trading Community . تم الاطلاع عليه بتاريخ 2018-12-05 .
- ↑ "طبقة أداء جلسة FIX (FIXP) • مجتمع تداول FIX" . مجتمع تداول FIX . تم الاطلاع عليه بتاريخ 2018-12-05 .
- ↑ "الصفحة الرئيسية - فريق العمل عالي الأداء" . مجتمع تداول FIX . تم الاطلاع عليه بتاريخ 2018-12-05 .
- ↑ ديماركو، دارين. "استغلال بروتوكول تبادل المعلومات المالية (FIX)؟" .
- ↑ "الترميز الثنائي البسيط (SBE)" . 21 مارس 2024.
روابط خارجية
- بروتوكول FIX المحدودة - يحتوي هذا الموقع الرسمي لمجتمع تداول FIX على معايير FIX
- FIXimate FIX Dictionary FIX Legacy Versions FIX Latest
- FIXwiki - ويكي مخصص لـ FIX. أداة مرجعية للمواصفات مثل FIXimate، ولكن نظرًا لكونها ويكي، فهي تسمح أيضًا بملاحظات المستخدمين وتعليقاتهم.
- B2BITS FIX Antenna .NET Core - تطبيق مفتوح المصدر لمحرك .NET FIX.
- أدوات Esprow FIX - متصفح قاموس FIX عبر الإنترنت لجميع إصدارات FIX، بما في ذلك محلل رسائل FIX
- قاموس بروتوكول FIX الكامل على Onixs - قاموس حديث سريع وسهل الاستخدام لبروتوكول FIX (الإصدارات 4.0 ، 4.1 ، 4.2 ، 4.3 ، 4.4 ، 5.0 ، 5.0.SP1 ، 5.0.SP2 ، FIXT1.1 ).
- FIXSIM - محلل رسائل FIX، رسائل نموذجية، دعم الاختبار.
- مورد عبر الإنترنت يتضمن ملاحظات الاستخدام حول الإضافة السريعة - مورد إصلاح عبر الإنترنت يتضمن ملاحظات مفصلة حول الاستخدام (الإصدارات 4.0، 4.2، 5.0 SP2).
- FIXGlobal - مجلة تداول عالمية مجانية ومجلة رسمية لبروتوكول FIX.
- ما هو بروتوكول FIX؟ - نظرة عامة غير تقنية على بروتوكول FIX.
- برنامج فك تشفير FIX بسيط مكتوب بلغة shell script مع sed يعمل بسرعة بشكل أصلي على أنظمة Unix/Linux، ويحتاج إلى التحديث إلى أحدث إصدار من FIX.
- محلل رسائل FIX - محلل رسائل FIX عبر الإنترنت
- مُفكِّك رسائل FIX - مدعوم من fix-message، وهو مُكوِّن ويب مفتوح المصدر لفك تشفير رسائل FIX
- معايير التوجيه المالي
- بيانات السوق
- البيانات الوصفية المالية
- بروتوكولات الشبكة
- بروتوكولات طبقة التطبيق
- معايير الصناعة المالية القائمة على لغة XML
- برامج مالية
- أنظمة التداول الإلكتروني
- الأسواق المالية
