صفحة 95 من 686 الأولىالأولى ... 45858990919293949596979899100101105145195595 ... الأخيرةالأخيرة
النتائج 1,411 إلى 1,425 من 10278
  1. #1411
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة f.u.a.d1 مشاهدة المشاركة
    جزاكم الله عنا كل خير يا مستر دولار والاخوه المبرمجين
    اذا تحقق شرط فتح الصفقه ولا اريد فتح صفقه اخرى حتى تنتهي الاولى
    فكيف تتم برمجياً
    الجزء الأول هو عدم فتح أكثر من صفقة واحده في نفس الوقت لذلك ستحتاج إلى عمل دالة لمعرفة عدد الصفقات المفتوحه
    كود PHP:
     int orderscnt(){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++){
         if(
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
           if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
             
    cnt++;
           }
         }
       }
        return(
    cnt);
      } 
    ثم ستضع شرط أمر فتح الصفقه
    كود PHP:
    if(orderscnt()<1){
    // open order 

    الآن إذا كنت تريد تأجيل فتح الصفقه التي كانت من المفترض أن تفتح وليس إلغاء فتحها فيجب أن نجعل الإكسبرت يحفظ أن هناك صفقه يجب أن تفتح لكنها ستفتح بعد إغلاق الصفقه المفتوحه
    فيمكنك إستخدام الداله GlobalVariableSet
    مثال :
    كود PHP:
    GlobalVariableSet("OpenBuy",1); 
    ثم ستضع في شروط الدخول
    كود PHP:
     if(GlobalVariableGet("OpenBuy")==1){
      
    //open order 
      
    GlobalVariableDel("OpenBuy");
      } 
    في الكود السابق سوف يقوم الإكسبرت بتخزين القيمة 1 في ذاكرة الميتاتريدر بإسم OpenBuy
    وعند إستدعائه فإننا نقارن هل قيمته تساوي 1 فإذا كان نعم يتم فتح الصفقه ثم حذف المتغير حتى نتأكد أن لا يفتح أكثر من صفقه
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  2. #1412
    الصورة الرمزية Mr. Bader
    Mr. Bader غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    اليمن
    المشاركات
    597

    افتراضي

    جزاك المولى كل خير أخي مستر دولار
    بس عندي سؤال : ماهو الكود البرمجي لجعل مؤشر ثابت الاشارة او غير ثابت
    يريت تشرح لي شوي لاني مبتدى في البرمجة
    وشكراً

  3. #1413
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة sera مشاهدة المشاركة
    جزاك المولى كل خير أخي مستر دولار
    بس عندي سؤال : ماهو الكود البرمجي لجعل مؤشر ثابت الاشارة او غير ثابت
    يريت تشرح لي شوي لاني مبتدى في البرمجة
    وشكراً
    لا يوجد كود محدد يتم كتابته فيجعل المؤشر ثابت الإشاره او لا لكن تختلف حسب الطريقه التي يتم كتابة كود المؤشر نفسه وما هي المعادلات التي يعتمد عليها المؤشر
    إذا أردت عمل مؤشر يقوم بتحديث نفسه في كل مره ورسم سهم على أقل لو لآخر 100 شمعه فسوف يكون كالآتي

    كود PHP:
      C=iLowest(Symbol(),0,MODE_LOW,100,0);
     
    double L=Low[C];
     
    Arrow[C]=L
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  4. #1414
    الصورة الرمزية turkm
    turkm غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    المشاركات
    1,626

    افتراضي

    اخواني المبرمجين الافاضل عندي عدة تساؤلات:
    1- دالة iCustome لها باراميتر لتحديد التايم فريم عن طريق كتابة قيمة التايم فريم بالدقائق صح...... طيب هل ممكن احدد تايم فريم غير الموجودات لو نقول مثلا تايم فريم الـ 19 دقيقة
    2 - عند توفر الشروط لفتح صفقة ما كيف اجعل فتح الصفقات بفواصل بالنقاط يعني Steps جربت هاد الكود بس ما مشي حالو معي:

    كود PHP:
    Steps NormalizeDouble(Ask Steps,5);
                
    //if(Orderscnt()<1)
                
    OrderSend(Symbol(),OP_BUY,Lots,Steps ,Slippage,SL,TP,"Buy",0,Green); 
    حتى انو صار يعطيني خطا بملف اللوغ رقمو 131
    وشكرا لكم
    آخر تعديل بواسطة turkm ، 12-12-2011 الساعة 10:05 AM

  5. #1415
    الصورة الرمزية turkm
    turkm غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    المشاركات
    1,626

    افتراضي

    سؤال جديد:
    اعملت استدعاء لمؤشر عن طريق دالة : iCustome على خمس فريمات بس كانت المشكلة بتآكل الذاكرة الوهمية بالاضافة بعد عملية الاستدعاء يزيد حجم ملف اللوغ بشكل ملحوظ شو الحل

    وبارك الله فيكم

  6. #1416
    الصورة الرمزية turkm
    turkm غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    المشاركات
    1,626

    افتراضي

    سؤال آخر
    هههههههه دنا حريكم اسئلة:

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

    وجزاكم الله عنا كل خير

  7. #1417
    الصورة الرمزية Mr. Bader
    Mr. Bader غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    اليمن
    المشاركات
    597

    افتراضي

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

    كود PHP:


      C
    =iLowest(Symbol(),0,MODE_LOW,100,0);
     
    double L=Low[C];
     
    Arrow[C]=L

    الله يعطيك العافيه اخي مستر دولار

    وأرجو منك تعديل الكود لاني لم اعرف داله تغيير الاشارة ؟!

    بمعنى اذا ظهرت الاشارة على شمعه و اقفلت الشمعه لا تتغير الاشاره..؟

    وتعتمد على الشمعة الاغلاق السابقة فقط

    وشكرا لك

    كود:
    int start()
      {
       int counted_bars = IndicatorCounted();
       int limit, i;
       if(counted_bars < 0)  
           return(-1);
       if(Bars <= (FilterPeriod + SnakeRange+2)) 
           return(0);
       if(SnakeRange < 4) 
           SnakeRange = 4;
       if(counted_bars > 0)  
           counted_bars--;
       limit = Bars - counted_bars;
       for(i = limit; i >= 0; i--) 
           MainCalculation(i);
       return(0);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void MainCalculation(int Pos)
      {
       int v;
       MartAxis(Pos);
       if(HardCalc == true) 
           SmoothOverMart2(Pos);
       else 
           SmoothOverMart(Pos);
    //----
       return;
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void MartAxis(int Pos)
      {  
       int    SnakeWeight, i, w, ww, Shift;
       double SnakeSum;
       Axis[Pos] = iMA(NULL, 0, SnakeRange + 1, 0, MODE_LWMA, PRICE_WEIGHTED, Pos);
       for(Shift = Pos + SnakeRange + 2; Shift > Pos; Shift--)
         {
           SnakeSum = 0.0;
           SnakeWeight = 0;
           i = 0;
           w = Shift + SnakeRange;
           ww = Shift - SnakeRange;
           if(ww < Pos) 
               ww = Pos;
           while(w >= Shift)
             {
               i++;
               SnakeSum = SnakeSum + i*SnakePrice(w);
               SnakeWeight = SnakeWeight + i;
               w--;
             }
           while(w >= ww)
             {
               i--;
               SnakeSum = SnakeSum + i*SnakePrice(w);
               SnakeWeight = SnakeWeight + i;
               w--;
             }
           Axis[Shift] = SnakeSum / SnakeWeight;
         }
       return;
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    double SnakePrice(int Shift)
      {
       return((2*Close[Shift] + High[Shift] + Low[Shift]) / 4);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void SmoothOverMart(int Pos)
      { // &#207;&#240;àâè&#236; è&#241;&#242;î&#240;è&#254; &#237;à ïî&#241;ë&#229;&#228;&#237;è&#245; Pos...(Pos+SnakeRange+2) &#225;à&#240;à&#245;
       int    Shift;
       double a, t, b;
       for(Shift = Pos + SnakeRange + 2; Shift >= Pos; Shift--)
         {
           t = Axis[ArrayMaximum(Axis, FilterPeriod, Shift)];
           b = Axis[ArrayMinimum(Axis, FilterPeriod, Shift)];
           a = Axis[Shift];
           BorderTop[Shift] = (2*(1 + MartFiltr)*a + (t - b)) / 2 / (1 + MartFiltr);
           BorderBot[Shift] = (2*(1 + MartFiltr)*a - (t - b)) / 2 / (1 + MartFiltr);
           Mart[Shift] = (2*(2 + MartFiltr)*a - (t + b)) / 2 / (1 + MartFiltr);
         }
       return;
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void SmoothOverMart2(int Shift)
      { // &#205;&#229; ïî&#228;ï&#240;àâë&#255;&#229;&#236; è&#241;&#242;î&#240;è&#254; &#237;à ïî&#241;ë&#229;&#228;&#237;è&#245; &#225;à&#240;à&#245;
       double a, t, b;
       t = Axis[ArrayMaximum(Axis, FilterPeriod, Shift)];
       b = Axis[ArrayMinimum(Axis, FilterPeriod, Shift)];
       a = Axis[Shift];
       BorderTop[Shift] = (2*(1 + MartFiltr)*a + (t - b))/2/(1 + MartFiltr);
       BorderBot[Shift] = (2*(1 + MartFiltr)*a - (t - b))/2/(1 + MartFiltr);
       Mart[Shift] = (2*(2 + MartFiltr)*a - (t + b)) / 2 / (1 + MartFiltr);
       return;

  8. #1418
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة turkm مشاهدة المشاركة
    اخواني المبرمجين الافاضل عندي عدة تساؤلات:
    1- دالة iCustome لها باراميتر لتحديد التايم فريم عن طريق كتابة قيمة التايم فريم بالدقائق صح...... طيب هل ممكن احدد تايم فريم غير الموجودات لو نقول مثلا تايم فريم الـ 19 دقيقة
    2 - عند توفر الشروط لفتح صفقة ما كيف اجعل فتح الصفقات بفواصل بالنقاط يعني Steps جربت هاد الكود بس ما مشي حالو معي:

    كود PHP:
    Steps NormalizeDouble(Ask Steps,5);
                
    //if(Orderscnt()<1)
                
    OrderSend(Symbol(),OP_BUY,Lots,Steps ,Slippage,SL,TP,"Buy",0,Green); 
    حتى انو صار يعطيني خطا بملف اللوغ رقمو 131
    وشكرا لكم
    لا يمكن تحديد تايم فريم غير الموجود في الميتاتريدر وهذا هو سبب الخطأ الذي يظهر لك
    بالنسبه للسؤال الثاني
    إذا كنت تقصد فتح الصفقه على بعد معين فسوف تكون كمثال
    كود PHP:
      double B=High[1]+25*Point;
          
                
    OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(B,Digits),3*Q,SL,TP," EA",MagicNumber,0,Blue); 
    اقتباس المشاركة الأصلية كتبت بواسطة turkm مشاهدة المشاركة
    سؤال جديد:
    اعملت استدعاء لمؤشر عن طريق دالة : iCustome على خمس فريمات بس كانت المشكلة بتآكل الذاكرة الوهمية بالاضافة بعد عملية الاستدعاء يزيد حجم ملف اللوغ بشكل ملحوظ شو الحل

    وبارك الله فيكم
    السبب لأن الدالة iCustom تستهلك جزء كبير من الميموري خصوصا إذا كان المؤشر نفسه معقد لذلك أفضل حل دائما هو إضافة كود المؤشر مباشرة إلى الإكسبرت
    والإستغناء عن الداله iCustom
    آخر تعديل بواسطة MR.dollar ، 12-12-2011 الساعة 07:06 PM
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  9. #1419
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة turkm مشاهدة المشاركة
    سؤال آخر
    هههههههه دنا حريكم اسئلة:

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

    وجزاكم الله عنا كل خير
    تأكد من وضع علامة صح على Allow live trading

    اضغط على الصورة لعرض أكبر

الاســـم:	ر.png
المشاهدات:	72
الحجـــم:	38.4 كيلوبايت
الرقم:	299068
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  10. #1420
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة sera مشاهدة المشاركة



    الله يعطيك العافيه اخي مستر دولار

    وأرجو منك تعديل الكود لاني لم اعرف داله تغيير الاشارة ؟!

    بمعنى اذا ظهرت الاشارة على شمعه و اقفلت الشمعه لا تتغير الاشاره..؟

    وتعتمد على الشمعة الاغلاق السابقة فقط

    وشكرا لك

    كود:
    int start()
      {
       int counted_bars = IndicatorCounted();
       int limit, i;
       if(counted_bars < 0)  
           return(-1);
       if(Bars <= (FilterPeriod + SnakeRange+2)) 
           return(0);
       if(SnakeRange < 4) 
           SnakeRange = 4;
       if(counted_bars > 0)  
           counted_bars--;
       limit = Bars - counted_bars;
       for(i = limit; i >= 0; i--) 
           MainCalculation(i);
       return(0);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void MainCalculation(int Pos)
      {
       int v;
       MartAxis(Pos);
       if(HardCalc == true) 
           SmoothOverMart2(Pos);
       else 
           SmoothOverMart(Pos);
    //----
       return;
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void MartAxis(int Pos)
      {  
       int    SnakeWeight, i, w, ww, Shift;
       double SnakeSum;
       Axis[Pos] = iMA(NULL, 0, SnakeRange + 1, 0, MODE_LWMA, PRICE_WEIGHTED, Pos);
       for(Shift = Pos + SnakeRange + 2; Shift > Pos; Shift--)
         {
           SnakeSum = 0.0;
           SnakeWeight = 0;
           i = 0;
           w = Shift + SnakeRange;
           ww = Shift - SnakeRange;
           if(ww < Pos) 
               ww = Pos;
           while(w >= Shift)
             {
               i++;
               SnakeSum = SnakeSum + i*SnakePrice(w);
               SnakeWeight = SnakeWeight + i;
               w--;
             }
           while(w >= ww)
             {
               i--;
               SnakeSum = SnakeSum + i*SnakePrice(w);
               SnakeWeight = SnakeWeight + i;
               w--;
             }
           Axis[Shift] = SnakeSum / SnakeWeight;
         }
       return;
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    double SnakePrice(int Shift)
      {
       return((2*Close[Shift] + High[Shift] + Low[Shift]) / 4);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void SmoothOverMart(int Pos)
      { // &#207;&#240;àâè&#236; è&#241;&#242;î&#240;è&#254; &#237;à ïî&#241;ë&#229;&#228;&#237;è&#245; Pos...(Pos+SnakeRange+2) &#225;à&#240;à&#245;
       int    Shift;
       double a, t, b;
       for(Shift = Pos + SnakeRange + 2; Shift >= Pos; Shift--)
         {
           t = Axis[ArrayMaximum(Axis, FilterPeriod, Shift)];
           b = Axis[ArrayMinimum(Axis, FilterPeriod, Shift)];
           a = Axis[Shift];
           BorderTop[Shift] = (2*(1 + MartFiltr)*a + (t - b)) / 2 / (1 + MartFiltr);
           BorderBot[Shift] = (2*(1 + MartFiltr)*a - (t - b)) / 2 / (1 + MartFiltr);
           Mart[Shift] = (2*(2 + MartFiltr)*a - (t + b)) / 2 / (1 + MartFiltr);
         }
       return;
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void SmoothOverMart2(int Shift)
      { // &#205;&#229; ïî&#228;ï&#240;àâë&#255;&#229;&#236; è&#241;&#242;î&#240;è&#254; &#237;à ïî&#241;ë&#229;&#228;&#237;è&#245; &#225;à&#240;à&#245;
       double a, t, b;
       t = Axis[ArrayMaximum(Axis, FilterPeriod, Shift)];
       b = Axis[ArrayMinimum(Axis, FilterPeriod, Shift)];
       a = Axis[Shift];
       BorderTop[Shift] = (2*(1 + MartFiltr)*a + (t - b))/2/(1 + MartFiltr);
       BorderBot[Shift] = (2*(1 + MartFiltr)*a - (t - b))/2/(1 + MartFiltr);
       Mart[Shift] = (2*(2 + MartFiltr)*a - (t + b)) / 2 / (1 + MartFiltr);
       return;
    أرفق المؤشر كامل
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  11. #1421
    الصورة الرمزية wahaab
    wahaab غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2009
    الإقامة
    الجزائر
    المشاركات
    412

    افتراضي

    السلام عليكم ورحمة الله
    اليكم اكسبيرت فكرته بسيطة يعتمد على خط الكوجن للايشيموكو وهو الخط الازرق.
    حيث يقوم بالشراء عند افتتاح شمعة جديدة فوق الكوجن بعقد واحد فقط وفي حال ظهور اشارة عكسية اي افتتاح شمعة تحت الكوجن يغلق عقد الشراء ويفتح عقد واحد بيع الى ان يتحقق الهدف او تظهر اشار عكسية تكون هي الستبو لوز.
    وبعد مراجعة للكود وتشغيل لمدة زمنية بسيطة اشتغل عادي لكن الغريب بعد فترة يصير يشتغل حسب المزاج يعني مرات يعطي اشار ة شراءء ولا يشتري او بيع ولا بيع او اشارة عكسية ولا يغلق رغم انه اشتغل لفترة واثبت ان الكود
    المتغيرات maxbuy وmaxsell لجعل الاكسبرت يفتح صفقة واحدة فقط وعدم تتالي فتح صفقات باستمرار تحقق الشرط. صحيح---الاكسبرت مرفق---
    كود:
    //+------------------------------------------------------------------+
    //|                                                       WAHAAB.mq4 |
    //|                                               |kwahab   
    //|                                             kwahab
    //+------------------------------------------------------------------+
    #property copyright "kwahab"
    #property link      "WWW.arabictrader.COM"
      extern string basmala = "bismi allah";
      extern double Lots = 0.1;
      extern int TakeProfit = 1;
      extern int MagicNumber = 2533;
      bool maxbuy=0;
      bool maxsell=0;
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    
    
    int start()
      {
    Comment ("BY kWAHAB");
    
    /////////////
    double ichi1,SL,TP;
    ichi1 = iIchimoku (NULL,0,9,26,52,MODE_KIJUNSEN,1);
    ////////////////////////////////////////////////////
         if (Open[0]>ichi1&&maxbuy==0){    //شرط الشراء افتتاح الشمعة الحالية فوق الكوجن+متغير الشراء متاح
             CloseSellOrders();     //اغلاق عقود البيع                    
               TP=Ask+TakeProfit*Point;     
                 if (orderstotal()<1){       
                 
                OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"wahab",MagicNumber,0,Blue);                       
                 maxbuy=1;       //هنا الشراء يصبح مقفل ويفتح بعد امر البيع بالاسفل
                 maxsell=0;  // قفل البيع صار مفتوح
             }
             }
    /////////////////////////////////////////////////////
        
         if (Open[0]<ichi1&&maxsell==0){  //شرط البيع افتتاح شمعة الحالية تحت الكوجن+قفل البيع مفتوح
             CloseBuyOrders();      //اغلاق اوامر الشراء            
             TP=Bid-TakeProfit*Point;
                 if (orderstotal()<1){
                  
                OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"wahab",MagicNumber,0,Red);             
                    maxsell=1;   //   هنا البيع يفقل ويفتح فوق تحت امر الشراء
                    maxbuy=0;   //  قفل الشراء اصبح مفتوح
                 }
               }
    //----
       return(0);
      }
    /////////////////////////////////////////////////////////////////////  
    int orderstotal(){
     int cnt=0;
       for(int i =0;i<OrdersTotal();i++){
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
             cnt++;
           }
         }
        return(cnt);
      } 
      
    ////////////////////////////////////////////////////  ///////////////////////////////////////////////
      void CloseBuyOrders()
    {
      for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
      {
        OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
          if (OrderType()==OP_BUY)
          {
            OrderClose(OrderTicket(),OrderLots(),Bid,3);
          }
        }
      } 
     }  
    
    void CloseSellOrders()
    {
     for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
      {
        OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
          if (OrderType()==OP_SELL)
          {
           OrderClose(OrderTicket(),OrderLots(),Ask,3);
          }
         }
        }
       }
       /////
    .
    انا استعملت هنا المتغيرات maxbuy و maxsell كاقفال للشراء والبيع
    اي اذا كان كل منها يساوي 0 فالعملية متاحة وتقفل ب1
    وكما قلت بشتغل لفترة ثم تحدث فيه اخطاء كما ذكرت واريد ان اضيف اليه الامر التالي:
    -اذا كانت الصفقة السابقة خاسرة يفتح الصفقة المقبلة بلوت مضاعف
    وشكرا جزيلا لك الاخ دولار والاخوة الكرام
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة wahaab ، 12-12-2011 الساعة 08:46 PM

  12. #1422
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة kwahab مشاهدة المشاركة
    السلام عليكم ورحمة الله
    اليكم اكسبيرت فكرته بسيطة يعتمد على خط الكوجن للايشيموكو وهو الخط الازرق.
    حيث يقوم بالشراء عند افتتاح شمعة جديدة فوق الكوجن بعقد واحد فقط وفي حال ظهور اشارة عكسية اي افتتاح شمعة تحت الكوجن يغلق عقد الشراء ويفتح عقد واحد بيع الى ان يتحقق الهدف او تظهر اشار عكسية تكون هي الستبو لوز.
    وبعد مراجعة للكود وتشغيل لمدة زمنية بسيطة اشتغل عادي لكن الغريب بعد فترة يصير يشتغل حسب المزاج يعني مرات يعطي اشار ة شراءء ولا يشتري او بيع ولا بيع او اشارة عكسية ولا يغلق رغم انه اشتغل لفترة واثبت ان الكود
    المتغيرات maxbuy وmaxsell لجعل الاكسبرت يفتح صفقة واحدة فقط وعدم تتالي فتح صفقات باستمرار تحقق الشرط. صحيح---الاكسبرت مرفق---
    كود:
    //+------------------------------------------------------------------+
    //|                                                       WAHAAB.mq4 |
    //|                                               |kwahab   
    //|                                             kwahab
    //+------------------------------------------------------------------+
    #property copyright "kwahab"
    #property link      "WWW.arabictrader.COM"
      extern string basmala = "bismi allah";
      extern double Lots = 0.1;
      extern int TakeProfit = 1;
      extern int MagicNumber = 2533;
      bool maxbuy=0;
      bool maxsell=0;
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    
    
    int start()
      {
    Comment ("BY kWAHAB");
    
    /////////////
    double ichi1,SL,TP;
    ichi1 = iIchimoku (NULL,0,9,26,52,MODE_KIJUNSEN,1);
    ////////////////////////////////////////////////////
         if (Open[0]>ichi1&&maxbuy==0){    //شرط الشراء افتتاح الشمعة الحالية فوق الكوجن+متغير الشراء متاح
             CloseSellOrders();     //اغلاق عقود البيع                    
               TP=Ask+TakeProfit*Point;     
                 if (orderstotal()<1){       
                 
                OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"wahab",MagicNumber,0,Blue);                       
                 maxbuy=1;       //هنا الشراء يصبح مقفل ويفتح بعد امر البيع بالاسفل
                 maxsell=0;  // قفل البيع صار مفتوح
             }
             }
    /////////////////////////////////////////////////////
        
         if (Open[0]<ichi1&&maxsell==0){  //شرط البيع افتتاح شمعة الحالية تحت الكوجن+قفل البيع مفتوح
             CloseBuyOrders();      //اغلاق اوامر الشراء            
             TP=Bid-TakeProfit*Point;
                 if (orderstotal()<1){
                  
                OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"wahab",MagicNumber,0,Red);             
                    maxsell=1;   //   هنا البيع يفقل ويفتح فوق تحت امر الشراء
                    maxbuy=0;   //  قفل الشراء اصبح مفتوح
                 }
               }
    //----
       return(0);
      }
    /////////////////////////////////////////////////////////////////////  
    int orderstotal(){
     int cnt=0;
       for(int i =0;i<OrdersTotal();i++){
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
             cnt++;
           }
         }
        return(cnt);
      } 
      
    ////////////////////////////////////////////////////  ///////////////////////////////////////////////
      void CloseBuyOrders()
    {
      for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
      {
        OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
          if (OrderType()==OP_BUY)
          {
            OrderClose(OrderTicket(),OrderLots(),Bid,3);
          }
        }
      } 
     }  
    
    void CloseSellOrders()
    {
     for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
      {
        OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
          if (OrderType()==OP_SELL)
          {
           OrderClose(OrderTicket(),OrderLots(),Ask,3);
          }
         }
        }
       }
       /////
    .
    انا استعملت هنا المتغيرات maxbuy و maxsell كاقفال للشراء والبيع
    اي اذا كان كل منها يساوي 0 فالعملية متاحة وتقفل ب1
    وكما قلت بشتغل لفترة ثم تحدث فيه اخطاء كما ذكرت واريد ان اضيف اليه الامر التالي:
    -اذا كانت الصفقة السابقة خاسرة يفتح الصفقة المقبلة بلوت مضاعف
    وشكرا جزيلا لك الاخ دولار والاخوة الكرام
    وعليكم السلام ورحمة الله وبركاته
    بالنسبه للجزء الأول فكود الإكسبرت سليم ولا يوجد به مشاكل لذلك حتى تعرف سبب الخطأ راجع خانة الجورنال وتأكد من رقم الخطأ الذي يظهر لديك عندما يجب أن يفتح الإكسبرت الصفقه

    بالنسبه للجزء الثاني الخاص بالمضاعفات
    فسوف تحتاج أولا لعمل داله لمعرفه هل آخر صفقة حققت الهدف أم لا
    كود PHP:
    bool LastOrderProfit(){
    bool L;
    for(
    int i=OrdersHistoryTotal();i>=0;i--){
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
    if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
    if(
    OrderProfit()>0)return(true);
    else return(
    false);
     }
    }
    return(
    true);

    وستحتاج داله لمعرفة حجم لوت آخر صفقه
    كود PHP:
    double LastLot(){
    for(
    int i=0;i<=OrdersHistoryTotal();i++){
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
    if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
    double L=OrderLots();
     }
    }
    return(
    L);

    ثم ستضع في شروط الدخول
    كود PHP:
     if(!LastOrderProfit()){
                
    Lot=LastLot()*2;
                 } 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  13. #1423
    الصورة الرمزية نور على نور
    نور على نور غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2010
    الإقامة
    سوريا
    المشاركات
    179

    افتراضي

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

  14. #1424
    الصورة الرمزية wahaab
    wahaab غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2009
    الإقامة
    الجزائر
    المشاركات
    412

    افتراضي

    لك جزيل الشكر اخي دولار انا اطلعت على خانة جورنال لاستكشاف الاخطاء ووجدت التالي
    اضغط على الصورة لعرض أكبر

الاســـم:	13-12-20112013-27-45.png
المشاهدات:	92
الحجـــم:	3.5 كيلوبايت
الرقم:	299172
    الاكسبرت لما يشتغل على عدة ازواج وحسب ما فهمت تاتي مرحلة اين تغلق شمعة الخمس دقايق مثلا فييتعين على الاكسبرت غلق صفقات في ازواج وفتح اخرى في ازواج اخرى وبذلك يصبح هناك انشغال في مكان ما منه.فلا يشتري حيث يجب عليه ان يشتري مثلا..وهذا هو الخطا الذي كان يحصل فيه.
    ما الحل حسب رايك اخي الكريم.وجزاك الله كل خير
    الاكسبرت مرفق..
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة wahaab ، 13-12-2011 الساعة 03:50 PM

  15. #1425
    الصورة الرمزية raidy
    raidy غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2010
    الإقامة
    تعز - اليمن
    المشاركات
    736

    افتراضي

    الاخ العزيز اسامه
    لدي اكسبيرت عملت عليه على الديمو يعتمد على CCI وعند معاكسة السعر 25 يبداء بفتح المضاعفات ولا يوجد اي مشكلة وبدات اليوم في تشغله على الحقيقي ولاحظت ان السعر انعكس 51 نقطه ولم يفتح مضاعفات بارغ انني استخدمت نفس الاعدادات التي تعمل على الديمو ، هل الشركة ابطلة عمل المظاعفات فيه ام ماذا حدث بالظبط.
    والله ولي التوفيق

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

  1. موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
    By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 11
    آخر مشاركة: 15-12-2023, 02:03 PM
  2. عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
    By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملات
    مشاركات: 280
    آخر مشاركة: 27-08-2009, 10:30 PM

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


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