Skip List

From binaryoption
Jump to navigation Jump to search
Баннер1

```wiki

قائمة التخطي (Skip List)

قائمة التخطي (Skip List) هي هيكل بيانات احتمالي، أي أنها تستخدم العشوائية في بنائها، مصممة لتوفير أداء فعال للبحث والإدراج والحذف في القوائم المرتبة. تعتبر بديلاً جيداً للأشجار المتوازنة مثل أشجار البحث الثنائية ذاتية الموازنة (Self-balancing binary search trees) مثل أشجار AVL و أشجار أحمر-أسود، خاصةً عندما تكون العمليات المتزامنة مهمة. في سياق الخيارات الثنائية، يمكن استخدام هياكل البيانات هذه لتحسين سرعة إدارة بيانات الأسعار التاريخية، أو بيانات أوامر التداول، أو حتى بيانات حسابات المستخدمين.

دوافع التصميم

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

المفهوم الأساسي

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

بناء قائمة التخطي

  • المستوى الأساسي (Level 0): هذا هو المستوى الأدنى، ويحتوي على جميع العناصر في القائمة مرتبة.
  • المستويات العليا (Levels 1, 2, ...): كل مستوى أعلى يحتوي على مجموعة فرعية من عناصر المستوى الأدنى. يتم تحديد العناصر التي ستكون موجودة في المستوى الأعلى بشكل عشوائي.

الترقية (Promotion): عند إدراج عنصر جديد، يتم تحديده بشكل عشوائي ليكون جزءاً من مستوى أعلى أو أكثر. تعتمد احتمالية الترقية على معلمة تسمى 'p' (عادةً ما تكون 0.5 أو 0.25). إذا تم اختيار العنصر للترقية، فإنه يتم إضافته إلى المستوى الأعلى، ويتم تكرار العملية بشكل عشوائي لتحديد ما إذا كان سيتم ترقيته إلى مستوى أعلى مرة أخرى.

العمليات على قائمة التخطي

  • البحث (Search):
   1.  ابدأ من المستوى الأعلى، من الرأس (Head) الخاص بهذا المستوى.
   2.  تحرك إلى اليمين في المستوى الحالي طالما أن قيمة العنصر التالي أصغر من قيمة العنصر الذي تبحث عنه.
   3.  إذا كانت قيمة العنصر التالي أكبر من أو تساوي قيمة العنصر الذي تبحث عنه، انتقل إلى المستوى الأدنى.
   4.  كرر الخطوتين 2 و 3 حتى تصل إلى المستوى الأساسي.
   5.  إذا كانت قيمة العنصر الحالي في المستوى الأساسي تساوي قيمة العنصر الذي تبحث عنه، فقد تم العثور على العنصر.  وإلا، فإنه غير موجود في القائمة.
  • الإدراج (Insertion):
   1.  قم بإجراء عملية بحث للعثور على المكان الصحيح لإدراج العنصر الجديد.
   2.  أدخل العنصر الجديد في المستوى الأساسي.
   3.  بشكل عشوائي، حدد ما إذا كان سيتم ترقية العنصر الجديد إلى مستوى أعلى.  إذا تم الترقية، أضف العنصر الجديد إلى المستوى الأعلى.
   4.  كرر الخطوة 3 بشكل عشوائي لتحديد ما إذا كان سيتم ترقية العنصر الجديد إلى مستويات أعلى.
  • الحذف (Deletion):
   1.  قم بإجراء عملية بحث للعثور على العنصر الذي تريد حذفه.
   2.  احذف العنصر من جميع المستويات التي يوجد بها.

تحليل الأداء

  • متوسط الأداء (Average Case): البحث والإدراج والحذف كلها لها أداء متوسط O(log n)، حيث 'n' هو عدد العناصر في القائمة.
  • أسوأ أداء (Worst Case): في أسوأ الحالات، قد يكون الأداء O(n)، ولكن هذا الاحتمال منخفض جداً إذا تم اختيار قيمة 'p' بشكل مناسب.

مثال توضيحي

لنفترض أن لدينا البيانات التالية: 3, 6, 7, 9, 12, 19, 26

وبافتراض أن p = 0.5، يمكن بناء قائمة التخطي على النحو التالي:

| المستوى | العناصر | |---|---| | 3 | 3 -> 19 | | 2 | 3 -> 7 -> 19 -> 26 | | 1 | 3 -> 6 -> 7 -> 9 -> 12 -> 19 -> 26 | | 0 | 3 -> 6 -> 7 -> 9 -> 12 -> 19 -> 26 |

لاحظ كيف أن كل مستوى أعلى يحتوي على مجموعة فرعية من عناصر المستوى الأدنى.

تطبيقات في الخيارات الثنائية والتداول

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

مقارنة مع هياكل البيانات الأخرى

| هيكل البيانات | البحث | الإدراج | الحذف | التعقيد | |---|---|---|---|---| | قائمة مرتبة | O(n) | O(n) | O(n) | بسيط | | أشجار البحث الثنائية | O(log n) | O(log n) | O(log n) | معقد | | أشجار البحث الثنائية ذاتية الموازنة | O(log n) | O(log n) | O(log n) | أكثر تعقيداً | | قائمة التخطي | O(log n) | O(log n) | O(log n) | متوسط التعقيد |

الخلاصة

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

هياكل_بيانات ```

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер