Conditions in MQL: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
Line 1: Line 1:
[[ملف:Example.png|center|500px]]
=== شروط في لغة MQL4 ===
 
'''شروط في لغة MQL4'''


'''مقدمة'''
'''مقدمة'''
لغة MQL4 (MetaQuotes Language 4) هي لغة برمجة تستخدم لإنشاء أنظمة تداول آلية (الروبوتات) والمؤشرات الفنية والبرامج النصية في منصة MetaTrader 4. فهم '''الشروط''' (Conditions) في MQL4 أمر بالغ الأهمية لكتابة برامج تداول فعالة. تسمح الشروط لبرنامجك باتخاذ قرارات بناءً على قيم معينة أو مقارنات بين القيم، مما يتيح له الاستجابة لتغيرات السوق.


لغة MQL4 (MetaQuotes Language 4) هي لغة برمجة قوية تستخدم لتطوير [[الروبوتات الخبيرة]] (Expert Advisors - EAs)، والمؤشرات المخصصة، والبرامج النصية لـ [[منصة MetaTrader 4]]. جوهر برمجة أي نظام تداول آلي يكمن في القدرة على تحديد الشروط التي تؤدي إلى اتخاذ قرارات التداول. هذه الشروط هي أساس منطق [[الخوارزمية]] الخاصة بك. يهدف هذا المقال إلى تقديم شرح تفصيلي حول كيفية استخدام الشروط في MQL4 للمبتدئين.
== ما هي الشروط؟ ==
الشروط هي عبارات منطقية تُقيّم إما إلى '''صحيح''' (True) أو '''خاطئ''' (False). بناءً على نتيجة التقييم، يمكن للبرنامج تنفيذ مجموعة معينة من التعليمات. في MQL4، تُستخدم الشروط بشكل أساسي في عبارات '''if''' و '''else if''' و '''else'''.


'''ما هي الشروط؟'''
== التركيب الأساسي للشروط ==


في MQL4، الشروط هي تعبيرات منطقية تُقيّم إلى قيمة صحيحة (true) أو خاطئة (false). بناءً على نتيجة التقييم، يمكن لتنفيذ البرنامج أن يتبع مسارًا معينًا. الشروط ضرورية لاتخاذ القرارات، مثل فتح أو إغلاق صفقة، أو تنفيذ أمر معلق.
التركيب الأساسي للشروط في MQL4 يتضمن استخدام '''عوامل المقارنة''' (Comparison Operators) و '''العوامل المنطقية''' (Logical Operators).
 
'''عوامل المقارنة'''
 
تستخدم عوامل المقارنة لمقارنة قيمتين. فيما يلي عوامل المقارنة الأكثر شيوعًا في MQL4:


{| class="wikitable"
{| class="wikitable"
Line 20: Line 16:
| العامل || الوصف || مثال
| العامل || الوصف || مثال
|-
|-
| == || يساوي || `if (Close[0] == Open[0])`
| == || يساوي || if (Close == Open)
|-
|-
| != || لا يساوي || `if (Close[0] != Open[0])`
| != || لا يساوي || if (Close != Open)
|-
|-
| > || أكبر من || `if (Close[0] > Open[0])`
| > || أكبر من || if (Close > Open)
|-
|-
| < || أصغر من || `if (Close[0] < Open[0])`
| < || أصغر من || if (Close < Open)
|-
|-
| >= || أكبر من أو يساوي || `if (Close[0] >= Open[0])`
| >= || أكبر من أو يساوي || if (Close >= Open)
|-
|-
| <= || أصغر من أو يساوي || `if (Close[0] <= Open[0])`
| <= || أصغر من أو يساوي || if (Close <= Open)
|}
|}
'''العوامل المنطقية'''
تُستخدم العوامل المنطقية لربط الشروط المتعددة. فيما يلي العوامل المنطقية الأكثر شيوعًا في MQL4:


{| class="wikitable"
{| class="wikitable"
Line 42: Line 34:
| العامل || الوصف || مثال
| العامل || الوصف || مثال
|-
|-
| && || AND ) - يجب أن يكون كلا الشرطين صحيحين || `if (Close[0] > Open[0] && Volume[0] > 100)`
| && || و (AND) - يجب أن يكون كلا الشرطين صحيحين || if (Close > Open && Volume > 100)
|-
|-
| || || OR (أو) - يجب أن يكون أحد الشرطين على الأقل صحيحًا || `if (Close[0] > Open[0] || Close[0] < Open[0])`
| || || أو (OR) - يجب أن يكون أحد الشرطين على الأقل صحيحًا || if (Close > Open || Close < Open)
|-
|-
| ! || NOT (ليس) - يعكس قيمة الشرط || `if (!IsTradingAllowed())`
| ! || ليس (NOT) - يعكس قيمة الشرط || if (!IsTradingAllowed())
|}
|}


'''عبارة If-Else'''
== عبارات التحكم في التدفق ==


تسمح عبارة `if-else` بتنفيذ كود معين إذا كان الشرط صحيحًا، وتنفيذ كود آخر إذا كان الشرط خاطئًا.
'''عبارة if'''
تنفذ عبارة if مجموعة من التعليمات إذا كان الشرط صحيحًا.


```MQL4
مثال:
if (Condition) {
```mql4
   // الكود الذي يتم تنفيذه إذا كان الشرط صحيحًا
if (Close > Open) {
} else {
   Print("السعر أغلق أعلى من سعر الافتتاح");
  // الكود الذي يتم تنفيذه إذا كان الشرط خاطئًا
}
}
```
```
'''عبارة else if'''
تتيح لك عبارة else if التحقق من شروط متعددة بالتتابع.


مثال:
مثال:
 
```mql4
```MQL4
if (Close > Open) {
if (Close[0] > Open[0]) {
   Print("السعر أغلق أعلى من سعر الافتتاح");
   Print("السعر أغلق أعلى من سعر الافتتاح");
} else if (Close < Open) {
  Print("السعر أغلق أقل من سعر الافتتاح");
} else {
} else {
   Print("السعر أغلق أقل من سعر الافتتاح");
   Print("السعر أغلق بنفس سعر الافتتاح");
}
}
```
```


'''عبارة If-ElseIf-Else'''
'''عبارة else'''
تنفذ عبارة else مجموعة من التعليمات إذا كان الشرط في عبارة if أو else if خاطئًا.
 
مثال (كما هو موضح أعلاه).
 
== استخدام الشروط في التداول ==
تستخدم الشروط على نطاق واسع في '''الروبوتات''' (Expert Advisors) والمؤشرات الفنية لتحديد نقاط الدخول والخروج من الصفقات، وتصفية الإشارات الخاطئة، وإدارة المخاطر.
 
* '''تحديد اتجاه السوق''': يمكن استخدام الشروط لتحديد ما إذا كان السوق في اتجاه صاعد أو هابط أو في نطاق تداول. [[تحليل الاتجاه]]
* '''توليد إشارات التداول''': يمكن استخدام الشروط لتوليد إشارات تداول بناءً على مؤشرات فنية مثل [[المتوسطات المتحركة]] و [[مؤشر القوة النسبية]] و [[مؤشر الماكد]]. [[استراتيجيات المتوسطات المتحركة]]
* '''إدارة المخاطر''': يمكن استخدام الشروط لتعيين مستويات '''وقف الخسارة''' (Stop Loss) و '''جني الأرباح''' (Take Profit) بناءً على تقلبات السوق أو مستويات الدعم والمقاومة. [[إدارة المخاطر في التداول]]
* '''تصفية الإشارات''': يمكن استخدام الشروط لتصفية الإشارات الخاطئة الناتجة عن تقلبات السوق العشوائية أو الأخبار الاقتصادية. [[تصفية الإشارات]]


تسمح عبارة `if-elseif-else` بتقييم شروط متعددة بالتسلسل.
== أمثلة متقدمة ==


```MQL4
* '''التحقق من وقت التداول''':
if (Condition1) {
```mql4
  // الكود الذي يتم تنفيذه إذا كان الشرط الأول صحيحًا
if (TimeCurrent() > TimeOpen() && TimeCurrent() < TimeClose()) {
} else if (Condition2) {
   // تنفيذ الصفقات خلال ساعات التداول
   // الكود الذي يتم تنفيذه إذا كان الشرط الثاني صحيحًا
} else {
  // الكود الذي يتم تنفيذه إذا كانت جميع الشروط خاطئة
}
}
```
```


'''عامل Switch'''
* '''التحقق من حجم التداول''':
```mql4
if (Volume > AverageVolume * 2) {
  // تنفيذ صفقات بناءً على حجم التداول الكبير
}
```


يعمل عامل `switch` على تقييم تعبير واحد ومقارنته بسلسلة من الحالات.
* '''التحقق من الأخبار الاقتصادية''': (يتطلب الوصول إلى مصدر بيانات الأخبار)
 
```mql4
```MQL4
if (NewsImpact == "High") {
switch (Expression) {
   // تجنب التداول خلال الأخبار الهامة
   case Value1:
    // الكود الذي يتم تنفيذه إذا كان التعبير يساوي Value1
    break;
  case Value2:
    // الكود الذي يتم تنفيذه إذا كان التعبير يساوي Value2
    break;
  default:
    // الكود الذي يتم تنفيذه إذا لم يتطابق التعبير مع أي حالة
}
}
```
```


'''استخدام الشروط في التداول'''
== اعتبارات مهمة ==
 
تستخدم الشروط على نطاق واسع في أنظمة التداول الآلية لتحديد نقاط الدخول والخروج، وإدارة المخاطر، وتصفية الإشارات الخاطئة.


*   **تحديد اتجاه السوق:** يمكن استخدام الشروط لتحديد ما إذا كان السوق في اتجاه صاعد، هابط، أو عرضي.
* '''الدقة''': تأكد من أن الشروط الخاصة بك دقيقة وتعكس استراتيجيتك التداولية.
*   **تحديد مستويات الدعم والمقاومة:** يمكن استخدام الشروط لتحديد مستويات الدعم والمقاومة المحتملة.
* '''الكفاءة''': تجنب استخدام شروط معقدة للغاية أو متداخلة بشكل كبير، لأن ذلك قد يؤثر على أداء البرنامج.
*   **تأكيد إشارات التداول:** يمكن استخدام الشروط لتأكيد إشارات التداول الناتجة عن [[المؤشرات الفنية]].
* '''الاختبار''': اختبر الشروط الخاصة بك بدقة باستخدام '''اختبار الإستراتيجية''' (Strategy Tester) في MetaTrader 4 للتأكد من أنها تعمل كما هو متوقع. [[اختبار الإستراتيجية في MQL4]]
*   **إدارة المخاطر:** يمكن استخدام الشروط لتحديد حجم الصفقة، ووضع أوامر [[إيقاف الخسارة]] وأوامر [[جني الأرباح]].
* '''التحسين''': قم بتحسين الشروط الخاصة بك باستمرار بناءً على نتائج الاختبار والبيانات التاريخية. [[تحسين الاستراتيجيات]]


'''أمثلة عملية'''
== استراتيجيات ذات صلة ==


*   **استراتيجية تقاطع المتوسطات المتحركة:** يمكن استخدام شرط للتحقق مما إذا كان المتوسط المتحرك القصير قد عبر فوق المتوسط المتحرك الطويل، مما يشير إلى إشارة شراء. [[استراتيجية تقاطع المتوسطات المتحركة]]
* [[استراتيجية الاختراق]]
*   **استراتيجية الارتداد من مستويات الدعم والمقاومة:** يمكن استخدام شرط للتحقق مما إذا كان السعر قد ارتد من مستوى دعم أو مقاومة محتمل. [[استراتيجية الارتداد]]
* [[استراتيجية الارتداد]]
*   **استراتيجية الاختراق:** يمكن استخدام شرط للتحقق مما إذا كان السعر قد اخترق مستوى دعم أو مقاومة رئيسي. [[استراتيجية الاختراق]]
* [[استراتيجية التداول مع الاتجاه]]
* [[استراتيجية التداول المتأرجح]]
* [[استراتيجية سكالبينج]]
* [[استراتيجية مارتينجال]]
* [[استراتيجية فيبوناتشي]]
* [[استراتيجية إيشيموكو]]
* [[استراتيجية بولينجر باند]]
* [[استراتيجية RSI]]
* [[استراتيجية MACD]]
* [[استراتيجية الدعم والمقاومة]]
* [[استراتيجية أنماط الشموع اليابانية]]
* [[استراتيجية المتوسطات المتحركة المتقاطعة]]
* [[استراتيجية حجم التداول]]


'''تحليل فني وتقنيات متقدمة'''
== التحليل الفني وتحليل حجم التداول ==


*   [[الشموع اليابانية]]
* [[التحليل الفني]]
*   [[مؤشر القوة النسبية (RSI)]]
* [[تحليل حجم التداول]]
*   [[مؤشر الماكد (MACD)]]
* [[مؤشرات التذبذب]]
*   [[مؤشر ستوكاستيك]]
* [[مؤشرات الاتجاه]]
*   [[خطوط فيبوناتشي]]
* [[أنماط الشموع اليابانية]]
*  [[مستويات الدعم والمقاومة]]
* [[نظرية الموجات إليوت]]
[[أنماط الرسوم البيانية]]
* [[مستويات فيبوناتشي]]
*  [[تحليل الحجم]]
*  [[مؤشر ATR]]
*   [[بولينجر باندز]]
*  [[تحليل الموجات إليوت]]
*   [[إيخيموكو]]
*  [[تحليل نيكو]]
*  [[تحليل حجم التداول]]
*  [[تحليل السعر]]


'''خلاصة'''
== روابط مفيدة ==


الشروط هي عنصر أساسي في برمجة أنظمة التداول الآلية في MQL4. فهم كيفية استخدام عوامل المقارنة والعوامل المنطقية وعبارات `if-else` و `switch` يسمح لك بإنشاء [[خوارزميات تداول]] قوية وفعالة. الممارسة والتجريب هما المفتاح لإتقان استخدام الشروط في MQL4.
* [[MQL4 Reference]]
* [[MetaTrader 4 Documentation]]
* [[MQL4 Community]]
* [[Forex Trading Strategies]]
* [[Technical Analysis Tools]]


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

Revision as of 22:08, 26 March 2025

شروط في لغة MQL4

مقدمة لغة MQL4 (MetaQuotes Language 4) هي لغة برمجة تستخدم لإنشاء أنظمة تداول آلية (الروبوتات) والمؤشرات الفنية والبرامج النصية في منصة MetaTrader 4. فهم الشروط (Conditions) في MQL4 أمر بالغ الأهمية لكتابة برامج تداول فعالة. تسمح الشروط لبرنامجك باتخاذ قرارات بناءً على قيم معينة أو مقارنات بين القيم، مما يتيح له الاستجابة لتغيرات السوق.

ما هي الشروط؟

الشروط هي عبارات منطقية تُقيّم إما إلى صحيح (True) أو خاطئ (False). بناءً على نتيجة التقييم، يمكن للبرنامج تنفيذ مجموعة معينة من التعليمات. في MQL4، تُستخدم الشروط بشكل أساسي في عبارات if و else if و else.

التركيب الأساسي للشروط

التركيب الأساسي للشروط في MQL4 يتضمن استخدام عوامل المقارنة (Comparison Operators) و العوامل المنطقية (Logical Operators).

عوامل المقارنة في MQL4
العامل الوصف مثال
== يساوي if (Close == Open)
!= لا يساوي if (Close != Open)
> أكبر من if (Close > Open)
< أصغر من if (Close < Open)
>= أكبر من أو يساوي if (Close >= Open)
<= أصغر من أو يساوي if (Close <= Open)
العوامل المنطقية في MQL4
العامل الوصف مثال
&& و (AND) - يجب أن يكون كلا الشرطين صحيحين if (Close > Open && Volume > 100)
أو (OR) - يجب أن يكون أحد الشرطين على الأقل صحيحًا if (Close > Open Close < Open)
! ليس (NOT) - يعكس قيمة الشرط if (!IsTradingAllowed())

عبارات التحكم في التدفق

عبارة if تنفذ عبارة if مجموعة من التعليمات إذا كان الشرط صحيحًا.

مثال: ```mql4 if (Close > Open) {

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

} ```

عبارة else if تتيح لك عبارة else if التحقق من شروط متعددة بالتتابع.

مثال: ```mql4 if (Close > Open) {

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

} else if (Close < Open) {

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

} else {

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

} ```

عبارة else تنفذ عبارة else مجموعة من التعليمات إذا كان الشرط في عبارة if أو else if خاطئًا.

مثال (كما هو موضح أعلاه).

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

تستخدم الشروط على نطاق واسع في الروبوتات (Expert Advisors) والمؤشرات الفنية لتحديد نقاط الدخول والخروج من الصفقات، وتصفية الإشارات الخاطئة، وإدارة المخاطر.

أمثلة متقدمة

  • التحقق من وقت التداول:

```mql4 if (TimeCurrent() > TimeOpen() && TimeCurrent() < TimeClose()) {

 // تنفيذ الصفقات خلال ساعات التداول

} ```

  • التحقق من حجم التداول:

```mql4 if (Volume > AverageVolume * 2) {

 // تنفيذ صفقات بناءً على حجم التداول الكبير

} ```

  • التحقق من الأخبار الاقتصادية: (يتطلب الوصول إلى مصدر بيانات الأخبار)

```mql4 if (NewsImpact == "High") {

 // تجنب التداول خلال الأخبار الهامة

} ```

اعتبارات مهمة

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

استراتيجيات ذات صلة

التحليل الفني وتحليل حجم التداول

روابط مفيدة

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

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

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

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

Баннер