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

From binaryoption
Revision as of 14:29, 7 May 2025 by Admin (talk | contribs) (@CategoryBot: Добавлена категория)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Баннер1

```wiki

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

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

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

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

  • int (عدد صحيح): يستخدم لتخزين الأعداد الصحيحة (بدون كسور). نطاق القيم: -2,147,483,648 إلى 2,147,483,647 (32 بت).
   *   مثال: `int age = 30;`
  • double (عدد عشري): يستخدم لتخزين الأعداد العشرية (مع كسور). يوفر دقة أعلى من `float`.
   *   مثال: `double price = 1.12345;`
  • bool (قيمة منطقية): يمكن أن يأخذ قيمتين فقط: `true` (صحيح) أو `false` (خاطئ).
   *   مثال: `bool isProfitable = true;`
  • char (حرف): يستخدم لتخزين حرف واحد.
   *   مثال: `char initial = 'A';`
  • string (سلسلة نصية): يستخدم لتخزين سلسلة من الأحرف.
   *   مثال: `string name = "John Doe";`

الأنواع المشتقة

تعتمد الأنواع المشتقة على الأنواع الأساسية وتوفر وظائف إضافية.

  • datetime (تاريخ ووقت): يستخدم لتخزين التاريخ والوقت. يتم تخزينه كعدد صحيح يمثل عدد الثواني منذ 1 يناير 1970.
   *   مثال: `datetime tradeTime = TimeCurrent();`
  • color (لون): يستخدم لتخزين اللون. يتم تمثيله بقيمة عددية.
   *   مثال: `color trendColor = clrRed;`
  • enum (تعداد): يسمح بتعريف مجموعة من الثوابت المسماة. هذا يجعل الكود أكثر قابلية للقراءة والفهم.
   *   مثال:
   ```mql4
   enum ORDER_TYPE {
       OP_BUY,
       OP_SELL
   };
   ```
  • struct (هيكل): يسمح بتجميع متغيرات من أنواع مختلفة تحت اسم واحد.
   *   مثال:
   ```mql4
   struct TradeInfo {
       double openPrice;
       double closePrice;
       int volume;
   };
   ```
  • class (صنف): يشبه الهيكل، ولكنه يوفر أيضًا وظائف (methods) للعمل على البيانات. البرمجة الشيئية تعتمد بشكل كبير على الأصناف.
   *   مثال: (مثال مبسط)
   ```mql4
   class MyIndicator {
       public:
           double calculateValue(double price);
   };
   ```

المحددات (Modifiers)

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

  • static (ثابت): يستخدم مع المتغيرات داخل الأصناف. المتغير الثابت يشارك نفس القيمة بين جميع مثيلات الصنف.
  • const (ثابت): يستخدم لجعل المتغير غير قابل للتغيير بعد التهيئة.
  • extern (خارجي): يستخدم لجعل المتغير قابلاً للتعديل من خلال إعدادات المؤشر أو المستشار الخبير.
  • global (عام): يستخدم لجعل المتغير مرئيًا لجميع الدوال في البرنامج.

حجم أنواع البيانات

من المهم فهم حجم كل نوع بيانات، حيث يؤثر ذلك على استخدام الذاكرة وأداء البرنامج.

حجم أنواع البيانات في MQL4
النوع الحجم (بايت) النطاق
int 4 -2,147,483,648 إلى 2,147,483,647
double 8 ±1.7976931348623157E+308
bool 1 true أو false
char 1 0 إلى 255
string متغير يعتمد على طول السلسلة
datetime 8 عدد الثواني منذ 1 يناير 1970
color 4 قيمة عددية تمثل اللون

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

في بعض الأحيان، قد تحتاج إلى تحويل قيمة من نوع بيانات إلى آخر. MQL4 يوفر دوال للقيام بذلك:

  • iToD(int value): يحول عددًا صحيحًا إلى عدد عشري.
  • dToI(double value): يحول عددًا عشريًا إلى عدد صحيح (يقوم بالتقريب).
  • StringToInteger(string str): يحول سلسلة نصية إلى عدد صحيح.
  • IntegerToString(int value, string digits): يحول عددًا صحيحًا إلى سلسلة نصية.
  • StringToDouble(string str): يحول سلسلة نصية إلى عدد عشري.
  • DoubleToString(double value, string digits): يحول عددًا عشريًا إلى سلسلة نصية.

مثال:

```mql4 int integerValue = 10; double doubleValue = iToD(integerValue); // doubleValue الآن يساوي 10.0 ```

استخدام أنواع البيانات في استراتيجيات التداول

اختيار نوع البيانات المناسب أمر بالغ الأهمية في تطوير استراتيجيات التداول. على سبيل المثال:

  • في استراتيجية التقاطع المتحرك (Moving Average Crossover)، قد تحتاج إلى استخدام `double` لتخزين قيم المتوسطات المتحركة.
  • في استراتيجية تتبع الاتجاه (Trend Following)، قد تحتاج إلى استخدام `datetime` لتسجيل أوقات الدخول والخروج من الصفقات.
  • في استراتيجية كسر النطاق (Breakout Strategy)، قد تحتاج إلى استخدام `int` لتحديد حجم الصفقات.
  • في استراتيجية الارتداد من الدعم والمقاومة (Support and Resistance Bounce)، قد تحتاج إلى استخدام `double` لتحديد مستويات الدعم والمقاومة.
  • في استراتيجية الشموع اليابانية (Candlestick Patterns)، قد تحتاج إلى استخدام `string` لتخزين أسماء الأنماط.

أفضل الممارسات

  • **استخدم النوع الأنسب:** اختر نوع البيانات الذي يمثل البيانات التي تحاول تخزينها بدقة. استخدام نوع بيانات غير مناسب يمكن أن يؤدي إلى أخطاء في الحسابات أو فقدان الدقة.
  • **استخدم `const` للمتغيرات الثابتة:** هذا يمنع التعديل العرضي للمتغيرات التي يجب أن تظل ثابتة.
  • **استخدم `extern` للمتغيرات القابلة للتعديل:** هذا يسمح للمستخدمين بتخصيص معلمات المستشار الخبير أو المؤشر دون الحاجة إلى تعديل الكود.
  • **كن حذرًا عند التحويل بين أنواع البيانات:** تأكد من أنك تفهم تأثير التحويل على البيانات.

مواضيع ذات صلة

```

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

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

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

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

Баннер