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

أصبح مستشارو التداول الخبراء بالذكاء الاصطناعي هنا — ولكنك لا تزال بحاجة إلى اختبارهم وتحسينهم.
إذا كنت قد استخدمت بالفعل أدوات ذكاء اصطناعي مثل 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) لاختبار كيفية عمل روبوتك خطوة بخطوة.
لماذا يُعد اختبار الصفقات تاريخيًا أمرًا بالغ الأهمية
تُعد الروبوتات المولَّدة بالذكاء الاصطناعي طريقة رائعة لأتمتة تداولك دون الحاجة إلى البرمجة من الصفر. ولكن حتى مع الذكاء الاصطناعي، لا تزال استراتيجيتك بحاجة إلى مراجعات بشرية وتعديلات لتعمل جيدًا في ظروف السوق الحية.
قبل الانتقال إلى التداول الحقيقي، خصص وقتًا للاختبار الشامل وأجرِ تحسينات صغيرة. حتى الإصلاحات البسيطة يمكن أن تحدث فرقًا كبيرًا في مدى اتساق أداء المستشار الخبير لديك وفعاليته.