كيفية إنشاء cBot عبر ChatGPT
الذكاء الاصطناعي التوليدي في تصاعد وإنشاء cBot دون الحاجة إلى كتابة سطر واحد من التعليمات البرمجية لم يعد حلمًا، بل أصبح حقيقة. في هذه المقالة والفيديو المصاحب لها، سنوضح لك كيف يمكنك إنشاء cBot باستخدام ChatGPT. سنوضح أيضًا كيف يمكنك تقييم كود cBot المقدم من ChatGPT والتأكد من أن الروبوت الذي تم إنشاؤه بواسطة الذكاء الاصطناعي يعمل في غضون دقائق قليلة.
إنشاء الطلب الصحيح
لأغراض هذا الفيديو، سنستخدم نموذج GPT-3.5. إنه مجاني للجميع، وعلى الرغم من افتقاره إلى الميزات مقارنة بنماذج GPT الأحدث، إلا أنه ينتج نتائج رائعة.
الجزء الأول من إنشاء cBot رائع باستخدام ChatGPT هو كتابة الطلب الصحيح. إليك بعض القواعد لما يجعل الطلب جيدًا:
1. شجع ChatGPT على محاولة لعب دور مطور cBot محترف.
يمكنك تحقيق ذلك عن طريق كتابة طلب أولي بالكلمات "دعنا نلعب لعبة حيث تكون أنت مطور خوارزميات مؤهل لـ cTrader..." أو شيء مثل "تظاهر بأنك مطور محترف لـ cBots لـ cTrader..."
2. كن محددًا.
كلما قدمت المزيد من التفاصيل إلى ChatGPT، كان ذلك أفضل. الطلبات مثل "أنشئ لي cBot مربحًا..." ستؤدي إلى الكثير من الارتباك من جانب الذكاء الاصطناعي.
نوصي بتحديد كل جزء من cBot الخاص بك بأكبر قدر ممكن من الدقة. فكر في المعلمات التي يجب أن تكون لديه، والشروط التي يجب أن يتفاعل معها، وعمليات التداول التي يجب أن يقوم بها. إذا كنت تنشئ لوحة تداول مخصصة، فكر في عناصر واجهة المستخدم التي يجب أن تكون لديها وأين يجب وضعها.
3. كن مهذبًا ومحترمًا.
قد يبدو هذا مفاجئًا ولكن الأبحاث أظهرت أن التهذيب مع ChatGPT يحسن بالفعل جودة الإخراج. تضمين عبارات مثل "سأكون ممتنًا إذا..."، "سيكون من الجميل إذا..." أو ما شابه ذلك.
إنشاء cBot للتداول بالألوان
للبداية، نريد فقط إنشاء cBot بسيط يضع أمر سوق جديد عند فتح كل شمعة. يعتمد اتجاه الأمر على ما إذا كانت الشمعة السابقة خضراء أو حمراء. إذا كانت الشمعة حمراء، نريد وضع أمر بيع وإذا كانت خضراء، نريد وضع أمر شراء.
إليك كيف يمكننا القيام بذلك من خلال تقديم الطلبات الصحيحة.
- الجملة الافتتاحية: "تظاهر بأنك مطور محترف لـ cBots لـ cTrader، اكتب كودًا بسيطًا جدًا ومفهومًا."
- المتطلبات المحددة: "قم بإنشاء cBot. في كل شمعة، يجب أن يضع أمر سوق جديد بدون آليات حماية. يجب أن يكون حجم الأمر (بالوحدات) معلمة قابلة للتخصيص. يجب وضع أمر شراء إذا كانت الشمعة السابقة خضراء. يجب وضع أمر بيع إذا كانت الشمعة السابقة حمراء."
- التهذيب: "سأكون ممتنًا جدًا إذا قمت بهذه المهمة، شكرًا لك!"
قد يختلف الكود الدقيق الذي ينتجه ChatGPT ولكن في أي حال يمكننا ببساطة نسخ ولصقه في نافذة محرر الكود لنرى ما إذا كان صحيحًا ولنرى ما إذا كان ينفذ المنطق الذي نريده.
عادةً، هناك فقط بضعة أخطاء غير حرجة تحتاج إلى إصلاح. في حالتنا، الشيء الوحيد الذي تطلب الإصلاح كان تغيير كائن Symbol في طريقة ExecuteMarketOrder إلى السلسلة النصية SymbolName. إليك الكود النهائي الذي حصلنا عليه بعد القيام بكل هذا.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
كالمعتاد، نقوم بحفظ وبناء الروبوت. في تطبيق التداول، نقوم بإرفاق نسخة من الروبوت بمخطط ونرى ما إذا كان يعمل كما هو مقصود. يعمل الروبوت بشكل مثالي ويتفاعل مع لون الشموع السابقة عن طريق وضع أوامر جديدة. حجم الأمر هو أيضًا معلمة قابلة للتخصيص.
ملاحظة
لاحظ أننا لم نضطر حتى إلى قراءة الكود الذي أنتجه ChatGPT. قمنا ببساطة بإصلاح كل تحذير يظهر في محرر الكود ثم قمنا بتشغيل الروبوت.
إنشاء cBot للتداول وفقًا للاتجاه
في حين أن cBot السابق عمل بشكل رائع، إلا أنه استخدم منطقًا بسيطًا ولم يهتم باتجاهات السوق. سنحاول إنشاء شيء أكثر تعقيدًا باستخدام نفس النهج في الطلب كما فعلنا من قبل.
- الجملة الافتتاحية: "لنتخيل أنك مطور ماهر لـ cBot لـ cTrader. سأكون عميلك." المتطلبات المحددة: "قم بإنشاء cBot يقوم بما يلي:
- المتطلبات المحددة: "قم بإنشاء cBot. في كل شمعة، يجب أن يتحقق مما إذا كان المتوسط المتحرك لـ 50 يومًا فوق أو تحت المتوسط المتحرك لـ 200 يوم. إذا كان فوقه، يجب على الروبوت وضع أمر شراء. إذا كان تحته، يجب على الروبوت وضع أمر بيع. يجب ألا يضع الروبوت أمرًا إذا كان هناك بالفعل مركز مفتوح في نفس الاتجاه. يجب أن يكون حجم الأمر معلمة قابلة للتخصيص."
- التهذيب: "شكرًا لك على المساعدة!"
مرة أخرى، سنقوم ببساطة بنسخ ولصق الكود الذي قدمه لنا ChatGPT في نافذة محرر الكود ونحاول بناء الروبوت. إليك جميع أخطاء البناء التي نحصل عليها:
- الكود يستخدم عضو API القديم
MarketSeries. يمكننا استبداله بمجموعةBars.ClosePrices. - علينا مرة أخرى استبدال وسيطة
SymbolبـSymbolName. - يجب علينا أيضًا حذف بعض الوسائط غير الضرورية من طرق
ExecuteMarketOrderحيث أنها لا تتناسب مع أي من التجاوزات المتاحة للطريقة.
يمكننا أيضًا إلقاء نظرة على كيفية تحقيق منطقنا. في طريقة OnStart()، نقوم بتهيئة المتوسطات المتحركة الخاصة بنا. جعل ChatGPT فترات المتوسط المتحرك كمعلمات قابلة للتخصيص حتى لو لم نطلب منه ذلك. يمكننا تركها كما هي دون التأثير على المنطق الأساسي.
ومع ذلك، في طريقة OnBar()، يمكننا أن نرى أن الروبوت يضع أوامر جديدة فقط عندما لا توجد مراكز مفتوحة (Positions.Count ==0). هذا ليس ما نريده حيث نريد أيضًا التحقق من اتجاه المركز. يمكننا تعديل الكود قليلاً بحيث ننتهي بالروبوت التالي.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
لقد استخدمنا طريقة Positions.FindAll(string label) للحصول على جميع المراكز ذات التسمية المحددة وحساب عددها.
عندما نقوم ببناء الروبوت، يمكننا إضافته إلى مخطط. سنضيف أيضًا متوسطات متحركة لـ 50 و200 يوم حتى نتمكن من تقييم سلوكيات cBot. بعد الانتظار قليلاً، يمكننا أن نرى أن الروبوت يعمل كما هو متوقع. يتم وضع أوامر جديدة عند الحاجة ولكن لا يوجد أكثر من مركز مفتوح واحد في اتجاه معين.
إنشاء cBot باستخدام الذكاء الاصطناعي الآخر
الملخص
يمكن أن يكون ChatGPT أداة قيمة عندما تحتاج إلى إنشاء cBot بسرعة بمنطق محدد بدقة. في حين أن ChatGPT ينتج بعض الأخطاء، إلا أنها عادة ما تكون غير مهمة ويمكن إصلاحها بسرعة.
