• 9:18 صباحاً




الجديد فى برمجة الميتاتريدر MQL4=MQL5 (تعليم- القوائم Enumerations )

إضافة رد
أدوات الموضوع
عضو جديد
تاريخ التسجيل: Mar 2011
المشاركات: 39
خبرة السوق : 3 الى 5 سنوات
معدل تقييم المستوى: 0
IAEBusiness is on a distinguished road
16 - 04 - 2015, 02:38 AM
  #1
IAEBusiness غير متواجد حالياً  
Lightbulb الجديد فى برمجة الميتاتريدر MQL4=MQL5 (تعليم- القوائم Enumerations )
بسم الله الرحمن الرحيم

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

اخوانى الكرام هذا موضوع تعليمى ، حيث ان بعد ان اصبح بامكان المبرمجين على منصة الميتاتريدر4 ان يبرمجوا بلغة MQL4 او لغة MQL5 وهى تتيح اشياء واضافات كثير كلغة برمجة متقدمة حديثة و كانت من قبل مقتصرة على منصة الميتاتريدر5 فقط.

وكنت اتكلم عن جزء فيها كـ لفت نظر اليها فطلب منى اخى سمير توضيحها ، فلك اخى و لكل اخوانى اهدى هذا الشرح ، فاللهم تقبل.
اقتباس:
المشاركة الأصلية كتبت بواسطة سمير محمد ارمان مشاهدة المشاركة
السلام عليكم
بجد الشكر قليل لك
جزاك الله كل خير على هذه المساعده
بس لو ممكن كيف يتم الاستفاده منهم فى داخل الكود
وهل العمل عليهم فى المؤشرات فقط او الاكسبيرت
ولك الشكر والتقدير
تحياتى لك
لا يا اخوان يمكن ان تستخدموها فى اي شئ ، مؤشرات او اكسيبرتات او اسكريبتات

يعنى تابعنى يا سيدى ، انت مثلا حتعمل اكسيبرت يعتمد على موشر موفينج افريج مثلا
و عاوز تعطى المستخدم خيارات الموفينج كمتغيرات خارجية

مثلا : الـ MA method و خيارتها


فكنا بنشرح له الكلام هذا فى استرينج نسميه اى اسم حيث سيكون كنوع من الشرح
مثلا نقوله

[PHP]
extern string SP3 ="0 = Simple averaging, 1 = Exponential averaging , 2=Smoothed averaging , 3 =Linear-weighted averaging";
extern int MA_Method = 0;
[/PHP]و رغم كل ده ممكن يجى المستخدم و يحط 7 مثلا و هو مش واخد باله !!

او كمثال اخر الاطار الزمنى ،
كنا نطلب من المستخدم ادخال الاطار الزمنى بعدد القائق ، ويجلس المستخدم يحفظ او يحسب ال 4 ساعات = 60 دقيقة * 4 = 240

وايضا ممكن و هو بيدخلهم يتلخبط او يغط رقم بجانب رقم و يؤدى ذلك الى خطأ البرنامج و الحسابات كلها

مما جعل الشركة تضيف ما يعرف بـ Enumerations ( او على حسب ترجمة جوجل : التعددات ، لكنى ارى ان اسم القوائم او المتسلسلات يكون افضل - و للعلم هى موجودة فى لغات البرمجة الاخرى)

وكل شئ له قيم متعددة محددة ادخلت له Enumerations

و هذا الانيوميراشن بالظبط عبارة عن قائمة List مرتبة من الصفر و حتى اخر رقم للخيارات-1 و لكن يظهر فى المقابل ليس الرقم 0و1و2و3 .. ولكن يظهر ما يقابل هذا الرقم كما فى هذه الصورة



فاصبح المستخدم لا يحتاج الشرح ، واصبح امكانية ان يدخل مثلا قيمة اطار زمنى خطأ مثل 3 او 4 ! هى نسبة ضيلة جدا او تكاد تكون منعدمة

لمعرفة جميع بهذه القوائمة الجاهزة ، افتح المساعدة Help الخاص بال MetaEditor و اذهب الى MQL4 Referanec حيفتح لك مرجع الاكواد ، اذهب فيه الى صفحة الفهرس Index و كتب فقط enum

حيث ان شركة الميتاكوت سجلت كل هذه القوائم فى متغيرات اسمها يبدأ بـ enum

فالاطار الزمنى اصبح له قائمة باسم ENUM_TIMEFRAMES
حجم الخط الترند ENUM_LINE_STYLE
وغيره كثير . .

وازيدك واخوانى من الشعر بيت و هما مالم اكن اعرفه قبل كتابة هذا المقال و كنت قد تواصلت مع شركتهم لاضافة هذا الامر كاقتراح من قبل. -

الخلاصة من الموضوع : اللى بيعلم الناس ربنا بيزيده علم ، فزكاة العلم تعليمه ، تجد يفتح ورشة عمل و موضوع تعليمى للمناقشة يضع فيه ما لديه من علم فيخرج منه وقد اتاه الله زيادة فى العلم اضعاف مضاعفة.
{ وما آتيتم من زكاة تريدون وجه الله فأولئك هم المضعفون }
صدق الله العظيم

نرجع للموضوع ، و ليس هذا فحسب ولكن اصبح بامكانك ان تصنع انت القائمة الخاصة بك و ليس هذا و حسب بل بل تسميها باسماء تظهر للشخص غير الاسماء الحقيقية الداخلية

نشوف مع بعض ،

مثلا حنعمل متغير باسماء الشهور ، يختار منها المستخدم

[PHP]

enum months
{
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
};


[/PHP]و ليس شرط ان تضع القائمة هذه تحت بعض ، لا ، فهذا للنظام فقط ولكن اهم شئ هو ان تفصل بين كل قيمة بفاصلة فقط

[PHP]
enum months {January,February,March,April,May,June,July,August ,September,October, November, December };
[/PHP]ثم يلى التعريف بقائمة المتغيرات التى صنعتها هذه ، تنشئ متغير و تضعه كمتغير خارجى للمستخدم - يمكن ان تجعله بنفس اسم القائمة او اسم مختلف

[PHP]
extern months months = 0;
او
extern months monthOfYear = January;
[/PHP]


والان الى الاجزاء المتقدمة :


ليس شرط او لازم ان تتلزم بالترقيم التلقائى لهذه القيم ، اقصد ان يبدأ بـ 0 مثلا و بعد ذلك سيكون اجبارى 1 ثم 2 ثم 3 و هكذا

و لكن يمكنك ان تختار بما يبدأ و هو بشكل الى سيضيف 1 لكل عضو فى هذه القائمة
وهذا عبر وضع "=" ثم رقمه.

و ليس هذا فقط ، بل يمكنك ان تتوقف فى منتصف القائمة مثلا و تختار عضو تعطى له قيمة اخرى مختلفه ( لكن مع العلم ان البرنامج سيضيف ايضا 1 على قيمته لكل عضو من بعده)

مثال :

كود:
enum intervals  
   {
    month=1,     
    two_months,  
    quarter,     
    halfyear=6,  
    year=12,     
   };
فانت فى المثال هذا ، حددت ان تبدأ بـ 1 لانك ستستخدم هذا المدخل فى برنامج داخليا و هى يعنى شهر ولو تركته اليا سيصبح 0 و انت مثلا تريد ان تاخذ قيمته و تضربها فى شئ مباشرتا مثلا ، فكان فى الماضى لا ينفع او كنا نتحايل باضافة +1 على الاختيار

quarter اى ربع سنوي

و نجد فى هذا المثال انك لم تدخل شي للعضو الثانى و الثالث فى القائمة - يمكنك ان تضعها بنفسك- ولكن البرنامج بشكل الى كما تكلمنا سيضيفها ، فالعضو الاول اخذ قيمة تساوى واحد ، اذن الثانى قيمة العضو الذى قبله +1 فيصير 2 و هكذا للثالث ايضا

ثم اردت ان تتوقف حيث ان النصف سنوي HalfYear يساوى 6 شهور ولو تركته بلا تحديد سيجعلها البرنامج = 4 و هو مالا تريده و اخيرا ايضا السنة year وهى تساوى 12 و لو تركتها لاخذت 7

و الان الى اجمل ما فى الموضوع و هو ختامه معنا

وهو انك لو اضفت تعليق نصى بجانب اسم العضو فى السلسلة سيظهر هذا التعليق ، بدل من الاسم
فناخذ نفس هذا المثال بالاعلى لكن مع اضافة تعليق بجاب القيم - يمكن ان يحتوى على مسافات بين الكلمات ايضا-
[PHP]
enum intervals
{
month=1, // Interval of one month
two_months, // Two months
quarter, // Three months - quarter
halfyear=6, // Half a year
year=12, // Year - 12 months
};
extern intervals =1 ;
[/PHP]الصورة




و الجديد و الجميل ، بما اننا نتكلم عن تعليق Comment و هى كلام ، فيمكننا كتابتها باللغة العربية ، مثل هذا

[PHP]
enum intervals
{
month=1, // كل شهر
two_months, // كل شهرين
quarter, // ربع سنوى
halfyear=6, // نصف سنوى
year=12, // سنوى
};

extern intervals month=1 ;
[/PHP]



مزيد من المراجع:

http://docs.mql4.com/basis/variables/inputvariables
http://docs.mql4.com/basis/types/integer/enumeration

بالتوفيق اخوانى الكرام

و ما بكم من نعمة فمن الله ، اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وزدنا علما

جزاك الله خيرا

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

التعديل الأخير تم بواسطة سمير محمد ارمان ; 16 - 04 - 2015 الساعة 11:59 AM
رد مع اقتباس

عضو برونزي
 
تاريخ التسجيل: Aug 2010
المشاركات: 2,255
معدل تقييم المستوى: 16
محمد سلمان is on a distinguished road
افتراضي رد: الجديد فى برمجة الميتاتريدر MQL4=MQL5 (تعليم- القوائم Enumerations )
2#
16 - 04 - 2015, 11:32 AM
ماشاء الله اخوي جهد جبار تشكر عليه
محمد سلمان غير متواجد حالياً  
رد مع اقتباس
الصورة الرمزية سمير محمد ارمان
مشرف سابق
الصورة الرمزية سمير محمد ارمان
 
تاريخ التسجيل: Nov 2009
المشاركات: 33,660
معدل تقييم المستوى: 48
سمير محمد ارمان will become famous soon enough
افتراضي رد: الجديد فى برمجة الميتاتريدر MQL4=MQL5 (تعليم- القوائم Enumerations )
3#
16 - 04 - 2015, 12:20 PM
السلام عليكم اخى الكريم IAEBusiness
جزاك الله كل خير على هذا الموضوع الاكثر من رائع
لك كل شكر وتقدير مع رجاء منك
الاستمرار فى عرض الاكواد الحديثه مع الاستفاده منه
وزادك الله من علمه
تحياتى لك
سمير محمد ارمان غير متواجد حالياً  
رد مع اقتباس
عضو جديد
 
تاريخ التسجيل: Mar 2011
المشاركات: 39
خبرة السوق: 3 الى 5 سنوات
معدل تقييم المستوى: 0
IAEBusiness is on a distinguished road
افتراضي رد: الجديد فى برمجة الميتاتريدر MQL4=MQL5 (تعليم- القوائم Enumerations )
4#
17 - 04 - 2015, 12:37 AM
العفو يا اخوان ، لكن اين الصور التى كانت فى الشرح !!

لقد رفعتها مرتين ؟
IAEBusiness غير متواجد حالياً  
رد مع اقتباس
عضو جديد
 
تاريخ التسجيل: Mar 2011
المشاركات: 39
خبرة السوق: 3 الى 5 سنوات
معدل تقييم المستوى: 0
IAEBusiness is on a distinguished road
افتراضي رد: الجديد فى برمجة الميتاتريدر MQL4=MQL5 (تعليم- القوائم Enumerations )
5#
19 - 04 - 2015, 10:34 AM
اقتباس:
المشاركة الأصلية كتبت بواسطة محمد سلمان مشاهدة المشاركة
ماشاء الله اخوي جهد جبار تشكر عليه
الحمد لله و شكرا على مرورك اخى الكريم

وان شاء الله تكون استفدت منه وتكون من المبدعين مثل اخونا سمير
اقتباس:
المشاركة الأصلية كتبت بواسطة سمير محمد ارمان مشاهدة المشاركة
السلام عليكم اخى الكريم IAEBusiness
جزاك الله كل خير على هذا الموضوع الاكثر من رائع
لك كل شكر وتقدير مع رجاء منك
الاستمرار فى عرض الاكواد الحديثه مع الاستفاده منه
وزادك الله من علمه
تحياتى لك
جزانا الله واياكم ، اخى الكريم

وان شاء الله ان جاءت فرصة لشرح ما ساحاول ان اقدمها

اقتباس:
المشاركة الأصلية كتبت بواسطة IAEBusiness مشاهدة المشاركة
العفو يا اخوان ، لكن اين الصور التى كانت فى الشرح !!

لقد رفعتها مرتين ؟
وها هى الصورة مرة ثالثة لاهميتها و ان كان المفروض ان تكون متضمنة داخل الشرح
الصور المرفقة
نوع الملف: png MA.png‏ (10.3 كيلوبايت, المشاهدات 1)
نوع الملف: png inputs.png‏ (13.4 كيلوبايت, المشاهدات 41)
نوع الملف: png enumasinput.png‏ (50.2 كيلوبايت, المشاهدات 1)
نوع الملف: png EnumWithComment.png‏ (47.3 كيلوبايت, المشاهدات 0)
نوع الملف: png EnumWithComment_Ar.png‏ (45.3 كيلوبايت, المشاهدات 0)
IAEBusiness غير متواجد حالياً  
رد مع اقتباس


إضافة رد

الكلمات الدلالية (Tags)
برمجة, enumeration, enumerations, تعلم, قوائم



جديد مواضيع منتدى المؤشرات و الاكسبرتات

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
كتاب تعليم لغة Mql4 لبرمجة المؤشرات والاكسبيرتات abdellatef1 منتدى المؤشرات و الاكسبرتات 12 30 - 01 - 2014 10:41 PM
قريبا: ميتاقوتس تضيف ميزات MQL5 الى MQL4 aziz829 منتدى برامج التداول و الشارتات و الشركات 0 30 - 08 - 2013 04:37 PM
أعصار : الكتاب الشامل فى تعليم برمجة وتصميم المواقع بإسلوب المحترفين web2.0 geet استراحة بورصات 22 05 - 07 - 2011 06:01 PM


09:18 AM