النتائج الشائعة

$ £ ¥
¥ £ $

Error 4302 في ميتاتريدر5: تعذر تحميل المؤشر المخصص

أحد الأخطاء التي قد تواجهها أثناء استخدام ميتاتريدر5 هو Error 4302 - ’تعذر تحميل المؤشر المخصص‘. يشرح هذا الدليل سبب حدوث هذا الخطأ وبعض الطرق الممكنة لإصلاحه.

ماذا يعني Error 4302؟

كما يتضح من رسالة الخطأ، يحدث Error 4302 عندما تفشل منصة ميتاتريدر5 في تحميل مؤشر مخصص، إلا أنها لا تُخبرنا بسبب حدوث ذلك. يشير وصف الخطأ على موقع MQL5 أن ’الرمز غير محدد في نافذة مراقبة السوق.‘ يظهر هذا الخطأ عادةً عندما يحاول سكربت أو مستشار خبير أو مؤشر استدعاء دالة iCustom() لرمز لم تتم إضافته إلى نافذة مراقبة السوق.

دعنا نُلقي نظرة على مثال لفهم كيفية حدوث هذا الخطأ بشكل أفضل. في هذا المثال، أنشأنا مؤشرًا مخصصًا بسيطًا يسمى TestIndicator باستخدام كود البرنامج الافتراضي الذي يضعه محرر MetaEditor عند إنشاء مؤشر جديد. في الخطوة التالية، أنشأنا سكربت بسيط يستخدم الدالة iCustom() لاستدعاء المستشار الخبير وإرجاع معرّفه كنتيجة.

void OnStart()
{
    string symbol = "EURUSD"; // Replace with the symbol you removed
    ENUM_TIMEFRAMES timeframe = PERIOD_M1;     // 1-minute timeframe
 
    // Attempt to call the custom indicator
    int handle = iCustom(symbol, timeframe, "TestIndicator");
 
    if (handle == INVALID_HANDLE)
    {
        int error_code = GetLastError();
        Print("Error Code: ", error_code);
    }
    Else
    {
        Print("Custom indicator handle for ", symbol, " is ", handle);
    }
}

كما ترى، يستدعي الاسكربت المؤشر خصيصًا للرمز EUR/USD. إذا كان الرمز موجودًا في نافذة مراقبة السوق، فسيعمل الاسكربت بدون مشاكل مع معرّف المؤشر.

الاسكربت يعمل بدون أخطاء

ولكن إذا أزلنا EUR/USD من نافذة مراقبة السوق، فسيظهر Error 4302 في علامة تبويب Experts في منصة ميتاتريدر5. علاوة على ذلك، تم إعداد الاسكربت ليُظهر رمز الخطأ إذا كان غير قادر على إرجاع المعرّف المناسب، بحيث يؤكد أن رمز الخطأ في هذه الحالة هو 4302.

فشل الاسكربت مع Error 4302

كيفية إصلاح Error 4302؟

إضافة الرمز إلى نافذة مراقبة السوق

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

تغيير الرمز في الكود

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

عدم تحديد الرمز في الدالة iCustom()

بالنسبة لأولئك الذين يقومون ببرمجة المستشارون الخبراء والمؤشرات بأنفسهم، أو يريدون التعمق في تكويد المستشار الخبير أو المؤشر الذي لا يعمل معهم، فإن الحل الأفضل هو عدم تحديد الدالة iCustom(). بدلاً من ذلك استخدم المعلمةNULL أو Symbol() في المكان الذي تطلب فيه الدالة إدخال الرمز. سيؤدي ذلك إلى استدعاء الدالة للرمز المحدد حاليًا.

خاتمة

يظهر الخطأ Error 4302 عندما يستدعي اسكربت أو مستشار خبير أو مؤشر الدالة iCustom() لرمز غير مُضاف حاليًا إلى نافذة مراقبة السوق.

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