النتائج 1 إلى 14 من 14
  1. #1
    الصورة الرمزية جرير
    جرير غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2009
    الإقامة
    مصر
    المشاركات
    430

    افتراضي ورشة تطوير اكسبيرت للمضاعفات

    اخوانى الأعزاء / السلام عليكم ورحمة الله وبركاته
    ظللت فترة اطور فى اكسبيرت الشهباء للأأستاذ وضاح عطار .. وذلك حتى يعمل بثبات اوقات التذبذب لكن كان التذبذب هو الأقوى .
    ومن ضمن مراحل التطوير كانت فى وضع مستويات لايتذبذب السعر عندها كثيرا
    لذلك قمت باختيار المستويات الأخيرة للكماريلا L3 & L4 H3&H4
    وجدت ان السعر لايتذبذب عند هذه المستويات كثيرا
    مرفق اكسبيرت الشهباء مع اضافة خطوط الكمريلا ...
    الأ ان ذلك لم يمنع ان التذبذب هو الأقوى ...فأدعو من خلال هذا الموضوع مبرمجينا الكرام لتطوير هذا الأكسبيرت وذلك لما لأكواد المضاعفات من تعقيد بأذن الله نتغلب عليه
    والشكر مقدما لكل من يساهم فى التطوير
    والسلام عليكم ورحمة الله وبركاته
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    AI Expert

  2. #2
    الصورة الرمزية khfa
    khfa غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2004
    المشاركات
    320

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات



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

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

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

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

  4. #4
    الصورة الرمزية جرير
    جرير غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2009
    الإقامة
    مصر
    المشاركات
    430

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

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


    اول متابعينك انشاء الله
    زادت الورشة نورا بوجودك
    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    متابعين معك وفي رأيي ممكن نضيف فلتر البولينجر باند لمعرفة أماكن الضيق السعري ع وإحتمال حدوث التذبذب عن طريق الفرق بين حدي البولينجر باند ما رأيك
    فى البداية سعيد جدا لوجودك فى الورشة .ومنور ياباشا. اما عن البولينجرباند اعتقد تواجهنا كذا مشكلة باستخدامه ومن ضمنها :-
    - ان البولينجر يكون قوى فى الأرتدادات وليس فى الأختراقات
    - كماتعرف ان البولينجر فى البرمجة وبالذات الأوامر المعلقة يحتاج الى اوامر تتغير بتغيره ... وهذا اعتقد عند عمله برمجيا قد يكون مجهدا جدا .
    سوف نمر على مراحل للوصول لأفضل اكسبيرت مضاعفات واولها بأذن الله سيكون وضع ستوب وهدف للأكسبيرت السابق ثم نأتى لأختيار النقاط البعيدة عن التبذبذب واقترحاتى هى :
    - خط الستوك main عند بلوغه مستوى اكبر من 97 او اقل من 3
    -وتوجد اقتراحات اخرى بالنسبة للخطوط التى ستستخدمها
    ووضع ستوب يبدأ الأكسبيرت بعكس العمليات من عنده ووضع حصد ارباح " من وجهة نظرى سيكون مفيدا فى جعل حصد الأرباح اكبر قليلا من الخسارة "
    فما رايك باستخدام الستوك لفترة مثلا 14 يفتح امر بيع اوشراء بسعر السوق وفى المقابل يفتح امر معلق مكان الستوب ؟
    توقيع العضو
    AI Expert

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

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

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

    فى البداية سعيد جدا لوجودك فى الورشة .ومنور ياباشا. اما عن البولينجرباند اعتقد تواجهنا كذا مشكلة باستخدامه ومن ضمنها :-
    - ان البولينجر يكون قوى فى الأرتدادات وليس فى الأختراقات
    - كماتعرف ان البولينجر فى البرمجة وبالذات الأوامر المعلقة يحتاج الى اوامر تتغير بتغيره ... وهذا اعتقد عند عمله برمجيا قد يكون مجهدا جدا .
    سوف نمر على مراحل للوصول لأفضل اكسبيرت مضاعفات واولها بأذن الله سيكون وضع ستوب وهدف للأكسبيرت السابق ثم نأتى لأختيار النقاط البعيدة عن التبذبذب واقترحاتى هى :
    - خط الستوك main عند بلوغه مستوى اكبر من 97 او اقل من 3
    -وتوجد اقتراحات اخرى بالنسبة للخطوط التى ستستخدمها
    ووضع ستوب يبدأ الأكسبيرت بعكس العمليات من عنده ووضع حصد ارباح " من وجهة نظرى سيكون مفيدا فى جعل حصد الأرباح اكبر قليلا من الخسارة "
    فما رايك باستخدام الستوك لفترة مثلا 14 يفتح امر بيع اوشراء بسعر السوق وفى المقابل يفتح امر معلق مكان الستوب ؟
    نعم وهذا كان قصدي بالنسبه للبولينجر بما أن المضاعفات تعتمد على المضاعفات العكسيه ممكن نتجنب أوقات التذبذب وإحتمال الإرتداد بهذه الطريقه

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

  6. #6
    الصورة الرمزية جرير
    جرير غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2009
    الإقامة
    مصر
    المشاركات
    430

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

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

    على العموم إبدأ بالإستوكاستيك وبعدها نستمر في التطوير
    مشكلة الأستوك عندى كانت فى ان التعامل معه لايتم على اساس انه خطين
    لذلك عند تحقق امر البيع يضع امر شراء معلق بعد عدد معين من النقاط(وهو الستوب (متغير خارجى )
    وعند تحقق امر الشراء يضع امر بيع معلق بعد عدد معين من النقاط(وهو الستوب (متغير خارجى)
    وعند تحقق الهدف يتم الغاء الأوامر المعلقة
    فمأرأيك يأخى بهذا الكود .... يحتاج الى حل برمجى
    كود PHP:
    STOM=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,0);
       
    STOM1=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,1);
       
    L0 = ????????;
       
    H0 =?????????? ;

       
    S2=(H0-L0);
       
       if(
    S2/Point<=Max && S2/Point>=Min)
       {
         
    H=H0;
         
    L=L0;
         
    S=S2;
       }

       if(
    S/Point<=Max && S/Point>=Min)
       {

          if(
    STOM1<&& STOM>3)
          {
            
    OpenBUYOrder(lot,L,Ask+S+(MorePips*Point),Magic);
          }

          if(
    STOM1>97 && STOM<97)
          {
            
    OpenSELLOrder(lot,H,Bid-S+(MorePips*Point),Magic);
          }

       }
       
       return(
    0);
      } 
    آخر تعديل بواسطة جرير ، 19-04-2010 الساعة 08:38 PM
    توقيع العضو
    AI Expert

  7. #7
    الصورة الرمزية جرير
    جرير غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2009
    الإقامة
    مصر
    المشاركات
    430

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

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

    كذلك قيم كل من H L S N هى قيم الأستوب والتيك بروفيت .. احتاج منها قيمتين فقط واحدة للأستوب والثانية للتيك بروفيت من فضلك ..وهذا اخر ماتم بالكود

    كود PHP:
    #property copyright "Eng. Waddah Attar"
    #property link      "[email protected]"
     
    extern double  FirstLots=0.01;
    extern int L=50;
    extern int H=50;
    extern int S=50;
    extern int N=50;
    extern int     MorePips=5;
    extern double  DoubleLot=2.2;
    extern bool    LotOptimized=true;
    extern double  Risk=1;
    extern int     LotMargin=1000;
    extern int     MagicNumber 2009;

    int    t1;

    int init()
    {
      return(
    0);
    }
    int deinit()
    {
      return(
    0);
    }

    int start()
    {

      
    Procces_1(MagicNumber);

      return(
    0);
    }

    void OpenBUYOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Stoploss,Takeprofit,"",Magic,0,Green);
    }

    void OpenSELLOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Stoploss,Takeprofit,"",Magic,0,Red);
    }

    int Procces_1(int Magic)
    {
      
    double slot,ssl,stp,tp,sl,lot;
      
    double S,H,L;
      
    double S0,H0,L0,H1;
      
    double S1,C0,O0;
      
    double S2,C1,O1;

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==1)
      {
        
    DeletePendingOrders(Magic);
        return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==&& Hour()>=8)
      {
       if(
    LotOptimized==false)
       {
         
    lot=FirstLots;
       }
       else
       {
         
    lot=NormalizeDouble((((AccountBalance()*Risk)/100)/LotMargin),2);
         if(
    lot>MarketInfo(Symbol(),MODE_MAXLOT)) lot=MarketInfo(Symbol(),MODE_MAXLOT);
         if(
    lot<MarketInfo(Symbol(),MODE_MINLOT)) lot=MarketInfo(Symbol(),MODE_MINLOT);
       }

       
    H0=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
       
    H1=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
       
    S0=(H0-L0);
       
    S1=(C0-O0);
       
    S2=(O1-C1);
       
       {
         
    H=H0;
         
    L=L0;
         
    S=S0;
       }

       {

          if(
    H1<&&H0>3)
          {
            
    OpenBUYOrder(lot,(L*Point),Ask+(S*Point)+(MorePips*Point),Magic);
          }

          if(
    H1>97 &&H0<97)
          {
            
    OpenSELLOrder(lot,(H*Point),Bid-(N*Point)+(MorePips*Point),Magic);
          }

       }
       
       return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==0)
      {
        
    OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
        
    slot=NormalizeDouble(OrderLots()*DoubleLot,2);
        
    ssl=OrderStopLoss();
        
    stp=OrderTakeProfit();

        if(
    OrderType()==OP_BUY)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()-(OrderTakeProfit()-OrderOpenPrice());
          
    OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,sl,tp-MorePips*Point,"",Magic,0,Red);
        }
        if (
    OrderType()==OP_SELL)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()+(OrderOpenPrice()-OrderTakeProfit());
          
    OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,sl,tp+MorePips*Point,"",Magic,0,Green);
        }
      }

      return(
    0);
    }

    int MyRealOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
      
    t1=-1;
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()<=OP_SELL)
        {
          if (
    t1==-1)
          {
            
    t1=OrderTicket();
          }
          
    c++;
        }
      }
      return(
    c);
    }

    int MyPendingOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    c++;
        }
      }
      return(
    c);
    }

    int DeletePendingOrders(int Magic)
    {
      
    int total  OrdersTotal();
     
      for (
    int cnt total 1cnt >= 0cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    OrderDelete(OrderTicket());
        }
      }
      return(
    0);

    فما رايك ؟
    آخر تعديل بواسطة جرير ، 21-04-2010 الساعة 06:29 AM
    توقيع العضو
    AI Expert

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

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

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

    كذلك قيم كل من H L S N هى قيم الأستوب والتيك بروفيت .. احتاج منها قيمتين فقط واحدة للأستوب والثانية للتيك بروفيت من فضلك ..وهذا اخر ماتم بالكود

    كود PHP:
    #property copyright "Eng. Waddah Attar"
    #property link      "[email protected]"
     
    extern double  FirstLots=0.01;
    extern int L=50;
    extern int H=50;
    extern int S=50;
    extern int N=50;
    extern int     MorePips=5;
    extern double  DoubleLot=2.2;
    extern bool    LotOptimized=true;
    extern double  Risk=1;
    extern int     LotMargin=1000;
    extern int     MagicNumber 2009;

    int    t1;

    int init()
    {
      return(
    0);
    }
    int deinit()
    {
      return(
    0);
    }

    int start()
    {

      
    Procces_1(MagicNumber);

      return(
    0);
    }

    void OpenBUYOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Stoploss,Takeprofit,"",Magic,0,Green);
    }

    void OpenSELLOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Stoploss,Takeprofit,"",Magic,0,Red);
    }

    int Procces_1(int Magic)
    {
      
    double slot,ssl,stp,tp,sl,lot;
      
    double S,H,L;
      
    double S0,H0,L0,H1;
      
    double S1,C0,O0;
      
    double S2,C1,O1;

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==1)
      {
        
    DeletePendingOrders(Magic);
        return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==&& Hour()>=8)
      {
       if(
    LotOptimized==false)
       {
         
    lot=FirstLots;
       }
       else
       {
         
    lot=NormalizeDouble((((AccountBalance()*Risk)/100)/LotMargin),2);
         if(
    lot>MarketInfo(Symbol(),MODE_MAXLOT)) lot=MarketInfo(Symbol(),MODE_MAXLOT);
         if(
    lot<MarketInfo(Symbol(),MODE_MINLOT)) lot=MarketInfo(Symbol(),MODE_MINLOT);
       }

       
    H0=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
       
    H1=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
       
    S0=(H0-L0);
       
    S1=(C0-O0);
       
    S2=(O1-C1);
       
       {
         
    H=H0;
         
    L=L0;
         
    S=S0;
       }

       {

          if(
    H1<&&H0>3)
          {
            
    OpenBUYOrder(lot,(L*Point),Ask+(S*Point)+(MorePips*Point),Magic);
          }

          if(
    H1>97 &&H0<97)
          {
            
    OpenSELLOrder(lot,(H*Point),Bid-(N*Point)+(MorePips*Point),Magic);
          }

       }
       
       return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==0)
      {
        
    OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
        
    slot=NormalizeDouble(OrderLots()*DoubleLot,2);
        
    ssl=OrderStopLoss();
        
    stp=OrderTakeProfit();

        if(
    OrderType()==OP_BUY)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()-(OrderTakeProfit()-OrderOpenPrice());
          
    OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,sl,tp-MorePips*Point,"",Magic,0,Red);
        }
        if (
    OrderType()==OP_SELL)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()+(OrderOpenPrice()-OrderTakeProfit());
          
    OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,sl,tp+MorePips*Point,"",Magic,0,Green);
        }
      }

      return(
    0);
    }

    int MyRealOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
      
    t1=-1;
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()<=OP_SELL)
        {
          if (
    t1==-1)
          {
            
    t1=OrderTicket();
          }
          
    c++;
        }
      }
      return(
    c);
    }

    int MyPendingOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    c++;
        }
      }
      return(
    c);
    }

    int DeletePendingOrders(int Magic)
    {
      
    int total  OrdersTotal();
     
      for (
    int cnt total 1cnt >= 0cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    OrderDelete(OrderTicket());
        }
      }
      return(
    0);

    فما رايك ؟
    بداية لاحظت في الكود
    كود PHP:
     H0=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
       
    H1=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
       
    S0=(H0-L0);
       
    S1=(C0-O0);
       
    S2=(O1-C1);
       
       {
         
    H=H0;
         
    L=L0;
         
    S=S0;
       }

       {

          if(
    H1<&&H0>3)
          {
            
    OpenBUYOrder(lot,(L*Point),Ask+(S*Point)+(MorePips*Point),Magic);
          }

          if(
    H1>97 &&H0<97)
          {
            
    OpenSELLOrder(lot,(H*Point),Bid-(N*Point)+(MorePips*Point),Magic);
          }

       } 
    فما هي فكرتك في إستخدام قيمة الأستوكاستيك كأستوب لوز وهدف !!!!!!!!!!
    أم هو مجرد خطأ مطبعي
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  9. #9
    الصورة الرمزية جرير
    جرير غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2009
    الإقامة
    مصر
    المشاركات
    430

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    بداية لاحظت في الكود
    كود PHP:
     H0=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
       
    H1=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
       
    S0=(H0-L0);
       
    S1=(C0-O0);
       
    S2=(O1-C1);
       
       {
         
    H=H0;
         
    L=L0;
         
    S=S0;
       }

       {

          if(
    H1<&&H0>3)
          {
            
    OpenBUYOrder(lot,(L*Point),Ask+(S*Point)+(MorePips*Point),Magic);
          }

          if(
    H1>97 &&H0<97)
          {
            
    OpenSELLOrder(lot,(H*Point),Bid-(N*Point)+(MorePips*Point),Magic);
          }

       } 
    فما هي فكرتك في إستخدام قيمة الأستوكاستيك كأستوب لوز وهدف !!!!!!!!!!
    أم هو مجرد خطأ مطبعي
    فى البداية ابارك لك على الأشراف ..ويعلم الله مدى سعادتى لتوليك هذا المنصب
    اما عن الفكرة فهى كالتالى
    فى حال تفعيل اوردر يكون
    حصد الأرباح عادى جدا بالباراميتر
    ستوب (موجود بالباراميتر)= امر عكسى معلق
    وكانت المشكلة البرمجية تتمثل فى
    تعريف لغة الميتا بقيم الستوب والهدف .... لذلك كانت منك فكرة رائعة باستخدام الأمر المفتوح لتحديد الستوب والهدف
    كود PHP:
    double openorder orderopenprice(); 
    فمن خلال توجيهاتك وجدت الحل الآت واتمنى ان تخبرنى برأيك
    هذا الحل هو تفاديا للأرقام الخاطئة الذى من الممكن ان ينتجها الأكسبيرت وهى
    بالنسبة للشراء سيكون
    كود PHP:
    double openorder1OrderOpenPrice()+(takeprofit*Point);
       
    double openorder2OrderOpenPrice()-(stoploss*Point); 
    اما بالنسبة للبيع فيكون
    كود PHP:
    double openorder3OrderOpenPrice()-(takeprofit1*Point);
       
    double openorder4OrderOpenPrice()+(stoploss1*Point); 
    وبالطبع ستكون قيمة ستوب وستوب لوز1 متساوية بالباراميتر ويكون تيك بروفيت مساويا لتيك بروفيت1 بالباراميتر
    فمارايك ؟
    آخر تعديل بواسطة جرير ، 22-04-2010 الساعة 04:31 AM
    توقيع العضو
    AI Expert

  10. #10
    الصورة الرمزية جرير
    جرير غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2009
    الإقامة
    مصر
    المشاركات
    430

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

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

    كود PHP:
    #property copyright "Eng. Waddah Attar"
    #property link      "[email protected]"

    extern string separator1="--------------take profit and stoploss";
    extern int takproft=50;
    extern int stp=50
    extern string separator2="---------------- other setting";
    extern double  FirstLots=0.01;
    extern double  DoubleLot=2.2;
    extern bool    LotOptimized=true;
    extern double  Risk=1;
    extern int     LotMargin=1000;
    extern int     MagicNumber 2009;

    int    t1;

    int init()
    {
      return(
    0);
    }
    int deinit()
    {
      return(
    0);
    }

    int start()
    {

      
    Procces_1(MagicNumber);

      return(
    0);
    }

    void OpenBUYOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Stoploss,Takeprofit,"",Magic,0,Green);
    }

    void OpenSELLOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Stoploss,Takeprofit,"",Magic,0,Red);
    }

    int Procces_1(int Magic)
    {
      
    double slot,ssl,stp,tp,sl,lot,ST,ST1,Y,M,N,C;
      

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==1)
      {
        
    DeletePendingOrders(Magic);
        return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==&& Hour()>=8)
      {
       if(
    LotOptimized==false)
       {
         
    lot=FirstLots;
       }
       else
       {
         
    lot=NormalizeDouble((((AccountBalance()*Risk)/100)/LotMargin),2);
         if(
    lot>MarketInfo(Symbol(),MODE_MAXLOT)) lot=MarketInfo(Symbol(),MODE_MAXLOT);
         if(
    lot<MarketInfo(Symbol(),MODE_MINLOT)) lot=MarketInfo(Symbol(),MODE_MINLOT);
       }

       
    ST=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,0);
       
    ST1=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,1);
       
    YOrderOpenPrice() +(takproft*Point);
       
    MOrderOpenPrice() -(stp*Point);
       
    NOrderOpenPrice() -(takproft*Point);
       
    COrderOpenPrice() +(stp*Point);
       

          if(
    ST1<&& ST>3)
          {
            
    OpenBUYOrder(lot,M,Y,Magic);
          }

          if(
    ST1>97 && ST<97)
          {
            
    OpenSELLOrder(lot,C,N,Magic);
          }

       }
       
       return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==0)
      {
        
    OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
        
    slot=NormalizeDouble(OrderLots()*DoubleLot,2);
        
    ssl=OrderStopLoss();
        
    stp=OrderTakeProfit();

        if(
    OrderType()==OP_BUY)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()-(OrderTakeProfit()-OrderOpenPrice());
          
    OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,sl,tp,"",Magic,0,Red);
        }
        if (
    OrderType()==OP_SELL)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()+(OrderOpenPrice()-OrderTakeProfit());
          
    OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,sl,tp,"",Magic,0,Green);
        }
      }

      return(
    0);
    }

    int MyRealOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
      
    t1=-1;
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()<=OP_SELL)
        {
          if (
    t1==-1)
          {
            
    t1=OrderTicket();
          }
          
    c++;
        }
      }
      return(
    c);
    }

    int MyPendingOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    c++;
        }
      }
      return(
    c);
    }

    int DeletePendingOrders(int Magic)
    {
      
    int total  OrdersTotal();
     
      for (
    int cnt total 1cnt >= 0cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    OrderDelete(OrderTicket());
        }
      }
      return(
    0);

    توقيع العضو
    AI Expert

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

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

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

    كود PHP:
    #property copyright "Eng. Waddah Attar"
    #property link      "[email protected]"

    extern string separator1="--------------take profit and stoploss";
    extern int takproft=50;
    extern int stp=50
    extern string separator2="---------------- other setting";
    extern double  FirstLots=0.01;
    extern double  DoubleLot=2.2;
    extern bool    LotOptimized=true;
    extern double  Risk=1;
    extern int     LotMargin=1000;
    extern int     MagicNumber 2009;

    int    t1;

    int init()
    {
      return(
    0);
    }
    int deinit()
    {
      return(
    0);
    }

    int start()
    {

      
    Procces_1(MagicNumber);

      return(
    0);
    }

    void OpenBUYOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Stoploss,Takeprofit,"",Magic,0,Green);
    }

    void OpenSELLOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Stoploss,Takeprofit,"",Magic,0,Red);
    }

    int Procces_1(int Magic)
    {
      
    double slot,ssl,stp,tp,sl,lot,ST,ST1,Y,M,N,C;
      

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==1)
      {
        
    DeletePendingOrders(Magic);
        return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==&& Hour()>=8)
      {
       if(
    LotOptimized==false)
       {
         
    lot=FirstLots;
       }
       else
       {
         
    lot=NormalizeDouble((((AccountBalance()*Risk)/100)/LotMargin),2);
         if(
    lot>MarketInfo(Symbol(),MODE_MAXLOT)) lot=MarketInfo(Symbol(),MODE_MAXLOT);
         if(
    lot<MarketInfo(Symbol(),MODE_MINLOT)) lot=MarketInfo(Symbol(),MODE_MINLOT);
       }

       
    ST=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,0);
       
    ST1=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,1);
       
    YOrderOpenPrice() +(takproft*Point);
       
    MOrderOpenPrice() -(stp*Point);
       
    NOrderOpenPrice() -(takproft*Point);
       
    COrderOpenPrice() +(stp*Point);
       

          if(
    ST1<&& ST>3)
          {
            
    OpenBUYOrder(lot,M,Y,Magic);
          }

          if(
    ST1>97 && ST<97)
          {
            
    OpenSELLOrder(lot,C,N,Magic);
          }

       }
       
       return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==0)
      {
        
    OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
        
    slot=NormalizeDouble(OrderLots()*DoubleLot,2);
        
    ssl=OrderStopLoss();
        
    stp=OrderTakeProfit();

        if(
    OrderType()==OP_BUY)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()-(OrderTakeProfit()-OrderOpenPrice());
          
    OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,sl,tp,"",Magic,0,Red);
        }
        if (
    OrderType()==OP_SELL)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()+(OrderOpenPrice()-OrderTakeProfit());
          
    OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,sl,tp,"",Magic,0,Green);
        }
      }

      return(
    0);
    }

    int MyRealOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
      
    t1=-1;
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()<=OP_SELL)
        {
          if (
    t1==-1)
          {
            
    t1=OrderTicket();
          }
          
    c++;
        }
      }
      return(
    c);
    }

    int MyPendingOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    c++;
        }
      }
      return(
    c);
    }

    int DeletePendingOrders(int Magic)
    {
      
    int total  OrdersTotal();
     
      for (
    int cnt total 1cnt >= 0cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    OrderDelete(OrderTicket());
        }
      }
      return(
    0);

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

  12. #12
    الصورة الرمزية جرير
    جرير غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Aug 2009
    الإقامة
    مصر
    المشاركات
    430

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

    مشرفنا العزيز
    تم اضافة ستوب وهدف كالتالى
    كود PHP:
    OpenBUYOrder(lot,Ask-(stp*Point),Ask+(takproft*Point),Magic); 
    كود PHP:
    OpenSELLOrder(lot,Bid+(stp*Point),Bid-(takproft*Point),Magic); 
    كود PHP:
    #property copyright "Eng. Waddah Attar"
    #property link      "[email protected]"

    extern string separator1="--------------take profit and stoploss";
    extern double takproft=50;
    extern double stp=50
    extern string separator2="---------------- other setting";
    extern double  FirstLots=0.01;
    extern double  DoubleLot=2.2;
    extern bool    LotOptimized=true;
    extern double  Risk=1;
    extern int     LotMargin=1000;
    extern int     MagicNumber 2009;

    int    t1;

    int init()
    {
      return(
    0);
    }
    int deinit()
    {
      return(
    0);
    }

    int start()
    {

      
    Procces_1(MagicNumber);

      return(
    0);
    }

    void OpenBUYOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Stoploss,Takeprofit,"",Magic,0,Green);
    }

    void OpenSELLOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Stoploss,Takeprofit,"",Magic,0,Red);
    }

    int Procces_1(int Magic)
    {
      
    double slot,ssl,stp,tp,sl,lot,ST,ST1,Y,M,N,C;
      

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==1)
      {
        
    DeletePendingOrders(Magic);
        return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==&& Hour()>=8)
      {
       if(
    LotOptimized==false)
       {
         
    lot=FirstLots;
       }
       else
       {
         
    lot=NormalizeDouble((((AccountBalance()*Risk)/100)/LotMargin),2);
         if(
    lot>MarketInfo(Symbol(),MODE_MAXLOT)) lot=MarketInfo(Symbol(),MODE_MAXLOT);
         if(
    lot<MarketInfo(Symbol(),MODE_MINLOT)) lot=MarketInfo(Symbol(),MODE_MINLOT);
       }

       
    ST=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
       
    ST1=iStochastic(NULL,0,14,3,3,MODE_SMA,0,MODE_MAIN,1);
       

          if(
    ST1<15 && ST>15)
          {
            
    OpenBUYOrder(lot,Ask-(stp*Point),Ask+(takproft*Point),Magic);
          }

          if(
    ST1>85 && ST<85)
          {
            
    OpenSELLOrder(lot,Bid+(stp*Point),Bid-(takproft*Point),Magic);
          }

       
       
       return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==0)
      {
        
    OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
        
    slot=NormalizeDouble(OrderLots()*DoubleLot,2);
        
    ssl=OrderStopLoss();
        
    stp=OrderTakeProfit();

        if(
    OrderType()==OP_BUY)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()-(OrderTakeProfit()-OrderOpenPrice());
          
    OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,sl,tp,"",Magic,0,Red);
        }
        if (
    OrderType()==OP_SELL)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()+(OrderOpenPrice()-OrderTakeProfit());
          
    OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,sl,tp,"",Magic,0,Green);
        }
      }

      return(
    0);
    }

    int MyRealOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
      
    t1=-1;
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()<=OP_SELL)
        {
          if (
    t1==-1)
          {
            
    t1=OrderTicket();
          }
          
    c++;
        }
      }
      return(
    c);
    }

    int MyPendingOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    c++;
        }
      }
      return(
    c);
    }

    int DeletePendingOrders(int Magic)
    {
      
    int total  OrdersTotal();
     
      for (
    int cnt total 1cnt >= 0cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    OrderDelete(OrderTicket());
        }
      }
      return(
    0);

    لكن عندك الباك تيست يظهر -- اوردر سند ايرور 130 و 4107
    فهل يمكن معالجة اخطاء ارسال الأوامر؟


    توقيع العضو
    AI Expert

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

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

    اقتباس المشاركة الأصلية كتبت بواسطة جرير مشاهدة المشاركة
    مشرفنا العزيز
    تم اضافة ستوب وهدف كالتالى
    كود PHP:
    OpenBUYOrder(lot,Ask-(stp*Point),Ask+(takproft*Point),Magic); 
    كود PHP:
    OpenSELLOrder(lot,Bid+(stp*Point),Bid-(takproft*Point),Magic); 
    كود PHP:
    #property copyright "Eng. Waddah Attar"
    #property link      "[email protected]"

    extern string separator1="--------------take profit and stoploss";
    extern double takproft=50;
    extern double stp=50
    extern string separator2="---------------- other setting";
    extern double  FirstLots=0.01;
    extern double  DoubleLot=2.2;
    extern bool    LotOptimized=true;
    extern double  Risk=1;
    extern int     LotMargin=1000;
    extern int     MagicNumber 2009;

    int    t1;

    int init()
    {
      return(
    0);
    }
    int deinit()
    {
      return(
    0);
    }

    int start()
    {

      
    Procces_1(MagicNumber);

      return(
    0);
    }

    void OpenBUYOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Stoploss,Takeprofit,"",Magic,0,Green);
    }

    void OpenSELLOrder(double Lots,double Stoploss,double Takeprofit int Magic)
    {
      
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Stoploss,Takeprofit,"",Magic,0,Red);
    }

    int Procces_1(int Magic)
    {
      
    double slot,ssl,stp,tp,sl,lot,ST,ST1,Y,M,N,C;
      

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==1)
      {
        
    DeletePendingOrders(Magic);
        return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==&& Hour()>=8)
      {
       if(
    LotOptimized==false)
       {
         
    lot=FirstLots;
       }
       else
       {
         
    lot=NormalizeDouble((((AccountBalance()*Risk)/100)/LotMargin),2);
         if(
    lot>MarketInfo(Symbol(),MODE_MAXLOT)) lot=MarketInfo(Symbol(),MODE_MAXLOT);
         if(
    lot<MarketInfo(Symbol(),MODE_MINLOT)) lot=MarketInfo(Symbol(),MODE_MINLOT);
       }

       
    ST=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
       
    ST1=iStochastic(NULL,0,14,3,3,MODE_SMA,0,MODE_MAIN,1);
       

          if(
    ST1<15 && ST>15)
          {
            
    OpenBUYOrder(lot,Ask-(stp*Point),Ask+(takproft*Point),Magic);
          }

          if(
    ST1>85 && ST<85)
          {
            
    OpenSELLOrder(lot,Bid+(stp*Point),Bid-(takproft*Point),Magic);
          }

       
       
       return(
    0);
      }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==0)
      {
        
    OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
        
    slot=NormalizeDouble(OrderLots()*DoubleLot,2);
        
    ssl=OrderStopLoss();
        
    stp=OrderTakeProfit();

        if(
    OrderType()==OP_BUY)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()-(OrderTakeProfit()-OrderOpenPrice());
          
    OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,sl,tp,"",Magic,0,Red);
        }
        if (
    OrderType()==OP_SELL)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()+(OrderOpenPrice()-OrderTakeProfit());
          
    OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,sl,tp,"",Magic,0,Green);
        }
      }

      return(
    0);
    }

    int MyRealOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
      
    t1=-1;
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()<=OP_SELL)
        {
          if (
    t1==-1)
          {
            
    t1=OrderTicket();
          }
          
    c++;
        }
      }
      return(
    c);
    }

    int MyPendingOrdersTotal(int Magic)
    {
      
    int c=0;
      
    int total  OrdersTotal();
     
      for (
    int cnt cnt total cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    c++;
        }
      }
      return(
    c);
    }

    int DeletePendingOrders(int Magic)
    {
      
    int total  OrdersTotal();
     
      for (
    int cnt total 1cnt >= 0cnt--)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (
    OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()>OP_SELL)
        {
          
    OrderDelete(OrderTicket());
        }
      }
      return(
    0);

    لكن عندك الباك تيست يظهر -- اوردر سند ايرور 130 و 4107
    فهل يمكن معالجة اخطاء ارسال الأوامر؟


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

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

    افتراضي رد: ورشة تطوير اكسبيرت للمضاعفات

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    مثل ما قلت لك راجع الداله OrderSend وحاول تتابع الأخطاء فيها وبإذن الله ستصل إلى الحل
    مشرفنا العزيز
    راجعت دالة Ordersend
    كود PHP:
    }

      if (
    MyRealOrdersTotal(Magic)==&& MyPendingOrdersTotal(Magic)==0)
      {
        
    OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
        
    slot=NormalizeDouble(OrderLots()*DoubleLot,2);
        
    ssl=OrderStopLoss();
        
    stp=OrderTakeProfit();

        if(
    OrderType()==OP_BUY)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()-(OrderTakeProfit()-OrderOpenPrice());
          
    OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,sl,tp,"",Magic,0,Red);
        }
        if (
    OrderType()==OP_SELL)
        {
          
    sl=OrderOpenPrice();
          
    tp=OrderStopLoss()+(OrderOpenPrice()-OrderTakeProfit());
          
    OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,sl,tp,"",Magic,0,Green);
        }
      }

      return(
    0);

    واعتقد ان الخطأ قد يكون فى الأمر نفسه .. فعند تحقق شروط الستوك يلزم امر عادى Sell Or
    Buy
    وكماترى ان الأمرين معلقين .... فكيف نستطيع صياغة هذه الفكرة برمجيا بحيث عند الشراء ماركت يفتح بيع معلق وعند البيع ماركت يفتح شراء معلق ؟
    توقيع العضو
    AI Expert

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

  1. غرفة تطوير اكسبيرت للمضاعفات
    By emadma in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 25
    آخر مشاركة: 14-12-2009, 10:55 PM
  2. ورشة عمل في تطوير اكسبيرت FSS EA
    By مفلس 1982 in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 8
    آخر مشاركة: 29-06-2009, 10:03 PM
  3. مشروع برمجي : اكسبيرت سوبابلكس للمضاعفات
    By وضاح عطار in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 135
    آخر مشاركة: 28-05-2008, 01:31 PM
  4. ورشة عمل : تطوير استراتيجية الترند المكسور
    By ammar2000a70 in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادن
    مشاركات: 23
    آخر مشاركة: 27-12-2005, 11:04 PM

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


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