السلام عليكم
OnChartEvent أحد الدوال التي تم إضافتها بالتحديث الجديد للغة MQL4 لرسم أزرار على الشارت، تمكنك من التنفيذ بضغطة زر مثل تنفيذ البيع او الشراء او الاغلاق...
تعريفها لغويا كالتالي:
بحيث :
id تحفظ نوع الحدث الذي تم ( تحرك الماوس - ضغط على الشارت - تحريك كائن - ضغط على زر في الكيبورد ... )
وأنواعها :
للضغط على زر على الكيبورد
تحرك الماوس على الشارت
رسم كائن جديد على الشارت
تغيير قيم كائن
حذف كائن
كليك على الشارت
إضافة كائن على الشارت
الإنتهاء من تعديل نص في الكائن
تعديل قيم الشارت
عمل كائن فرعي محدد
المتغيرات الثلاث الأخرى تحفظ قيمة معينه حسب نوع الحدث
فمثلا بالنسبه للحدث CHARTEVENT_OBJECT_CREATE
sparam تحفظ إسم الكائن الذي تم رسمه
مثلا CHARTEVENT_OBJECT_CLICK
lparam تحفظ قيمة الإحداثي الأفقي
dparam تحفظ قيمة الإحداثي الراسي
sparam تحفظ إسم الكائن الذي تم الضغط عليه
مثال لعمل اكسبيرت يقوم برسم أزرار على الشارت البيع، الشراء والاغلاق...
دالة لرسم الأزرار على الشارت كالتالي:
ثم بداخل الدالة OnInit نكتب الدوال التالية:
الآن نعود مرة أخرى للداله OnChartEvent
في البداية نقوم بإضافة شرط لمعرفة إذا ما تم الضغط على أي زر على الشارت بإستدعاء إسمه
بقي فقط أن نضيف الأوامر كما هي محدده في الكومنتات لكن قبل ذلك يجب أن نقوم بمعرفة قيم حجم اللوت و الهدف و الاستوب :
أيضا سنضيف كود آخر بحيث بعد الضغط على الأزار تعود إلى طبيعتها مره أخرى
وسيكون الكود في النهاية بشكل كامل :
بقي الآن أن نضيف كود لزيادة أو تقليل حجم اللوت عندما يتم الضغط على زر + أو -
ولا ننسى الجزء البسيط وهو دالة إغلاق الصفقات
وبذلك يكون الإكسبرت جاهز للتجربه و العمل
ملف مرفق 839
مرفق الإكسبرت
(منقول)
//----
وللمزيد من الملعومات راجع الصفحة التالي:
OnChartEvent
العلامات المرجعية