النتائج 1 إلى 4 من 4
  1. #1
    الصورة الرمزية hichem19921
    hichem19921 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2014
    الإقامة
    الجزائر
    المشاركات
    82

    05 طلب الى MR.DOLLAR ان يقوم بهذه الاضافة الى اكسبرت OPPOSIT MULTIPLIER EA V4.4

    مرحبا اخواني عساكم ب1000 خير

    اتمنى ان ينظر مستر دولار الى هذا الطلب البسيط جدا بالنسبة الى ما قدمه لحد الان لنا

    حاليا الاكسبرت OPPOSIT MULTIPLIER EA V4.4 يحتوي على 20 خانة لأدخال اللوتات يدويا لكنها غير كافية و مطلوب زيادتها الى 100 خانة

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

    ثاني طلب و هو اضافة خيار اما ان يفتح الاكسبرت صفقات عن طريق اوامر معلقة يعني على وضعه الحالي و اما يفتح بيع مباشرة لما يصل للسعر
    و هنا راح يقول لي البعض شو الفرق ؟؟؟

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


    اتمنى ان يعطينا مستر دولار 10 دقائق من وقته لاضافة هاتين الاضافتين و ان شاء الله نستمر بالتطوير و نصل الى اهدافنا

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة hichem19921 مشاهدة المشاركة
    مرحبا اخواني عساكم ب1000 خير

    اتمنى ان ينظر مستر دولار الى هذا الطلب البسيط جدا بالنسبة الى ما قدمه لحد الان لنا

    حاليا الاكسبرت OPPOSIT MULTIPLIER EA V4.4 يحتوي على 20 خانة لأدخال اللوتات يدويا لكنها غير كافية و مطلوب زيادتها الى 100 خانة

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

    ثاني طلب و هو اضافة خيار اما ان يفتح الاكسبرت صفقات عن طريق اوامر معلقة يعني على وضعه الحالي و اما يفتح بيع مباشرة لما يصل للسعر
    و هنا راح يقول لي البعض شو الفرق ؟؟؟

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


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

    بالنسبه للطلب الثاني لا استطيع عمله لصعوبته علي

    احببت المساعده بقدر ما استطيع

    اتمنى لك التوفيق في متاجرتك

    كود PHP:
    //+------------------------------------------------------------------+
    //|              www.arabictrader.com                                |
    //|              MR.dollar                                           |
    //+------------------------------------------------------------------+

    #property copyright "MR.dollarEA"
    #property link      "[email protected]"
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    enum order
      
    {
       
    BUY,
       
    SELL
      
    };

    input bool OpenTradeOnce=false;
    input bool  EnableTimeFilter=false;
    input string  Start_Hour="00:00";
    input string  End_Hour="23:00";

    input string info_1=" Multiplier Settings ";
    input order FirstOrder=BUY;
    input int Step=20;
    input int TakeProfit=20;
    input int StopLoss=0;
    input double Multiplier=2;

    input int TradesNumberForTakeProfit2=4;
    input int TakeProfit2=20;
    input bool EnableProfitUSD=false;
    input double TotalProfitUSD=0;
    input string info_2="Custom Lot Multiplier Settings";
    input bool EnableCustomLot=false;
    input double  Lots_1=0.1;
    input double  Lots_2=0.1;
    input double  Lots_3=0.1;
    input double  Lots_4=0.1;
    input double  Lots_5=0.1;
    input double  Lots_6=0.1;
    input double  Lots_7=0.1;
    input double  Lots_8=0.1;
    input double  Lots_9=0.1;
    input double  Lots_10=0.1;
    input double  Lots_11=0.1;
    input double  Lots_12=0.1;
    input double  Lots_13=0.1;
    input double  Lots_14=0.1;
    input double  Lots_15=0.1;
    input double  Lots_16=0.1;
    input double  Lots_17=0.1;
    input double  Lots_18=0.1;
    input double  Lots_19=0.1;
    input double  Lots_20=0.1;
    input double  Lots_21=0.1;
    input double  Lots_22=0.1;
    input double  Lots_23=0.1;
    input double  Lots_24=0.1;
    input double  Lots_25=0.1;
    input double  Lots_26=0.1;
    input double  Lots_27=0.1;
    input double  Lots_28=0.1;
    input double  Lots_29=0.1;
    input double  Lots_30=0.1;
    input double  Lots_31=0.1;
    input double  Lots_32=0.1;
    input double  Lots_33=0.1;
    input double  Lots_34=0.1;
    input double  Lots_35=0.1;
    input double  Lots_36=0.1;
    input double  Lots_37=0.1;
    input double  Lots_38=0.1;
    input double  Lots_39=0.1;
    input double  Lots_40=0.1;
    input double  Lots_41=0.1;
    input double  Lots_42=0.1;
    input double  Lots_43=0.1;
    input double  Lots_44=0.1;
    input double  Lots_45=0.1;
    input double  Lots_46=0.1;
    input double  Lots_47=0.1;
    input double  Lots_48=0.1;
    input double  Lots_49=0.1;
    input double  Lots_50=0.1;




    input string  MM_Parameters=" Money Management ";
    input double  Lots=0.1;
    input bool  MoneyManagement=false;
    input double  Risk=1;
    input int MagicNumber=2035;

    double point;
    int digits,P;
    int lot_digits;
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    int OnInit()
      {
       if(
    MarketInfo(Symbol(),MODE_MINLOT)<0.1)lot_digits=2;
       else 
    lot_digits=1;
       if(
    Digits==|| Digits==3)P=10;
       else 
    P=1;
       if(
    Digits<4)
         {
          
    point=0.01;
          
    digits=2;
         }
       else
         {
          
    point=0.0001;
          
    digits=4;
         }
       return(
    INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| FUNCTION DEFINITIONS    deinitialization function                |
    //+------------------------------------------------------------------+

    void OnDeinit(const int reason)
      {
       
    Comment("");
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    int orderscnt(int type=-1)
      {
       
    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 || type==-1))
               {
                
    cnt++;
               }
            }
         }
       return(
    cnt);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    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);
      }
    //+------------------------------------------------------------------+
    //| FUNCTION DEFINITIONS   Start function                            |
    //+------------------------------------------------------------------+

    void OnTick()
      {

       
    Comment("Programmed By MR.dollar\n"+"www.ArabicTrader.com");
       if(
    EnableTimeFilter&&TimeFilter(Start_Hour,End_Hour)==false)return;


       if(
    EnableProfitUSD)
         {
          if(
    TotalProfit()>=TotalProfitUSD)
            {
             
    CloseAll();
            }
         }
       
    double newLot,TP,SL,price,multiplier=Multiplier;
       
    int ticket;

       if(
    orderscnt(OP_BUY)>&& orderscnt(OP_SELL)==0)
         {
          if(
    LastClosedOrderInfo("Time",OP_SELL)>LastCurrentOrderInfo("Time"))
            {
             
    CloseAll();
            }
         }
       if(
    orderscnt(OP_SELL)>&& orderscnt(OP_BUY)==0)
         {
          if(
    LastClosedOrderInfo("Time",OP_BUY)>LastCurrentOrderInfo("Time"))
            {
             
    CloseAll();
            }
         }

       if((
    orderscnt(OP_SELL)==&& orderscnt(OP_BUYSTOP)>0) || (orderscnt(OP_BUY)==&& orderscnt(OP_SELLSTOP)>0))
         {
          
    CloseAll();
         }
       
    ModifyAllOrdersTP(OP_SELL);
       
    ModifyAllOrdersTP(OP_BUY);

       if(
    orderscnt()>0)
         {
          if(
    LastCurrentOrderInfo("Type")==OP_BUY && orderscnt(OP_SELLSTOP)==0)
            {

             
    price=LastCurrentOrderInfo("Price")-Step*point;
             if(
    TakeProfit!=0)TP=price-TakeProfit*point;
             if(
    orderscnt()>=TradesNumberForTakeProfit2)TP=price-TakeProfit2*point;
             if(
    StopLoss!=0)SL=price+StopLoss*point;

             
    newLot=NormalizeDouble(LastCurrentOrderInfo("Lots",OP_BUY)*multiplier,lot_digits);
             if(
    EnableCustomLot)
               {
                
    int order_num=int(LastCurrentOrderInfo("Comment",OP_BUY));
                
    newLot=GetNextLot(order_num);
               }

             
    ticket=OrderSend(Symbol(),OP_SELLSTOP,newLot,NormalizeDouble(price,Digits),3*P,SL,TP,string(order_num+1),MagicNumber,0,Red);

             if(
    ticket<0)Print("Open Sell Stop Error: "+GetLastError());

            }

          if(
    LastCurrentOrderInfo("Type")==OP_SELL && orderscnt(OP_BUYSTOP)==0)
            {

             
    price=LastCurrentOrderInfo("Price")+Step*point;
             if(
    TakeProfit!=0)TP=price+TakeProfit*point;
             if(
    orderscnt()>=TradesNumberForTakeProfit2)TP=price+TakeProfit2*point;
             if(
    StopLoss!=0)SL=price-StopLoss*point;
             
    newLot=NormalizeDouble(LastCurrentOrderInfo("Lots",OP_SELL)*multiplier,lot_digits);

             if(
    EnableCustomLot)
               {
                
    order_num=int(LastCurrentOrderInfo("Comment",OP_SELL));
                
    newLot=GetNextLot(order_num);
               }

             
    ticket=OrderSend(Symbol(),OP_BUYSTOP,newLot,NormalizeDouble(price,Digits),3*P,SL,TP,string(order_num+1),MagicNumber,0,Blue);

             if(
    ticket<0)Print("Open Buy Stop Error: "+GetLastError());

            }
         }
    ////////////////////////////////////////////////////

       
    if(MoneyManagementnewLot=LotManage();
       else 
    newLot=Lots;

    ////////////////////////////////
      
       
    static bool EAStarted;
        
       if(
    orderscnt()<1&&(EAStarted==false||!OpenTradeOnce))
         {
          if(
    LastClosedOrderInfo("Type")==OP_BUY||(FirstOrder==BUY&&LastClosedOrderInfo("Type")==-1))
            {
             if(
    TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
             if(
    StopLoss!=0)SL=Ask-StopLoss*point;

             
    ticket=OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(Ask,Digits),3*P,SL,TP,"1",MagicNumber,0,Blue);
            }
          else
            {
             if(
    TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
             if(
    StopLoss!=0)SL=Bid+StopLoss*point;

             
    ticket=OrderSend(Symbol(),OP_SELL,newLot,NormalizeDouble(Bid,Digits),3*P,SL,TP,"1",MagicNumber,0,Red);
            }
            
    EAStarted=true;
          if(
    ticket<0)Print("Open Buy Error: "+GetLastError());
          
    PlaySound("Alert.wav");
         }

      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+

    double GetNextLot(int cnt)
      {
       switch(
    cnt)
         {
          case 
    1:return(Lots_2);
          case 
    2:return(Lots_3);
          case 
    3:return(Lots_4);
          case 
    4:return(Lots_5);
          case 
    5:return(Lots_6);
          case 
    6:return(Lots_7);
          case 
    7:return(Lots_8);
          case 
    8:return(Lots_9);
          case 
    9:return(Lots_10);
          case 
    10:return(Lots_11);
          case 
    11:return(Lots_12);
          case 
    12:return(Lots_13);
          case 
    13:return(Lots_14);
          case 
    14:return(Lots_15);
          case 
    15:return(Lots_16);
          case 
    16:return(Lots_17);
          case 
    17:return(Lots_18);
          case 
    18:return(Lots_19);
          case 
    19:return(Lots_20);
          case 
    20:return(Lots_21);
          case 
    21:return(Lots_22);
          case 
    22:return(Lots_23);
          case 
    23:return(Lots_24);
          case 
    24:return(Lots_25);
          case 
    25:return(Lots_26);
          case 
    26:return(Lots_27);
          case 
    27:return(Lots_28);
          case 
    28:return(Lots_29);
          case 
    29:return(Lots_30);
          case 
    30:return(Lots_31);
          case 
    31:return(Lots_32);
          case 
    32:return(Lots_33);
          case 
    33:return(Lots_34);
          case 
    34:return(Lots_35);
          case 
    35:return(Lots_36);
          case 
    36:return(Lots_37);
          case 
    37:return(Lots_38);
          case 
    38:return(Lots_39);
          case 
    39:return(Lots_40);
          case 
    40:return(Lots_41);
          case 
    41:return(Lots_42);
          case 
    42:return(Lots_43);
          case 
    43:return(Lots_44);
          case 
    44:return(Lots_45);
          case 
    45:return(Lots_46);
          case 
    46:return(Lots_47);
          case 
    47:return(Lots_48);
          case 
    48:return(Lots_49);
          case 
    49:return(Lots_50);
          default:return(
    Lots_50);
         }
       return(
    0);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    double TotalProfit()
      {
       
    double profit;
       for(
    int i=0;i<OrdersTotal();i++)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            {
             
    profit+=OrderProfit();
            }
         }
       return(
    profit);
      }
      
      
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    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);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void ModifyAllOrdersTP(int type)
      {
       
    double TP=LastCurrentOrderInfo("TP",type);
       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(
    OrderTakeProfit()!=TP)
               {
                
    bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TP,0);
               }
            }
         }
      }
    //+------------------------------------------------------------------+
    //| FUNCTION DEFINITIONS   Money Managment                           |
    //+------------------------------------------------------------------+ 

    double LotManage()
      {
       
    double lot=MathCeil(AccountFreeMargin() *Risk/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 (
    NormalizeDouble(lot,2));
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void CloseAll()
      {

       for(
    int i=OrdersTotal()-1;i>=0;i--)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            {
             if(
    OrderType()==OP_BUY)
               {
                
    bool close_b=OrderClose(OrderTicket(),OrderLots(),Bid,3*P);
               }
             else if(
    OrderType()==OP_SELL)
               {
                
    bool close_s=OrderClose(OrderTicket(),OrderLots(),Ask,3*P);
               }
             else
               {
                
    bool del=OrderDelete(OrderTicket());
               }
            }
         }
      }

    //+---------------------------------------------------------------------------------+ 
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة السمحان ، 31-12-2018 الساعة 07:33 AM

  3. #3
    الصورة الرمزية hichem19921
    hichem19921 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2014
    الإقامة
    الجزائر
    المشاركات
    82

    افتراضي

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

    بالنسبه للطلب الثاني لا استطيع عمله لصعوبته علي

    احببت المساعده بقدر ما استطيع

    اتمنى لك التوفيق في متاجرتك

    كود PHP:
    //+------------------------------------------------------------------+
    //|              www.arabictrader.com                                |
    //|              MR.dollar                                           |
    //+------------------------------------------------------------------+

    #property copyright "MR.dollarEA"
    #property link      "[email protected]"
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    enum order
      
    {
       
    BUY,
       
    SELL
      
    };

    input bool OpenTradeOnce=false;
    input bool  EnableTimeFilter=false;
    input string  Start_Hour="00:00";
    input string  End_Hour="23:00";

    input string info_1=" Multiplier Settings ";
    input order FirstOrder=BUY;
    input int Step=20;
    input int TakeProfit=20;
    input int StopLoss=0;
    input double Multiplier=2;

    input int TradesNumberForTakeProfit2=4;
    input int TakeProfit2=20;
    input bool EnableProfitUSD=false;
    input double TotalProfitUSD=0;
    input string info_2="Custom Lot Multiplier Settings";
    input bool EnableCustomLot=false;
    input double  Lots_1=0.1;
    input double  Lots_2=0.1;
    input double  Lots_3=0.1;
    input double  Lots_4=0.1;
    input double  Lots_5=0.1;
    input double  Lots_6=0.1;
    input double  Lots_7=0.1;
    input double  Lots_8=0.1;
    input double  Lots_9=0.1;
    input double  Lots_10=0.1;
    input double  Lots_11=0.1;
    input double  Lots_12=0.1;
    input double  Lots_13=0.1;
    input double  Lots_14=0.1;
    input double  Lots_15=0.1;
    input double  Lots_16=0.1;
    input double  Lots_17=0.1;
    input double  Lots_18=0.1;
    input double  Lots_19=0.1;
    input double  Lots_20=0.1;
    input double  Lots_21=0.1;
    input double  Lots_22=0.1;
    input double  Lots_23=0.1;
    input double  Lots_24=0.1;
    input double  Lots_25=0.1;
    input double  Lots_26=0.1;
    input double  Lots_27=0.1;
    input double  Lots_28=0.1;
    input double  Lots_29=0.1;
    input double  Lots_30=0.1;
    input double  Lots_31=0.1;
    input double  Lots_32=0.1;
    input double  Lots_33=0.1;
    input double  Lots_34=0.1;
    input double  Lots_35=0.1;
    input double  Lots_36=0.1;
    input double  Lots_37=0.1;
    input double  Lots_38=0.1;
    input double  Lots_39=0.1;
    input double  Lots_40=0.1;
    input double  Lots_41=0.1;
    input double  Lots_42=0.1;
    input double  Lots_43=0.1;
    input double  Lots_44=0.1;
    input double  Lots_45=0.1;
    input double  Lots_46=0.1;
    input double  Lots_47=0.1;
    input double  Lots_48=0.1;
    input double  Lots_49=0.1;
    input double  Lots_50=0.1;




    input string  MM_Parameters=" Money Management ";
    input double  Lots=0.1;
    input bool  MoneyManagement=false;
    input double  Risk=1;
    input int MagicNumber=2035;

    double point;
    int digits,P;
    int lot_digits;
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    int OnInit()
      {
       if(
    MarketInfo(Symbol(),MODE_MINLOT)<0.1)lot_digits=2;
       else 
    lot_digits=1;
       if(
    Digits==|| Digits==3)P=10;
       else 
    P=1;
       if(
    Digits<4)
         {
          
    point=0.01;
          
    digits=2;
         }
       else
         {
          
    point=0.0001;
          
    digits=4;
         }
       return(
    INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| FUNCTION DEFINITIONS    deinitialization function                |
    //+------------------------------------------------------------------+

    void OnDeinit(const int reason)
      {
       
    Comment("");
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    int orderscnt(int type=-1)
      {
       
    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 || type==-1))
               {
                
    cnt++;
               }
            }
         }
       return(
    cnt);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    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);
      }
    //+------------------------------------------------------------------+
    //| FUNCTION DEFINITIONS   Start function                            |
    //+------------------------------------------------------------------+

    void OnTick()
      {

       
    Comment("Programmed By MR.dollar\n"+"www.ArabicTrader.com");
       if(
    EnableTimeFilter&&TimeFilter(Start_Hour,End_Hour)==false)return;


       if(
    EnableProfitUSD)
         {
          if(
    TotalProfit()>=TotalProfitUSD)
            {
             
    CloseAll();
            }
         }
       
    double newLot,TP,SL,price,multiplier=Multiplier;
       
    int ticket;

       if(
    orderscnt(OP_BUY)>&& orderscnt(OP_SELL)==0)
         {
          if(
    LastClosedOrderInfo("Time",OP_SELL)>LastCurrentOrderInfo("Time"))
            {
             
    CloseAll();
            }
         }
       if(
    orderscnt(OP_SELL)>&& orderscnt(OP_BUY)==0)
         {
          if(
    LastClosedOrderInfo("Time",OP_BUY)>LastCurrentOrderInfo("Time"))
            {
             
    CloseAll();
            }
         }

       if((
    orderscnt(OP_SELL)==&& orderscnt(OP_BUYSTOP)>0) || (orderscnt(OP_BUY)==&& orderscnt(OP_SELLSTOP)>0))
         {
          
    CloseAll();
         }
       
    ModifyAllOrdersTP(OP_SELL);
       
    ModifyAllOrdersTP(OP_BUY);

       if(
    orderscnt()>0)
         {
          if(
    LastCurrentOrderInfo("Type")==OP_BUY && orderscnt(OP_SELLSTOP)==0)
            {

             
    price=LastCurrentOrderInfo("Price")-Step*point;
             if(
    TakeProfit!=0)TP=price-TakeProfit*point;
             if(
    orderscnt()>=TradesNumberForTakeProfit2)TP=price-TakeProfit2*point;
             if(
    StopLoss!=0)SL=price+StopLoss*point;

             
    newLot=NormalizeDouble(LastCurrentOrderInfo("Lots",OP_BUY)*multiplier,lot_digits);
             if(
    EnableCustomLot)
               {
                
    int order_num=int(LastCurrentOrderInfo("Comment",OP_BUY));
                
    newLot=GetNextLot(order_num);
               }

             
    ticket=OrderSend(Symbol(),OP_SELLSTOP,newLot,NormalizeDouble(price,Digits),3*P,SL,TP,string(order_num+1),MagicNumber,0,Red);

             if(
    ticket<0)Print("Open Sell Stop Error: "+GetLastError());

            }

          if(
    LastCurrentOrderInfo("Type")==OP_SELL && orderscnt(OP_BUYSTOP)==0)
            {

             
    price=LastCurrentOrderInfo("Price")+Step*point;
             if(
    TakeProfit!=0)TP=price+TakeProfit*point;
             if(
    orderscnt()>=TradesNumberForTakeProfit2)TP=price+TakeProfit2*point;
             if(
    StopLoss!=0)SL=price-StopLoss*point;
             
    newLot=NormalizeDouble(LastCurrentOrderInfo("Lots",OP_SELL)*multiplier,lot_digits);

             if(
    EnableCustomLot)
               {
                
    order_num=int(LastCurrentOrderInfo("Comment",OP_SELL));
                
    newLot=GetNextLot(order_num);
               }

             
    ticket=OrderSend(Symbol(),OP_BUYSTOP,newLot,NormalizeDouble(price,Digits),3*P,SL,TP,string(order_num+1),MagicNumber,0,Blue);

             if(
    ticket<0)Print("Open Buy Stop Error: "+GetLastError());

            }
         }
    ////////////////////////////////////////////////////

       
    if(MoneyManagementnewLot=LotManage();
       else 
    newLot=Lots;

    ////////////////////////////////
      
       
    static bool EAStarted;
        
       if(
    orderscnt()<1&&(EAStarted==false||!OpenTradeOnce))
         {
          if(
    LastClosedOrderInfo("Type")==OP_BUY||(FirstOrder==BUY&&LastClosedOrderInfo("Type")==-1))
            {
             if(
    TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
             if(
    StopLoss!=0)SL=Ask-StopLoss*point;

             
    ticket=OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(Ask,Digits),3*P,SL,TP,"1",MagicNumber,0,Blue);
            }
          else
            {
             if(
    TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
             if(
    StopLoss!=0)SL=Bid+StopLoss*point;

             
    ticket=OrderSend(Symbol(),OP_SELL,newLot,NormalizeDouble(Bid,Digits),3*P,SL,TP,"1",MagicNumber,0,Red);
            }
            
    EAStarted=true;
          if(
    ticket<0)Print("Open Buy Error: "+GetLastError());
          
    PlaySound("Alert.wav");
         }

      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+

    double GetNextLot(int cnt)
      {
       switch(
    cnt)
         {
          case 
    1:return(Lots_2);
          case 
    2:return(Lots_3);
          case 
    3:return(Lots_4);
          case 
    4:return(Lots_5);
          case 
    5:return(Lots_6);
          case 
    6:return(Lots_7);
          case 
    7:return(Lots_8);
          case 
    8:return(Lots_9);
          case 
    9:return(Lots_10);
          case 
    10:return(Lots_11);
          case 
    11:return(Lots_12);
          case 
    12:return(Lots_13);
          case 
    13:return(Lots_14);
          case 
    14:return(Lots_15);
          case 
    15:return(Lots_16);
          case 
    16:return(Lots_17);
          case 
    17:return(Lots_18);
          case 
    18:return(Lots_19);
          case 
    19:return(Lots_20);
          case 
    20:return(Lots_21);
          case 
    21:return(Lots_22);
          case 
    22:return(Lots_23);
          case 
    23:return(Lots_24);
          case 
    24:return(Lots_25);
          case 
    25:return(Lots_26);
          case 
    26:return(Lots_27);
          case 
    27:return(Lots_28);
          case 
    28:return(Lots_29);
          case 
    29:return(Lots_30);
          case 
    30:return(Lots_31);
          case 
    31:return(Lots_32);
          case 
    32:return(Lots_33);
          case 
    33:return(Lots_34);
          case 
    34:return(Lots_35);
          case 
    35:return(Lots_36);
          case 
    36:return(Lots_37);
          case 
    37:return(Lots_38);
          case 
    38:return(Lots_39);
          case 
    39:return(Lots_40);
          case 
    40:return(Lots_41);
          case 
    41:return(Lots_42);
          case 
    42:return(Lots_43);
          case 
    43:return(Lots_44);
          case 
    44:return(Lots_45);
          case 
    45:return(Lots_46);
          case 
    46:return(Lots_47);
          case 
    47:return(Lots_48);
          case 
    48:return(Lots_49);
          case 
    49:return(Lots_50);
          default:return(
    Lots_50);
         }
       return(
    0);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    double TotalProfit()
      {
       
    double profit;
       for(
    int i=0;i<OrdersTotal();i++)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            {
             
    profit+=OrderProfit();
            }
         }
       return(
    profit);
      }
      
      
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    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);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void ModifyAllOrdersTP(int type)
      {
       
    double TP=LastCurrentOrderInfo("TP",type);
       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(
    OrderTakeProfit()!=TP)
               {
                
    bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TP,0);
               }
            }
         }
      }
    //+------------------------------------------------------------------+
    //| FUNCTION DEFINITIONS   Money Managment                           |
    //+------------------------------------------------------------------+ 

    double LotManage()
      {
       
    double lot=MathCeil(AccountFreeMargin() *Risk/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 (
    NormalizeDouble(lot,2));
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void CloseAll()
      {

       for(
    int i=OrdersTotal()-1;i>=0;i--)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            {
             if(
    OrderType()==OP_BUY)
               {
                
    bool close_b=OrderClose(OrderTicket(),OrderLots(),Bid,3*P);
               }
             else if(
    OrderType()==OP_SELL)
               {
                
    bool close_s=OrderClose(OrderTicket(),OrderLots(),Ask,3*P);
               }
             else
               {
                
    bool del=OrderDelete(OrderTicket());
               }
            }
         }
      }

    //+---------------------------------------------------------------------------------+ 
    اشكرك كثيرا اخي العزيز لكن ممكن اسال لماذا ان زاد العدد عن ذللك قد يحصل تعليق للميتا؟؟؟

  4. #4
    الصورة الرمزية hichem19921
    hichem19921 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2014
    الإقامة
    الجزائر
    المشاركات
    82

    افتراضي

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

    بالنسبه للطلب الثاني لا استطيع عمله لصعوبته علي

    احببت المساعده بقدر ما استطيع

    اتمنى لك التوفيق في متاجرتك

    كود PHP:
    //+------------------------------------------------------------------+
    //|              www.arabictrader.com                                |
    //|              MR.dollar                                           |
    //+------------------------------------------------------------------+

    #property copyright "MR.dollarEA"
    #property link      "[email protected]"
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    enum order
      
    {
       
    BUY,
       
    SELL
      
    };

    input bool OpenTradeOnce=false;
    input bool  EnableTimeFilter=false;
    input string  Start_Hour="00:00";
    input string  End_Hour="23:00";

    input string info_1=" Multiplier Settings ";
    input order FirstOrder=BUY;
    input int Step=20;
    input int TakeProfit=20;
    input int StopLoss=0;
    input double Multiplier=2;

    input int TradesNumberForTakeProfit2=4;
    input int TakeProfit2=20;
    input bool EnableProfitUSD=false;
    input double TotalProfitUSD=0;
    input string info_2="Custom Lot Multiplier Settings";
    input bool EnableCustomLot=false;
    input double  Lots_1=0.1;
    input double  Lots_2=0.1;
    input double  Lots_3=0.1;
    input double  Lots_4=0.1;
    input double  Lots_5=0.1;
    input double  Lots_6=0.1;
    input double  Lots_7=0.1;
    input double  Lots_8=0.1;
    input double  Lots_9=0.1;
    input double  Lots_10=0.1;
    input double  Lots_11=0.1;
    input double  Lots_12=0.1;
    input double  Lots_13=0.1;
    input double  Lots_14=0.1;
    input double  Lots_15=0.1;
    input double  Lots_16=0.1;
    input double  Lots_17=0.1;
    input double  Lots_18=0.1;
    input double  Lots_19=0.1;
    input double  Lots_20=0.1;
    input double  Lots_21=0.1;
    input double  Lots_22=0.1;
    input double  Lots_23=0.1;
    input double  Lots_24=0.1;
    input double  Lots_25=0.1;
    input double  Lots_26=0.1;
    input double  Lots_27=0.1;
    input double  Lots_28=0.1;
    input double  Lots_29=0.1;
    input double  Lots_30=0.1;
    input double  Lots_31=0.1;
    input double  Lots_32=0.1;
    input double  Lots_33=0.1;
    input double  Lots_34=0.1;
    input double  Lots_35=0.1;
    input double  Lots_36=0.1;
    input double  Lots_37=0.1;
    input double  Lots_38=0.1;
    input double  Lots_39=0.1;
    input double  Lots_40=0.1;
    input double  Lots_41=0.1;
    input double  Lots_42=0.1;
    input double  Lots_43=0.1;
    input double  Lots_44=0.1;
    input double  Lots_45=0.1;
    input double  Lots_46=0.1;
    input double  Lots_47=0.1;
    input double  Lots_48=0.1;
    input double  Lots_49=0.1;
    input double  Lots_50=0.1;




    input string  MM_Parameters=" Money Management ";
    input double  Lots=0.1;
    input bool  MoneyManagement=false;
    input double  Risk=1;
    input int MagicNumber=2035;

    double point;
    int digits,P;
    int lot_digits;
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    int OnInit()
      {
       if(
    MarketInfo(Symbol(),MODE_MINLOT)<0.1)lot_digits=2;
       else 
    lot_digits=1;
       if(
    Digits==|| Digits==3)P=10;
       else 
    P=1;
       if(
    Digits<4)
         {
          
    point=0.01;
          
    digits=2;
         }
       else
         {
          
    point=0.0001;
          
    digits=4;
         }
       return(
    INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| FUNCTION DEFINITIONS    deinitialization function                |
    //+------------------------------------------------------------------+

    void OnDeinit(const int reason)
      {
       
    Comment("");
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    int orderscnt(int type=-1)
      {
       
    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 || type==-1))
               {
                
    cnt++;
               }
            }
         }
       return(
    cnt);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    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);
      }
    //+------------------------------------------------------------------+
    //| FUNCTION DEFINITIONS   Start function                            |
    //+------------------------------------------------------------------+

    void OnTick()
      {

       
    Comment("Programmed By MR.dollar\n"+"www.ArabicTrader.com");
       if(
    EnableTimeFilter&&TimeFilter(Start_Hour,End_Hour)==false)return;


       if(
    EnableProfitUSD)
         {
          if(
    TotalProfit()>=TotalProfitUSD)
            {
             
    CloseAll();
            }
         }
       
    double newLot,TP,SL,price,multiplier=Multiplier;
       
    int ticket;

       if(
    orderscnt(OP_BUY)>&& orderscnt(OP_SELL)==0)
         {
          if(
    LastClosedOrderInfo("Time",OP_SELL)>LastCurrentOrderInfo("Time"))
            {
             
    CloseAll();
            }
         }
       if(
    orderscnt(OP_SELL)>&& orderscnt(OP_BUY)==0)
         {
          if(
    LastClosedOrderInfo("Time",OP_BUY)>LastCurrentOrderInfo("Time"))
            {
             
    CloseAll();
            }
         }

       if((
    orderscnt(OP_SELL)==&& orderscnt(OP_BUYSTOP)>0) || (orderscnt(OP_BUY)==&& orderscnt(OP_SELLSTOP)>0))
         {
          
    CloseAll();
         }
       
    ModifyAllOrdersTP(OP_SELL);
       
    ModifyAllOrdersTP(OP_BUY);

       if(
    orderscnt()>0)
         {
          if(
    LastCurrentOrderInfo("Type")==OP_BUY && orderscnt(OP_SELLSTOP)==0)
            {

             
    price=LastCurrentOrderInfo("Price")-Step*point;
             if(
    TakeProfit!=0)TP=price-TakeProfit*point;
             if(
    orderscnt()>=TradesNumberForTakeProfit2)TP=price-TakeProfit2*point;
             if(
    StopLoss!=0)SL=price+StopLoss*point;

             
    newLot=NormalizeDouble(LastCurrentOrderInfo("Lots",OP_BUY)*multiplier,lot_digits);
             if(
    EnableCustomLot)
               {
                
    int order_num=int(LastCurrentOrderInfo("Comment",OP_BUY));
                
    newLot=GetNextLot(order_num);
               }

             
    ticket=OrderSend(Symbol(),OP_SELLSTOP,newLot,NormalizeDouble(price,Digits),3*P,SL,TP,string(order_num+1),MagicNumber,0,Red);

             if(
    ticket<0)Print("Open Sell Stop Error: "+GetLastError());

            }

          if(
    LastCurrentOrderInfo("Type")==OP_SELL && orderscnt(OP_BUYSTOP)==0)
            {

             
    price=LastCurrentOrderInfo("Price")+Step*point;
             if(
    TakeProfit!=0)TP=price+TakeProfit*point;
             if(
    orderscnt()>=TradesNumberForTakeProfit2)TP=price+TakeProfit2*point;
             if(
    StopLoss!=0)SL=price-StopLoss*point;
             
    newLot=NormalizeDouble(LastCurrentOrderInfo("Lots",OP_SELL)*multiplier,lot_digits);

             if(
    EnableCustomLot)
               {
                
    order_num=int(LastCurrentOrderInfo("Comment",OP_SELL));
                
    newLot=GetNextLot(order_num);
               }

             
    ticket=OrderSend(Symbol(),OP_BUYSTOP,newLot,NormalizeDouble(price,Digits),3*P,SL,TP,string(order_num+1),MagicNumber,0,Blue);

             if(
    ticket<0)Print("Open Buy Stop Error: "+GetLastError());

            }
         }
    ////////////////////////////////////////////////////

       
    if(MoneyManagementnewLot=LotManage();
       else 
    newLot=Lots;

    ////////////////////////////////
      
       
    static bool EAStarted;
        
       if(
    orderscnt()<1&&(EAStarted==false||!OpenTradeOnce))
         {
          if(
    LastClosedOrderInfo("Type")==OP_BUY||(FirstOrder==BUY&&LastClosedOrderInfo("Type")==-1))
            {
             if(
    TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
             if(
    StopLoss!=0)SL=Ask-StopLoss*point;

             
    ticket=OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(Ask,Digits),3*P,SL,TP,"1",MagicNumber,0,Blue);
            }
          else
            {
             if(
    TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
             if(
    StopLoss!=0)SL=Bid+StopLoss*point;

             
    ticket=OrderSend(Symbol(),OP_SELL,newLot,NormalizeDouble(Bid,Digits),3*P,SL,TP,"1",MagicNumber,0,Red);
            }
            
    EAStarted=true;
          if(
    ticket<0)Print("Open Buy Error: "+GetLastError());
          
    PlaySound("Alert.wav");
         }

      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+

    double GetNextLot(int cnt)
      {
       switch(
    cnt)
         {
          case 
    1:return(Lots_2);
          case 
    2:return(Lots_3);
          case 
    3:return(Lots_4);
          case 
    4:return(Lots_5);
          case 
    5:return(Lots_6);
          case 
    6:return(Lots_7);
          case 
    7:return(Lots_8);
          case 
    8:return(Lots_9);
          case 
    9:return(Lots_10);
          case 
    10:return(Lots_11);
          case 
    11:return(Lots_12);
          case 
    12:return(Lots_13);
          case 
    13:return(Lots_14);
          case 
    14:return(Lots_15);
          case 
    15:return(Lots_16);
          case 
    16:return(Lots_17);
          case 
    17:return(Lots_18);
          case 
    18:return(Lots_19);
          case 
    19:return(Lots_20);
          case 
    20:return(Lots_21);
          case 
    21:return(Lots_22);
          case 
    22:return(Lots_23);
          case 
    23:return(Lots_24);
          case 
    24:return(Lots_25);
          case 
    25:return(Lots_26);
          case 
    26:return(Lots_27);
          case 
    27:return(Lots_28);
          case 
    28:return(Lots_29);
          case 
    29:return(Lots_30);
          case 
    30:return(Lots_31);
          case 
    31:return(Lots_32);
          case 
    32:return(Lots_33);
          case 
    33:return(Lots_34);
          case 
    34:return(Lots_35);
          case 
    35:return(Lots_36);
          case 
    36:return(Lots_37);
          case 
    37:return(Lots_38);
          case 
    38:return(Lots_39);
          case 
    39:return(Lots_40);
          case 
    40:return(Lots_41);
          case 
    41:return(Lots_42);
          case 
    42:return(Lots_43);
          case 
    43:return(Lots_44);
          case 
    44:return(Lots_45);
          case 
    45:return(Lots_46);
          case 
    46:return(Lots_47);
          case 
    47:return(Lots_48);
          case 
    48:return(Lots_49);
          case 
    49:return(Lots_50);
          default:return(
    Lots_50);
         }
       return(
    0);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    double TotalProfit()
      {
       
    double profit;
       for(
    int i=0;i<OrdersTotal();i++)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            {
             
    profit+=OrderProfit();
            }
         }
       return(
    profit);
      }
      
      
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    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);
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void ModifyAllOrdersTP(int type)
      {
       
    double TP=LastCurrentOrderInfo("TP",type);
       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(
    OrderTakeProfit()!=TP)
               {
                
    bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TP,0);
               }
            }
         }
      }
    //+------------------------------------------------------------------+
    //| FUNCTION DEFINITIONS   Money Managment                           |
    //+------------------------------------------------------------------+ 

    double LotManage()
      {
       
    double lot=MathCeil(AccountFreeMargin() *Risk/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 (
    NormalizeDouble(lot,2));
      }
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void CloseAll()
      {

       for(
    int i=OrdersTotal()-1;i>=0;i--)
         {
          
    bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            {
             if(
    OrderType()==OP_BUY)
               {
                
    bool close_b=OrderClose(OrderTicket(),OrderLots(),Bid,3*P);
               }
             else if(
    OrderType()==OP_SELL)
               {
                
    bool close_s=OrderClose(OrderTicket(),OrderLots(),Ask,3*P);
               }
             else
               {
                
    bool del=OrderDelete(OrderTicket());
               }
            }
         }
      }

    //+---------------------------------------------------------------------------------+ 
    مرحبا اخي العزيز عندي طلب اخر لو سمحت و ياريت تساعدنا فيه و هو تحت كل خانة لوت نضع هدف و ستوب

    مثلا لوت 0,1
    هدف 10
    ستوب 20
    لوت 0,2
    هدف 20
    ستوب 40

    بحيث كلما تفعلت صفقة تتغير جميع الاهداف و الستوبات السابقة بمثل اهداف الصفقة الاخيرة

    مثلا الصفقة الاولى
    بيع 0,1 ستوب 20 و هدف 10

    تفعلة الصفقة الثانية شراء 0,2 هدف 40 ستوب 20 هنا تتبعها الصفقة السابقة ايضا بنفس الهدف و الستوب
    و نفعلت الصفقة بيع 0,3 هدف 60 ستوب 30 تتبعها كل الصفقات السابقة بنفس الهدف و الستوب

    و شكرا لك او لأي مبرمج يساعدنا


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