صفحة 222 من 686 الأولىالأولى ... 122172212216217218219220221222223224225226227228232272322 ... الأخيرةالأخيرة
النتائج 3,316 إلى 3,330 من 10285
  1. #3316
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

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


    أشكرك أخى الفاضل أسامة وحرصك دائما على مساعدة أخوانك

    ماذا لو أردت أن يتكرر صوت تفعيل اوردر الاكسبرت عدة مرات ؟

    بارك الله فى عملك ورزقك أخى الكريم

    ودى وتقديرى
    يمكنك وضع أمر التنبيه أكثر من مره
    أو يمكنك إستخدام الحلقه لتكرار التنبيه
    مثال
    كود PHP:
    for(int i=1;i<5;i++)PlaySound("Alert.wav"); 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  2. #3317
    الصورة الرمزية reda-hadhod
    reda-hadhod غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2007
    الإقامة
    مصر
    العمر
    53
    المشاركات
    281

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    يمكنك وضع أمر التنبيه أكثر من مره
    أو يمكنك إستخدام الحلقه لتكرار التنبيه
    مثال
    كود PHP:
    for(int i=1;i<5;i++)PlaySound("Alert.wav"); 
    ألف ألف شكر أخى الكريم

    جزاك الله كل الخير ,, وبارك الله فى عملك ورزقك

    ودى وتقديرى

  3. #3318
    الصورة الرمزية zzeyani
    zzeyani غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2012
    الإقامة
    المغرب
    المشاركات
    67

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    بالنسبه للجزء الأول فسوف تقوم فقط بكتابة أمر فتح الصفقه وتضع معادلة حسابيه لحساب حجم اللوت من رأس المال
    مثلا
    كود PHP:
     double lot MathCeil(AccountFreeMargin() *  0.1 1000) / 100;       
          if(
    lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
          if(
    lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
          
          if(
    OrdersTotal()<1)
             
    OrderSend(Symbol(),OP_BUY,lot,NormalizeDouble(Ask,Digits),3,0,0," EA",MagicNumber,0,Blue); 
    بالنسبه للجزء الثاني
    فسوف تقوم بعمل داله لمعرفة آخر صفقه عندما تغلق هل أغلقت على ربح أو خساره
    وتقوم بعمل داله لمعرفة حجم اللوت للصفقه الخاسره ثم تضع أمر فتح الصفقه الجديده
    مثال
    كود PHP:
    double LastOrderLot()
     {
      for(
    int i=OrdersHistoryTotal()-1;i>=0;i--)
       {
        
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
         {
         return(
    OrderLots());
         }
       }
      return(
    0);
     }   
        
    double LastOrderProfit()
     {
      for(
    int i=OrdersHistoryTotal()-1;i>=0;i--)
       {
        
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
         {
         return(
    OrderProfit());
         }
       }
      return(
    0);
     } 
    ثم ستكون شروط فتح الصفقه
    كود PHP:
     if(LastOrderProfit()<0&&OrdersTotal()<1)
       
    OrderSend(Symbol(),OP_BUY,LastOrderLot()/5,NormalizeDouble(Ask,Digits),3,0,0," EA",MagicNumber,0,Blue); 

    بالنسبه للدالتين في الكود الثاني فيتم تعريفهم خارج الداله start
    أما باقي الكود الثاني والكود الأول فكتابتهم تكون داخل الداله start
    شكرا لك أخي ماستر دولار على إهتمامك.
    لاكني لم أعرف كيف أقوم بتعديل ماكتبته على هدا إكسبيرت .
    كود PHP:
    //+------------------------------------------------------------------+
    //| This MQL is generated by Expert Advisor Builder                  |
    //|                http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |
    //|                                                                  |
    //|  In no event will author be liable for any damages whatsoever.   |
    //|                      Use at your own risk.                       |
    //|                                                                  |
    //+------------------- DO NOT REMOVE THIS HEADER --------------------+

    #define SIGNAL_NONE 0
    #define SIGNAL_BUY   1
    #define SIGNAL_SELL  2
    #define SIGNAL_CLOSEBUY 3
    #define SIGNAL_CLOSESELL 4

    #property copyright "Expert Advisor Builder"
    #property link      "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"

    extern int MagicNumber 0;
    extern bool SignalMail False;
    extern bool EachTickMode True;
    extern double Lots 0.1;
    extern int Slippage 3;
    extern bool UseStopLoss True;
    extern int StopLoss 45;
    extern bool UseTakeProfit True;
    extern int TakeProfit 55;
    extern bool UseTrailingStop True;
    extern int TrailingStop 20;

    int BarCount;
    int Current;
    bool TickCheck False;
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init() {
       
    BarCount Bars;

       if (
    EachTickModeCurrent 0; else Current 1;

       return(
    0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit() {
       return(
    0);
    }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start() {
       
    int Order SIGNAL_NONE;
       
    int TotalTicket;
       
    double StopLossLevelTakeProfitLevel;



       if (
    EachTickMode && Bars != BarCountTickCheck False;
       
    Total OrdersTotal();
       
    Order SIGNAL_NONE;

       
    //+------------------------------------------------------------------+
       //| Variable Begin                                                   |
       //+------------------------------------------------------------------+


    double Buy1_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 1);
    double Buy1_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 1);
    double Buy2_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 2);
    double Buy2_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 2);

    double Sell1_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 1);
    double Sell1_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 1);
    double Sell2_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 2);
    double Sell2_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 2);

    double CloseBuy1_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 1);
    double CloseBuy1_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 1);
    double CloseBuy2_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 2);
    double CloseBuy2_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 2);

    double CloseSell1_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 1);
    double CloseSell1_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 1);
    double CloseSell2_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 2);
    double CloseSell2_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 2);

       
       
    //+------------------------------------------------------------------+
       //| Variable End                                                     |
       //+------------------------------------------------------------------+

       //Check position
       
    bool IsTrade False;

       for (
    int i 0Total++) {
          
    OrderSelect(iSELECT_BY_POSMODE_TRADES);
          if(
    OrderType() <= OP_SELL &&  OrderSymbol() == Symbol()) {
             
    IsTrade True;
             if(
    OrderType() == OP_BUY) {
                
    //Close

                //+------------------------------------------------------------------+
                //| Signal Begin(Exit Buy)                                           |
                //+------------------------------------------------------------------+

                         
    if (CloseBuy1_1 CloseBuy1_2 && CloseBuy2_1 >= CloseBuy2_2Order SIGNAL_CLOSEBUY;


                
    //+------------------------------------------------------------------+
                //| Signal End(Exit Buy)                                             |
                //+------------------------------------------------------------------+

                
    if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
                   
    OrderClose(OrderTicket(), OrderLots(), BidSlippageMediumSeaGreen);
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Close Buy");
                   if (!
    EachTickModeBarCount Bars;
                   
    IsTrade False;
                   continue;
                }
                
    //Trailing stop
                
    if(UseTrailingStop && TrailingStop 0) {                 
                   if(
    Bid OrderOpenPrice() > Point TrailingStop) {
                      if(
    OrderStopLoss() < Bid Point TrailingStop) {
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Bid Point TrailingStopOrderTakeProfit(), 0MediumSeaGreen);
                         if (!
    EachTickModeBarCount Bars;
                         continue;
                      }
                   }
                }
             } else {
                
    //Close

                //+------------------------------------------------------------------+
                //| Signal Begin(Exit Sell)                                          |
                //+------------------------------------------------------------------+

                         
    if (CloseSell1_1 CloseSell1_2 && CloseSell2_1 <= CloseSell2_2Order SIGNAL_CLOSESELL;


                
    //+------------------------------------------------------------------+
                //| Signal End(Exit Sell)                                            |
                //+------------------------------------------------------------------+

                
    if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
                   
    OrderClose(OrderTicket(), OrderLots(), AskSlippageDarkOrange);
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Close Sell");
                   if (!
    EachTickModeBarCount Bars;
                   
    IsTrade False;
                   continue;
                }
                
    //Trailing stop
                
    if(UseTrailingStop && TrailingStop 0) {                 
                   if((
    OrderOpenPrice() - Ask) > (Point TrailingStop)) {
                      if((
    OrderStopLoss() > (Ask Point TrailingStop)) || (OrderStopLoss() == 0)) {
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Ask Point TrailingStopOrderTakeProfit(), 0DarkOrange);
                         if (!
    EachTickModeBarCount Bars;
                         continue;
                      }
                   }
                }
             }
          }
       }

       
    //+------------------------------------------------------------------+
       //| Signal Begin(Entry)                                              |
       //+------------------------------------------------------------------+

       
    if (Buy1_1 Buy1_2 && Buy2_1 <= Buy2_2Order SIGNAL_BUY;

       if (
    Sell1_1 Sell1_2 && Sell2_1 >= Sell2_2Order SIGNAL_SELL;


       
    //+------------------------------------------------------------------+
       //| Signal End                                                       |
       //+------------------------------------------------------------------+

       //Buy
       
    if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
          if(!
    IsTrade) {
             
    //Check free margin
             
    if (AccountFreeMargin() < (1000 Lots)) {
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());
                return(
    0);
             }

             if (
    UseStopLossStopLossLevel Ask StopLoss Point; else StopLossLevel 0.0;
             if (
    UseTakeProfitTakeProfitLevel Ask TakeProfit Point; else TakeProfitLevel 0.0;

             
    Ticket OrderSend(Symbol(), OP_BUYLotsAskSlippageStopLossLevelTakeProfitLevel"Buy(#" MagicNumber ")"MagicNumber0DodgerBlue);
             if(
    Ticket 0) {
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {
                    Print(
    "BUY order opened : "OrderOpenPrice());
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Open Buy");
                } else {
                    Print(
    "Error opening BUY order : "GetLastError());
                }
             }
             if (
    EachTickModeTickCheck True;
             if (!
    EachTickModeBarCount Bars;
             return(
    0);
          }
       }

       
    //Sell
       
    if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
          if(!
    IsTrade) {
             
    //Check free margin
             
    if (AccountFreeMargin() < (1000 Lots)) {
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());
                return(
    0);
             }

             if (
    UseStopLossStopLossLevel Bid StopLoss Point; else StopLossLevel 0.0;
             if (
    UseTakeProfitTakeProfitLevel Bid TakeProfit Point; else TakeProfitLevel 0.0;

             
    Ticket OrderSend(Symbol(), OP_SELLLotsBidSlippageStopLossLevelTakeProfitLevel"Sell(#" MagicNumber ")"MagicNumber0DeepPink);
             if(
    Ticket 0) {
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {
                    Print(
    "SELL order opened : "OrderOpenPrice());
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Open Sell");
                } else {
                    Print(
    "Error opening SELL order : "GetLastError());
                }
             }
             if (
    EachTickModeTickCheck True;
             if (!
    EachTickModeBarCount Bars;
             return(
    0);
          }
       }

       if (!
    EachTickModeBarCount Bars;

       return(
    0);
    }
    //+------------------------------------------------------------------+ 
    ساعديني على تعديل ما كتبته على هدا السكريبت ولك الشكر الجزير

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة zzeyani مشاهدة المشاركة
    شكرا لك أخي ماستر دولار على إهتمامك.
    لاكني لم أعرف كيف أقوم بتعديل ماكتبته على هدا إكسبيرت .
    كود PHP:
    //+------------------------------------------------------------------+
    //| This MQL is generated by Expert Advisor Builder                  |
    //|                http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |
    //|                                                                  |
    //|  In no event will author be liable for any damages whatsoever.   |
    //|                      Use at your own risk.                       |
    //|                                                                  |
    //+------------------- DO NOT REMOVE THIS HEADER --------------------+

    #define SIGNAL_NONE 0
    #define SIGNAL_BUY   1
    #define SIGNAL_SELL  2
    #define SIGNAL_CLOSEBUY 3
    #define SIGNAL_CLOSESELL 4

    #property copyright "Expert Advisor Builder"
    #property link      "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"

    extern int MagicNumber 0;
    extern bool SignalMail False;
    extern bool EachTickMode True;
    extern double Lots 0.1;
    extern int Slippage 3;
    extern bool UseStopLoss True;
    extern int StopLoss 45;
    extern bool UseTakeProfit True;
    extern int TakeProfit 55;
    extern bool UseTrailingStop True;
    extern int TrailingStop 20;

    int BarCount;
    int Current;
    bool TickCheck False;
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init() {
       
    BarCount Bars;

       if (
    EachTickModeCurrent 0; else Current 1;

       return(
    0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit() {
       return(
    0);
    }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start() {
       
    int Order SIGNAL_NONE;
       
    int TotalTicket;
       
    double StopLossLevelTakeProfitLevel;



       if (
    EachTickMode && Bars != BarCountTickCheck False;
       
    Total OrdersTotal();
       
    Order SIGNAL_NONE;

       
    //+------------------------------------------------------------------+
       //| Variable Begin                                                   |
       //+------------------------------------------------------------------+


    double Buy1_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 1);
    double Buy1_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 1);
    double Buy2_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 2);
    double Buy2_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 2);

    double Sell1_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 1);
    double Sell1_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 1);
    double Sell2_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 2);
    double Sell2_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 2);

    double CloseBuy1_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 1);
    double CloseBuy1_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 1);
    double CloseBuy2_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 2);
    double CloseBuy2_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 2);

    double CloseSell1_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 1);
    double CloseSell1_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 1);
    double CloseSell2_1 iStochastic(NULL05055MODE_SMA0MODE_MAINCurrent 2);
    double CloseSell2_2 iStochastic(NULL05055MODE_SMA0MODE_SIGNALCurrent 2);

       
       
    //+------------------------------------------------------------------+
       //| Variable End                                                     |
       //+------------------------------------------------------------------+

       //Check position
       
    bool IsTrade False;

       for (
    int i 0Total++) {
          
    OrderSelect(iSELECT_BY_POSMODE_TRADES);
          if(
    OrderType() <= OP_SELL &&  OrderSymbol() == Symbol()) {
             
    IsTrade True;
             if(
    OrderType() == OP_BUY) {
                
    //Close

                //+------------------------------------------------------------------+
                //| Signal Begin(Exit Buy)                                           |
                //+------------------------------------------------------------------+

                         
    if (CloseBuy1_1 CloseBuy1_2 && CloseBuy2_1 >= CloseBuy2_2Order SIGNAL_CLOSEBUY;


                
    //+------------------------------------------------------------------+
                //| Signal End(Exit Buy)                                             |
                //+------------------------------------------------------------------+

                
    if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
                   
    OrderClose(OrderTicket(), OrderLots(), BidSlippageMediumSeaGreen);
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Close Buy");
                   if (!
    EachTickModeBarCount Bars;
                   
    IsTrade False;
                   continue;
                }
                
    //Trailing stop
                
    if(UseTrailingStop && TrailingStop 0) {                 
                   if(
    Bid OrderOpenPrice() > Point TrailingStop) {
                      if(
    OrderStopLoss() < Bid Point TrailingStop) {
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Bid Point TrailingStopOrderTakeProfit(), 0MediumSeaGreen);
                         if (!
    EachTickModeBarCount Bars;
                         continue;
                      }
                   }
                }
             } else {
                
    //Close

                //+------------------------------------------------------------------+
                //| Signal Begin(Exit Sell)                                          |
                //+------------------------------------------------------------------+

                         
    if (CloseSell1_1 CloseSell1_2 && CloseSell2_1 <= CloseSell2_2Order SIGNAL_CLOSESELL;


                
    //+------------------------------------------------------------------+
                //| Signal End(Exit Sell)                                            |
                //+------------------------------------------------------------------+

                
    if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
                   
    OrderClose(OrderTicket(), OrderLots(), AskSlippageDarkOrange);
                   if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Close Sell");
                   if (!
    EachTickModeBarCount Bars;
                   
    IsTrade False;
                   continue;
                }
                
    //Trailing stop
                
    if(UseTrailingStop && TrailingStop 0) {                 
                   if((
    OrderOpenPrice() - Ask) > (Point TrailingStop)) {
                      if((
    OrderStopLoss() > (Ask Point TrailingStop)) || (OrderStopLoss() == 0)) {
                         
    OrderModify(OrderTicket(), OrderOpenPrice(), Ask Point TrailingStopOrderTakeProfit(), 0DarkOrange);
                         if (!
    EachTickModeBarCount Bars;
                         continue;
                      }
                   }
                }
             }
          }
       }

       
    //+------------------------------------------------------------------+
       //| Signal Begin(Entry)                                              |
       //+------------------------------------------------------------------+

       
    if (Buy1_1 Buy1_2 && Buy2_1 <= Buy2_2Order SIGNAL_BUY;

       if (
    Sell1_1 Sell1_2 && Sell2_1 >= Sell2_2Order SIGNAL_SELL;


       
    //+------------------------------------------------------------------+
       //| Signal End                                                       |
       //+------------------------------------------------------------------+

       //Buy
       
    if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
          if(!
    IsTrade) {
             
    //Check free margin
             
    if (AccountFreeMargin() < (1000 Lots)) {
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());
                return(
    0);
             }

             if (
    UseStopLossStopLossLevel Ask StopLoss Point; else StopLossLevel 0.0;
             if (
    UseTakeProfitTakeProfitLevel Ask TakeProfit Point; else TakeProfitLevel 0.0;

             
    Ticket OrderSend(Symbol(), OP_BUYLotsAskSlippageStopLossLevelTakeProfitLevel"Buy(#" MagicNumber ")"MagicNumber0DodgerBlue);
             if(
    Ticket 0) {
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {
                    Print(
    "BUY order opened : "OrderOpenPrice());
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(AskDigits) + " Open Buy");
                } else {
                    Print(
    "Error opening BUY order : "GetLastError());
                }
             }
             if (
    EachTickModeTickCheck True;
             if (!
    EachTickModeBarCount Bars;
             return(
    0);
          }
       }

       
    //Sell
       
    if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
          if(!
    IsTrade) {
             
    //Check free margin
             
    if (AccountFreeMargin() < (1000 Lots)) {
                Print(
    "We have no money. Free Margin = "AccountFreeMargin());
                return(
    0);
             }

             if (
    UseStopLossStopLossLevel Bid StopLoss Point; else StopLossLevel 0.0;
             if (
    UseTakeProfitTakeProfitLevel Bid TakeProfit Point; else TakeProfitLevel 0.0;

             
    Ticket OrderSend(Symbol(), OP_SELLLotsBidSlippageStopLossLevelTakeProfitLevel"Sell(#" MagicNumber ")"MagicNumber0DeepPink);
             if(
    Ticket 0) {
                if (
    OrderSelect(TicketSELECT_BY_TICKETMODE_TRADES)) {
                    Print(
    "SELL order opened : "OrderOpenPrice());
                    if (
    SignalMailSendMail("[Signal Alert]""[" Symbol() + "] " DoubleToStr(BidDigits) + " Open Sell");
                } else {
                    Print(
    "Error opening SELL order : "GetLastError());
                }
             }
             if (
    EachTickModeTickCheck True;
             if (!
    EachTickModeBarCount Bars;
             return(
    0);
          }
       }

       if (!
    EachTickModeBarCount Bars;

       return(
    0);
    }
    //+------------------------------------------------------------------+ 
    ساعديني على تعديل ما كتبته على هدا السكريبت ولك الشكر الجزير
    يجب أن توضح أكثر متى تريد فتح الصفقه الجديده
    ما هو نوع الصفقه الجديده التي ستفتح بعد خسارة الصفقه
    كم مره ستفتح بعد الخساره

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

  5. #3320
    الصورة الرمزية سمير محمد ارمان
    سمير محمد ارمان غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2009
    الإقامة
    مصر
    المشاركات
    834

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

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

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة سمير محمد ارمان مشاهدة المشاركة
    السلام عليكم استاذى الكريم
    سؤال برمجى صعب عليا
    انا عندى الان صفقة بيع وشراء هيدج بدون تيك بروفيت او استوب لوز
    وعلى مسافة معينة يتم فتح صفقة معلقة شراء استوب مضاعفات من سعر صفقة الشراء + الاستيب
    ونفس الشئ فتح صفقة معلقة بيع استوب من سعر صفقة البيع -الاستيب
    الان موجود صفقة بيع وشراء و صفقة بيع استوب وشراء استوب
    المشكلة هنا
    فى طريقة حذف صفقة الشراء استوب عند تفعيل صفقة البيع استوب
    وضع صفقة شراء استوب ضعف صفقة البيع استوب التى تم تفعله واصبحت صفقة بيع
    ونفس الشئ
    عند تفعيل صفقة الشراء استوب يقوم الاكسبيرت بحذف البيع استوب وتعليق صفقة بيع استوب بضع الصفقة المفعلة
    ويتم فتح الصفقة على سعر صفقة البيع الاولى
    المشكلة عندى فى دالة الحذف او امر طريقة الحذف علشان انا عايز يعمل عملية حذف
    ويقوم الاكسبيرت بوضع صفقة بيع او سراء استوب ضعف الصفقة التى تم تفعله
    هذه هى مشكلتى
    ارجو المساعدة فى عرض طريقة وضع الامر
    تحياتى لك
    وعليكم السلام ورحمة الله وبركاته
    بالعكس أنا أرى الحل سهل جدا
    أولا
    ستحتاج إلى دالة لمعرفة حجم لوت الصفقه التي فتحت
    كود PHP:
    void LastOrderLot(int type)
     {
      for(
    int i=OrdersTotal()-1;i>=0;i--)
       {
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
          return(
    OrderLots);
       }
      return(
    0);
     } 
    ستقوم بعمل دالة لمعرفة عدد الصفقات المفتوحه حسب نوعها
    كود PHP:
     int orderscnt(int type){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++){
         if(
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
           if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type){
             
    cnt++;
           }
         }
       }
        return(
    cnt);
      } 
    ستقوم بعمل الدالة الخاصة بحذف الأمر ثم وضع أمر بدلا منه مباشرة بضعف حجم اللوت
    كود PHP:
    void Delete_Add_Order(int PendingType,double newLot)
     {
      for(
    int i=OrdersTotal()-1;i>=0;i--)
       {
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        
    int ticket=OrderTicket();double price=OrderOpenPrice();double SL=OrderStopLoss();double TP=OrderTakeProfit();
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type&&OrderLots()!=newLot)
          {
           
    OrderDelete(ticket);
           
    OrderSend(Symbol(),type,newLot,price,3,SL,TP,"EA",MagicNumber,0,Blue);
          }
       }
     } 
    وأخيرا ستكون الشروط
    كود PHP:
    if(orderscnt(OP_BUYSTOP)==0)
     {
      
    Delete_Add_Order(OP_SELLSTOP,LastOrderLot(OP_BUY)*2);
     }
    if(
    orderscnt(OP_SELLSTOP)==0)
     {
      
    Delete_Add_Order(OP_BUYSTOP,LastOrderLot(OP_SELL)*2);
     } 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    بالعكس أنا أرى الحل سهل جدا
    أولا
    ستحتاج إلى دالة لمعرفة حجم لوت الصفقه التي فتحت
    كود PHP:
    void LastOrderLot(int type)
     {
      for(
    int i=OrdersTotal()-1;i>=0;i--)
       {
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
          return(
    OrderLots);
       }
      return(
    0);
     } 
    ستقوم بعمل دالة لمعرفة عدد الصفقات المفتوحه حسب نوعها
    كود PHP:
     int orderscnt(int type){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++){
         if(
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
           if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type){
             
    cnt++;
           }
         }
       }
        return(
    cnt);
      } 
    ستقوم بعمل الدالة الخاصة بحذف الأمر ثم وضع أمر بدلا منه مباشرة بضعف حجم اللوت
    كود PHP:
    void Delete_Add_Order(int PendingType,double newLot)
     {
      for(
    int i=OrdersTotal()-1;i>=0;i--)
       {
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        
    int ticket=OrderTicket();double price=OrderOpenPrice();double SL=OrderStopLoss();double TP=OrderTakeProfit();
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type&&OrderLots()!=newLot)
          {
           
    OrderDelete(ticket);
           
    OrderSend(Symbol(),type,newLot,price,3,SL,TP,"EA",MagicNumber,0,Blue);
          }
       }
     } 
    وأخيرا ستكون الشروط
    كود PHP:
    if(orderscnt(OP_BUYSTOP)==0)
     {
      
    Delete_Add_Order(OP_SELLSTOP,LastOrderLot(OP_BUY)*2);
     }
    if(
    orderscnt(OP_SELLSTOP)==0)
     {
      
    Delete_Add_Order(OP_BUYSTOP,LastOrderLot(OP_SELL)*2);
     } 
    السلام عليكم استاذى الكريم
    الصعب عندى سهل عندك
    يزيدك الله من علمه
    استاذى الكريم
    معرفش فى خطا فى البرمجة
    الاكسبيرت فى المرفقات
    وجزاك الله خير
    طريقة العمل
    هى يفتح صفقة هيدج مع تعليق صفقات معلقة بيع وشراء استوب
    عند تفعيل صفقة منهم
    يتم حذف الصفقة المعلقة
    وفتح صفقة معلقة بحجم اللوت مضاعفات
    تحياتى لك
    الملفات المرفقة الملفات المرفقة

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

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

  9. #3324
    الصورة الرمزية zzeyani
    zzeyani غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2012
    الإقامة
    المغرب
    المشاركات
    67

    افتراضي

    هدا السكريبت يعمل على تقاطع مِؤشرات stochastic اريد تعديله فقط .
    الدخول في صفقة ب 0,1 في المئة من رأس المال.
    أما إدا خسر السكريبت في صفقة . أن يقوم بقسمت الوت الدي خسره في الصفقة الصابقة على 5 و الخارج هو عدد الوت الدي سيدخل به في الصفقة جديدة.

  10. #3325
    الصورة الرمزية zzeyani
    zzeyani غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2012
    الإقامة
    المغرب
    المشاركات
    67

    افتراضي

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

    هذا كله حتى تستطيع تعديل الكود حسب ما تريد
    هدا السكريبت يعمل على تقاطع مِؤشرات stochastic اريد تعديله فقط .
    الدخول في صفقة ب 0,1 في المئة من رأس المال.
    أما إدا خسر السكريبت في صفقة . أن يقوم بقسمت الوت الدي خسره في الصفقة الصابقة على 5 و الخارج هو عدد الوت الدي سيدخل به في الصفقة جديدة.

  11. #3326
    الصورة الرمزية سمير محمد ارمان
    سمير محمد ارمان غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2009
    الإقامة
    مصر
    المشاركات
    834

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

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

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة zzeyani مشاهدة المشاركة
    هدا السكريبت يعمل على تقاطع مِؤشرات stochastic اريد تعديله فقط .
    الدخول في صفقة ب 0,1 في المئة من رأس المال.
    أما إدا خسر السكريبت في صفقة . أن يقوم بقسمت الوت الدي خسره في الصفقة الصابقة على 5 و الخارج هو عدد الوت الدي سيدخل به في الصفقة جديدة.
    سوف تضيف دالة حساب حجم اللوت
    كود PHP:
     double LotManage()
      {
          
    double lot MathCeil(AccountFreeMargin() *  RiskPercent 1000) / 100
          
          if(
    lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
          if(
    lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
          
           
           return (
    lot);
      } 
    ويمكنك تحديد تفعيلها أو تعطيلها من الخيارات
    كود PHP:
    extern bool  UseMoneyManagement false;                 
     
    extern int  RiskPercent 10
    وشرط حساب حجم اللوت الجديد في حال الخساره
    كود PHP:
    if(LastOrderProfit()<0)
        
    Lots=MathMax(LastOrderLot()/5,MarketInfo(Symbol(),MODE_MINLOT)); 
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: mq4 EA1.mq4‏ (11.8 كيلوبايت, المشاهدات 84)
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  13. #3328
    الصورة الرمزية reda-hadhod
    reda-hadhod غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2007
    الإقامة
    مصر
    العمر
    53
    المشاركات
    281

    افتراضي

    السلام عليكم ورحمة الله
    أخى الفاضل أسامة : رأيت أكسبرت على موقع Market of MQL5 programs

    وأعتقد انة نفس الاكسبرت الذى تفضلت وعملتة وكنت قد طلبت منك أستفسارات عنة فى مشاركات سابقة للموفنج

    أفريج ويختلف عنة فقط فكرة جميلة جدا أتمنى من الله ثم منك أن تنفذها وهى

    TrailingStop automatically moves the Stop Loss with the Moving Average level

    ومرفق لكم أخى الفاضل صورة منة

    وجزاك الله كل الخير وبارك الله فى عملك ورزقك
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة EA-MOVING.png‏  

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة reda-hadhod مشاهدة المشاركة
    السلام عليكم ورحمة الله
    أخى الفاضل أسامة : رأيت أكسبرت على موقع Market of MQL5 programs

    وأعتقد انة نفس الاكسبرت الذى تفضلت وعملتة وكنت قد طلبت منك أستفسارات عنة فى مشاركات سابقة للموفنج

    أفريج ويختلف عنة فقط فكرة جميلة جدا أتمنى من الله ثم منك أن تنفذها وهى

    TrailingStop automatically moves the Stop Loss with the Moving Average level

    ومرفق لكم أخى الفاضل صورة منة

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

  15. #3330
    الصورة الرمزية reda-hadhod
    reda-hadhod غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2007
    الإقامة
    مصر
    العمر
    53
    المشاركات
    281

    افتراضي

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

    هذا الاكسبرت لتقاطع عدد 2 موفنج , حاولت ان أجعلة على موفنج واحد وفشلت

    أرجوا منك أخى الفاضل أن تضيف هذة الخاصية على أكسبرتك 2. MR_dollar MA Breakout v4 وهو لموفنج واحد , وبذلك سوف أعرف أين خطئى فى التعديل علية

    أشكرك أخى أسامة وبارك الله فى عملك ورزقك

    ودى وتقديرى

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

  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