-
Global Variables
وعليكم السلام
Global Variables تعني المتغيرات العامة، يعني متغيرات يمكن تغيير قيمها او قراءتها من قبل الدوال على نطاق أوسع، حيث تخزن القيم في الجهاز لمدة 4 أسابيع منذ لحظة استدعائها،
ويتم استدعاؤها بشكل عادي حتى لو انقطع السيرفر أو الكهرباء أو تغيير الحساب...،
ويمكن رؤية الـ global variables من المنصة بالدخول الى Tools أو بالضغط على F3 ستجد قيمها وتاريخ تسجيلها بالجهاز.
من أهم تطبيقات الـ Global Variables انها حلقة الوصل والاتصال بين مجموعة اكسبيرتات تتبادل المعلومات بينها، كيف؟
لنفترض انك تشغل اكسبيرت على شارت يورودولار واكسبيرت اخر يعمل على شارت آخر وتريد ان يراقب احدهما الاخر هل دخل بيع ام شراء حتى يفعل نفسه لمهمة محددة. هنا يأتي دور الـ global variables بان تعرف متغير على انه global variable في اكسبيرت ثم الاكسبيرت الاخر يقرأ هذا المتغير وعليه يحدد مهمته.
وللعمل بمتغيرات الجلوبال نستخدم الوظائف التالية :
يتم من خلاله إنشاء متغير جلوبال نحدد له اسم معين name ونعطيه قيمة معينة value
يتم من خلاله استدعاء المتغير ذو الاسم name الذي قمنا بانشائه بالـ GlobalVariableSet
هذه الوظيفة تقوم بحذف متغير الجلوبال ذو الاسم name
هذه الوظيفة منطقية تقوم بالبحث عن متغير الجلوبال المحدد بالاسم name، تعود بـ true أو false
للمزيد من المعلومات راجع الصفحة التالية :
GlobalVariables
-
السلام عليكم
جزاك الله خيراااااااااااااااااااااااااااااااااا
شكر ا
-
عند إنشاء إكسبرت جديد ظهرت دالة جديدة
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
ممكن شرحها وماذا نستفيد منها ....
مع مثال صغير إن أمكن
مع جزيل الشكر
const string &sparam)
-
اخي هي تظهر عند انشاء مؤشر جديد ولا تظهر عند انشاء اكسبيرت جديد
-
2 مرفق
OnChartEvent
السلام عليكم
OnChartEvent أحد الدوال التي تم إضافتها بالتحديث الجديد للغة MQL4 لرسم أزرار على الشارت، تمكنك من التنفيذ بضغطة زر مثل تنفيذ البيع او الشراء او الاغلاق...
تعريفها لغويا كالتالي:
بحيث :
id تحفظ نوع الحدث الذي تم ( تحرك الماوس - ضغط على الشارت - تحريك كائن - ضغط على زر في الكيبورد ... )
وأنواعها :
للضغط على زر على الكيبورد
تحرك الماوس على الشارت
رسم كائن جديد على الشارت
تغيير قيم كائن
حذف كائن
كليك على الشارت
إضافة كائن على الشارت
الإنتهاء من تعديل نص في الكائن
تعديل قيم الشارت
عمل كائن فرعي محدد
المتغيرات الثلاث الأخرى تحفظ قيمة معينه حسب نوع الحدث
فمثلا بالنسبه للحدث CHARTEVENT_OBJECT_CREATE
sparam تحفظ إسم الكائن الذي تم رسمه
مثلا CHARTEVENT_OBJECT_CLICK
lparam تحفظ قيمة الإحداثي الأفقي
dparam تحفظ قيمة الإحداثي الراسي
sparam تحفظ إسم الكائن الذي تم الضغط عليه
مثال لعمل اكسبيرت يقوم برسم أزرار على الشارت البيع، الشراء والاغلاق...
دالة لرسم الأزرار على الشارت كالتالي:
ثم بداخل الدالة OnInit نكتب الدوال التالية:
الآن نعود مرة أخرى للداله OnChartEvent
في البداية نقوم بإضافة شرط لمعرفة إذا ما تم الضغط على أي زر على الشارت بإستدعاء إسمه
بقي فقط أن نضيف الأوامر كما هي محدده في الكومنتات لكن قبل ذلك يجب أن نقوم بمعرفة قيم حجم اللوت و الهدف و الاستوب :
أيضا سنضيف كود آخر بحيث بعد الضغط على الأزار تعود إلى طبيعتها مره أخرى
وسيكون الكود في النهاية بشكل كامل :
بقي الآن أن نضيف كود لزيادة أو تقليل حجم اللوت عندما يتم الضغط على زر + أو -
ولا ننسى الجزء البسيط وهو دالة إغلاق الصفقات
وبذلك يكون الإكسبرت جاهز للتجربه و العمل
ملف مرفق 839
مرفق الإكسبرت
(منقول)
//----
وللمزيد من الملعومات راجع الصفحة التالي:
OnChartEvent
-
-
السلام عليكم ... ممكن شرح كيف أعمل مصفوفة أزواج كي يعمل عليها الإكسبرت بوقت واحد
-
وعليكم السلام
مثال لمصفوفه تضع فيها اسماء العملات التي تريد إستخدامها ثم تقوم بإستدعائها داخل الحلقه
-
-
1 مرفق
اخي العزيز حسن
من المعروف ان المؤشرات تحسب قيم السعر كالاتي
1.1111
فكيف نجعلها تحسب السعر للارقام الصحيحه مثلا
11111