صفحة 4 من 16 الأولىالأولى 1234567891014 ... الأخيرةالأخيرة
النتائج 46 إلى 60 من 237
  1. #46
    الصورة الرمزية وليد الامور
    وليد الامور غير متواجد حالياً بطل دوري أبطال التحليل (3)
    تاريخ التسجيل
    Dec 2006
    الإقامة
    القاهرة
    العمر
    44
    المشاركات
    2,228

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

    خطوة رائعة جدا ارجو لها الاكتمال و التوفيق
    ولكن لى رجا اااااء (ان يغلق الموضوع على الشرح فقط اما اى استفسارات او اسئلة يفرد لها موضوع خاص)
    حتى لا يتشتت احد. ولا اية رايكم

  2. #47
    الصورة الرمزية esam 123
    esam 123 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Dec 2006
    الإقامة
    مصر
    المشاركات
    1,678

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

    اليكم اخوتى الاحباب الدرس الثانى للاستاذ وضاح عطار على هيئة ملف وورد
    الملفات المرفقة الملفات المرفقة

  3. #48
    الصورة الرمزية wajdyss
    wajdyss غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2006
    الإقامة
    جزر الملديف
    المشاركات
    2,999

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

    جزاكم الله كل خير
    توقيع العضو
    مبرمج MT4 , MT5

    يمكنكم الاستماع للقرآن الكريم 24/7
    https://forum.arabictrader.com/t265331.html

  4. #49
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,043

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

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

    في هذا الدرس سنتطرق إلى أنواع المعلومات التي يمكن للغة MQL4 أن تتعامل معها.

    هذه الأنواع هي:

    أولا: المعلومات أو البيانات الرقمية:

    والتي بدورها تنقسم إلى قسمين:

    -- أرقام صحيحة integer ليس فيها فاصلة عشرية مثل 245 و 900 و -98 و الصفر.

    يتم تعريف هذا النوع من المعلومات ( والتي تكون إما متحولا Variable أو وظيفة Function ) عبر الأمر int وهو طبعا اختصار لـ integer.

    حدود هذه الأرقام الصحيحة هي من -2147483648 إلى 2147483647 .

    أي رقم أكبر من المجال المسموح لن يخزن بشكل صحيح ولن تعرف النتيجة الحاصلة.

    أمثلة عن تعريف متحولات أو وظائف يكون نوع البيانات فيها من النوع الصحيح:

    كود PHP:
    int a;
    int b=5;
    int a,b=5;
    int a,b;
    int GetTop(int a,intb)
    {
    return(
    99);

    لاحظوا أننا عرفنا عدة متحولات صحيحة بعدة أشكال.

    يمكن تعريف عدة متحولات مع إعطائهم قيمة أولية.


    يمكن تعريف أكثر من متحول لنفس الأمر مع الفصل بينهما بالفاصلة العادية.

    أو يمكن تعريف كل متحول لوحده.

    إن تعامل الكمبيوتر مع الأرقام الصحيحة أسرع من تعامله مع الأرقام ذات الفاصلة العشرية.

    كما أنه يستهلك موارد ذاكرية أقل.

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

    مثلا عدد الشموع هو عدد صحيح دائما وأيضا عدد الصفقات المفتوحة مثلا.

    بينما الأسعار هي أرقام ذات فاصلة ولا يمكن تخزينها في متحولات صحيحة.

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

    ولا تعرف ما هي المشكلة من عدم عمله بينما يكون السبب تعريف متحول بشكل خاطيء.

    والمصيبة أن اللغة لا تعطيك دائما رسائل خطأ تعلم من خلالها أن هناك مشكلة مع المتحولات.

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

    ويحدث هذا الأمر دون أن يحدث خطأ ينبهك. بينما لن يعمل برنامج بشكل صحيح.


    -- أرقام مضاعفة double والتي تستخدم لتخزين أرقام صحيحة أو التي تحتوي على فاصلة عشرية مثل ( 0.2589 - 1.2589 - 582 - 0 - (-98.25)).

    تستخدم غالبا المتحولات العشرية لتخزين الأسعار أو النسب المئوية وهكذا.

    مجال هذا النوع هو من -1.7 × e قوة -308 إلى 1.7 × e قوة 308 .

    e هي النسبة الرياضية المعروفة ( يمكن 2.8 ). وهذا يعني مجال واسع جدا جدا.


    ثانيا: المعلومات النصية:

    والتي تعرف من خلال الأمر string وهي تعني ان المتحول سنخزن فيه أحرفا أو أرقاما.

    والأرقام التي نخزنها في المتحول النصي لا يتعام معها الكمبيوتر على أنها أرقام بل يتعامل معها على أساس أنها أحرف.

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


    أمثلة:

    كود PHP:
    string MyName;
    string MyName,MyAddress;
    string MyName="Ahmad";
     
    string GetName(string address)
    {
    return(
    "Ahmad");

    يجب وضع القيم النصية داخل علامتي التنصيص المزدوجة " .

    ثالثا: المعلومات المنطقية Boolean:


    والتي تعرف من خلال الأمر bool . وهذه المتحولات تخزن فقط قيمتين هما صح true أو خطأ false.

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

    فأي احتمال مثل هل تريد أن يعمل التنبيه مثلا هو نعم أو لا .
    أو هل السعر قريب من المتوسط له بمقدار 10 نقاط هو نعم أو لا .

    ولا يوجد إجابة أخرى يعني إما أبيض وإما أسود.

    أمثلة:

    كود PHP:
    bool a=true,b=false;
    bool a;
     
    bool GetStatus()
    {
    return(
    true);


    رابعا: المعلومات أو البيانات الزمنية datetime:

    يتم تعريف المتحولات الزمنية بالأمر datetime ويمكنه تخزين تاريخ فقط أو تاريخ وزمن أو زمن فقط في هذا المتحول.

    المجال المتاح تخزينه في المتحولات الزمنية هو من Jan 1, 1970 إلى Dec 31, 2037.

    يعني في العام 2037 سوف تتوقف كل المؤشرات والاكسبيرتات.

    طبعا هذا المجال على مستوى الثواني.

    يتم إضافة الحرف D قبل القيمة الزمنيةالتي نريد وضعها في المتحول.

    أمثلة:

    كود PHP:
    datetime expiredate=D'2007.05.01 06:55:23';
    datetime dd=D'06:30'
    التنسيق الزمني هو: العام(.)الشهر(.)اليوم (مسافة) الساعة(الدقيقة(الثانية

    إذا لم تكتب التاريخ فسوف يكون التاريخ الافتراضي هو تاريخ عمل النسخة التنفيذية للمؤشر أو تاريخ التنفيذ.
    توقيع العضو
    اثنان لا يجتمعان علم وسوء خلق

  5. #50
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,043

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

    بعد أن تعرفنا على أنواع المتحولات والوظائف هناك موضوع غاية في الأهمية ألا وهو مجالات المتحولات Variable Scope .

    ما هو المعنى الفني لمصطلح مجالات المتحولات ؟


    ببساطة يمكن القول أن المجال يعني منطقة عمل هذه المتحولات.

    ولتبسيط هذا المفهوم نقول:

    افترض أن الكتلة البرمجية للبرنامج كلها هي مجال عمل للبرنامج كله.

    وافترض أن الكتلة البرمجية لأي وظيفة هي مجال فرعي من المجال الكلي للبرنامج.

    وكل كتلة برمجية وظيفية هي مجال فرعي من مجال البرنامج الكلي.

    ولاحظ أنه لا يوجد تداخل بين المجالات الفرعية للكتل الوظيفية. وكل هذه المجالات الفرعية هي حتما ضمن المجال الأكبر وهو مجال البرنامج.

    الآن لتخيل الموضوع أكثر افترض أن لدينا دائرة كبيرة هي دائرة البرنامج.

    وفي داخلها دوائر أصغر منها وموجودة كلها بداخل الكرة الكبيرة ولكن دون تقاطع فيما بين الدوائر الصغيرة.

    هذه الدوائر الصغيرة هي الوظائف الموجودة ضمن برنامجنا.

    والآن نعود لمفهوم مجالات المتحولات ونقول:

    إذا عرفنا المتحول ضمن دائرة مجال البرنامج كله فهذا يعني أننا نستطيع التعامل مع هذا المتحول من كل برنامجنا بما فيه المجالات الفرعية الأصغر للكتل الوظيفية.

    ويقصد بالتعامل مع المتحول قراءة قيمته وتغييرها.

    أما إذا عرفنا المتحول ضمن دائرة مجال الوظيفة الفرعية فإننا نستطيع التعامل معه فقط من داخل هذا المجال. وهذ المتحول لن يكون معرفا ولن نستطيع التعامل معه من خارج هذه الدائرة.

    الآن إذا أردنا لمتحول أن يكون عاما Global لكل برنامجنا فيجب تعريفه Declare في بداية برنامجنا وخارج أي كتلة وظيفية وفعليا يتم كتابته قبل الوظيفة init.

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

    وفي هذه الحالة لن يكون له قيمة أو يمكن التعامل معه من خارج هذه الوظيفة.

    إذا عرفنا متحول باسم a في المنطقة العامة للبرنامج فنحن لن نستطيع تعريفه بنفس الاسم داخل أي من وظائفنا الأخرى.

    أما إذا عرفنا المتحول a في الوظيفة F1 مثلا فنحن نستطيع أيضا أن نعرف متحول آخر بنفس الاسم a في الوظيفة F2 بدون مشاكل.

    ويكون المتحول الأول مختلفا عن الآخر.

    بمجرد خروج التنفيذ من الكتلة البرمجية للوظيفة فإن أي متحول معرف داخلها لن يكون له أي قيمة وغير معرف خارجها.

    ولن يعود له قيمة إلا إذا عدنا مرة أخرى لتنفيذ الوظيفة مرة أخرى.

    وهنا يجب التفريق بين حالتين:

    إذا أردنا أن نحافظ على قيمة المتحول داخل الوظيفة حتى ولو خرج التنفيذ وعاد لها مرة أخرى فإننا نستخدم التعبير static عند تعريف المتحولات.

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

  6. #51
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,043

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

    أمثلة توضح المقصود من مجالات المتحولات:

    المثال الأول:


    كود PHP:

    #property indicator_chart_window
    // المتحولات التي تعرف هنا عامة في جميع البرنامج
    int gNum=5;
    double gPrice=1.2587;
    int init()
    {
    // المتحولات التي تعرف من داخل الوظيفة تكون خاصة بها فقط
      
    string Name="Waddah Attar";
      
      Print(
    Name,gNum);
      return(
    0);
    }
    int deinit()
    {
      
    datetime ExpirDate=D'2007.05.01';
      Print(
    ExpireDate,gPrice);
      return(
    0);
    }
    int start()
    {
    // لا يمكن تعريف متحول هنا بنفس اسم متحول عام لذلك السطر التالي خطأ
      
    int gNum;
    // يمكن تعريف متحول هنا بنفس اسم متحول معرف داخل وظيفة أخرى مثل 
      
    string Name="Mohammed";
     
      
    int A,B;
     
      return(
    0);

    في المثال السابق عرفنا متحولين عامين هما gNum gPrice

    هذين المتحولين نستطيع التعامل معهما من أي جزء من برنامجنا ومن داخل أي وظيفة.


    عرفنا متحولات خاصة بالوظيفة init وهذه المتحولات لا يمكن التعامل معها إلا من داخل الوظيفة init نفسها.

    وأي محاولة للتعامل معها من خارج هذه الوظيفة سوف يقابل برسالة خطأ قاتلة Fatal Error.

    يمكن تعريف متحول في وظيفة بنفس الاسم المعرف بها في وظيفة أخرى.

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



    بقيت نقطة هامة أخرى وهي المتحولات الستاتيكية static variable

    انظروا لهذا المثال أولا:

    كود PHP:
    int start()
    {
      
    int a=5;
     
      Print(
    a);
      
    a=a+1;
     
      return(
    0);


    المثال السابق يعرف متحولا باسم a ويعطيه قيمة افتراضية هي 5 .
    ثم يقوم بطباعته وبعد ذلك يزيد لقيمته واحد .

    الآن بمجرد خروج التنفيذ من الوظيفة start ثم العودة لها مرة أخرى فإن قيمة a ستعود لتصبح 5 من جديد.

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

    وعند الدخول مرة أخرى للوظيفة فإن قيمة المتحول a لن تعود للقيمة الإفتراضية له بل ستأخذ آخر قيمة لها من آخر تنفيذ للوظيفة start

    ولكي يصبح مثالنا السابق صحيحا فإن المثال يصبح على الشكل التالي:

    كود PHP:
    int start()
    {
      static 
    int a=5;
     
      Print(
    a);
      
    a=a+1;
     
      return(
    0);

    الآن أول مرة تنفذ فيها الوظيفة start فإن قيمة المتحول a ستكون 5 .

    ثم تصبح 6 بعد زيادة الواحد إليها.


    ثم ينتهي تنفيذ الوظيفة ويخرج التنفيذ منها.

    عند العودة مرة أخرى إلى تنفيذ الوظيفة start فإن القيمة الأخيرة 6 ستكون في المتحول a ولن يأخذ القيمة الافتراضية 5 .

    ثم يزداد واحد ليصبح 7 وهكذا مع كل تنفيذ.

    هذه هي فائدة المتحولات الستاتيكية في أنها تحافظ على قيمها عند خروج التنفيذ من الوظيفة التي عرفوا بها.

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

    أيضا يجب التنويه إلى أن المتحولات العامة تستهلك ذاكرة وموارد أكثر من المتحولات الستاتيكية

    بينما المتحولات المحلية Local Variable تستهلك أقل الموارد.
    توقيع العضو
    اثنان لا يجتمعان علم وسوء خلق

  7. #52
    الصورة الرمزية wajdyss
    wajdyss غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2006
    الإقامة
    جزر الملديف
    المشاركات
    2,999

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

    أخ وضاح

    جزاك الله عنا كل خير
    توقيع العضو
    مبرمج MT4 , MT5

    يمكنكم الاستماع للقرآن الكريم 24/7
    https://forum.arabictrader.com/t265331.html

  8. #53
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,043

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

    شكرا لكل المتابعين والمهتمين

    ولكن هل من المعقول أنه لا توجد أسئلة على الدروس الماضية حتى الآن ..
    توقيع العضو
    اثنان لا يجتمعان علم وسوء خلق

  9. #54
    الصورة الرمزية shadoon2
    shadoon2 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2006
    الإقامة
    أوكرانيا
    المشاركات
    156

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

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

  10. #55
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,043

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

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

    أهلا بك أخي العزيز أبو فاضل

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

    وأنا بانتظار أسئلتكم واستفساراتكم هنا أو في الموضوع المخصص للأسئلة البرمجية

    شكرا لكم
    توقيع العضو
    اثنان لا يجتمعان علم وسوء خلق

  11. #56
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,043

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

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


    سنبدأ مع هذا الدرس البدء في بناء مؤشرنا الذي تحدثنا عنه في الدروس السابقة:

    الخطوات الفعلية لبناء مؤشر بشكل عام:

    - تجهيز خصائص المؤشر من حيث عدد الخطوط المطلوب رسمها ولونه.

    - تجهيز المصفوفات التي سنضع فيها القيم الرقمية لقيمة كل خط من المؤشر ولكل شمعة.

    لأنه يمكن أن يكون المؤشر عبارة عن خط أو أكثر.

    وكل مؤشر يستطيع إظهار حتى ثمانية خطوط في نفس الوقت.

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

    فمثلا مؤشر المتوسط المتحرك عبارة عن خط واحد بينما مؤشر البولينغر عبارة عن ثلاثة خطوط.

    كل خط من خطوط المؤشر يجب أن يرتبط بمصفوفة نقوم نحن بإنشائها داخل برنامجنا.

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

    وأي تغيير في قيم هذه المصفوفة سينعكس مباشرة على الشارت.

    - إعطاء هذه الذاكرة الرسومية الوسيطة الخصائص الرسومية المناسبة لطريقة رسم الخط.

    هذه الخصائص الرسومية هي شكل الخط ولونه وطريقة رسمه.

    - آخر خطوة هي ملء المصفوفة بالقيم المناسبة في كل مرة يتغير فيها السعر.



    والآن سنبدأ في كتابة الكود البرمجي للمؤشر:

    تذكير فقط بمهمة مؤشرنا:

    المؤشر سيرسم في نافذة منفصلة خطين عمودين لكل شمعة.
    الخط العمودي الأول هو عبارة عن طول الشمعة الحالية.
    الخط العمودي الثاني هو عبارة عن طول جسم الشمعة.

    الخطوة الأولى:

    لنعد إلى الكود الفارغ الذي أنشئناه في الدرس الثاني وهو كالتالي:

    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                Candle Length.mq4 |
    //|                               Copyright © 2006, eng waddah attar |
    //| 
    كود PHP:
    http://www.****quotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2006, eng waddah attar"
    #property link      "http://www.****quotes.net"
    #property indicator_separate_window
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
    //---- indicators
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start()
      {
       
    int    counted_bars=IndicatorCounted();
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+ 
    - يجب تحديد خصائص ابتدائية للمؤشر من حيث عدد الخطوط الواجب عرضها على الشارت وهي عندنا هنا 2 .

    ويتم ذلك بواسطة الأمر property والذي مهمته تحديد خصائص المؤشر.


    والأمر الكامل هو:

    كود PHP:
    #property indicator_buffers 2 

    بواسطة الأمر السابق حددنا للمترجم ( Compiler ) أن عدد الخطوط هو اثنان.

    وأي أمر في البرنامج تجد أوله هو # فهذا يعني أن هذا الأمر هو موجه للمترجم مباشرة.

    - نحدد الآن لون كل خط وذلك بواسطة الأمر property نفسه ولكن مع تغيير اسم الخاصية طبعا.

    والأمر الكامل هو:

    كود PHP:
    #property indicator_color1 Green
    #property indicator_color2 Red 

    لاحظوا أن أوامر المترجم لا تنتهي بالقاصلة المنقوطة.

    من الخطوات السابقة نتعلم أن أمر المعالج property هو لإعلام المترجم بالخصائص البرمجية المطلوبة لمؤشرنا ( وهي غير الخصائص للمؤشر نفسه والتي يستطيع المستخدم تغييرها ).

    لمعرفة الألوان المتاحة في المؤشر ضع الكورسر على الكلمة Green ثم اضغط F1 سيظهر لك جدول الألوان مع تسمياتها.

    - نبدأ الآن في كتابة أسطر تعريف المصفوفتين الضروريتين لعمل مؤشرنا.

    سنحجز مصفوفتين من النوع double أي أرقام بفاصلة عشرية لتخزين قيم طول كل شمعة.

    سنسمي الأولى BufLength1 والثانية BufLength2

    التسميات طبعا اختيارية ولكن يفضل أن تكون مفهومة ومعبرة عن الهدف منها.

    ويجب حجز هذه المصفوفات في مجال البرنامج كله ولذلك سنكتب أوامر التعريف قبل الوظيفة init

    ويصبح الكود النهائي على الشكل التالي:

    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                Candle Length.mq4 |
    //|                               Copyright © 2006, eng waddah attar |
    //| 
    كود PHP:
    http://www.****quotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2006, eng waddah attar"
    #property link      "http://www.****quotes.net"
    #property indicator_separate_window
    #property indicator_buffers 2
    #property indicator_color1 Green
    #property indicator_color2 Red
    double BufLength1[];
    double BufLength2[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
    //---- indicators
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start()
      {
       
    int    counted_bars=IndicatorCounted();
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+ 
    توقيع العضو
    اثنان لا يجتمعان علم وسوء خلق

  12. #57
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,043

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

    سنعمل الآن على ربط المصفوفات بالذاكرة الرسومية الوسيطة من خلال الوظيفة SetIndexBuffer

    هذه الوظيفة تقوم بربط الذاكرة الوسيطة ( وهي لها أرقام من 0 إلى 7 ) بالمصفوفة المطلوبة ويكون تنفيذ الأمر بالنسبة لمؤشرنا على الشكل التالي:


    كود PHP:
    SetIndexBuffer(0,BufLength1);
    SetIndexBuffer(1,BufLength2); 
    لهذه الوظيفة مدخلين فقط الأول هو رقم الذاكرة الوسيطة ( 0 - 7 ).

    والمدخل الثاني هو اسم المصفوفة المعرفة مسبقا ( دون الأقواس المربعة [ ] ).


    بهذه الخطوة نكون قد ربطنا مصفوفاتنا بالذاكرة الرسومية الوسيطة.

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


    الآن يجب تحديد بعض الخصائص الرسومية لكل ذاكرة رسومية وسيطة مثل نوع الخط وسماكته ولونه.

    يتم تحديد نوع الخط المرسوم بواسطة الوظيفة SetIndexStyle

    لهذه الوظيفة عدة مدخلات الأول والثاني إجباري تحديد القيم لهما

    المدخلات الثلاثة الباقية تحديد قيمهم اختياري وهم سيأخذون قيما افتراضيا في حال عدم تحديد قيم لهم.

    المدخلتان ( البارامتران ) الأوليان هما رقم الذاكرة الوسيطة ( 0 - 7 ) ثم نوع رسم الخط على التوالي.

    كل خط نستطيع أن نحدد له عدة أنواع من طرق الرسم

    وما يهمنا هنا هو نوعان فقط حاليا:

    النوع الأول : DRAW_LINE ( وهو عبارة عن قيمة ثابتة لها الرقم صفر ).

    النوع الثاني : DRAW_HISTOGRAM ( وهو عبارة عن قيمة ثابتة لها الرقم اثنان ).


    نحن سنحدد أن نوع رسم الخط هو خطوط عمودية HISTOGRAM وستكون الأوامر على الشكل التالي:

    كود PHP:
    SetIndexStyle(0,DRAW_HISTOGRAM);
    SetIndexStyle(1,DRAW_HISTOGRAM); 
    أي أننا نريد رسم الخط الأول والخط الثاني على شكل أعمدة ( مثل مؤشر الماكد ).

    بهذا قد نكون قد انتهينا من تحديد ما يلزمنا حاليا من خصائص رسومية ونستطيع إكمال مؤشرنا.


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

    هذا الربط بين المصفوفات والذاكرة الوسيطة وتحديد الخصائص الرسومية يتم تنفيذها مرة واحد فقط.

    لذلك نضع كل هذه التعليمات البرمجية داخل الوظيفة init والتي تنفذ مرة واحدة عند وضع المؤشر على الشارت.

    ويصبح الكود النهائي للمؤشر الحالي على الشكل التالي:

    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                Candle Length.mq4 |
    //|                               Copyright © 2006, eng waddah attar |
    //|                                               www.****quotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2006, eng waddah attar"
    #property link      "http://www.****quotes.net"
    #property indicator_separate_window
    #property indicator_buffers 2
    #property indicator_color1 Green
    #property indicator_color2 Red
    double BufLength1[];
    double BufLength2[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
    {
      
    SetIndexBuffer(0,BufLength1);
      
    SetIndexBuffer(1,BufLength2);
      
    SetIndexStyle(0,DRAW_HISTOGRAM);
      
    SetIndexStyle(1,DRAW_HISTOGRAM);
      return(
    0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
    int start()
      {
       
    int    counted_bars=IndicatorCounted();
    //----
       
    //----
       
    return(0);
      }
    //+------------------------------------------------------------------+ 
    توقيع العضو
    اثنان لا يجتمعان علم وسوء خلق

  13. #58
    الصورة الرمزية forex friend
    forex friend غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2007
    الإقامة
    مصر - القاهرة
    المشاركات
    17

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

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

  14. #59
    الصورة الرمزية wajdyss
    wajdyss غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2006
    الإقامة
    جزر الملديف
    المشاركات
    2,999

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

    جزاك الله كل خير يا اخ وضاح
    توقيع العضو
    مبرمج MT4 , MT5

    يمكنكم الاستماع للقرآن الكريم 24/7
    https://forum.arabictrader.com/t265331.html

  15. #60
    الصورة الرمزية وضاح عطار
    وضاح عطار غير متواجد حالياً عضو مميز ومشرف سابق
    تاريخ التسجيل
    Apr 2006
    الإقامة
    السعودية
    العمر
    52
    المشاركات
    7,043

    افتراضي رد: تعال وتعلم معنا لغة MQL4 حتى الاحتراف

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

    بالنسبة للشرح العربي لن تجده إلا في المنتديات العربية وخصوصا المتداول العربي

    بالنسبة للشرح الأجنبي فيمكنك البحث في جوجل وستجد الكثير من الملفات والكتب باللغة الأجنبية.

    أنصحك بمتابعة الدورة هنا ففيها خبرات عالية جدا إن شاء الله .

    وشكرا لك
    توقيع العضو
    اثنان لا يجتمعان علم وسوء خلق

صفحة 4 من 16 الأولىالأولى 1234567891014 ... الأخيرةالأخيرة

المواضيع المتشابهه

  1. للمبتدأين (حلل وتعلم) ضع تحليلاتك وتعلم من اخطائك
    By BahraiN in forum استفسارات وأسئلة المبتدئين
    مشاركات: 248
    آخر مشاركة: 14-05-2012, 10:27 PM
  2. اريد كتاب به مفاتيح طرق الاحتراف
    By عزيز in forum استفسارات وأسئلة المبتدئين
    مشاركات: 13
    آخر مشاركة: 29-08-2006, 03:48 AM

الاوسمة لهذا الموضوع


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17