صفحة 3 من 13 الأولىالأولى 123456789 ... الأخيرةالأخيرة
النتائج 31 إلى 45 من 192
  1. #31
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    نبدأ أولا بالنظر لصندوق الأعدادت للمؤشر كما بالصور التالية ويكون الكود الذي سنجربه هو

    كود:
      iCustom(NULL,0,"Laguerre",0.7,950,0,0)
    ويوجد بالمؤشر لون واحد لذلك سنجرب 0 فقط للرقم قبل الأخير
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 1.GIF‏   2.GIF‏  

  2. #32
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    الخطوة التالية نعمل سكربت الأختبار ونضعه بالمجلد script ونشغله مرتين مرة للشمعة الحالية 0 ومرة علي بعد 5 شمعات ونقارن النتائج مع وجود المؤشر بملف المؤشرات

    كود:
     
    #property show_confirm int start() { double Test; Test=iCustom(NULL,0,"Laguerre",0.7,950,0,0); Alert(Test); return(0); }
    كود:
     
    #property show_confirm int start() { double Test; Test=iCustom(NULL,0,"Laguerre",0.7,950,0,5); Alert(Test); return(0); }

    سنجد النتائج متطابقة يعني الكود المطلوب هو

    كود:
     iCustom(NULL,0,"Laguerre",0.7,950,0,0)
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 3.GIF‏   4.GIF‏  
    الملفات المرفقة الملفات المرفقة

  3. #33
    الصورة الرمزية السلاحف
    السلاحف غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2011
    الإقامة
    تركيا
    المشاركات
    2,262

    افتراضي

    مجهود متميز،

    ارجوا ان يستفيد الاخوه من هذا العمل،

    الله بارك فيك.
    توقيع العضو
    لَا إِلَه إِلَّا أَنْت سُبْحَانَكــ إِنِّي كُنْت مِن الْظَّالِمِيْن

  4. #34
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    وبعد أن عرفنا كود المؤشر نعمل الأكسبرت.

    كود:
     
    extern int Takeprofit=60; extern int StopLoss=60; extern double Lot=0.1; extern int Magic=5489; double R; int init() { return(0); } int deinit() { Comment(""); return(0); } int start() { Comment("LaguerreEA"); int T; for (int i = 0; i < OrdersTotal(); i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if ((OrderType() == OP_BUY||OrderType() == OP_SELL)&& T< OrderTicket()) { T= OrderTicket(); } } } R= iCustom(NULL,0,"Laguerre",0.7,950,0,0); if(R>0.75&&T==0) // Buy { T=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-StopLoss*Point,Ask+Takeprofit*Point,"",Magic,0,Red); if(T<0){ Sleep(5000); RefreshRates(); Print(GetLastError()); } } if(R<0.15&&T==0) //Sell { T=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+StopLoss*Point,Bid-Takeprofit*Point,"",Magic,0,Red); if(T<0){ Sleep(5000); RefreshRates(); Print(GetLastError()); } } return(0); }
    كود:
     
    extern int Takeprofit=60; extern int StopLoss=60; extern double Lot=0.1; extern int Magic=5489; double R;
    وهذا لنعرف الهدف ووقف الخسارة واللوت ورقم الميجك ونتحكم بهم من الأعدادات.

    كود:
     
    int deinit() { Comment(""); return(0); } int start() { Comment("LaguerreEA");
    الكود Comment يظهر تعليق مكتوب علي أعلي الشارت علي اليسار وعندما لا نضع الكود المبين بدالة deinit سيظل التعليق ملتصق علي الشارت عندما ننزع الأكسبرت

    كود:
     
    int T; for (int i = 0; i < OrdersTotal(); i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if ((OrderType() == OP_BUY||OrderType() == OP_SELL)&& T< OrderTicket()) { T= OrderTicket(); } } }
    وهذا الكود مهم عندما نريد للأكسبرت أن يعمل علي الديمو والحقيقي ويبين لنا هل توجد صفقات مفتوحة أم لا فلو كانت T=0 هذا يعني أنه لا توجد صفقات مفتوحة واذا كانت أقل من صفر يعني الأكسبرت حاول فتح الصفقة ولم يتمكن لوجود خطأ.

    كود:
      R= iCustom(NULL,0,"Laguerre",0.7,950,0,0);
    كود المؤشر الذي سبق وأن عملناه ولكي يعمل ويعمل معه الأكسبرت لابد من وجود المؤشر بملف Indicator.

    كود:
     
    if(R>0.75&&T==0) // Buy { T=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-StopLoss*Point,Ask+Takeprofit*Point,"",Magic,0,Red);
    وهذا شرط الشراء مع الكود الخاص بالشراء والرقم 3 هو السماحية وممكن نغيرها ل6 أو 10 وكلما كانت صغيرة زادت الدقة ولكن ممكن تجعل الأكسبرت لايفتح صفقات عندما تكون صغيرة .
    Ask وهو سعر الطلب و Bid هو سعر العرض .
    و Point تساوي 0.0001 أو 0.00001 أو0.01 علي حسب الشركة والعملة . .


    كود:
     
    if(T<0){ Sleep(5000); RefreshRates(); Print(GetLastError()); } }
    لو وجد الأكسبرت لم يفتح الصفقة سيقوم بالأنتظار 5 ثواني ويطبع لنا رقم الخطأعند Journal ونستطيع بعدها أن نراجع رقم الخطأ ونعرف سبب عدم فتحه للصفقات
    آخر تعديل بواسطة Ram22 ، 08-11-2011 الساعة 10:28 PM

  5. #35
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة السلاحف مشاهدة المشاركة
    مجهود متميز،

    ارجوا ان يستفيد الاخوه من هذا العمل،

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

  6. #36
    الصورة الرمزية السلاحف
    السلاحف غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2011
    الإقامة
    تركيا
    المشاركات
    2,262

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Ram22 مشاهدة المشاركة
    أن شاء الله. ولا تكفي تعلم لغة MQL4 لمن يريد أن يصنع أكسبرتات ناجحة فلابد من تعلم لغات أخري فيوجد مبرمجين أجانب يصنعون برامج تقارن أستراتيجيات كثيرة ثم تختار أفضلها وتعد الأكسبرت اللازم لها بسرعة والمقارنة علي سنوات سابقة وعمل مثل هذا لا بد من تعلم لغات أخري غير MQL4 كي يتم عمله.
    ماهي اللغات الاخرى، اخي؟
    توقيع العضو
    لَا إِلَه إِلَّا أَنْت سُبْحَانَكــ إِنِّي كُنْت مِن الْظَّالِمِيْن

  7. #37
    الصورة الرمزية Ahmed Shihab
    Ahmed Shihab غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2009
    المشاركات
    496

    افتراضي

    متابع معك اخى الكريم

    سوف ابدأ التطبيق ابتداء من يوم السبت القام لانى الان اتابع من خارج منزلى .. على السريع يعنى

    تقبل كامل احترامى استاذنا الكريم

  8. #38
    الصورة الرمزية Ahmed Shihab
    Ahmed Shihab غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2009
    المشاركات
    496

    افتراضي

    اين انت اليوم استاذنا الكريم ؟

    متابع معك اخى رامى ومنتظر تكمله دروسك الجميله

    تقبل ودى اخى

  9. #39
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    الدوال الفرعية


    الدالة الفرعية هي دالة تكون مسؤلة عن مهمة معينة بداخل الأكسبرت ويتم أستدعاء النتائج الي الدالة الرئيسية وتساعد علي تنظيم العمليات داخل الأكسبرت وبناء الأكسبرت المعقد جزء جزء.


    وممكن تكون بهذا الشكل
    كود:
     
    bool LastLow(int t,double r) { bool G; // Code return(G); }
    أو
    كود:
     
    void LastLow(int t,double r) { bool G; // Code }
    كود:
     
    double LastLow(int t,double r) { double G; // Code return(G); }
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 11.GIF‏  

  10. #40
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة السلاحف مشاهدة المشاركة
    ماهي اللغات الاخرى، اخي؟
    توجد لغات كثيرة مثل #C و ++C و فجول بيسك وماتلاب وكل لغة لها مميزاتها وعيوبها يعني ++C صعبة جدا وممتازة جدا والفجول بيسك سهلة وبها عيوب و #C تختلف عن MQL4 ولكن بها نوع من الشبه . والميزة باللغات الأخري أنك لو أتقنتها تستطيع عمل برنامج يحلل ويختبر ويعمل أكسبرت بمعرفتك وتعمل باك تست للأستراتيجيات بها الميزات التي تريدها .

  11. #41
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    مثال : أعمل أكسبرت يقوم بأخبارنا أين يتحرك السعر الأن بالنسبة للمؤشر الموجود بالصورة بأستخدام الدوال الفرعية ويظهر لنا صندوق يخبرنا عن مكان السعر .
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 5.gif‏  

  12. #42
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    الخطوة الأولي نعد الكود الذي نحتاجه لأستدعاء المؤشر ويكون عندنا خمسة أكواد نحتاج أن نختبرها

    كود:
      R1= iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,0,0);
    كود:
     R2=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,1,0);
    كود:
     R3=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,2,0);
    كود:
      R3=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,3,0);
    كود:
     R3=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,4,0);
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 0.GIF‏   01.GIF‏  

  13. #43
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Ahmed Shihab مشاهدة المشاركة
    اين انت اليوم استاذنا الكريم ؟

    متابع معك اخى رامى ومنتظر تكمله دروسك الجميله

    تقبل ودى اخى
    أنا خرجت اليوم وأسمي الحقيقي ليس رامي ولكن رامي الأسم الوهمي علي الأنترنت

  14. #44
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

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

    كود:
     
    #property show_confirm int start() { double R1,R2,R3,R4,R5; R1=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,0,0); R2=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,1,0); R3=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,2,0); R4=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,3,0); R5=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,4,0); Alert("المتغير الأول "+R1); Alert("المتغير الثاني "+R2); Alert("المتغير الثالث "+R3); Alert("المتغير الرابع "+R4); Alert("المتغير الخامس "+R5); return(0); }
    وبعد المقارنة يكون
    أدني خط هو

    كود:
      iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,4,0)
    والخط الذي يعلوه هو
    كود:
      iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,2,0)
    والذي يعلوه هو
    كود:
     iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,0,0)
    والذي يعلوه هو
    كود:
      iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,1,0)
    والذي يعلوه هو
    كود:
     iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,3,0)
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 002.GIF‏  
    الملفات المرفقة الملفات المرفقة

  15. #45
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    ويكون الأكسبرت هو

    كود:
     
    int T; double Line1,Line2,Line3,Line4,Line5; int init() { Alarm(); return(0); } int start() { Alarm(); return(0); } int Pricenow(double price){ int Q; Lines(); if(price > Line4)Q=1; if(price < Line4&&price>Line2)Q=2; if(price < Line2&&price>Line1)Q=3; if(price < Line1&&price>Line3)Q=4; if(price < Line3&&price>Line5)Q=5; if(price < Line5)Q=6; return(Q); } void Lines(){ Line1=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,0,0); Line2=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,1,0); Line3=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,2,0); Line4=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,3,0); Line5=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,4,0); } void Alarm(){ T=Pricenow(Bid); if(T==1)Alert("السعر يتحرك فوق المؤشر"); if(T==2)Alert("السعر يتحرك تحت الخط العلوي وفوق الخط قبل العلوي"); if(T==3)Alert("السعر يتحرك فوق خط المركزوتحت الخط الذي قبله"); if(T==4)Alert("السعر يتحرك تحت خط المركز وفوق الخط الذي قبله"); if(T==5)Alert("السعر يتحرك مابين الخط الأخير والذي قبله"); if(T==6)Alert("السعر يتحرك تحت المؤشر"); }

    ولتسهيل عمله قمنا بتقسيم الشارت لستة مناطق مرقمة من 1 الي 6 وتقوم هذه الدالة الفرعية بأرسال أرقام تبين مكان السعر


    كود:
     
    int Pricenow(double price){ int Q; Lines(); if(price > Line4)Q=1; if(price < Line4&&price>Line2)Q=2; if(price < Line2&&price>Line1)Q=3; if(price < Line1&&price>Line3)Q=4; if(price < Line3&&price>Line5)Q=5; if(price < Line5)Q=6; return(Q); }
    بينما تقوم هذه الدالة الفرعية بأعطاء قيم المؤشر

    كود:
     
    void Lines(){ Line1=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,0,0); Line2=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,1,0); Line3=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,2,0); Line4=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,3,0); Line5=iCustom(NULL,0,"Center of Gravity",125,2,0,2,1102,4,0); }
    أما هذه الدالة الفرعية فترسل التنبيه
    كود:
     
    void Alarm(){ T=Pricenow(Bid); if(T==1)Alert("السعر يتحرك فوق المؤشر"); if(T==2)Alert("السعر يتحرك تحت الخط العلوي وفوق الخط قبل العلوي"); if(T==3)Alert("السعر يتحرك فوق خط المركزوتحت الخط الذي قبله"); if(T==4)Alert("السعر يتحرك تحت خط المركز وفوق الخط الذي قبله"); if(T==5)Alert("السعر يتحرك مابين الخط الأخير والذي قبله"); if(T==6)Alert("السعر يتحرك تحت المؤشر"); }
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 00000.gif‏   555.GIF‏  
    الملفات المرفقة الملفات المرفقة

صفحة 3 من 13 الأولىالأولى 123456789 ... الأخيرةالأخيرة

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