اخي هي تظهر عند انشاء مؤشر جديد ولا تظهر عند انشاء اكسبيرت جديد
اخي هي تظهر عند انشاء مؤشر جديد ولا تظهر عند انشاء اكسبيرت جديد
السلام عليكم
OnChartEvent أحد الدوال التي تم إضافتها بالتحديث الجديد للغة MQL4 لرسم أزرار على الشارت، تمكنك من التنفيذ بضغطة زر مثل تنفيذ البيع او الشراء او الاغلاق...
تعريفها لغويا كالتالي:
بحيث :
id تحفظ نوع الحدث الذي تم ( تحرك الماوس - ضغط على الشارت - تحريك كائن - ضغط على زر في الكيبورد ... )
وأنواعها :
للضغط على زر على الكيبورد
تحرك الماوس على الشارت
رسم كائن جديد على الشارت
تغيير قيم كائن
حذف كائن
كليك على الشارت
إضافة كائن على الشارت
الإنتهاء من تعديل نص في الكائن
تعديل قيم الشارت
عمل كائن فرعي محدد
المتغيرات الثلاث الأخرى تحفظ قيمة معينه حسب نوع الحدث
فمثلا بالنسبه للحدث CHARTEVENT_OBJECT_CREATE
sparam تحفظ إسم الكائن الذي تم رسمه
مثلا CHARTEVENT_OBJECT_CLICK
lparam تحفظ قيمة الإحداثي الأفقي
dparam تحفظ قيمة الإحداثي الراسي
sparam تحفظ إسم الكائن الذي تم الضغط عليه
مثال لعمل اكسبيرت يقوم برسم أزرار على الشارت البيع، الشراء والاغلاق...
دالة لرسم الأزرار على الشارت كالتالي:
ثم بداخل الدالة OnInit نكتب الدوال التالية:
الآن نعود مرة أخرى للداله OnChartEvent
في البداية نقوم بإضافة شرط لمعرفة إذا ما تم الضغط على أي زر على الشارت بإستدعاء إسمه
بقي فقط أن نضيف الأوامر كما هي محدده في الكومنتات لكن قبل ذلك يجب أن نقوم بمعرفة قيم حجم اللوت و الهدف و الاستوب :
أيضا سنضيف كود آخر بحيث بعد الضغط على الأزار تعود إلى طبيعتها مره أخرى
وسيكون الكود في النهاية بشكل كامل :
بقي الآن أن نضيف كود لزيادة أو تقليل حجم اللوت عندما يتم الضغط على زر + أو -
ولا ننسى الجزء البسيط وهو دالة إغلاق الصفقات
وبذلك يكون الإكسبرت جاهز للتجربه و العمل
مرفق الإكسبرت
(منقول)
//----
وللمزيد من الملعومات راجع الصفحة التالي:
OnChartEvent
التعديل الأخير تم بواسطة kira-h ; 20-05-2017 الساعة 06:29 PM
السلام عليكم ... ممكن شرح كيف أعمل مصفوفة أزواج كي يعمل عليها الإكسبرت بوقت واحد
وعليكم السلام
مثال لمصفوفه تضع فيها اسماء العملات التي تريد إستخدامها ثم تقوم بإستدعائها داخل الحلقه
أستاذ حسن بالنسبة لموضوع مصفوفة الأزواج عند عمل تيست للإكسبرت تظهر رسائل خطاء unknown Symboly name , كيف يمكن عمل التيست لإكسبرت من هذا النوع ؟؟
شكرا جزيلا اخي الكريم
الخطأ معناه أن الاكسبيرت لم يتعرف على الازواج ذات ملحقات من نوع perfix او suffix مثل EURUSDpro ... أو mEURUSD
سنقوم بالتعديل على الدالة بإضافة الملحق على اسم الزوج
مثلا منصتي بها ملحق pro بعد الاسم بجميع الأزواج مثلا EURUSDpro و NZDUSDpro....
سنقوم بالتعديل على الدالة كالتالي:
//--------
أو تجعل الملحقات كمتغيرات خارجية كالتالي :
التعديل الأخير تم بواسطة kira-h ; 12-06-2017 الساعة 01:29 AM
احسنت اخي حسن بارك الله في علمك
بارك الله فيك استاذ حسن وزادك الله علم على علمك
انا جربة هذا الكود فلم يظهر لى اخطاء
اخي العزيز حسن
من المعروف ان المؤشرات تحسب قيم السعر كالاتي
1.1111
فكيف نجعلها تحسب السعر للارقام الصحيحه مثلا
11111
السلام عليكم
ستستخدم الوظيفة NormalizeDouble لتحديد عدد الأرقام بعد الفاصلة
مثال :
العلامات المرجعية