الشبكات العصبية والتجارة. التنفيذ العملي

تشهد الموضة التجارية صعودًا وهبوطًا جنبًا إلى جنب مع سعر صرف Bitcoin. الآن هذا الموضوع عند نقطة منخفضة بعد نمو لا يصدق في 2018. تمكن الكثير خلال هذا الوقت من التعرف على التبادلات المشفرة - لقد انغمسوا في الموضوع ودرسوا وتداولوا وخسروا الأموال ، وحتى كسبوا في بعض الأحيان. ونتيجة لذلك ، مرت الموضة ، لكن التجربة بقيت ، وإن كانت سلبية. يمكن سماع الكلمات "الطويلة" ، و "القصيرة" ، و "المنتشرة" ، و "الغواص" من أولئك الذين لا تتوقع منهم هذا بالتأكيد. ولكن ليس فقط تجارة "اليدين" التي جذبت الانتباه ، فهناك أيضًا روبوتات تداول. ما الذي لدينا في هذا المجال ، ما هي تجربة آخر 2-3 سنوات تتحدث عنه؟

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

يبقى الأمل الأخير - الشبكات العصبية. يجب أن يحدث هذا بالتأكيد ، لأن الشبكة العصبية تتعلم كشخص وتتكيف مع السوق. كيف حالك في هذا المجال؟ حسنًا ... لقد خمنت ذلك. كل شيء سيئ ، هناك الكثير من الحديث ، ولكن لا توجد حلول فعالة. كل شيء سيء للغاية! مثال حي على ذلك هو متجر تطبيقات المجتمع MQL5. خلف العلامة التجارية MQL5 توجد منصة تداول احترافية - MetaTrader5 بالإضافة إلى مجتمع ضخم من المتداولين والمبرمجين. لذلك في هذا المتجر هناك قسم للحلول يعتمد على الشبكات العصبية ، هناك العديد من الروبوتات ، ولكن ليس واحدًا حقيقيًا. تحظر القواعد إضافة بوت باستخدام شبكة عصبية. من الصعب تصديق ذلك ، لكنه كذلك. يستبعد الحظر المفروض على توصيل واجهة برمجة تطبيقات خارجية إمكانية استخدام الشبكات العصبية ، ولا تعمل الأدوات المضمنة في MQL5 عمليًا. ناقشت هذه المشكلة مع الدعم الفني MQL5 ،لم أتلق إجابة واضحة. ونتيجة لذلك ، لا يوجد شيء يعمل بالفعل خارج الصندوق في السوق ، ولا تؤخذ في الاعتبار الحلول من سلسلة "علم نفسك" الموضوعة على github.

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

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

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

لقد تم حل هذه المهمة الأولية بعد تحديد 50000 إدخال. تستخدم TensoFlow بالإضافة إلى Keras ، وهي شبكة من Sequental Dense. مجموعة بيانات الإدخال لـ 200-300 ألف مثال ، ميزة إدخال المتجه 250-350. يتبع شكل الجواب من شبكة السؤال المطروحة - التصنيف الثنائي "أعلى" أو "أسفل". تم تحضير المدخلات بواسطة البوت في MQL5. يشكل البوت الذي يمر عبر قصة ملف csv عاديًا ، وكل سطر عبارة عن ناقل. في نهاية كل متجه ، يكون الجواب الصحيح 1: 0 إذا كان لأعلى ، 0: 1 إذا لأسفل.

إليك بعض الاقتراحات لمن يحاولون:

  1. يدرس جيدا ضمن التوقعات من 15 دقيقة إلى 60 دقيقة. في فترة أقصر ، تنمو فوضى حركة الأسعار ، في فترة أكبر يزداد التأثير الخارجي - الأخبار وما إلى ذلك ، 15-60 دقيقة المنطقة الأكثر تقنيًا.
  2. BTCUSD, EURUSD. — .
  3. « ? ?». , .
  4. , 50% . , .

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

باستخدام هذا النهج ، حصلت على النتيجة التالية:
في حوالي 2٪ من الإجابات ، تخمن الشبكة زيادة الحركة بنسبة 2 إجابة صحيحة إلى إجابة واحدة غير صحيحة. عند الاختبار في السوق الحقيقية ، هذا ما يحدث بالضبط ، ولكن تنشأ مشكلة أخرى. بعد كل شيء ، لدينا فقط 2 ٪ من الأسئلة التي تم الرد عليها ، وتجاهل الباقي. أولئك. نطلق عصبًا في السوق الحقيقي في إطار زمني مدته 5 دقائق وننتظر ... بنسبة 2٪ - سيتم الرد على كل 50 شمعة فقط ، إجابة واحدة في 4 ساعات! وماذا تفعل به؟ حسنًا ، إذا كان الجواب "شراء / بيع" ، فإن 6 معاملات في اليوم أمر طبيعي ، وهنا تجريد "صعودًا / هبوطًا" ثم خيبة أمل كاملة غير دقيقة.

ونتيجة لذلك ، قمت بحل هذه المشكلة بسهولة نسبيًا - كل 5 دقائق فقط تحتاج إلى مقابلة ليس نموذجًا واحدًا ، ولكن 20-30 نموذجًا ، نتيجة للإجابات سيكون هناك ما يكفي. يتم تدريب النماذج على بيانات الإدخال المختلفة ، وبالتالي يتم تدريبهم على أنماط مختلفة. من الناحية العملية ، اتضح أن النماذج تدق على الشموع المختلفة ، وتنشط معًا فقط في أماكن واضحة يمكن التنبؤ بها ولا تتداخل مع بعضها البعض.

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

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

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

إلى متى ، لفترة وجيزة ، ولكن بعد كل التعديلات ، بدأت أتلقى إجابات فردية للشبكة العصبية لكل شمعة ، معبراً عنها كنسبة مئوية من وقت العمل المتوقع من -100٪ إلى + 100٪. تعكس اللافتة الاتجاه الصعودي / الهابط المتوقع. أصبح من الواضح أنه يوجد الآن معنى في كل إجابة. إنها تعمل! أنا نفسي لدي خبرة في التداول ورأيت كيف أصبح سلوك الشبكة أمام عيني ذا معنى. في بعض الأحيان كان منطقه مفهومًا ، وأحيانًا لم يكن كذلك ، لكن إجاباته شعرت دائمًا برؤيتها الخاصة ، غالبًا ما تكون متناقضة ، للسوق. بالإضافة إلى ذلك ، اتضح أنه كلما زادت ثقة الشبكة ، كلما كان التطور المتوقع أقرب إلى الوقت المناسب والعكس صحيح. بدا أن الثقة المنخفضة تقول "ما الذي سيحدث في 15 دقيقة لا أعرف ، ولكن الاتجاه العام صعودي".

من هذا المكان ، أدركت أن محاولة إضفاء الطابع الرسمي على كل هذا في إشارات الشراء / البيع يشبه دق المسامير باستخدام المجهر. كان المطلوب هو نوع من الأدوات لتصور إشارات الشبكة العصبية - عرض رسومي لمستوى "الثقة" في كل شمعة. مجموعة واسعة من أدوات MQL5 جعلت من الممكن وضع كل هذا في Expert for MetaTrader5. يتلقى "الخبير" من خلال واجهة برمجة التطبيقات استجابات الشبكة العصبية ويشارك فقط في التقديم. فيما يلي مثال على عمله على BTCUSD M1:

صورة

المنطقة الملونة في الأعلى هي توقعات "لأسفل" ، والمنطقة أدناه هي توقعات "لأعلى" ، والسمك هو درجة الثقة.

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

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

  1. من الضروري إعداد عشرات التوقعات في الفترة بين 15 و 60 دقيقة. أولئك. ابدأ بالتنبؤ "لأعلى / لأسفل" لمدة 20 ، 25 ، 30 ، 35 دقيقة وهكذا حتى 60 دقيقة. أتذكر أن كل توقعات ، على ما أذكر ، مبنية من إجابات حوالي 20 طرازًا.
  2. بوجود مثل هذا الحجم من المعلومات عن كل شمعة دقيقة ، فمن الممكن والضروري تحليلها مع شبكة عصبية أخرى. يمكن أن يكون الاتصال بين التنبؤات على فترات زمنية مختلفة غير بديهي تمامًا ، وبالتالي ، ستكون الشبكة العصبية هنا مناسبة.
  3. لن تكون مجموعة البيانات لهذه الشبكة العصبية صاخبة مثل تلك التي لدى رفاقها الأصغر سنًا ، لذلك يجب تدريبها ليس على "صعود / هبوط" عادي ، ولكن في التنبؤ بقوة حركة الأصول ، وهذا مخرج مباشر لـ "شراء / بيع".

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

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

All Articles