مؤسسة الكندي للإستشارات المالية

مؤسسة الكندي للإستشارات المالية (http://www.alkindyfx.org/vb/index.php)
-   منتدى البرمجيات و المؤشرات والإكسبرتات ( Software ) (http://www.alkindyfx.org/vb/forumdisplay.php?f=5)
-   -   دورة برمجة المؤشرات (Indicators ) (http://www.alkindyfx.org/vb/showthread.php?t=32311)

dahmanesoft 17-09-2013 02:12 AM

دورة برمجة المؤشرات (Indicators )
 
بسم الله الرحمان الرحيم
والصلاة والسلام على رسول الله صلى الله عليه وسلم


http://im38.gulfup.com/P96rM.jpg


دورة برمجة المؤشرات (Indicators )

السلام عليكم ورحمة الله وبركاته

كما وعدتكم ستكون هذه الورشة لتعلم برمجة المؤشرات التي تعمل في بيئة التشغيل MetaTrader4 و المبرمجة بلغة MQL4

ولكن قبل البداية في برمجة أول مؤشر في هذه الورشة أرجو مراجعة موضوع

تريد تعلم لغة mql4 لبرمجة المؤشرات والإكسبريتات .... تابع معنا؟


وذلك من أجل فهم المراحل الأول لإنشاء مؤشر
للأننا هنا سنبدأ مباشرة في شرح الكود البرمجي

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

اقتباس:

المشاركة الأصلية كتبت بواسطة mahdi (المشاركة 309298)
السلام عليكم
مؤشر استراتيجية صبح صبح الغنية عن التعريف
ساشرح المطلوب:

المكونات: موفنغ 7 اكسبو و موفنغ 15 اكسبو . ارجوا ان تترك لي حرية تغيير اعدادات الموفنغ
ار اس اي مستويات 58 و 40 و ارجوا ان تترك لي حرية تغيير الاعدادات مثل المؤشر الاصلي الموجود في الميتاترايدر
الشراء: تقاطع موفنغ 7 اكسبو و موفنغ 15 اكسبو للاعلى و ار اس اي يقطع مستوى 58 للاعلى
البيع : تقاطع موفنغ 7 اكسبو و موفنغ 15 اكسبو للاسفل و ار اس اي تحت مستوى 40 للاسفل

و ارجوا ان يعطي المؤشر تنبيه و يرسل رسائل للايميل من فضلك
و شكرا لك


dahmanesoft 17-09-2013 02:32 AM

** المرحلة الأول **

1- نقوم بفتح برنامج MetaEditor
2- من شريط القوائم نختار File
3- من القائمة File نختار New
4- من التافذة التي نحصل عليها نقوم بإختيار Custom Indicator
5- نقوم بملأ المعلومات اللازمة
6- نحصل على الكود الرئيسي التالي والذي يحتوي على الدوال الأساسية init - deinit - start
كود:

//+------------------------------------------------------------------+
//|                                          sobh_sobh_Indicator.mq4 |
//|                                      Copyright 2013,dahmanesoft |
//|                                    dahmanesoft-www.alkindyfx.org |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013,dahmanesoft"
#property link      "dahmanesoft-www.alkindyfx.org"


#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                        |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                      |
//+------------------------------------------------------------------+
int deinit()
  {
//----
 
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  int    counted_bars=IndicatorCounted();
//----
 
//----
  return(0);
  }
//+------------------------------------------------------------------+


dahmanesoft 17-09-2013 03:00 AM

** المرحلة الثانية : بداية كتابة الكود البرمجي **

1- إن أول أمر برمجي نكتبه هو
كود:

#property indicator_chart_window
ونعني به أن المؤشر الذي سنبرمجه سيظهر في النافذة الرئيسية

أما كلمة property# فنعني بها أن هذا الأمر موجه للمثرجم مباشرة

2- الأمر البرمجي الثاني هو
كود:

#property indicator_buffers 4
ونعني به أننا نحتاج 4 خطوط في مؤشرنا هذا ( أقصى عدد ممكن أن نرسمه في مؤشر واحد هو 8)

3- الأمر الثالث و الرابع و .... هو
كود:

#property indicator_color1 Red
#property indicator_color2 Yellow
#property indicator_color3 DeepPink
#property indicator_color4 DarkBlue

ونعني به إختيار لون كل خط سوف نحتاجه ( في هذا المؤشر نحتاج أربع خطوط وبالتالي 4 ألوان)

GHANOOO 18-09-2013 03:06 AM

بالتوفيق اخ دحمان في دورتك التعليمية ان شاء الله يستفيد الجميع

dahmanesoft 23-09-2013 07:11 PM

4- بما أننا سوف نحتاج أربع خطوط في مؤشرنا فنحن بحاجة إلى تعريف أربع مصفوفات لتخزين القيم المستعملة

وتكون بالشكل التالي
كود:

double CrossUp[ ];
double CrossDown[ ];
double CrossUpRsi[ ];
double CrossDownRsi[ ];

بالنسبة لتسمية لديكم الحرية التامة في إختيار إسم المصفوفات

dahmanesoft 30-09-2013 01:12 PM

5- ننتقل الأن إلى الوظيفة الرئيسية init

http://im32.gulfup.com/597p3.jpg

الوظيفة SetIndexBuffer
تقوم بربط الذاكرة الوسيطة بالمصفوفة المطلوبة
لهذه الوظيفة مدخلين فقط الأول هو رقم الذاكرة الوسيطة ( 0 - 7 )
والمدخل الثاني هو اسم المصفوفة المعرفة مسبقا ( دون الأقواس المربعة [ ] )
هكذا نكون قد ربطنا المصفوف بالذاكرة الرسومية الوسيطة واي قيمة رقمية سنضعها داخل المصفوف ستظهر مباشرة على الشارت

الوظيفة SetIndexStyle
لهذه الوظيفة عدة مدخلات
المدخل الأول والثاني إجباري
الأول هو رقم الذاكرة الوسيطة (0-7)
الثاني هو نوع رسم الخط (في مؤشرنا هذا هوDRAW_ARROW)
المدخلات الثلاث الباقية ستأخذ قيم إفتراضية في حالة عدم تحديد قيم لها .

الوظيفة SetIndexArrow
لهذه الوظيفة مدخلين فقط الأول هو رقم الذاكرة الوسيطة ( 0 - 7 )
والمدخل الثاني هو رقم الرمز الذي سوف يظهر في الشارت

والجدول التالي يظهر الرموز التي يمكن أن نستعملها

http://im37.gulfup.com/cLdFg.jpg

ملاحظة
الربط بين المصفوفات والذاكرة الوسيطة وتحديد الخصائص الرسومية يتم تنفيذها مرة واحد فقط

لذلك نضع كل هذه التعليمات البرمجية داخل الوظيفة init والتي تنفذ مرة واحدة عند وضع المؤشر على الشارت


الساعة الآن 07:07 PM.

Powered by vBulletin Version 3.8.12 by vBS
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd دعم فني

جميع الحقوق محفوظة لـ منتديات الكندي للتدريب والإستشارات المالية -