FX-Arabia

جديد المواضيع











الملاحظات

منتدى تعليم الفوركس يحتوى المنتدى التعليمى على العديد من المراجع و الكتب و المؤلفات التى تساهم فى تعليم المضاربين اصول و فنون تداول العملات (الفوركس) منتدى الفوركس ، المواد التعليمية ل سوق الفوركس ، دروس ، تحيلي رقمى ، كتب ، مقالات تعليمية ، دورات فوركس مجانية ، تعليم تحليل فني ، تحليل اساسي ، موجات اليوت ، فيبوناتشي ، تعليم فوركس ، برامج التداول ، تعليم الفوركس بالفيديو ، شروحات . تعلم الفوركس , تعليم الفوركس , فيديو فوركس , افضل دورة فوركس , دورة فوركس مجانية , دورة فوركس , ربح فوركس , استراتيجية فوركس , فيديو فوركس تعليمى , فيديو فوركس و الكثير.



إضافة رد
 
أدوات الموضوع
قديم 04-06-2012, 10:05 PM   المشاركة رقم: 31
الكاتب
عمر عبد المجيد
عضو جديد

البيانات
تاريخ التسجيل: Mar 2012
رقم العضوية: 8932
العمر: 33
المشاركات: 27
بمعدل : 0.01 يوميا

الإتصالات
الحالة:
عمر عبد المجيد غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

موضوع رائع واحلا لايكات



عرض البوم صور عمر عبد المجيد  
رد مع اقتباس
  #31  
قديم 04-06-2012, 10:05 PM
عمر عبد المجيد عمر عبد المجيد غير متواجد حالياً
عضو جديد
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

موضوع رائع واحلا لايكات




رد مع اقتباس
قديم 04-06-2012, 11:07 PM   المشاركة رقم: 32
الكاتب
غشيم فوركس
عضو فعال

البيانات
تاريخ التسجيل: Apr 2012
رقم العضوية: 9157
الدولة: جدة
العمر: 51
المشاركات: 823
بمعدل : 0.18 يوميا

الإتصالات
الحالة:
غشيم فوركس غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

موضوع جميل
بارك الله فيك



عرض البوم صور غشيم فوركس  
رد مع اقتباس
  #32  
قديم 04-06-2012, 11:07 PM
غشيم فوركس غشيم فوركس غير متواجد حالياً
عضو فعال
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

موضوع جميل
بارك الله فيك




رد مع اقتباس
قديم 05-06-2012, 04:15 PM   المشاركة رقم: 33
الكاتب
مازن المشهداني
عضو فعال
الصورة الرمزية مازن المشهداني

البيانات
تاريخ التسجيل: Apr 2011
رقم العضوية: 3568
المشاركات: 636
بمعدل : 0.13 يوميا

الإتصالات
الحالة:
مازن المشهداني غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

المشاركة الأصلية كتبت بواسطة عمر عبد المجيد نقره لعرض الصورة في صفحة مستقلة
موضوع رائع واحلا لايكات
مشكور على مرورك والتقييم



التوقيع

عرض البوم صور مازن المشهداني  
رد مع اقتباس
  #33  
قديم 05-06-2012, 04:15 PM
مازن المشهداني مازن المشهداني غير متواجد حالياً
عضو فعال
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

المشاركة الأصلية كتبت بواسطة عمر عبد المجيد نقره لعرض الصورة في صفحة مستقلة
موضوع رائع واحلا لايكات
مشكور على مرورك والتقييم




رد مع اقتباس
قديم 05-06-2012, 04:15 PM   المشاركة رقم: 34
الكاتب
مازن المشهداني
عضو فعال
الصورة الرمزية مازن المشهداني

البيانات
تاريخ التسجيل: Apr 2011
رقم العضوية: 3568
المشاركات: 636
بمعدل : 0.13 يوميا

الإتصالات
الحالة:
مازن المشهداني غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

المشاركة الأصلية كتبت بواسطة غشيم فوركس نقره لعرض الصورة في صفحة مستقلة
موضوع جميل
بارك الله فيك
وفيك بارك الله
مشكور عالمرور



التوقيع

عرض البوم صور مازن المشهداني  
رد مع اقتباس
  #34  
قديم 05-06-2012, 04:15 PM
مازن المشهداني مازن المشهداني غير متواجد حالياً
عضو فعال
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

المشاركة الأصلية كتبت بواسطة غشيم فوركس نقره لعرض الصورة في صفحة مستقلة
موضوع جميل
بارك الله فيك
وفيك بارك الله
مشكور عالمرور




رد مع اقتباس
قديم 07-06-2012, 05:38 PM   المشاركة رقم: 35
الكاتب
عمر عبد المجيد
عضو جديد

البيانات
تاريخ التسجيل: Mar 2012
رقم العضوية: 8932
العمر: 33
المشاركات: 27
بمعدل : 0.01 يوميا

الإتصالات
الحالة:
عمر عبد المجيد غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

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



عرض البوم صور عمر عبد المجيد  
رد مع اقتباس
  #35  
قديم 07-06-2012, 05:38 PM
عمر عبد المجيد عمر عبد المجيد غير متواجد حالياً
عضو جديد
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

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




رد مع اقتباس
قديم 07-06-2012, 08:56 PM   المشاركة رقم: 36
الكاتب
مازن المشهداني
عضو فعال
الصورة الرمزية مازن المشهداني

البيانات
تاريخ التسجيل: Apr 2011
رقم العضوية: 3568
المشاركات: 636
بمعدل : 0.13 يوميا

الإتصالات
الحالة:
مازن المشهداني غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

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



التوقيع

عرض البوم صور مازن المشهداني  
رد مع اقتباس
  #36  
قديم 07-06-2012, 08:56 PM
مازن المشهداني مازن المشهداني غير متواجد حالياً
عضو فعال
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

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




رد مع اقتباس
قديم 08-06-2012, 05:19 PM   المشاركة رقم: 37
الكاتب
مازن المشهداني
عضو فعال
الصورة الرمزية مازن المشهداني

البيانات
تاريخ التسجيل: Apr 2011
رقم العضوية: 3568
المشاركات: 636
بمعدل : 0.13 يوميا

الإتصالات
الحالة:
مازن المشهداني غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي الدرس السابع .. المتغيرات

بسم الله الرحمن الرحيم

مرحبا بكم في الدرس السابع ... المتغيرات في لغة MQL4 :


المتغيرات Variables ؟

هي اسماء تطلق على قطاع الذاكرة المخزن لنوع معين من البيانات.

لنفهم أكثر سنرسم صورة عامة للموضوع كمثال:

تخيل معي ان ذاكرة الكومبيوتر هي عبارة عن سلسلة من الصناديق مختلفة الأحجام , وحجم الصندوق هو مساحة التخزين بالبايت (وحدة البناء في الكومبيوتر)

* لكي نستخدم صندوقا ما لنخزن به احد البيانات يجب ان نطلق عليه اسم ما , هذه العملية تسمى اعداد declaration.

* خلال عملية الأعداد declaration نستخدم كلمة نخبر بها الكومبيوتر بنوع وحجم الصندوق المطلوب استخدامه , هذه الكلمة نطلق عليها keyword اي كلمة محجوزة تشير الى فئة معينة من البيانات .

* بعد تحديد رمز البيان بكلمة محجوزة , عليك الأن بأختيار اسم معرف خاص للصندوق (والأفضل ان تختار اسما يدل على رمز البيان ايضا لتسهيل البرنامج) ,, مثلا حددت Integer (كلمة محجوزة معتاها عدد صحيح) لتصنيف رمز البيان , وتطلق اسما من مخيلتك وليكن مثلا files (معناها ملفات وهي كلمة اخترعتها انت) وتطلقها على الصندوق , هكذا يعرف الكومبيوتر ان يخزن ارقام صحيحة(نوع البيانات) في صندوق الذاكرة المدعو files .. وهكذا ... هذه المعرفات يطلق عليها اسم ثابت المتغيرات Variables constant.

* الأن حددنا رمز البيانات واسم الصندوق , علينا الأن ان نضع هذه البيانات داخل الصندوق وذلك عن طريق ان ننسب assigning هذه البيانات الى هذا الصندوق (بكتابته برمجيا)

* الأن حددنا رمز البيان في صندوقه المناسب واطلقنا معرفا ثابتا لهذا الصندوق له قيمة افتراضية هي الصفر (هنا نقول ان عملية الأعداد declaration قد تمت) .

* عملية بدء عمل البرنامج بأدخال القيم (ادخال القيم في لغة MQL4 يكون عن طريق بيانات الأسعار القادمة من السيرفر) وتسمى هذه المرحلة ب عملية البدء initialization.

يمكن اختصار الخطوات السابقة بمعنى أخر ايضا لوضوح الفكرة هكذا:

متى انشأنا متغيرا (سمي متغير لتغير قيمه المستمر نتيجة تغير الأسعار المستمر مما يغير في النتائج ايضا) فنحن نخبر الكومبيوتر اننا نريده ان ينسب assigning حجم ذاكرة مخصصة (بوحدة البايت) لمتغيرنا هذه , ونظرا لأن الأرقام الصغيرة والحروف والأرقام الكبيرة لن تشغل نفس المساحة من الذاكرة , فسيسألنا الكومبيوتر عن رمز البيانات وحجم المساحة المطلوبة لتخزينها , ولهذا نشأ علم انواع البيانات في اللغات البرمجية.
(سنحاول ان نفهم اكثر مع كثرة الأمثلة والدروس القادمة)

على سبيل المثال , ماذا لو أخبرنا الكومبيوتر بهذا الكود :

كود PHP:

int MyVaraible=0;


معناه اننا نطلب من الكومبيوتر ان يوفر لنا حجم ذاكرة تبلغ 4 بايت(int تعني ذلك كما سيتضح في هذا الدرس) لمتغيرنا الذي اسميناه ب MyVaraibles.

في المثال السابق استخدمنا:

int ---------- Keyword

int ---------- Integer data type.

int ---------- Declaration

MyVaraible ---------- Variable’s constant.

=0 القيمة الأفتراضية

(راجع الكلمات السابقة بما سبق شرحه)

هناك انواع مختلفة من رموز البيانات :

*اعداد صحيحة int
*اعداد حقيقية(عشرية) double
*حروف char
*الوان color
*السلسلة النصية string
*قيم منطقية(صح وخطأ) bool
*التاريخ datetime

لقد قمت بنسخ السطور السابقة من درس رموز البيانات في لغة MQL4 لكم , لتتذكروا فقط ما هي المتغيرات , والأن كيف نقوم بعملية اعداد للمتغير ؟

* الإعداد declaration :

عملية اعداد المتغير تعني تقديم وتعريف هذا المتغير للبرنامج والمبرمج والمستخدمين وتحديد نوعه ومساحة التخزين الخاصة به , وذلك باستخدام الكلمات المحجوزة التي ذكرناها في درس رموز البيانات (int, double, char, bool, string, color and datetime) مع معرفات نختارها لها .

مثال :

كود PHP:
int MyVaraible;


هنا قمنا بعملية اعداد declaration للمتغير ( الذي عرفناه بالأسم MyVaraible ) وحددنا نوعه كعدد صحيح integer بالكلمة المحجوزة ( int ) .

لا يمكننا ان نستخدم المتغير في البرنامج دون عملية الإعداد تلك ( الكود في المثال اعلاه ) , فلو قمنا مثلا باستخدام المتغير في اكواد اللغة دون عملية اعداده ( الكود اعلاه هو مثال لعملية الإعداد ) ستعطي عملية التجميع compile خطأ برمجي : ( 'MyVaraible' - variable not defined. 1 error(s), 0 warning(s). )

* الإبتداء Initialization :

هذه العملية للمتغير تعني ربط قيمة ما لهذا المتغير

مثال :

كود PHP:
MyVaraible=0;


يمكنك وضع القيمة مع الإعداد في نفس السطر , مثال :

كود PHP:
int MyVaraible=0;


كما يمكنك ان تضع إعداد declaration المتغير في سطر وعملية الأبتداء ( وضع القيمة ) Initialization في سطر أخر , مثال :

كود PHP:
int MyVaraible;





MyVaraible=5;


لكن تذكر دائما ان عملية الإعداد declaration يجب ان تسبق عملية الأبتداء Initialization دائما .

* مجالات المتغيرات في البرنامج Scopes :

المتغيرات يتم وضعها بطريقتين : موضعي Local وعام Global .

ماهو مجال المتغير ؟

هو مكان الكود الذي سيتعرف على المتغير ويستطيع ان يتعامل معه .

ما معنى هذا الكلام ؟

سنشرح بتفصيل اكثر :

a- متغيرات المجال الموضعي local scope :

هي المتغيرات التي يتم إعدادها داخل الدالة و لا يتم التعامل معها الا داخل الدالة او الحلقة او الجملة الشرطية الخاصة بها فقط ( من اسمها "موضعي")

مثال :

كود PHP:
double my_func (double a, double b, double c)

{

int d ;

return (a*b + c);

}



في هذا المثال a ,b ,c and d هم متغيرات موضعية ( داخلية ) اي انهم يستخدمون داخل قالب الدالة فقط ولا يمكن لأي دالة أخرى استخدامهم , حسنا كيف تعرف الدالة والبرنامج انهم خاصين بها وحدها فقط ؟ . الأجابة هي انهم وضعوا داخل القوسين ( ) بعد اسم الدالة ( مما يعني بالضرورة انهم لها وحدها) .

b- متغيرات المجال العام global scope :

وهي المتغيرات التي يتم إعدادها خارج الدوال والحلقات والقرارات ويكن استخدامها من اي مكان داخل البرنامج .

مثال :

كود PHP:
int Global_Variable;

double my_func (double a, double b, double c)

{

return (a*b + c + Global_Variable);

}



هنا في هذا المثال تم إعداد المتغير Global_Variable خارج الدالة ( خارج القوسين ( ) ) وهكذا يمكن استخدامه من اي دالة في البرنامج ككل .

تأخذ متغيرات المجال العام دائما القيمة الأفتراضية صفر , هذا اذا لم تستلم اي قيم أخرى .


* المتغيرات الخارجية Extern variables :


الكلمة المحجوزة ( extern ) تستخدم لإعداد انواع خاصة من المتغيرات , هذه الأنواع هي التي تعرف الإعدادات الرئيسية للبرنامج ( بمعنى اخر هي خصائص المؤشر او الكسبرت التي تظهر للمستخدمين عند فتحها )

مثال :

كود PHP:
extern color Indicator_color = C'0x00,0x00,0xFF'; // blue

int init()

{

...

}




هنا في هذا المثال , المتغير Indicator_color تم تعريفه على انه متغير خارجي .

هذه المتغيرات الخارجية هي المتغيرات التي تظهر على النافذة التي تظهر لك عندما تقوم بتشغيل المؤشر او الكسبرت على الشارت , ونافذة الخصائص ايضا .
ي متغير تريد ان يتم تغييره من قبل المستخدمين العاديين عرفه على انه متغير خارجي extern variable .


في الدرس القادم بأذن الله سنتكلم عن بيانات ما قبل المعالجة في لغة MQL4
اراكم على خير مجددا



التوقيع

عرض البوم صور مازن المشهداني  
رد مع اقتباس
  #37  
قديم 08-06-2012, 05:19 PM
مازن المشهداني مازن المشهداني غير متواجد حالياً
عضو فعال
افتراضي الدرس السابع .. المتغيرات

بسم الله الرحمن الرحيم

مرحبا بكم في الدرس السابع ... المتغيرات في لغة MQL4 :


المتغيرات Variables ؟

هي اسماء تطلق على قطاع الذاكرة المخزن لنوع معين من البيانات.

لنفهم أكثر سنرسم صورة عامة للموضوع كمثال:

تخيل معي ان ذاكرة الكومبيوتر هي عبارة عن سلسلة من الصناديق مختلفة الأحجام , وحجم الصندوق هو مساحة التخزين بالبايت (وحدة البناء في الكومبيوتر)

* لكي نستخدم صندوقا ما لنخزن به احد البيانات يجب ان نطلق عليه اسم ما , هذه العملية تسمى اعداد declaration.

* خلال عملية الأعداد declaration نستخدم كلمة نخبر بها الكومبيوتر بنوع وحجم الصندوق المطلوب استخدامه , هذه الكلمة نطلق عليها keyword اي كلمة محجوزة تشير الى فئة معينة من البيانات .

* بعد تحديد رمز البيان بكلمة محجوزة , عليك الأن بأختيار اسم معرف خاص للصندوق (والأفضل ان تختار اسما يدل على رمز البيان ايضا لتسهيل البرنامج) ,, مثلا حددت Integer (كلمة محجوزة معتاها عدد صحيح) لتصنيف رمز البيان , وتطلق اسما من مخيلتك وليكن مثلا files (معناها ملفات وهي كلمة اخترعتها انت) وتطلقها على الصندوق , هكذا يعرف الكومبيوتر ان يخزن ارقام صحيحة(نوع البيانات) في صندوق الذاكرة المدعو files .. وهكذا ... هذه المعرفات يطلق عليها اسم ثابت المتغيرات Variables constant.

* الأن حددنا رمز البيانات واسم الصندوق , علينا الأن ان نضع هذه البيانات داخل الصندوق وذلك عن طريق ان ننسب assigning هذه البيانات الى هذا الصندوق (بكتابته برمجيا)

* الأن حددنا رمز البيان في صندوقه المناسب واطلقنا معرفا ثابتا لهذا الصندوق له قيمة افتراضية هي الصفر (هنا نقول ان عملية الأعداد declaration قد تمت) .

* عملية بدء عمل البرنامج بأدخال القيم (ادخال القيم في لغة MQL4 يكون عن طريق بيانات الأسعار القادمة من السيرفر) وتسمى هذه المرحلة ب عملية البدء initialization.

يمكن اختصار الخطوات السابقة بمعنى أخر ايضا لوضوح الفكرة هكذا:

متى انشأنا متغيرا (سمي متغير لتغير قيمه المستمر نتيجة تغير الأسعار المستمر مما يغير في النتائج ايضا) فنحن نخبر الكومبيوتر اننا نريده ان ينسب assigning حجم ذاكرة مخصصة (بوحدة البايت) لمتغيرنا هذه , ونظرا لأن الأرقام الصغيرة والحروف والأرقام الكبيرة لن تشغل نفس المساحة من الذاكرة , فسيسألنا الكومبيوتر عن رمز البيانات وحجم المساحة المطلوبة لتخزينها , ولهذا نشأ علم انواع البيانات في اللغات البرمجية.
(سنحاول ان نفهم اكثر مع كثرة الأمثلة والدروس القادمة)

على سبيل المثال , ماذا لو أخبرنا الكومبيوتر بهذا الكود :

كود PHP:
int MyVaraible=0;


معناه اننا نطلب من الكومبيوتر ان يوفر لنا حجم ذاكرة تبلغ 4 بايت(int تعني ذلك كما سيتضح في هذا الدرس) لمتغيرنا الذي اسميناه ب MyVaraibles.

في المثال السابق استخدمنا:

int ---------- Keyword

int ---------- Integer data type.

int ---------- Declaration

MyVaraible ---------- Variable’s constant.

=0 القيمة الأفتراضية

(راجع الكلمات السابقة بما سبق شرحه)

هناك انواع مختلفة من رموز البيانات :

*اعداد صحيحة int
*اعداد حقيقية(عشرية) double
*حروف char
*الوان color
*السلسلة النصية string
*قيم منطقية(صح وخطأ) bool
*التاريخ datetime

لقد قمت بنسخ السطور السابقة من درس رموز البيانات في لغة MQL4 لكم , لتتذكروا فقط ما هي المتغيرات , والأن كيف نقوم بعملية اعداد للمتغير ؟

* الإعداد declaration :

عملية اعداد المتغير تعني تقديم وتعريف هذا المتغير للبرنامج والمبرمج والمستخدمين وتحديد نوعه ومساحة التخزين الخاصة به , وذلك باستخدام الكلمات المحجوزة التي ذكرناها في درس رموز البيانات (int, double, char, bool, string, color and datetime) مع معرفات نختارها لها .

مثال :

كود PHP:
int MyVaraible;


هنا قمنا بعملية اعداد declaration للمتغير ( الذي عرفناه بالأسم MyVaraible ) وحددنا نوعه كعدد صحيح integer بالكلمة المحجوزة ( int ) .

لا يمكننا ان نستخدم المتغير في البرنامج دون عملية الإعداد تلك ( الكود في المثال اعلاه ) , فلو قمنا مثلا باستخدام المتغير في اكواد اللغة دون عملية اعداده ( الكود اعلاه هو مثال لعملية الإعداد ) ستعطي عملية التجميع compile خطأ برمجي : ( 'MyVaraible' - variable not defined. 1 error(s), 0 warning(s). )

* الإبتداء Initialization :

هذه العملية للمتغير تعني ربط قيمة ما لهذا المتغير

مثال :

كود PHP:
MyVaraible=0;


يمكنك وضع القيمة مع الإعداد في نفس السطر , مثال :

كود PHP:
int MyVaraible=0;


كما يمكنك ان تضع إعداد declaration المتغير في سطر وعملية الأبتداء ( وضع القيمة ) Initialization في سطر أخر , مثال :

كود PHP:
int MyVaraible;





MyVaraible=5;


لكن تذكر دائما ان عملية الإعداد declaration يجب ان تسبق عملية الأبتداء Initialization دائما .

* مجالات المتغيرات في البرنامج Scopes :

المتغيرات يتم وضعها بطريقتين : موضعي Local وعام Global .

ماهو مجال المتغير ؟

هو مكان الكود الذي سيتعرف على المتغير ويستطيع ان يتعامل معه .

ما معنى هذا الكلام ؟

سنشرح بتفصيل اكثر :

a- متغيرات المجال الموضعي local scope :

هي المتغيرات التي يتم إعدادها داخل الدالة و لا يتم التعامل معها الا داخل الدالة او الحلقة او الجملة الشرطية الخاصة بها فقط ( من اسمها "موضعي")

مثال :

كود PHP:
double my_func (double a, double b, double c)

{

int d ;

return (a*b + c);

}



في هذا المثال a ,b ,c and d هم متغيرات موضعية ( داخلية ) اي انهم يستخدمون داخل قالب الدالة فقط ولا يمكن لأي دالة أخرى استخدامهم , حسنا كيف تعرف الدالة والبرنامج انهم خاصين بها وحدها فقط ؟ . الأجابة هي انهم وضعوا داخل القوسين ( ) بعد اسم الدالة ( مما يعني بالضرورة انهم لها وحدها) .

b- متغيرات المجال العام global scope :

وهي المتغيرات التي يتم إعدادها خارج الدوال والحلقات والقرارات ويكن استخدامها من اي مكان داخل البرنامج .

مثال :

كود PHP:
int Global_Variable;

double my_func (double a, double b, double c)

{

return (a*b + c + Global_Variable);

}



هنا في هذا المثال تم إعداد المتغير Global_Variable خارج الدالة ( خارج القوسين ( ) ) وهكذا يمكن استخدامه من اي دالة في البرنامج ككل .

تأخذ متغيرات المجال العام دائما القيمة الأفتراضية صفر , هذا اذا لم تستلم اي قيم أخرى .


* المتغيرات الخارجية Extern variables :


الكلمة المحجوزة ( extern ) تستخدم لإعداد انواع خاصة من المتغيرات , هذه الأنواع هي التي تعرف الإعدادات الرئيسية للبرنامج ( بمعنى اخر هي خصائص المؤشر او الكسبرت التي تظهر للمستخدمين عند فتحها )

مثال :

كود PHP:
extern color Indicator_color = C'0x00,0x00,0xFF'; // blue

int init()

{

...

}




هنا في هذا المثال , المتغير Indicator_color تم تعريفه على انه متغير خارجي .

هذه المتغيرات الخارجية هي المتغيرات التي تظهر على النافذة التي تظهر لك عندما تقوم بتشغيل المؤشر او الكسبرت على الشارت , ونافذة الخصائص ايضا .
ي متغير تريد ان يتم تغييره من قبل المستخدمين العاديين عرفه على انه متغير خارجي extern variable .


في الدرس القادم بأذن الله سنتكلم عن بيانات ما قبل المعالجة في لغة MQL4
اراكم على خير مجددا




رد مع اقتباس
قديم 08-06-2012, 05:23 PM   المشاركة رقم: 38
الكاتب
مازن المشهداني
عضو فعال
الصورة الرمزية مازن المشهداني

البيانات
تاريخ التسجيل: Apr 2011
رقم العضوية: 3568
المشاركات: 636
بمعدل : 0.13 يوميا

الإتصالات
الحالة:
مازن المشهداني غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي الدرس الثامن .. بيانات ما قبل المعالجة

بسم الله الرحمن الرحيم

مرحبا بكم في الدرس الثامن ... بيانات ما قبل المعالجة في لغة MQL4

ماذا نعني بهذه البيانات ؟

هذه البيانات هي تعليمات يقوم المبرمج بتزويدها للمجمع compiler ليقوم بحفظها كما هي قبل معالجة الكود .

بمعنى اخر , خلال عملية التجميع compile (راجع مقدمة الدروس) يقوم المجمع compiler بتحويل برنامجك (بعد انتهائك منه) من لغتنا البشرية الى لغة الألة (الواحد والصفر) ليقوم بعمله .

حسنا ماذا لو اردت منه ان لا يقوم بتحويل بعض التعليمات الى لغة الألة واخراجها كما هي بلغتنا ( كرابط موقع مثلا او تعريف بصانع الكسبرت وحقوقه .. الخ) ؟

هذه البيانات وتسمى preprossesors ( اي قبل المعالجة ) تقوم بهذه الوظيفة .

مثال :

كود PHP:

#include <win32.h>


هذا الأمر( كما سنعرف لاحقا) يقوم بأخذ محتويات الملف win32.h (ملف به عنوانك مثلا) ووضعه داخل البرنامج دون تغيير فيه , فقط يقوم بفتح محتوياته داخل البرنامج ايا كانت .

هناك 4 انواع من هذه البيانات في لغة MQL4 :

1- بيان التعريف define directive :

وهو الأمر الذي ينتج ثابت ما ..

لا حظ الفرق بين المتغير والثابت فالأول يأخذ قيم متغيرة طوال الوقت سواء من المبرمج او المستخدم او الشارت , اما الثابت فهو ذو قيمة محددة لا تتغير ابدا .

مثال :

كود PHP:
#define my_constant 100


كما تلاحظ في المثال اعلاه لا توجد علامة المساواة ( = ) فقط فراغ space بين اسم الثابت (my_constant ) وبين قيمته ( 100 )

كما يمكنك ان تلاحظ ايضا عدم انتهاء الجملة بأي من علامات الترقيم مثل الفاصلة المنقوطة مثلا ; . وانما انتهت بمجرد انتقالنا الى سطر جديد في البرنامج .

اسم الثابت يخضع لجميع القواعد الخاصة التي تعلمتها الخاصة بتسمية المعرفات ( راجع درس ال SYNTAX ) , مثلا لا يمكنك ان تبدأ برقم او تزيد عدد الأحرف اكثر من 31 حرف مثلا .

يمكنك ان تضع اي قيمة تريدها من اي نوع لهذا الثابت في البداية .

ان استخدمته في كود ما سيتامل معه البرنامج كقيمة ثابتة كما تمت كتاتها .

وهكذا يمكن كتابته على النحو التالي :

كود PHP:
sum = constant1 * 10;


2- بيان الملكية property directive :

هل تتذكرون عبارة “Controlling Compilation” السابق ذكرها في الدرس الأول وأخبرتكم وقتها ان شرحها سيأتي لاحقا .

حسنا , هي احد خواص لغة MQL4 التي تسمح لك بوضع البيان ( prperty ) وامامه اي جملة ( او قيمة ) وسيخرجها المجمع compiler كما هي في ملف البرنامج المستخدم من قبل الألة ( ex4. ) .

امثلة :

كود PHP:
#property link "http://www.forex-tsd.com"

#property copyright "Anyone wants to use"


وهذه قائمة بمعرفات هذا البيان :

نقره لعرض الصورة في صفحة مستقلة

3- بيان الإحتواء include directive :

عندما تخبر البرنامج بالأمر (include) لملف خارجي ما , فكأنك تماما تقوم بنسخ محتويات هذا الملف داخل سطر ( include ) داخل البرنامج .

مثال :

كود PHP:
#include <win32.h>


في المثال اعلاه انت اخبرت الكومبيوتر بفتح الملف (win32.h) وقراءته ونسخ محتوياته داخل جملة ( include ).

حسنا , ما معنى القوسين < > في المثال اعلاه ؟

هما لتحديد مكان الملف المراد قراءته ( win32.h ) , وهنا القوسين < > يحددان المكان (المجلد) الإفتراضي لأي ملف داخل الميتاتريدر على هذا الأمتداد : (metatrader 4\experts\include) .

طيب ماذا لو كان الملف المراد قراءته في مكان أخر ؟

لو كان في نفس مجلد البرنامج , نضع اسمه مباشرة بين العلامتين " " .

مثال :

كود PHP:
#include “mylib.h”


ولو كان في مجلد أخر ( مثلا داخل مجلد D:\books ) نضع اسمه هكذا :

كود PHP:
#include “D:\books\mylib.h”


وفي جميع الحالات ان لم يجد البرنامج الملف في مكانه سيقوم بإصدار رسالة ( error ) اي خطأ في البرنامج .

يمكننا استخدام الأمر ( include ) في اي سطر من البرنامج ولكن جرت العادة ان يكون في رأس البرنامج .

4- بيان الإستيراد import directive : (هذا الأمر للقراءة وهو للمتخصصين فقط )

هو يشبه تماما الأمر السابق ( include ) من حيث جلبه لملف خارجي .

ولكنه يختلف عنه في نوع الملف , فهو يقوم بقراءة الملفات ذات الأمتدادات ( dll. ) و ( ex4. ) لوضعها داخل اكواد البرنامج .

مثال :

كود PHP:
#import "user32.dll"

int MessageBoxA(int hWnd,string lpText,string lpCaption,

int uType);

int MessageBoxExA(int hWnd,string lpText,string lpCaption,

int uType,int wLanguageId);

#import "melib.ex4"

#import "gdi32.dll"

int GetDC(int hWnd);

int ReleaseDC(int hWnd,int hDC);

#import





متى ادخلت دوال خاصة بملف ( ex4 ) فلن تحتاج ان تقوم بإعداداها declaration داخل البرنامج الأصلي.

لكن متى ادخلت دوال من ملف ( dll ) فيجب عليك اعداداها اولا داخل البرنامج الأصلي ( وذلك لأختلاف اللغة فقد يكون الملف مصدره لغة ال C مثلا فيجب وقتها ان توافق بين اللغتين )

مثال :

كود PHP:
int MessageBoxA(int hWnd,string lpText,string lpCaption,

int uType);


وستعمل الدوال التي اعددتها فقط في البرنامج .

يجب ان تنهي امر ( import ) بسطر ( import ) مجرد و خالي من اي اقواس او اسماء

كود PHP:
#import




في الدرس القادم بأذن الله ستبدأ ببرمجة مؤشرك الأول (جزء 1)
اراكم على خير مجددا



التوقيع

عرض البوم صور مازن المشهداني  
رد مع اقتباس
  #38  
قديم 08-06-2012, 05:23 PM
مازن المشهداني مازن المشهداني غير متواجد حالياً
عضو فعال
افتراضي الدرس الثامن .. بيانات ما قبل المعالجة

بسم الله الرحمن الرحيم

مرحبا بكم في الدرس الثامن ... بيانات ما قبل المعالجة في لغة MQL4

ماذا نعني بهذه البيانات ؟

هذه البيانات هي تعليمات يقوم المبرمج بتزويدها للمجمع compiler ليقوم بحفظها كما هي قبل معالجة الكود .

بمعنى اخر , خلال عملية التجميع compile (راجع مقدمة الدروس) يقوم المجمع compiler بتحويل برنامجك (بعد انتهائك منه) من لغتنا البشرية الى لغة الألة (الواحد والصفر) ليقوم بعمله .

حسنا ماذا لو اردت منه ان لا يقوم بتحويل بعض التعليمات الى لغة الألة واخراجها كما هي بلغتنا ( كرابط موقع مثلا او تعريف بصانع الكسبرت وحقوقه .. الخ) ؟

هذه البيانات وتسمى preprossesors ( اي قبل المعالجة ) تقوم بهذه الوظيفة .

مثال :

كود PHP:
#include <win32.h>


هذا الأمر( كما سنعرف لاحقا) يقوم بأخذ محتويات الملف win32.h (ملف به عنوانك مثلا) ووضعه داخل البرنامج دون تغيير فيه , فقط يقوم بفتح محتوياته داخل البرنامج ايا كانت .

هناك 4 انواع من هذه البيانات في لغة MQL4 :

1- بيان التعريف define directive :

وهو الأمر الذي ينتج ثابت ما ..

لا حظ الفرق بين المتغير والثابت فالأول يأخذ قيم متغيرة طوال الوقت سواء من المبرمج او المستخدم او الشارت , اما الثابت فهو ذو قيمة محددة لا تتغير ابدا .

مثال :

كود PHP:
#define my_constant 100


كما تلاحظ في المثال اعلاه لا توجد علامة المساواة ( = ) فقط فراغ space بين اسم الثابت (my_constant ) وبين قيمته ( 100 )

كما يمكنك ان تلاحظ ايضا عدم انتهاء الجملة بأي من علامات الترقيم مثل الفاصلة المنقوطة مثلا ; . وانما انتهت بمجرد انتقالنا الى سطر جديد في البرنامج .

اسم الثابت يخضع لجميع القواعد الخاصة التي تعلمتها الخاصة بتسمية المعرفات ( راجع درس ال SYNTAX ) , مثلا لا يمكنك ان تبدأ برقم او تزيد عدد الأحرف اكثر من 31 حرف مثلا .

يمكنك ان تضع اي قيمة تريدها من اي نوع لهذا الثابت في البداية .

ان استخدمته في كود ما سيتامل معه البرنامج كقيمة ثابتة كما تمت كتاتها .

وهكذا يمكن كتابته على النحو التالي :

كود PHP:
sum = constant1 * 10;


2- بيان الملكية property directive :

هل تتذكرون عبارة “Controlling Compilation” السابق ذكرها في الدرس الأول وأخبرتكم وقتها ان شرحها سيأتي لاحقا .

حسنا , هي احد خواص لغة MQL4 التي تسمح لك بوضع البيان ( prperty ) وامامه اي جملة ( او قيمة ) وسيخرجها المجمع compiler كما هي في ملف البرنامج المستخدم من قبل الألة ( ex4. ) .

امثلة :

كود PHP:
#property link "http://www.forex-tsd.com"

#property copyright "Anyone wants to use"


وهذه قائمة بمعرفات هذا البيان :

نقره لعرض الصورة في صفحة مستقلة

3- بيان الإحتواء include directive :

عندما تخبر البرنامج بالأمر (include) لملف خارجي ما , فكأنك تماما تقوم بنسخ محتويات هذا الملف داخل سطر ( include ) داخل البرنامج .

مثال :

كود PHP:
#include <win32.h>


في المثال اعلاه انت اخبرت الكومبيوتر بفتح الملف (win32.h) وقراءته ونسخ محتوياته داخل جملة ( include ).

حسنا , ما معنى القوسين < > في المثال اعلاه ؟

هما لتحديد مكان الملف المراد قراءته ( win32.h ) , وهنا القوسين < > يحددان المكان (المجلد) الإفتراضي لأي ملف داخل الميتاتريدر على هذا الأمتداد : (metatrader 4\experts\include) .

طيب ماذا لو كان الملف المراد قراءته في مكان أخر ؟

لو كان في نفس مجلد البرنامج , نضع اسمه مباشرة بين العلامتين " " .

مثال :

كود PHP:
#include “mylib.h”


ولو كان في مجلد أخر ( مثلا داخل مجلد D:\books ) نضع اسمه هكذا :

كود PHP:
#include “D:\books\mylib.h”


وفي جميع الحالات ان لم يجد البرنامج الملف في مكانه سيقوم بإصدار رسالة ( error ) اي خطأ في البرنامج .

يمكننا استخدام الأمر ( include ) في اي سطر من البرنامج ولكن جرت العادة ان يكون في رأس البرنامج .

4- بيان الإستيراد import directive : (هذا الأمر للقراءة وهو للمتخصصين فقط )

هو يشبه تماما الأمر السابق ( include ) من حيث جلبه لملف خارجي .

ولكنه يختلف عنه في نوع الملف , فهو يقوم بقراءة الملفات ذات الأمتدادات ( dll. ) و ( ex4. ) لوضعها داخل اكواد البرنامج .

مثال :

كود PHP:
#import "user32.dll"

int MessageBoxA(int hWnd,string lpText,string lpCaption,

int uType);

int MessageBoxExA(int hWnd,string lpText,string lpCaption,

int uType,int wLanguageId);

#import "melib.ex4"

#import "gdi32.dll"

int GetDC(int hWnd);

int ReleaseDC(int hWnd,int hDC);

#import





متى ادخلت دوال خاصة بملف ( ex4 ) فلن تحتاج ان تقوم بإعداداها declaration داخل البرنامج الأصلي.

لكن متى ادخلت دوال من ملف ( dll ) فيجب عليك اعداداها اولا داخل البرنامج الأصلي ( وذلك لأختلاف اللغة فقد يكون الملف مصدره لغة ال C مثلا فيجب وقتها ان توافق بين اللغتين )

مثال :

كود PHP:
int MessageBoxA(int hWnd,string lpText,string lpCaption,

int uType);


وستعمل الدوال التي اعددتها فقط في البرنامج .

يجب ان تنهي امر ( import ) بسطر ( import ) مجرد و خالي من اي اقواس او اسماء

كود PHP:
#import




في الدرس القادم بأذن الله ستبدأ ببرمجة مؤشرك الأول (جزء 1)
اراكم على خير مجددا




رد مع اقتباس
قديم 10-06-2012, 05:54 AM   المشاركة رقم: 39
الكاتب
wolfkamikaz
عضو فضى
الصورة الرمزية wolfkamikaz

البيانات
تاريخ التسجيل: Sep 2011
رقم العضوية: 5695
المشاركات: 2,809
بمعدل : 0.58 يوميا

الإتصالات
الحالة:
wolfkamikaz غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

واصل الله يوفقك



التوقيع

نقره لعرض الصورة في صفحة مستقلة

عرض البوم صور wolfkamikaz  
رد مع اقتباس
  #39  
قديم 10-06-2012, 05:54 AM
wolfkamikaz wolfkamikaz غير متواجد حالياً
عضو فضى
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

واصل الله يوفقك




رد مع اقتباس
قديم 10-06-2012, 07:35 PM   المشاركة رقم: 40
الكاتب
قيس ياسر
عضو جديد

البيانات
تاريخ التسجيل: Mar 2012
رقم العضوية: 8930
العمر: 39
المشاركات: 25
بمعدل : 0.01 يوميا

الإتصالات
الحالة:
قيس ياسر غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

واصل اخي الكريم
واحلى لايكات حتى تكون حافز لك ولو اني اعلم انك تحب ان تفيد اخوانك كثيرا
تحياتي



عرض البوم صور قيس ياسر  
رد مع اقتباس
  #40  
قديم 10-06-2012, 07:35 PM
قيس ياسر قيس ياسر غير متواجد حالياً
عضو جديد
افتراضي رد: الى كل من يريد تعلم لغة MQL4 وباحترافية عالية ...اذن هنا تجد ما تريد

واصل اخي الكريم
واحلى لايكات حتى تكون حافز لك ولو اني اعلم انك تحب ان تفيد اخوانك كثيرا
تحياتي




رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
...اذن, وباحترافية, تريد, تعلم, يريد, mql4, عالية


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة



الساعة الآن 10:15 AM



جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com

تحذير المخاطرة

التجارة بالعملات الأجنبية تتضمن علي قدر كبير من المخاطر ومن الممكن ألا تكون مناسبة لجميع المضاربين, إستعمال الرافعة المالية في التجاره يزيد من إحتمالات الخطورة و التعرض للخساره, عليك التأكد من قدرتك العلمية و الشخصية على التداول.

تنبيه هام

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

اتصل بنا

البريد الإلكتروني للدعم الفنى : support@fx-arabia.com
جميع الحقوق محفوظة اف اكس ارابيا – احدى مواقع Inwestopedia Sp. Z O.O. للاستشارات و التدريب – جمهورية بولندا الإتحادية.
Powered by vBulletin® Copyright ©2000 - 2024 , Designed by Fx-Arabia Team