-
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
-
السلام عليكم
ستستخدم الوظيفة NormalizeDouble لتحديد عدد الأرقام بعد الفاصلة
مثال :
-
اخي حسن شكرا لردك الجميل انا اقصد عندما لا يوجد فاصله كلها ارقام صحيحه وليس بعد الفاصله
-
لم أفهم سؤالك أخي، وضح بأمثلة
-
1 مرفق
هذا مثال لبعض السلع حيث ان السعر كله ارقام صحيحه معلمه بالاصفر لا يوجد فاصله مما يؤدي الى اختلاف الحساب والنتيجه
داخل المؤشرات ..
-
السلام عليكم
عندي صفقة أو أكثر تفعلت خلال اليوم ...في حال أغلقت في نفس اليوم أو اليوم التالي لا يتم فتح صفقات جديدة في نفس اليوم , يعني اليوم الذي تغلق فيه الصفقات لا يتم فيه فتح صفقات جديدة ...
مع الشكر الجزيل
-
نعم وما هو المطلوب ؟ تحويل تلك الاسعار الى ماذا ؟
-
وعليكم السلام
ستقوم بعمل دالة فرعية تقوم بحساب عدد الصفقات المغلقة في اليوم كالتالي :
ثم تكون الشروط قبل شروط فتح الصفقات كالتالي :
-
السلام عليكم
سأحاول المساعدة في برمجة هذا الإكسبرت
https://www.fxprg.com/vb/showthread.php?t=31737
لي عودة
-
وعليكم السلام
شكرا أخي الكريم،
تم تنفيذ الطلب قبل أن أرى مشاركتك
بالتوفيق إن شاء اله
-
سلام عليكم استاذ kira-h
بس بغد اذنك مساعده بي كتابة كود
اريد كود لغلق صفقات بعد عدد معين من الدقائق ساوية اول خطوه ضفتها عند كود فتح الصفقات TimeCur = TimeCurrent();
بشان اعرف توقت فتح الصفقه بس هلق شلون بدي اغلقها بعدد عدد معين من الدقائق وشكرا
-
وعليكم السلام
ستقوم بعمل دالة لمعرفة توقيت آخر صفقة مفعلة كالتالي :
ثم الشروط بالدالة الرئيسية كالتالي :
بحيث minutes متغير خارجي لعدد الدقائق
و دالة الاغلاق :
-
مشكور اخ حسن
بس سوال =minutes*60000
ليش ضرب 60000 مو ضرب 60
-
وفي هاد الكود طلعلي خطاء بي اقواس
if(TimeCurrent()-LastOpenTime())>=minutes*60000)CloseOrders();
انا عدلة عليه بس ضفة
قوس واحد اول شي بعد if
-
1 مرفق
السلام عليكم
لقد قمت ببرمجة الإكسبرت المطلوب من طرف anis
أرجو أن تراجعة كيفية كتابة الكود و كل شيئ مشروح بالعربية
و هل من نصائح أو أخطاء ؟ أو طرق أخرى أسهل أو أسرع لبرمجة نفس الأكسبرت
الأكسبرت في المرفقات
-
سأحاول المساعدة في برمجة الإكسبرت المطلوب من طرف العضو mohamad ali
موضوعه في هذا الرابط
https://www.fxprg.com/vb/showthread.php?t=31743
-
-
1 مرفق
وعليكم السلام
الاكسبيرت سليم لكن لازم تضيف شرط فتح الصفقة عند اول افتتاح للشمعة وكذلك شرط عدد الصفقات يكون بالشارت اللي عليه الاكسبيرت فقط، وليس كل الشارتات
راجع الكود المرفق
-
السلام عليكم
استخدمت دالة iHigh و iLow لتحديد مستويات الهاي واللو لليوم السابق والتي يتم على أساسها فتح صفقات ... المشكلة عند عدم إغلاق الصفقات في نفس اليوم (اليوم الحالي ) تتغير هذه القيم - كيف استطيع تثبيت هذه القيم طالما هناك صفقات مفعلة قد تستمر يوم او أكثر ؟؟؟
-
وعليكم السلام
ستعتمد على المستويات في بداية فتح الصفقات فقط، وبعدها استخدم دالة تستخرج سعر آخر صفقة حسب النوع وعلى اساسها تفتح الصفقات الموالية
-
السلام عليكم استاذ ....بالنسبة لعدد الصفقات اليومية - يجب أن أبحث في الهيستوري وليس التريد . صحيح ؟ النقطة الثانية لم تنجح الدالة (في الكومنت لم تعطي أي قييمة ) مع ملاحظة انه يوجد أوامر معلقة يتم حذفها هل ثؤثر على عمل الدالة ؟ مع جزيل الشكر
-
وعليكم السلام
نعم صحيح يجب البحث في الهيستوري
بالنسبة للنقطة الثانية غير واضحة
-
يعطيك العافية اخي
لو سمحت انني اعمل على جمع اربع اكسبيرتات باكسبيرت واحد، احتاج دالة لتنظيم عملهم بشكل دوري بمعنى
ان كان اتجاه السعر صاعد يعمل الاكسبيرت الاول
ان كان قد تم كسر اتجاه هابط و اصبح صاعدا يتوقف الاكسبيرت الاول و يعمل الثاني
ان كان اتجاه هابط يعمل الاكسبيرت الثالث
و ان كان قد تم كسر اتجاه صاعد و تحول للهبوط يتوقف الثالث ليعمل الرابع
اتمنى ان يكون الشرح واضحاً و شكراً جزيلاً مسبقاً
-
ستجعل لكل اكسبيرت دالة فرعية، ثم تضع شرط قبل كل دالة بالدالة الرئيسية
مثال لمقارنة الشمعة مع اتجاه الموفينج :
-
سلام عليكم اخ kira-h
في مجال تعطني فكره عن برمجة شبكه العصبيه ولا صعبه كتير بس الخطوات الاوله لانشاء شبكه عصبيه وطرق التعامل معها والكودات المستخدمه وشكرا جزيلا
-
وعليكم السلام
هذا موضوع كبير،،،
باختصار لكي تتمكن من استخدام الشبكات العصبية مع الإكسبرتات فلا بد من الخطوات التالية :
1- فهم عمل الشبكات العصبية بالتفصيل وأنواعها وكيف تتعامل مع المشاكل.
2- يكون لديك خبرة بالتحليل وتكتشف طرق ممكن تؤدي لنجاح مع معلوماتك المسبقة عن قدرة الشبكات على الفهم.
3- فهم كيف يمكنك نقل بيانات من التشارت وتخزينه بملف ثم تقرأه ببرنامج آخر.
قد تستعمل اسكريبت يخزن البيانات المطلوبة، وبعد ذلك يدرب البرنامج الشبكة وتنقل المعادلة الخاصه مع الأوزان المدربه للأكسبرت.
4- تحتاج لشبكة متعددة الطبقات أو شبكات أفضل منها كي تتمكن من عمل أكسبرت ناجح.
يمكنك البحث بالـ google ستجد الكثير من الشروحات وطرق عمل الشبكات العصبية
-
مشكور استاذ حسن هل قرائة عنها وفهمتها بس ما عم احسن نزل ولا شبكه عصبيه احسن استخدمها في فوركس او شلون بدي اتعامل معها ساويت شبكه عصبيه على اكسل بس كتير بدائيه مالح تفيدني بشي يلي بدي ياه اذا في عنك شبكه عصبيه استخدمتها انت قبل في انشاء اكسبريت برجو منك ترفقها
-
العفو اخي
بالنسبة لي لم يسبق لي التعامل مع الشبكات العصبية
افتح موضوع نقاش ربما تجد من يفيدك بهذا الأمر
-
-
1 مرفق
لقد قمت ببرمجت أكسبرت المطلوب من طرف العضو
Mouhamed Ali
الخاص بإغلاق الصفقات عند حدوث تقاطع
لكنك سبقتني في ذالك
كل شيئ مشروح بالعربية داخل الكود لكيفية البرمجة
أرجو الإطلاع على الكود و مراجعت صحته و إعطاء بعض النصائح
لأنني مبتدأ في البرمجة
إذا كانت البرمجة صحيحة أخبرني بذالك لكي أرفقه للعضو الذي طلبه لأنني لاحظت أن نسختك التي أرفقتها له لم تعمل معه
الأكسبرت في المرفقات
الأكسبرت في المرفقات
-
السلام عليكم كل عام انتم بخير بمناسبة حلول الشهر الكريم
تحية خاصة للاخ العزيز حسن كيرا ومطلوب منه مساعدة عاجلة
كيفية تصدير قيمة لمتغير داخل مؤشر من خلال اكسبيرت
بالعربي عايز اغير قيم موجودة في مؤشر من خلال الاكسبيرت الذي يعمل مع هذا المؤشر اثناء تشغيل الاكسبيرت