دليل اختبار وتحسين المستشار الخبير بالذكاء الاصطناعي | مدونة Deriv
أتقن مستشارك الخبير بالذكاء الاصطناعي باستخدام تقنيات الاختبار المناسبة. يغطي دليلنا المشكلات الشائعة وطرق الاختبار وتحسين المستشار الخبير للحصول على بوتات تداول موثوقة.
بقلم مكتب ديريف · 21 أبريل 2025 · 4 دقيقة للقراءة

المستشارون الخبراء للتداول بالذكاء الاصطناعي أصبحوا متاحين — لكنك ما زلت بحاجة إلى اختبارهم وتحسينهم.
إذا كنت قد استخدمت بالفعل أدوات الذكاء الاصطناعي مثل Claude أو ChatGPT لإنشاء مستشار خبير لـ Deriv MT5 أو cBot لـ Deriv cTrader، فأنت على بداية جيدة. لكن حتى عندما يبدو الكود صحيحًا، قد يحتوي على أخطاء تؤثر على طريقة عمل البوت.
قبل تشغيل المستشار الخبير (EA) في سوق حقيقي، من المهم اختباره والتأكد من أنه يعمل بالطريقة التي تتوقعها.
في هذا الدليل، سنستعرض أخطاء البرمجة الشائعة في المستشارين الخبراء المُنشأين بالذكاء الاصطناعي، وكيفية إصلاحها، ونصائح عملية لتحسين أداء البوت الخاص بك.
أخطاء برمجة MQL5 الشائعة في الذكاء الاصطناعي
إليك بعض المشكلات الأكثر شيوعًا التي تُوجد في المستشارين الخبراء المُنشأين بالذكاء الاصطناعي، مع طرق تصحيحها:
- خطأ المعرّف غير المُعرَّف في MQL5
يظهر هذا الخطأ عندما يستخدم البوت متغيرًا أو اسمًا لم يتم تعريفه بشكل صحيح، مثل غياب معامل أو استخدام اسم غير صحيح في مؤشرات مثل iMA().
الإصلاح:
تحقق من معاملات المؤشر وتأكد من أن جميع أسماء المتغيرات تطابق ما هو متوقع في MetaEditor (أداة البرمجة في MT5).
- غياب دوال تنفيذ صفقات الشراء/البيع
تتخطى بعض البوتات المُنشأة بالذكاء الاصطناعي المنطق الأساسي لفتح الصفقات.
الإصلاح:
أضف يدويًا دوال تنفيذ الصفقات الأساسية. إليك مثالًا على هيكل أساسي لوضع أمر شراء:
void OpenBuy() {
MqlTradeRequest request; MqlTradeResult result;
request.action = TRADE_ACTION_DEAL;
request.type = ORDER_TYPE_BUY;
request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
request.volume = 0.1; request.magic = 12345;
OrderSend(request, result);
}
تأكد أيضًا من تضمين منطق أوامر البيع وتحديد الشروط التي يجب بموجبها تنفيذ الصفقات.
- شروط حلقات غير صحيحة في Deriv cTrader
في Deriv cTrader، يجب أن يعمل منطق البوت داخل دوال محددة مثل OnBar() أو OnTick(). يتم تشغيل هذه الدوال تلقائيًا عند تحرك السوق. إذا وُضع الكود الخاص بك خارج هذه الأقسام، مثلًا في حلقة خاطئة أو في النطاق العام، فلن يعمل كما هو متوقع.
الإصلاح:
تأكد من معالجة الشموع والنقاط داخل OnBar() أو OnTick(). سيتيح ذلك لبوتك الاستجابة بشكل صحيح للنقاط أو الشموع الجديدة أثناء الاختبار الرجعي والتداول المباشر.
- حساب خاطئ لحجم اللوت بناءً على نسبة من الرصيد
عندما يحاول الذكاء الاصطناعي تحديد حجم اللوت بناءً على رصيد حسابك (مثل المخاطرة بنسبة 2% لكل صفقة)، قد يتخطى تفصيلًا مهمًا — حجم العقد. قد يؤدي ذلك إلى أحجام لوت غير دقيقة. لن يتسبب هذا في خطأ برمجي، لكن في الاختبار ستلاحظ أحجام صفقات لا تتوافق مع إعدادات المخاطر لديك، مما ينتج عنه تعرض زائد أو ناقص في الصفقات المباشرة.
الإصلاح:
استخدم صيغة لحجم اللوت تأخذ في الاعتبار حجم العقد، مثل:
//-----------------------------------------------------------------
double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);
double riskMoney = accountBalance * (RiskPercent / 100.0);
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double pointValue = tickValue / tickSize;
double contractSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
if(contractSize > 0)
pointValue = pointValue / contractSize;
double lotSize = riskMoney / (StopLossPoints * pointValue);
double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
lotSize = MathMax(lotSize, minLot);
lotSize = MathMin(lotSize, maxLot);
lotSize = MathFloor(lotSize / lotStep) * lotStep;
- أخطاء أخرى
إذا واجهت أحد هذه الأخطاء — أو أي خطأ آخر — يمكنك دائمًا طلب المساعدة من نموذج الذكاء الاصطناعي لتحديد المشكلة وإصلاحها.
ما عليك سوى نسخ رسالة الخطأ والكود ذي الصلة، ثم مشاركتهما مع نموذج الذكاء الاصطناعي. في معظم الحالات، سيكون قادرًا على تحديد المشكلة وتقديم إصلاح أو اقتراح حلول ممكنة.
نصيحة: نفّذ دائمًا اختبارًا رجعيًا قبل الانتقال إلى التداول المباشر. مثل هذه المشكلات لا تظهر إلا عند اختبار الاستراتيجية ببيانات السوق الحقيقية.
حسّن مستشارك الخبير المُنشأ بالذكاء الاصطناعي
بمجرد أن يعمل البوت الخاص بك، يمكنك إجراء تغييرات بسيطة لتحسين أدائه واستقراره. إليك بعض الحيل الشائعة للقيام بذلك:
- أضف منطق معالجة الأخطاء لإدارة السلوك غير المتوقع أثناء التقلبات العالية أو مشكلات الاتصال.
- استخدم وقف خسارة متحرك لتأمين الأرباح المحتملة عندما يتحرك السوق لصالحك.
- اختبر استراتيجيتك رجعيًا باستخدام البيانات التاريخية لمعرفة كيف كان أداؤها.
- نظّف الكود ونسّقه لتحسين قابلية القراءة والكفاءة. سيسهّل ذلك تحديثه أو استكشاف أخطائه وإصلاحها لاحقًا.
نصيحة: استخدم MetaEditor Debugger (على MT5) لاختبار كيفية تشغيل البوت خطوة بخطوة.
لماذا يُعد اختبار الصفقات رجعيًا أمرًا بالغ الأهمية
تُعد البوتات المُنشأة بالذكاء الاصطناعي طريقة رائعة لأتمتة تداولك دون الحاجة إلى البرمجة من الصفر. لكن حتى مع الذكاء الاصطناعي، ما زالت استراتيجيتك بحاجة إلى فحوصات وتعديلات بشرية لتعمل بشكل جيد في الظروف المباشرة.
قبل الانتقال إلى التداول المباشر، خصص وقتًا للاختبار الشامل وإجراء تحسينات بسيطة. حتى الإصلاحات الطفيفة يمكن أن تُحدث فرقًا كبيرًا في مدى اتساق وفعالية أداء المستشار الخبير الخاص بك.