النتائج 1 إلى 3 من 3
  1. #1
    الصورة الرمزية dabouqi
    dabouqi غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2010
    الإقامة
    الأردن
    العمر
    58
    المشاركات
    56

    افتراضي الى الاخوه الكرام المبرمجين هل من مساعده للاضافه على الاكسبرت وشكرا.

    السلام عليكم ورحمة الله وبركاته

    الرجاء من الاخوه المبرمجين اطلب اضافة بسيطه على هذا الاكسبرت.

    اريد اضافة ايقاف الاكسبرت على موعد الاخبار.

    وايضا اضافة التاريخ للعمل والوقوف في وقت محدد على الاكسبرت.

    واضافة قيمة الربح والخساره بالدولار.

    واكون شاكرا لكم جهودكم

    اخوكم محمد الدابوقي
    wazdaman.mq4wazdaman.mq4

  2. #2
    الصورة الرمزية BIGRISK
    BIGRISK غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2021
    الإقامة
    كندا
    المشاركات
    160

    افتراضي

    السلام علظ®كم ورحمه الله

    حرظ® هدا الاظ®عدىل وارحو اں ظ®كوں موع،ظ¯
    سحل محظ®وى هدا الكود على ملع، حدىد و اعطىه اسم ظ®ظ®ظ®هى ظ®ى .mq4


    مع ع،ائظ¯ ظ®حظ®اظ®ى



    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                     wazdaman.mq4 |
    //|                                Copyright 2022, Girgis Abdelmalak |
    //|                                      [email protected] |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2022, Girgis Abdelmalak"
    #property link      "[email protected]"
    #property version   "1.00"
    #property strict
    input string  info1="وقت عمل الاكسبيرت";
    input bool  EnableTimeFilter=false;
    input string  Start_Hour="00:00";
    input string  End_Hour="23:00";

    input string  info2=" قيمة الربح";
    extern int win_USD=0;
    input string  info5="قيمة الخسارة بالنسبة المئوية";
    extern int Loss_Percnt=10;
    input string  info6=" قيمة الربح بالنسبة المؤية";
    extern int win_Percnt=4;

    enum order
       
    {
       
    BUY,
       
    SELL
       
    };

    input string info3 "Order Info";
    input order orderType BUY;
    input double lot 0.01;
    input string info4 "lot multiplier value";
    input double multiplier 0.01;

    double pt;
    int P;
    int MagicNumber 7003;
    double mLot;

    int OnInit()
      {
       if(
    Digits==|| Digits<=2pt=Point;
       if(
    Digits==|| Digits==3pt=Point*10;
       if(
    Digits==|| Digits==3)P=10;
       else 
    P=1;
       
       
       return(
    INIT_SUCCEEDED);
      }
      
      
    bool TimeFilter(string StartH,string EndH) {
     
    datetime Start=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+StartH);
     
    datetime End=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+EndH);

     if(!(
    Time[0]>=Start && Time[0]<=End))
     {
     return(
    false);
     }
     return(
    true);
     }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
      {
       
      }
    //+------------------------------------------------------------------+
    //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick()
      {
       
    int ticket 0;
       
       static 
    datetime time0;
       
    bool isNewBar time0 != Time[0];
       
    time0 Time[0];
       
       if(
    EnableTimeFilter&&TimeFilter(Start_Hour,End_Hour)==false)return;
             if(
    win_USD>0&&AccountProfit()>=win_USD)CloseDeleteAll();
             if(
    win_Percnt>0&&AccountProfit()>=win_Percnt*mLot*100){CloseDeleteAll() ;}
             if(
    Loss_Percnt>0&&AccountProfit()<=-(Loss_Percnt*mLot*100)){CloseDeleteAll() ;}
       
       
       if(
    isNewBar)
       {
          
    mLot LastCurrentOrderInfo("Lots");
          if(
    mLot == -1)      
             
    mLot LastClosedOrderInfo("Lots");
          if(
    mLot == -1)
             
    mLot lot;
          else{
    mLot mLot multiplier;}
             
          if(
    orderType == BUY)
          {
             
    ticket=OrderSend(Symbol(),OP_BUY,mLot,NormalizeDouble(Ask,Digits),3*P,0,0,"",MagicNumber,0,Blue);
             if(
    ticket<0)Print("Open Buy Error: "GetLastError());
          }
          else
          {
             
    ticket=OrderSend(Symbol(),OP_SELL,mLot,NormalizeDouble(Bid,Digits),3*P,0,0,"",MagicNumber,0,Red);
             if(
    ticket<0)Print("Open Buy Error: "GetLastError());
          }
       }
      }
    //+------------------------------------------------------------------+

    //|                                                                  |
    //+------------------------------------------------------------------+
    double LastClosedOrderInfo(string info,int type=-1)
      {
       for(
    int i=OrdersHistoryTotal()-1;i>=0;i--)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && (OrderType()==type || type==-1))
            {

             if(
    info=="Type")return(OrderType());
             else if(
    info=="Lots")return(OrderLots());
             else if(
    info=="Price")return(OrderOpenPrice());
             else if(
    info=="TP")return(OrderTakeProfit());
             else if(
    info=="SL")return(OrderStopLoss());
             else if(
    info=="Profit")return(OrderProfit());
             else if(
    info=="Time")return(OrderCloseTime());
             else if(
    info=="Comment")return(StringToDouble(OrderComment()));



            }
         }
       return(-
    1);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    double LastCurrentOrderInfo(string info,int type=-1)
      {
       for(
    int i=OrdersTotal()-1;i>=0;i--)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && (OrderType()==type || type==-1))
            {
             if(
    info=="Type")return(OrderType());
             else if(
    info=="Lots")return(OrderLots());
             else if(
    info=="Price")return(OrderOpenPrice());
             else if(
    info=="TP")return(OrderTakeProfit());
             else if(
    info=="SL")return(OrderStopLoss());
             else if(
    info=="Profit")return(OrderProfit());
             else if(
    info=="Time")return(OrderOpenTime());
             else if(
    info=="Comment")return(StringToDouble(OrderComment()));
            }
         }
       return(
    0);
      }
      
        
    bool CloseDeleteAll()
    {
        
    int total  OrdersTotal();
          for (
    int cnt total-cnt >=cnt--)
          {
             if(
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
           
             if(
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) 
             {
             if(
    OrderSymbol()==Symbol()){
                switch(
    OrderType())
                {
                   case 
    OP_BUY       :
                   {
                      if(!
    OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,Violet))
                         return(
    false);
                   }break;                  
                   case 
    OP_SELL      :
                   {
                      if(!
    OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,Violet))
                         return(
    false);
                   }break;
                }             
             
                
                if(
    OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)
                   if(!
    OrderDelete(OrderTicket()))
                   { 
                      Print(
    "Error deleting " + (string)OrderType() + " order : ",GetLastError());
                      return (
    false);
                 }  }
              }
          }
          return (
    true);


  3. #3
    الصورة الرمزية dabouqi
    dabouqi غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2010
    الإقامة
    الأردن
    العمر
    58
    المشاركات
    56

    افتراضي شكر خاص جدا

    اقتباس المشاركة الأصلية كتبت بواسطة BIGRISK مشاهدة المشاركة
    السلام علظ®كم ورحمه الله

    حرظ® هدا الاظ®عدىل وارحو اں ظ®كوں موع،ظ¯
    سحل محظ®وى هدا الكود على ملع، حدىد و اعطىه اسم ظ®ظ®ظ®هى ظ®ى .mq4


    مع ع،ائظ¯ ظ®حظ®اظ®ى



    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                     wazdaman.mq4 |
    //|                                Copyright 2022, Girgis Abdelmalak |
    //|                                      [email protected] |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2022, Girgis Abdelmalak"
    #property link      "[email protected]"
    #property version   "1.00"
    #property strict
    input string  info1="وقت عمل الاكسبيرت";
    input bool  EnableTimeFilter=false;
    input string  Start_Hour="00:00";
    input string  End_Hour="23:00";

    input string  info2=" قيمة الربح";
    extern int win_USD=0;
    input string  info5="قيمة الخسارة بالنسبة المئوية";
    extern int Loss_Percnt=10;
    input string  info6=" قيمة الربح بالنسبة المؤية";
    extern int win_Percnt=4;

    enum order
       
    {
       
    BUY,
       
    SELL
       
    };

    input string info3 "Order Info";
    input order orderType BUY;
    input double lot 0.01;
    input string info4 "lot multiplier value";
    input double multiplier 0.01;

    double pt;
    int P;
    int MagicNumber 7003;
    double mLot;

    int OnInit()
      {
       if(
    Digits==|| Digits<=2pt=Point;
       if(
    Digits==|| Digits==3pt=Point*10;
       if(
    Digits==|| Digits==3)P=10;
       else 
    P=1;
       
       
       return(
    INIT_SUCCEEDED);
      }
      
      
    bool TimeFilter(string StartH,string EndH) {
     
    datetime Start=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+StartH);
     
    datetime End=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+EndH);

     if(!(
    Time[0]>=Start && Time[0]<=End))
     {
     return(
    false);
     }
     return(
    true);
     }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
      {
       
      }
    //+------------------------------------------------------------------+
    //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick()
      {
       
    int ticket 0;
       
       static 
    datetime time0;
       
    bool isNewBar time0 != Time[0];
       
    time0 Time[0];
       
       if(
    EnableTimeFilter&&TimeFilter(Start_Hour,End_Hour)==false)return;
             if(
    win_USD>0&&AccountProfit()>=win_USD)CloseDeleteAll();
             if(
    win_Percnt>0&&AccountProfit()>=win_Percnt*mLot*100){CloseDeleteAll() ;}
             if(
    Loss_Percnt>0&&AccountProfit()<=-(Loss_Percnt*mLot*100)){CloseDeleteAll() ;}
       
       
       if(
    isNewBar)
       {
          
    mLot LastCurrentOrderInfo("Lots");
          if(
    mLot == -1)      
             
    mLot LastClosedOrderInfo("Lots");
          if(
    mLot == -1)
             
    mLot lot;
          else{
    mLot mLot multiplier;}
             
          if(
    orderType == BUY)
          {
             
    ticket=OrderSend(Symbol(),OP_BUY,mLot,NormalizeDouble(Ask,Digits),3*P,0,0,"",MagicNumber,0,Blue);
             if(
    ticket<0)Print("Open Buy Error: "GetLastError());
          }
          else
          {
             
    ticket=OrderSend(Symbol(),OP_SELL,mLot,NormalizeDouble(Bid,Digits),3*P,0,0,"",MagicNumber,0,Red);
             if(
    ticket<0)Print("Open Buy Error: "GetLastError());
          }
       }
      }
    //+------------------------------------------------------------------+

    //|                                                                  |
    //+------------------------------------------------------------------+
    double LastClosedOrderInfo(string info,int type=-1)
      {
       for(
    int i=OrdersHistoryTotal()-1;i>=0;i--)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && (OrderType()==type || type==-1))
            {

             if(
    info=="Type")return(OrderType());
             else if(
    info=="Lots")return(OrderLots());
             else if(
    info=="Price")return(OrderOpenPrice());
             else if(
    info=="TP")return(OrderTakeProfit());
             else if(
    info=="SL")return(OrderStopLoss());
             else if(
    info=="Profit")return(OrderProfit());
             else if(
    info=="Time")return(OrderCloseTime());
             else if(
    info=="Comment")return(StringToDouble(OrderComment()));



            }
         }
       return(-
    1);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    double LastCurrentOrderInfo(string info,int type=-1)
      {
       for(
    int i=OrdersTotal()-1;i>=0;i--)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && (OrderType()==type || type==-1))
            {
             if(
    info=="Type")return(OrderType());
             else if(
    info=="Lots")return(OrderLots());
             else if(
    info=="Price")return(OrderOpenPrice());
             else if(
    info=="TP")return(OrderTakeProfit());
             else if(
    info=="SL")return(OrderStopLoss());
             else if(
    info=="Profit")return(OrderProfit());
             else if(
    info=="Time")return(OrderOpenTime());
             else if(
    info=="Comment")return(StringToDouble(OrderComment()));
            }
         }
       return(
    0);
      }
      
        
    bool CloseDeleteAll()
    {
        
    int total  OrdersTotal();
          for (
    int cnt total-cnt >=cnt--)
          {
             if(
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
           
             if(
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) 
             {
             if(
    OrderSymbol()==Symbol()){
                switch(
    OrderType())
                {
                   case 
    OP_BUY       :
                   {
                      if(!
    OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,Violet))
                         return(
    false);
                   }break;                  
                   case 
    OP_SELL      :
                   {
                      if(!
    OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,Violet))
                         return(
    false);
                   }break;
                }             
             
                
                if(
    OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)
                   if(!
    OrderDelete(OrderTicket()))
                   { 
                      Print(
    "Error deleting " + (string)OrderType() + " order : ",GetLastError());
                      return (
    false);
                 }  }
              }
          }
          return (
    true);

    مشكور اخي العزيز ما قصرت ان شاء الله في ميزان حسناتك
    واطلب منك طلب اخير ان تكون الخساره بالدولار وليس بالنسبه المؤيه ووضع زون اختياري اي ان تبعد كل اوردر عن الثاني مثلا 100pip واكون لك من الشاكرين
    اخوك محمد الدابوقي
    آخر تعديل بواسطة dabouqi ، 12-01-2023 الساعة 02:08 PM


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