Conditional Statements in MQL4: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
 
Line 1: Line 1:
## العبارات الشرطية في لغة MQL4
## العبارات الشرطية في لغة MQL4


'''العنوان: العبارات الشرطية في لغة MQL4'''
=== مقدمة ===
تعتبر العبارات الشرطية من أهم العناصر الأساسية في أي لغة برمجة، بما في ذلك لغة MQL4 المستخدمة في منصة MetaTrader 4. تسمح لنا هذه العبارات بتنفيذ أجزاء معينة من الكود بناءً على شروط معينة. بعبارة أخرى، فهي تمكن برنامجنا من اتخاذ "قرارات" بناءً على البيانات المتوفرة. في عالم تداول الفوركس والأسواق المالية، تُستخدم العبارات الشرطية بشكل مكثف لتطبيق [[استراتيجيات التداول]] المختلفة وتنفيذ أوامر [[التداول]] بناءً على تقييمات [[التحليل الفني]] و[[التحليل الأساسي]].


'''المقدمة'''
=== أنواع العبارات الشرطية في MQL4 ===


تعتبر العبارات الشرطية من أهم العناصر الأساسية في أي لغة برمجة، بما في ذلك لغة MQL4 المستخدمة في منصة MetaTrader 4. تسمح هذه العبارات للبرنامج باتخاذ قرارات بناءً على شروط معينة، مما يتيح إنشاء أنظمة تداول آلية أكثر ذكاءً ومرونة. في هذا المقال، سنستعرض أنواع العبارات الشرطية المختلفة في MQL4 وكيفية استخدامها بشكل فعال في تطوير استراتيجيات التداول.
هناك ثلاثة أنواع رئيسية من العبارات الشرطية في MQL4:


'''أنواع العبارات الشرطية'''
'''if''' : تنفذ كتلة من الكود إذا كان الشرط صحيحًا.
*  '''else''' : تنفذ كتلة من الكود إذا كان الشرط في عبارة '''if''' خاطئًا.
*  '''else if''' : تسمح بفحص شروط متعددة بشكل متسلسل.


تتوفر في MQL4 ثلاثة أنواع رئيسية من العبارات الشرطية:
=== عبارة if ===


*  '''عبارة if''' : تنفذ كتلة من التعليمات البرمجية فقط إذا كان الشرط المحدد صحيحًا.
تعتبر عبارة '''if''' أبسط أنواع العبارات الشرطية. صيغتها العامة هي:
*  '''عبارة if...else''' : تنفذ كتلة من التعليمات البرمجية إذا كان الشرط صحيحًا، وكتلة أخرى إذا كان الشرط خاطئًا.
*  '''عبارة if...elseif...else''' : تسمح بفحص عدة شروط بالتسلسل، وتنفيذ كتلة التعليمات البرمجية المقابلة لأول شرط صحيح، أو كتلة التعليمات البرمجية المرتبطة بـ else إذا لم يكن أي من الشروط صحيحًا.
 
'''عبارة if'''
 
تعتبر أبسط أنواع العبارات الشرطية. صيغتها العامة هي:


```mql4
```mql4
if (condition) {
if (الشرط) {
  // التعليمات البرمجية التي سيتم تنفيذها إذا كان الشرط صحيحًا
    // الكود الذي يتم تنفيذه إذا كان الشرط صحيحًا
}
}
```
```
Line 28: Line 25:


```mql4
```mql4
double price = iClose(NULL, 0, 0); // الحصول على سعر الإغلاق الحالي
double Ask = MarketInfo(Symbol(), MODE_ASK);
if (price > 1.1000) {
 
  Print("السعر أعلى من 1.1000");
if (Ask > 1.1000) {
    Print("سعر الطلب أعلى من 1.1000");
}
}
```
```


'''عبارة if...else'''
في هذا المثال، يتم فحص ما إذا كان سعر الطلب (Ask) أكبر من 1.1000. إذا كان الشرط صحيحًا، فسيتم طباعة الرسالة "سعر الطلب أعلى من 1.1000" في نافذة "Experts".
 
=== عبارة if...else ===


تتيح تنفيذ تعليمات برمجية بديلة في حالة عدم تحقق الشرط. صيغتها العامة هي:
تسمح عبارة '''if...else''' بتنفيذ كتلة من الكود إذا كان الشرط صحيحًا، وكتلة أخرى إذا كان الشرط خاطئًا. صيغتها العامة هي:


```mql4
```mql4
if (condition) {
if (الشرط) {
  // التعليمات البرمجية التي سيتم تنفيذها إذا كان الشرط صحيحًا
    // الكود الذي يتم تنفيذه إذا كان الشرط صحيحًا
} else {
} else {
  // التعليمات البرمجية التي سيتم تنفيذها إذا كان الشرط خاطئًا
    // الكود الذي يتم تنفيذه إذا كان الشرط خاطئًا
}
}
```
```
Line 49: Line 49:


```mql4
```mql4
double volume = iVolume(NULL, 0, 0); // الحصول على حجم التداول الحالي
double ClosePrice = iClose(Symbol(), PERIOD_CURRENT, 0);
if (volume > 1000) {
 
  Print("الحجم كبير");
if (ClosePrice > iOpen(Symbol(), PERIOD_CURRENT, 0)) {
    Print("السعر أغلق أعلى من سعر الافتتاح");
} else {
} else {
  Print("الحجم صغير");
    Print("السعر أغلق أدنى من سعر الافتتاح");
}
}
```
```


'''عبارة if...elseif...else'''
في هذا المثال، يتم فحص ما إذا كان سعر الإغلاق أعلى من سعر الافتتاح. إذا كان الشرط صحيحًا، فسيتم طباعة رسالة، وإلا فسيتم طباعة رسالة مختلفة.
 
=== عبارة if...else if...else ===


تستخدم لفحص عدة شروط بالتسلسل. صيغتها العامة هي:
تتيح عبارة '''if...else if...else''' فحص شروط متعددة بشكل متسلسل. صيغتها العامة هي:


```mql4
```mql4
if (condition1) {
if (الشرط1) {
  // التعليمات البرمجية التي سيتم تنفيذها إذا كان الشرط الأول صحيحًا
    // الكود الذي يتم تنفيذه إذا كان الشرط1 صحيحًا
} elseif (condition2) {
} else if (الشرط2) {
  // التعليمات البرمجية التي سيتم تنفيذها إذا كان الشرط الثاني صحيحًا
    // الكود الذي يتم تنفيذه إذا كان الشرط2 صحيحًا
} else {
} else {
  // التعليمات البرمجية التي سيتم تنفيذها إذا لم يكن أي من الشروط صحيحًا
    // الكود الذي يتم تنفيذه إذا كانت جميع الشروط خاطئة
}
}
```
```


يمكن استخدام العديد من عبارات elseif حسب الحاجة. مثال:
مثال:


```mql4
```mql4
double movingAverage = iMA(NULL, 0, 14, 0, MODE_SMA, PRICE_CLOSE, 0); // حساب المتوسط المتحرك البسيط لمدة 14 فترة
double RSI = iRSI(Symbol(), PERIOD_CURRENT, 14, PRICE_CLOSE, 0);
if (movingAverage > 1.1000) {
 
  Print("المتوسط المتحرك أعلى من 1.1000");
if (RSI > 70) {
} elseif (movingAverage < 1.0900) {
    Print("السوق في منطقة ذروة الشراء");
  Print("المتوسط المتحرك أقل من 1.0900");
} else if (RSI < 30) {
    Print("السوق في منطقة ذروة البيع");
} else {
} else {
  Print("المتوسط المتحرك بين 1.0900 و 1.1000");
    Print("السوق في منطقة محايدة");
}
}
```
```


'''العوامل الشرطية'''
في هذا المثال، يتم فحص قيمة مؤشر القوة النسبية (RSI). إذا كانت القيمة أكبر من 70، فسيتم طباعة رسالة تشير إلى أن السوق في منطقة ذروة الشراء. وإذا كانت القيمة أقل من 30، فسيتم طباعة رسالة تشير إلى أن السوق في منطقة ذروة البيع. وإذا لم يتحقق أي من الشرطين، فسيتم طباعة رسالة تشير إلى أن السوق في منطقة محايدة.


تستخدم العوامل الشرطية لإنشاء الشروط التي يتم تقييمها في العبارات الشرطية. بعض العوامل الشرطية الشائعة في MQL4 تشمل:
=== عوامل المقارنة والمنطق ===


*  '''==''' : يساوي
تستخدم العبارات الشرطية عوامل المقارنة والمنطق لتقييم الشروط.
*  '''!='''' : لا يساوي
*  '''>''' : أكبر من
*  '''<''' : أصغر من
*  '''>=''' : أكبر من أو يساوي
*  '''<=''' : أصغر من أو يساوي
*  '''&&''' : و (AND)
*  '''||''' : أو (OR)
*  '''!''' : ليس (NOT)


'''أمثلة على استخدام العبارات الشرطية في استراتيجيات التداول'''
'''عوامل المقارنة:'''
    *  == (يساوي)
    *  != (لا يساوي)
    *  > (أكبر من)
    *  < (أصغر من)
    *  >= (أكبر من أو يساوي)
    *  <= (أصغر من أو يساوي)


*  '''استراتيجية تقاطع المتوسطين المتحركين''' : يمكن استخدام عبارة if لتحديد متى يتقاطع متوسط متحرك قصير الأجل فوق متوسط متحرك طويل الأجل، مما يشير إلى إشارة شراء. [[تقاطع المتوسطات المتحركة]]
*  '''عوامل المنطق:'''
'''استراتيجية الاختراق''' : يمكن استخدام عبارة if...else لتحديد متى يخترق السعر مستوى دعم أو مقاومة مهم، مما يشير إلى فرصة تداول. [[الاختراقات]]
    && (و) - يجب أن يكون كلا الشرطين صحيحين.
'''استراتيجية مؤشر القوة النسبية (RSI)''' : يمكن استخدام عبارة if...elseif...else لتحديد متى يكون السوق في منطقة ذروة الشراء أو ذروة البيع بناءً على قيمة مؤشر RSI. [[مؤشر القوة النسبية]]
    || (أو) - يجب أن يكون أحد الشرطين على الأقل صحيحًا.
'''استراتيجية بولينجر باندز''' : يمكن استخدام عبارة if لتحديد متى يلامس السعر النطاق العلوي أو السفلي لنطاقات بولينجر، مما يشير إلى إشارة تداول محتملة. [[نطاقات بولينجر]]
    ! (ليس) - ينفي الشرط.
'''استراتيجية مؤشر الماكد (MACD)''' : يمكن استخدام عبارة if لتحديد متى يتقاطع خط الماكد فوق خط الإشارة، مما يشير إلى إشارة شراء. [[مؤشر الماكد]]


'''العبارات الشرطية المتداخلة'''
مثال:


يمكن تضمين العبارات الشرطية داخل عبارات شرطية أخرى لإنشاء منطق أكثر تعقيدًا. يجب توخي الحذر عند استخدام العبارات الشرطية المتداخلة لتجنب التعقيد غير الضروري.
```mql4
double MA1 = iMA(Symbol(), PERIOD_CURRENT, 50, 0, MODE_SMA, PRICE_CLOSE, 0);
double MA2 = iMA(Symbol(), PERIOD_CURRENT, 200, 0, MODE_SMA, PRICE_CLOSE, 0);


'''ملاحظات هامة'''
if (MA1 > MA2 && iMACD(Symbol(), PERIOD_CURRENT, 12, 26, 9, SIGNAL_LINE, 0) > 0) {
    Print("تقاطع المتوسطات المتحركة إيجابي ومؤشر الماكد فوق خط الإشارة");
}
```


*  تأكد من استخدام الأقواس {} بشكل صحيح لتحديد كتل التعليمات البرمجية.
في هذا المثال، يتم فحص ما إذا كان المتوسط المتحرك البسيط لمدة 50 يومًا أكبر من المتوسط المتحرك البسيط لمدة 200 يومًا، وما إذا كان مؤشر الماكد (MACD) فوق خط الإشارة. يجب أن يتحقق كلا الشرطين حتى يتم تنفيذ الكود داخل عبارة '''if'''.
*  تجنب استخدام الشروط المعقدة جدًا التي يصعب قراءتها وفهمها.
*  اختبر العبارات الشرطية الخاصة بك بعناية للتأكد من أنها تعمل كما هو متوقع.
*  استخدم التعليقات لشرح الغرض من العبارات الشرطية الخاصة بك.


'''مواضيع ذات صلة'''
=== استخدام العبارات الشرطية في التداول ===


[[المتغيرات في MQL4]]
تُستخدم العبارات الشرطية على نطاق واسع في تطوير [[الخوارزميات]] و[[الروبوتات]] الآلية للتداول. إليك بعض الأمثلة:
[[أنواع البيانات في MQL4]]
 
*  [[العوامل الحسابية في MQL4]]
تنفيذ أوامر [[شراء]] أو [[بيع]] بناءً على شروط محددة.
[[الحلقات التكرارية في MQL4]]
*  تعديل حجم الصفقة بناءً على تقلبات السوق.
*  [[الدوال في MQL4]]
تحديد نقاط الدخول والخروج من الصفقة بناءً على مؤشرات فنية مثل [[مؤشر بولينجر]] و[[الفيوناتشي]].
[[الأحداث في MQL4]]
تفعيل أو تعطيل استراتيجية تداول معينة بناءً على ظروف السوق.
[[الرسوم البيانية في MQL4]]
إدارة المخاطر من خلال تحديد مستويات [[وقف الخسارة]] و[[جني الأرباح]].
*  [[الأوامر في MQL4]]
 
[[مكتبة MQL4 القياسية]]
=== الخلاصة ===
*  [[تصحيح الأخطاء في MQL4]]
 
*  [[تحليل حجم التداول]]
العبارات الشرطية هي أداة قوية في لغة MQL4 تسمح للمبرمجين بإنشاء برامج تداول ذكية ومرنة. من خلال فهم الأنواع المختلفة من العبارات الشرطية وكيفية استخدام عوامل المقارنة والمنطق، يمكنك تطوير استراتيجيات تداول متقدمة وتحسين أداء روبوتات التداول الخاصة بك.
*  [[أنماط الشموع اليابانية]]
 
*  [[مستويات فيبوناتشي]]
===  روابط ذات صلة ===
 
*  [[MQL4]]
*  [[MetaTrader 4]]
*  [[استراتيجيات التداول]]
*  [[التحليل الفني]]
*  [[التحليل الفني]]
*  [[التحليل الأساسي]]
*  [[إدارة المخاطر]]
*  [[إدارة المخاطر]]
*  [[نظرية الموجات الإليوت]]
*  [[الروبوتات الآلية للتداول]]
*  [[الخوارزميات]]
*  [[المؤشرات الفنية]]
*  [[شراء]]
*  [[بيع]]
*  [[وقف الخسارة]]
*  [[جني الأرباح]]
*  [[مؤشر بولينجر]]
*  [[الفيوناتشي]]
*  [[MACD]]
*  [[RSI]]
*  [[المتوسطات المتحركة]]
*  [[أنماط الشموع اليابانية]]
*  [[تحليل حجم التداول]]
*  [[إدارة رأس المال]]
*  [[التقلبات]]
*  [[الدعم والمقاومة]]
*  [[مؤشر ستوكاستيك]]
*  [[مؤشر ستوكاستيك]]
*  [[مؤشر ADX]]
*  [[ADX]]
*  [[مؤشر Parabolic SAR]]
*  [[Ichimoku Kinko Hyo]]
*  [[استراتيجيات التداول الآلي]]
*  [[Pivot Points]]
 
*  [[Elliott Wave Theory]]
'''استراتيجيات تداول إضافية'''
*  [[Price Action]]
 
*  [[استراتيجية مارتينجال]]
*  [[استراتيجية المتوسط المتحرك المرجح أسيًا (EMA)]]
*  [[استراتيجية الدعم والمقاومة]]
*  [[استراتيجية القنوات السعرية]]
*  [[استراتيجية التداول بناءً على الأخبار]]


[[Category:**الفئة:MQL4**]]
[[Category:MQL4]]


== ابدأ التداول الآن ==
== ابدأ التداول الآن ==

Latest revision as of 04:31, 23 April 2025

    1. العبارات الشرطية في لغة MQL4

مقدمة

تعتبر العبارات الشرطية من أهم العناصر الأساسية في أي لغة برمجة، بما في ذلك لغة MQL4 المستخدمة في منصة MetaTrader 4. تسمح لنا هذه العبارات بتنفيذ أجزاء معينة من الكود بناءً على شروط معينة. بعبارة أخرى، فهي تمكن برنامجنا من اتخاذ "قرارات" بناءً على البيانات المتوفرة. في عالم تداول الفوركس والأسواق المالية، تُستخدم العبارات الشرطية بشكل مكثف لتطبيق استراتيجيات التداول المختلفة وتنفيذ أوامر التداول بناءً على تقييمات التحليل الفني والتحليل الأساسي.

أنواع العبارات الشرطية في MQL4

هناك ثلاثة أنواع رئيسية من العبارات الشرطية في MQL4:

  • if : تنفذ كتلة من الكود إذا كان الشرط صحيحًا.
  • else : تنفذ كتلة من الكود إذا كان الشرط في عبارة if خاطئًا.
  • else if : تسمح بفحص شروط متعددة بشكل متسلسل.

عبارة if

تعتبر عبارة if أبسط أنواع العبارات الشرطية. صيغتها العامة هي:

```mql4 if (الشرط) {

   // الكود الذي يتم تنفيذه إذا كان الشرط صحيحًا

} ```

مثال:

```mql4 double Ask = MarketInfo(Symbol(), MODE_ASK);

if (Ask > 1.1000) {

   Print("سعر الطلب أعلى من 1.1000");

} ```

في هذا المثال، يتم فحص ما إذا كان سعر الطلب (Ask) أكبر من 1.1000. إذا كان الشرط صحيحًا، فسيتم طباعة الرسالة "سعر الطلب أعلى من 1.1000" في نافذة "Experts".

عبارة if...else

تسمح عبارة if...else بتنفيذ كتلة من الكود إذا كان الشرط صحيحًا، وكتلة أخرى إذا كان الشرط خاطئًا. صيغتها العامة هي:

```mql4 if (الشرط) {

   // الكود الذي يتم تنفيذه إذا كان الشرط صحيحًا

} else {

   // الكود الذي يتم تنفيذه إذا كان الشرط خاطئًا

} ```

مثال:

```mql4 double ClosePrice = iClose(Symbol(), PERIOD_CURRENT, 0);

if (ClosePrice > iOpen(Symbol(), PERIOD_CURRENT, 0)) {

   Print("السعر أغلق أعلى من سعر الافتتاح");

} else {

   Print("السعر أغلق أدنى من سعر الافتتاح");

} ```

في هذا المثال، يتم فحص ما إذا كان سعر الإغلاق أعلى من سعر الافتتاح. إذا كان الشرط صحيحًا، فسيتم طباعة رسالة، وإلا فسيتم طباعة رسالة مختلفة.

عبارة if...else if...else

تتيح عبارة if...else if...else فحص شروط متعددة بشكل متسلسل. صيغتها العامة هي:

```mql4 if (الشرط1) {

   // الكود الذي يتم تنفيذه إذا كان الشرط1 صحيحًا

} else if (الشرط2) {

   // الكود الذي يتم تنفيذه إذا كان الشرط2 صحيحًا

} else {

   // الكود الذي يتم تنفيذه إذا كانت جميع الشروط خاطئة

} ```

مثال:

```mql4 double RSI = iRSI(Symbol(), PERIOD_CURRENT, 14, PRICE_CLOSE, 0);

if (RSI > 70) {

   Print("السوق في منطقة ذروة الشراء");

} else if (RSI < 30) {

   Print("السوق في منطقة ذروة البيع");

} else {

   Print("السوق في منطقة محايدة");

} ```

في هذا المثال، يتم فحص قيمة مؤشر القوة النسبية (RSI). إذا كانت القيمة أكبر من 70، فسيتم طباعة رسالة تشير إلى أن السوق في منطقة ذروة الشراء. وإذا كانت القيمة أقل من 30، فسيتم طباعة رسالة تشير إلى أن السوق في منطقة ذروة البيع. وإذا لم يتحقق أي من الشرطين، فسيتم طباعة رسالة تشير إلى أن السوق في منطقة محايدة.

عوامل المقارنة والمنطق

تستخدم العبارات الشرطية عوامل المقارنة والمنطق لتقييم الشروط.

  • عوامل المقارنة:
   *   == (يساوي)
   *   != (لا يساوي)
   *   > (أكبر من)
   *   < (أصغر من)
   *   >= (أكبر من أو يساوي)
   *   <= (أصغر من أو يساوي)
  • عوامل المنطق:
   *   && (و) - يجب أن يكون كلا الشرطين صحيحين.
   *   || (أو) - يجب أن يكون أحد الشرطين على الأقل صحيحًا.
   *   ! (ليس) - ينفي الشرط.

مثال:

```mql4 double MA1 = iMA(Symbol(), PERIOD_CURRENT, 50, 0, MODE_SMA, PRICE_CLOSE, 0); double MA2 = iMA(Symbol(), PERIOD_CURRENT, 200, 0, MODE_SMA, PRICE_CLOSE, 0);

if (MA1 > MA2 && iMACD(Symbol(), PERIOD_CURRENT, 12, 26, 9, SIGNAL_LINE, 0) > 0) {

   Print("تقاطع المتوسطات المتحركة إيجابي ومؤشر الماكد فوق خط الإشارة");

} ```

في هذا المثال، يتم فحص ما إذا كان المتوسط المتحرك البسيط لمدة 50 يومًا أكبر من المتوسط المتحرك البسيط لمدة 200 يومًا، وما إذا كان مؤشر الماكد (MACD) فوق خط الإشارة. يجب أن يتحقق كلا الشرطين حتى يتم تنفيذ الكود داخل عبارة if.

استخدام العبارات الشرطية في التداول

تُستخدم العبارات الشرطية على نطاق واسع في تطوير الخوارزميات والروبوتات الآلية للتداول. إليك بعض الأمثلة:

  • تنفيذ أوامر شراء أو بيع بناءً على شروط محددة.
  • تعديل حجم الصفقة بناءً على تقلبات السوق.
  • تحديد نقاط الدخول والخروج من الصفقة بناءً على مؤشرات فنية مثل مؤشر بولينجر والفيوناتشي.
  • تفعيل أو تعطيل استراتيجية تداول معينة بناءً على ظروف السوق.
  • إدارة المخاطر من خلال تحديد مستويات وقف الخسارة وجني الأرباح.

الخلاصة

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

روابط ذات صلة

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер