MQL5 Programming: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
 
Line 1: Line 1:
'''برمجة MQL5: دليل المبتدئين لتداول الخيارات الثنائية'''
=== برمجة MQL5 للمبتدئين ===


'''مقدمة'''
'''برمجة MQL5''' (MetaQuotes Language 5) هي لغة برمجة قوية مصممة خصيصًا لمنصة MetaTrader 5، وتستخدم بشكل أساسي لتطوير [[الروبوتات التداولية]] (Expert Advisors - EAs)، والمؤشرات الفنية المخصصة (Custom Indicators)، والنصوص البرمجية (Scripts) والأدوات الأخرى التي تساعد المتداولين في [[أسواق المال]]، بما في ذلك [[أسواق العملات المشفرة]]. تعتبر MQL5 تطوراً عن MQL4 المستخدمة في MetaTrader 4، وهي تتميز بالكفاءة والسرعة وقدرات أكثر تقدماً.


MQL5 (MetaQuotes Language 5) هي لغة برمجة قوية مصممة خصيصًا لمنصة MetaTrader 5، وتُستخدم بشكل أساسي لتطوير [[الروبوتات التداولية]] (Expert Advisors - EAs)، [[المؤشرات الفنية المخصصة]] (Custom Indicators)، والسكربتات، وحتى [[أدوات التحليل]] المتقدمة. في عالم [[تداول الخيارات الثنائية]]، يمكن أن تكون MQL5 أداة لا تقدر بثمن لأتمتة الاستراتيجيات، اختبار الأفكار، وتحسين الأداء. يهدف هذا المقال إلى تقديم مقدمة شاملة للمبتدئين حول برمجة MQL5، مع التركيز على تطبيقاتها في تداول الخيارات الثنائية.
== ما هي MQL5؟ ==


'''أساسيات لغة MQL5'''
MQL5 ليست مجرد لغة برمجة، بل هي بيئة تطوير متكاملة (IDE) توفر أدوات شاملة لكتابة واختبار وتصحيح الأخطاء في الكود الخاص بك. تشبه في هيكلها لغات برمجة أخرى مثل C++، مما يجعلها سهلة التعلم نسبياً للمبرمجين ذوي الخبرة.  تعتمد MQL5 على [[البرمجة الشيئية]] (Object-Oriented Programming - OOP)، مما يسمح بتنظيم الكود بشكل أفضل وإعادة استخدامه.


MQL5 مبنية على لغة C++، مما يجعلها مألوفة للمبرمجين ذوي الخبرة. ومع ذلك، فهي تتميز ببنيتها الخاصة ووظائفها المدمجة المصممة خصيصًا للتداول. تشمل العناصر الأساسية في MQL5:
== لماذا تتعلم MQL5؟ ==


*   '''المتغيرات وأنواع البيانات:'''  مثل int (أعداد صحيحة)، double (أرقام عشرية)، bool (قيم منطقية)، string (نصوص).
* '''الأتمتة:'''  يمكنك أتمتة استراتيجيات التداول الخاصة بك باستخدام [[الروبوتات التداولية]]، مما يتيح لك التداول على مدار الساعة طوال أيام الأسبوع دون تدخل يدوي.
*   '''العوامل:''' مثل العوامل الحسابية (+, -, *, /)، عوامل المقارنة (==, !=, >, <)، والعوامل المنطقية (&&, ||, !).
* '''التخصيص:''' يمكنك إنشاء [[مؤشرات فنية]] مخصصة لتلبية احتياجاتك الخاصة في [[التحليل الفني]].
*   '''الدوال:'''  كتل من التعليمات البرمجية التي تؤدي مهمة معينة.  MQL5 توفر العديد من الدوال المدمجة للوصول إلى بيانات السوق، تنفيذ الأوامر، وإجراء العمليات الحسابية. [[دوال MQL5 المدمجة]]
* '''الاختبار الخلفي:'''  يمكنك اختبار أداء استراتيجيات التداول الخاصة بك على بيانات تاريخية باستخدام [[الاختبار الخلفي]] (Backtesting)، مما يساعدك على تحسينها قبل استخدامها في التداول الحقيقي.
*   '''الهياكل:'''  مجموعات من المتغيرات ذات الصلة.  تُستخدم لتمثيل بيانات معقدة مثل معلومات الأمر أو بيانات الشموع.
* '''التحسين:'''  يمكنك تحسين استراتيجياتك باستخدام [[التحسين]] (Optimization)، وهي عملية آلية للعثور على أفضل مجموعة من المعلمات لاستراتيجيتك.
*   '''التحكم في التدفق:'''  عبارات مثل if-else، for، while، و switch للتحكم في مسار تنفيذ البرنامج. [[التحكم في التدفق في MQL5]]
* '''المرونة:'''  MQL5 توفر مرونة كبيرة في تطوير أدوات تداول مبتكرة.


'''أنواع برامج MQL5'''
== أساسيات برمجة MQL5 ==


هناك ثلاثة أنواع رئيسية من البرامج التي يمكن تطويرها باستخدام MQL5:
=== أنواع البيانات ===


*  '''الروبوتات التداولية (Expert Advisors - EAs):'''  برامج تعمل بشكل مستقل لتنفيذ الصفقات بناءً على مجموعة محددة من القواعد.  تعتبر EAs مثالية لأتمتة [[استراتيجيات تداول الخيارات الثنائية]]، مثل استراتيجية [[تداول الاتجاه]] أو [[تداول الاختراق]].
MQL5 تدعم أنواع بيانات مختلفة، بما في ذلك:
*  '''المؤشرات الفنية المخصصة (Custom Indicators):'''  أدوات تحليلية تعرض معلومات إضافية على الرسم البياني، مثل [[مؤشر المتوسط المتحرك]] أو [[مؤشر RSI]]. يمكن استخدام المؤشرات المخصصة لتحديد نقاط الدخول والخروج المحتملة في صفقات الخيارات الثنائية. [[المؤشرات الفنية لتداول الخيارات الثنائية]]
*  '''السكربتات:'''  برامج يتم تنفيذها مرة واحدة فقط بناءً على طلب المستخدم.  يمكن استخدام السكربتات لأداء مهام معينة، مثل إغلاق جميع الصفقات المفتوحة أو حساب حجم المركز.


'''تطبيقات MQL5 في تداول الخيارات الثنائية'''
* '''int:''' الأعداد الصحيحة.
* '''double:''' الأعداد العشرية.
* '''bool:''' القيم المنطقية (صحيح أو خطأ).
* '''string:''' النصوص.
* '''datetime:''' التاريخ والوقت.


MQL5 تفتح آفاقًا واسعة لتطوير أدوات متخصصة لتداول الخيارات الثنائية:
=== المتغيرات والثوابت ===


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


'''مثال بسيط: مؤشر ينبه عند تقاطع المتوسطات المتحركة'''
=== العمليات ===


هذا مثال بسيط يوضح كيفية إنشاء مؤشر MQL5 ينبه عند تقاطع متوسطين متحركين:
MQL5 تدعم العمليات الحسابية (الجمع والطرح والضرب والقسمة)، والعمليات المنطقية (AND و OR و NOT)، وعمليات المقارنة (أكبر من وأصغر من ومساوٍ ل).
 
=== هياكل التحكم ===
 
* '''if-else:''' تستخدم لتنفيذ كود معين إذا كان شرط معين صحيحًا، وكود آخر إذا كان الشرط خاطئًا.
* '''for:''' تستخدم لتكرار تنفيذ كود معين لعدد محدد من المرات.
* '''while:''' تستخدم لتكرار تنفيذ كود معين طالما أن شرط معين صحيحًا.
* '''switch:''' تستخدم لتحديد مسار تنفيذ معين بناءً على قيمة متغير.
 
=== الدوال ===
 
'''الدوال''' (Functions) هي مجموعات من التعليمات البرمجية التي تقوم بمهمة معينة. يمكن للدوال أن تأخذ مدخلات (معلمات) وتعيد مخرجات.
 
== أنواع البرامج في MQL5 ==
 
* '''Expert Advisors (EAs):'''  [[الروبوتات التداولية]] التي تنفذ التداول تلقائيًا بناءً على استراتيجية محددة.
* '''Custom Indicators:'''  [[المؤشرات الفنية]] المخصصة التي تعرض معلومات إضافية على الرسم البياني.
* '''Scripts:'''  برامج تنفذ مهمة واحدة محددة، مثل إغلاق جميع الصفقات المفتوحة.
* '''Libraries:'''  مجموعات من الدوال التي يمكن استخدامها في برامج أخرى.
* '''Service:'''  برامج تعمل في الخلفية وتوفر خدمات إضافية.
 
== مثال بسيط: مؤشر فني بسيط ==
 
هذا مثال بسيط لكيفية إنشاء مؤشر فني بسيط يعرض المتوسط المتحرك البسيط (Simple Moving Average - SMA):


```mql5
```mql5
#property indicator_chart_window
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_plots 1


double MA1[], MA2[];
double MA[];


int OnInit()
int OnInit()
   {
   {
   SetIndexBuffer(0, MA1, INDICATOR_DATA);
   SetIndexBuffer(0, MA, INDICATOR_DATA);
   IndicatorSetString(INDICATOR_SHORTNAME, "MA Crossover");
   IndicatorSetString(INDICATOR_SHORTNAME, "SMA");
   return(INIT_SUCCEEDED);
   return(INIT_SUCCEEDED);
   }
   }
Line 56: Line 78:
                 const double &price[])
                 const double &price[])
   {
   {
   int   limit;
   int limit = rates_total - prev_calculated;
   double ma1, ma2;
   double sum = 0.0;


  limit = rates_total - prev_calculated;
   for(int i = 0; i < limit; i++)
 
   for(int i=0; i<limit; i++)
     {
     {
       ma1 = iMA(NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, i);
       sum += price[i];
      ma2 = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE, i);
       MA[i] = sum / (i + 1);
 
      MA1[i] = ma1;
      MA2[i] = ma2;
 
       if(ma1 > ma2 && MA1[i-1] <= MA2[i-1])
        {
        Alert("MA1 crossed above MA2!");
        }
      if(ma1 < ma2 && MA1[i-1] >= MA2[i-1])
        {
        Alert("MA1 crossed below MA2!");
        }
     }
     }


Line 83: Line 91:
```
```


'''الموارد الإضافية'''
== أدوات التطوير ==
 
* '''MetaEditor:''' محرر الكود المدمج في MetaTrader 5.
* '''Debugger:'''  أداة لتصحيح الأخطاء في الكود.
* '''Strategy Tester:'''  أداة لاختبار أداء استراتيجيات التداول.
* '''Optimizer:'''  أداة لتحسين معلمات استراتيجيات التداول.
* '''MQL5 Community:'''  منتدى على الإنترنت حيث يمكنك الحصول على المساعدة وتبادل المعرفة مع مبرمجي MQL5 الآخرين.
 
== موارد إضافية ==
 
* [[MQL5 Documentation]]: الوثائق الرسمية لـ MQL5.
* [[MQL5 Forum]]: منتدى MQL5.
* [[MQL5 Code Base]]: قاعدة بيانات للكود المصدري لـ MQL5.
 
== استراتيجيات التداول والتحليل الفني ==
 
لتطبيق برامج MQL5 بشكل فعال، من الضروري فهم [[استراتيجيات التداول]] المختلفة و[[التحليل الفني]]. بعض الاستراتيجيات الشائعة تشمل:
 
* [[استراتيجية المتوسطات المتحركة]]
* [[استراتيجية MACD]]
* [[استراتيجية RSI]]
* [[استراتيجية بولينجر باند]]
* [[استراتيجية الاختراق]]
* [[استراتيجية التصحيح]]
* [[استراتيجية التداول المتأرجح]]
* [[استراتيجية التداول اليومي]]
* [[استراتيجية التداول الخوارزمي]]
* [[استراتيجية التداول بناءً على الأخبار]]
 
كما أن فهم [[تحليل حجم التداول]]، [[أنماط الشموع اليابانية]]، و[[مستويات الدعم والمقاومة]] أمر بالغ الأهمية. بالإضافة إلى ذلك، يجب دراسة [[إدارة المخاطر]] و[[علم النفس التجاري]].
 
== التحليل الفني المتقدم ==
 
* [[مؤشر Ichimoku Cloud]]
* [[مؤشر Fibonacci Retracement]]
* [[مؤشر Elliott Wave]]
* [[مؤشر Parabolic SAR]]
* [[مؤشر Stochastic Oscillator]]


*  [[MetaQuotes Language 5 Documentation]]
== تحليل حجم التداول ==
*  [[MQL5 Community]]
*  [[تداول الخيارات الثنائية: دليل شامل]]
*  [[التحليل الفني المتقدم]]
*  [[تحليل حجم التداول: استراتيجيات متقدمة]]
*  [[استراتيجية تداول الخيارات الثنائية 60 ثانية]]
*  [[استراتيجية تداول الخيارات الثنائية 5 دقائق]]
*  [[استراتيجية تداول الخيارات الثنائية 15 دقيقة]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام أنماط الشموع]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام خطوط الاتجاه]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام مستويات الدعم والمقاومة]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام تصحيح فيبوناتشي]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام مؤشر MACD]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام مؤشر RSI]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام مؤشر Stochastic]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام مؤشر Bollinger Bands]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام أنماط الرسوم البيانية]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام تحليل حجم التداول]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام أنماط الشموع اليابانية]]
*  [[استراتيجية تداول الخيارات الثنائية باستخدام أنماط الرسوم البيانية]]
*  [[تحليل العرض والطلب في تداول الخيارات الثنائية]]
*  [[التحليل الأساسي لتداول الخيارات الثنائية]]


'''الخلاصة'''
* [[حجم التداول]]
* [[On Balance Volume (OBV)]]
* [[Accumulation/Distribution Line]]
* [[Volume Price Trend (VPT)]]
* [[Money Flow Index (MFI)]]


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


[[Category:**الفئة:برمجة_MQL5**]]
[[Category:الفئة:برمجة_MQL5]]


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

Latest revision as of 04:43, 27 March 2025

برمجة MQL5 للمبتدئين

برمجة MQL5 (MetaQuotes Language 5) هي لغة برمجة قوية مصممة خصيصًا لمنصة MetaTrader 5، وتستخدم بشكل أساسي لتطوير الروبوتات التداولية (Expert Advisors - EAs)، والمؤشرات الفنية المخصصة (Custom Indicators)، والنصوص البرمجية (Scripts) والأدوات الأخرى التي تساعد المتداولين في أسواق المال، بما في ذلك أسواق العملات المشفرة. تعتبر MQL5 تطوراً عن MQL4 المستخدمة في MetaTrader 4، وهي تتميز بالكفاءة والسرعة وقدرات أكثر تقدماً.

ما هي MQL5؟

MQL5 ليست مجرد لغة برمجة، بل هي بيئة تطوير متكاملة (IDE) توفر أدوات شاملة لكتابة واختبار وتصحيح الأخطاء في الكود الخاص بك. تشبه في هيكلها لغات برمجة أخرى مثل C++، مما يجعلها سهلة التعلم نسبياً للمبرمجين ذوي الخبرة. تعتمد MQL5 على البرمجة الشيئية (Object-Oriented Programming - OOP)، مما يسمح بتنظيم الكود بشكل أفضل وإعادة استخدامه.

لماذا تتعلم MQL5؟

  • الأتمتة: يمكنك أتمتة استراتيجيات التداول الخاصة بك باستخدام الروبوتات التداولية، مما يتيح لك التداول على مدار الساعة طوال أيام الأسبوع دون تدخل يدوي.
  • التخصيص: يمكنك إنشاء مؤشرات فنية مخصصة لتلبية احتياجاتك الخاصة في التحليل الفني.
  • الاختبار الخلفي: يمكنك اختبار أداء استراتيجيات التداول الخاصة بك على بيانات تاريخية باستخدام الاختبار الخلفي (Backtesting)، مما يساعدك على تحسينها قبل استخدامها في التداول الحقيقي.
  • التحسين: يمكنك تحسين استراتيجياتك باستخدام التحسين (Optimization)، وهي عملية آلية للعثور على أفضل مجموعة من المعلمات لاستراتيجيتك.
  • المرونة: MQL5 توفر مرونة كبيرة في تطوير أدوات تداول مبتكرة.

أساسيات برمجة MQL5

أنواع البيانات

MQL5 تدعم أنواع بيانات مختلفة، بما في ذلك:

  • int: الأعداد الصحيحة.
  • double: الأعداد العشرية.
  • bool: القيم المنطقية (صحيح أو خطأ).
  • string: النصوص.
  • datetime: التاريخ والوقت.

المتغيرات والثوابت

  • المتغيرات: هي أماكن في الذاكرة تستخدم لتخزين البيانات التي يمكن تغييرها أثناء تنفيذ البرنامج.
  • الثوابت: هي أماكن في الذاكرة تستخدم لتخزين البيانات التي لا يمكن تغييرها أثناء تنفيذ البرنامج.

العمليات

MQL5 تدعم العمليات الحسابية (الجمع والطرح والضرب والقسمة)، والعمليات المنطقية (AND و OR و NOT)، وعمليات المقارنة (أكبر من وأصغر من ومساوٍ ل).

هياكل التحكم

  • if-else: تستخدم لتنفيذ كود معين إذا كان شرط معين صحيحًا، وكود آخر إذا كان الشرط خاطئًا.
  • for: تستخدم لتكرار تنفيذ كود معين لعدد محدد من المرات.
  • while: تستخدم لتكرار تنفيذ كود معين طالما أن شرط معين صحيحًا.
  • switch: تستخدم لتحديد مسار تنفيذ معين بناءً على قيمة متغير.

الدوال

الدوال (Functions) هي مجموعات من التعليمات البرمجية التي تقوم بمهمة معينة. يمكن للدوال أن تأخذ مدخلات (معلمات) وتعيد مخرجات.

أنواع البرامج في MQL5

  • Expert Advisors (EAs): الروبوتات التداولية التي تنفذ التداول تلقائيًا بناءً على استراتيجية محددة.
  • Custom Indicators: المؤشرات الفنية المخصصة التي تعرض معلومات إضافية على الرسم البياني.
  • Scripts: برامج تنفذ مهمة واحدة محددة، مثل إغلاق جميع الصفقات المفتوحة.
  • Libraries: مجموعات من الدوال التي يمكن استخدامها في برامج أخرى.
  • Service: برامج تعمل في الخلفية وتوفر خدمات إضافية.

مثال بسيط: مؤشر فني بسيط

هذا مثال بسيط لكيفية إنشاء مؤشر فني بسيط يعرض المتوسط المتحرك البسيط (Simple Moving Average - SMA):

```mql5

  1. property indicator_chart_window
  2. property indicator_buffers 1
  3. property indicator_plots 1

double MA[];

int OnInit()

 {
  SetIndexBuffer(0, MA, INDICATOR_DATA);
  IndicatorSetString(INDICATOR_SHORTNAME, "SMA");
  return(INIT_SUCCEEDED);
 }

int OnCalculate(const int rates_total,

               const int prev_calculated,
               const datetime &time[],
               const double &price[])
 {
  int limit = rates_total - prev_calculated;
  double sum = 0.0;
  for(int i = 0; i < limit; i++)
    {
     sum += price[i];
     MA[i] = sum / (i + 1);
    }
  return(rates_total);
 }

```

أدوات التطوير

  • MetaEditor: محرر الكود المدمج في MetaTrader 5.
  • Debugger: أداة لتصحيح الأخطاء في الكود.
  • Strategy Tester: أداة لاختبار أداء استراتيجيات التداول.
  • Optimizer: أداة لتحسين معلمات استراتيجيات التداول.
  • MQL5 Community: منتدى على الإنترنت حيث يمكنك الحصول على المساعدة وتبادل المعرفة مع مبرمجي MQL5 الآخرين.

موارد إضافية

استراتيجيات التداول والتحليل الفني

لتطبيق برامج MQL5 بشكل فعال، من الضروري فهم استراتيجيات التداول المختلفة والتحليل الفني. بعض الاستراتيجيات الشائعة تشمل:

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

التحليل الفني المتقدم

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

آمل أن يكون هذا المقال قد قدم لك مقدمة جيدة لبرمجة MQL5. تذكر أن الممارسة والتجربة هما المفتاح لإتقان هذه اللغة القوية.

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

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

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

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

Баннер