← Назад к списку файлов

mr.dollar_order management ea v5.2.mq4

Поиск по коду файла

extern string S="  Open Orders By Adding Horizontal Lines  ";
 extern string Ss=" Lines Must Named As b+i or s+i / i=Number Of Line";
 extern int NumberOfLines=10;
 extern int OpenCandle=0;
 extern string DeleteLinesTime="25:00";
 extern string Ss1=" Close Lines Must named As cbl+i/cbu+i or csl+i/csu+i ";

 extern int CloseCandle=0;
 extern int Gap=2;
 extern string t="-------------------------------";  
 extern string S1="Set Order_Type=0 for buy |or| Order_Type=1 for sell ";

 extern bool OpenOrders=false;
 extern int Order_Type=0;
 extern int  MaxTrades = 1;
 extern string S2="Open Buy and Sell Orders At Same Time";
 extern bool OpenHedgingOrders=false;  
 extern int MagicNumber=5000;     
 extern string  MM_Parameters = " Money Management";
 extern double  Lots = 1;                                           
 extern bool  MM = false,                  
              AccountIsMicro = false;
 extern int  Risk = 10;                      

extern string S4="  Classic Order Management";
extern bool ModifyAllOrders=false;
extern bool HideSL=false;
extern int StopLoss=0;
extern bool HideTP=false;
extern int TakeProfit=0;

extern string S5="  ATR Order Management ";
extern bool UseATRTS=false;
extern double ATR_TSPercent = 0 ;
extern bool UseATRTP=false;
extern double ATR_TPPercent = 0 ;
extern bool UseATRSL=false;
extern double ATR_SLPercent = 0 ;
extern string S10=" Classic Trailing Stop";
extern int TrailingProfit=0;
extern int TrailingStop=0;
extern int TrailingStep=0;

extern string S6="  Orders BreakEven ";
extern int BreakEven=0;
extern int movestopto=1;
extern int BreakEven2=0;
extern int movestopto2=0;

extern string S9="---------- Order Time Management";
extern bool UseOrderTimeManagement=false;
extern string S7="Close Order when X Hour Passed After Order Open Time )";
extern int XHours=0; 
extern string S8="Close Order At Choosen Houre)";
extern int HourToCloseOrder=100; 

extern string S11="--------- Close Orders Settings";
extern bool CloseAfterProfitPercent=false;
extern int ProfitPercent=5;
extern bool CloseAfterLossPercent=false;
extern int LossPercent=5;
extern bool CloseAfterProfitUSD=false;
extern int ProfitUSD=200; 

 double point;
 int digits,i,D;

 int init()
{
      // код доступен только после оплаты
   }

 void deinit() {
    Comment("");
  }

 int orderscnt(){
 int cnt=0;
   for(int i =0;i<OrdersTotal();i++){

     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
       if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
         cnt++;
       }
     }

    }
    return(cnt);
  }

 int start()
   {
      // код доступен только после оплаты
   }
   double SL,TP; 
     datetime Start= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + DeleteLinesTime);
     if(TimeCurrent()==Start){
      for(i=0;i<=NumberOfLines;i++){
       ObjectDelete("b"+i); ObjectDelete("s"+i);

        }
       }
       int j,mag,tick,typ;

  for(i=0;i<=NumberOfLines;i++){
if(ObjectFind("b"+i)!=-1){
double b=ObjectGet("b"+i,OBJPROP_PRICE1);

if((Close[0]<=b+Gap*point&&Close[0]>=b-Gap*point&&OpenCandle<1)||((Close[OpenCandle]>b||Open[OpenCandle]<b)&&OpenCandle>0)){
 if(UseATRSL)StopLoss=(100*ATR_SLPercent*iATR(NULL,1440,14,0))/point;
   if((UseATRSL)&&StopLoss<10)StopLoss=10;
   if(UseATRTP)TakeProfit=(100*ATR_TPPercent*iATR(NULL,1440,14,0))/point;
   if((UseATRTP)&&TakeProfit<10)TakeProfit=10;
   if(StopLoss==0||HideSL==true){SL=0;}else{SL=Ask-StopLoss*point;}
   if(TakeProfit==0||HideTP==true){TP=0;}else{TP=Ask+TakeProfit*point;}

  OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),3*D,SL,TP,"MR.dollar EA",MagicNumber+i,0,Blue);
  ObjectDelete("b"+i);
  }
 }

if(ObjectFind("cbu"+i)!=-1){

double l2=ObjectGet("cbu"+i,OBJPROP_PRICE1);
 for( j=0;j<=OrdersTotal();j++){
OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber+i){
 mag=OrderMagicNumber(); tick=OrderTicket(); typ=OrderType();
break;
 }
}

if((Close[CloseCandle]>l2)&&mag==MagicNumber+i&&typ==OP_BUY){

OrderClose(tick,OrderLots(),NormalizeDouble(Bid,digits),3*D);ObjectDelete("cbu"+i);
  }
 }
 if(ObjectFind("cbl"+i)!=-1){
 l2=ObjectGet("cbl"+i,OBJPROP_PRICE1);
for( j=0;j<=OrdersTotal();j++){
OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber+i){
 mag=OrderMagicNumber(); tick=OrderTicket(); typ=OrderType();
break;
 }
}
if((Close[CloseCandle]<l2)&&mag==MagicNumber+i&&typ==OP_BUY){

OrderClose(tick,OrderLots(),NormalizeDouble(Bid,digits),3*D);ObjectDelete("cbl"+i);
     } 
   }
 }

for(i=0;i<=NumberOfLines;i++){
if(ObjectFind("s"+i)!=-1){
double s=ObjectGet("s"+i,OBJPROP_PRICE1);
if((Close[0]<=s+Gap*point&&Close[0]>=s-Gap*point&&OpenCandle<1)||((Close[OpenCandle]<s||Open[OpenCandle]>s)&&OpenCandle>0)){
  if(UseATRSL)StopLoss=(100*ATR_SLPercent*iATR(NULL,1440,14,0))/point;
   if((UseATRSL)&&StopLoss<10)StopLoss=10;
   if(UseATRTP)TakeProfit=(100*ATR_TPPercent*iATR(NULL,1440,14,0))/point;
   if((UseATRTP)&&TakeProfit<10)TakeProfit=10;
   if(StopLoss==0||HideSL==true){SL=0;}else{SL=Bid+StopLoss*point;}
   if(TakeProfit==0||HideTP==true){TP=0;}else{TP=Bid-TakeProfit*point;}
   OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,digits),3*D,SL,TP,"MR.dollar EA",MagicNumber+i,0,Red); 
   ObjectDelete("s"+i);
   }
 }
if(ObjectFind("csl"+i)!=-1){
double l1=NormalizeDouble(ObjectGet("csl"+i,OBJPROP_PRICE1),digits);
for( j=0;j<=OrdersTotal();j++){
OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber+i){
 mag=OrderMagicNumber(); tick=OrderTicket(); typ=OrderType();
break;
 }
}
if((Close[CloseCandle]<l1)&&mag==MagicNumber+i&&typ==OP_SELL){
OrderClose(tick,OrderLots(),NormalizeDouble(Ask,digits),3*D);ObjectDelete("csl"+i);
  }
 }
  if(ObjectFind("csu"+i)!=-1){
 l1=NormalizeDouble(ObjectGet("csu"+i,OBJPROP_PRICE1),digits);
for( j=0;j<=OrdersTotal();j++){
OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber+i){
 mag=OrderMagicNumber(); tick=OrderTicket(); typ=OrderType();
break;
 }
}
if((Close[CloseCandle]>l1)&&mag==MagicNumber+i&&typ==OP_SELL){
OrderClose(tick,OrderLots(),NormalizeDouble(Ask,digits),3*D);ObjectDelete("csu"+i);
     }
   }
  }

   Comment("Programmed by MR.dollar"+"\n"+"????? ???????? ??????"+"\n"+"www.arabictrader.com/vb");
  double orderopen_time,TimeT;

   if(((AccountProfit()/AccountBalance())*100>=ProfitPercent&&CloseAfterProfitPercent==true)||
   ((AccountProfit()/AccountBalance())*100<=LossPercent&&CloseAfterLossPercent==true)||(AccountProfit()>=ProfitUSD&&CloseAfterProfitUSD==true)){
   while(OrdersTotal()>0){CloseAllOrders();}
   }   

   if(TrailingStop>0)MoveTrailingStop();
   if(BreakEven>0)MoveBreakEven();
   if(BreakEven2>0)MoveBreakEven2();
   if(UseATRTS)MoveATRTS();

       for(int i=0;i<OrdersTotal();i++){
       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true){
       if(OrderSymbol()==Symbol()){
       orderopen_time=OrderOpenTime();
       }}}
       TimeT=((TimeCurrent()-orderopen_time)/(60*60));

        if(HideSL&&StopLoss>0)
   {
      CloseBuyOrdersHiddenSL();CloseSellOrdersHiddenSL();
   }
   if(HideTP&&TakeProfit>0)
   {
      CloseBuyOrdersHiddenTP();CloseSellOrdersHiddenTP();
   }

    if(MM) Lots = subLotSize();
      if ( UseOrderTimeManagement==true&&(HourToCloseOrder==Hour()||(XHours>=TimeT&&XHours!=0)))
       {CloseAllOrders();}

   for(int cnt=OrdersTotal();cnt>=0;cnt--)
    {

     OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
     double type=OrderType();double stop=OrderStopLoss();double open=OrderOpenPrice();
      tick=OrderTicket();double profit=OrderTakeProfit();
     if(OrderSymbol()==Symbol()||ModifyAllOrders==true){
     if(StopLoss!=0||TakeProfit!=0){
     if(type==OP_BUY&&(HideSL==false||HideTP==false)){
     if(StopLoss!=0&&HideSL==false){SL=open-StopLoss*point;}
     if(TakeProfit!=0&&HideTP==false){TP=open+TakeProfit*point;}
     if(stop!=SL||profit!=TP){
     OrderModify(tick,open,SL,TP,0,Blue);
      }
     }
      if(type==OP_SELL&&(HideSL==false||HideTP==false)){
       if(StopLoss!=0&&HideSL==false){SL=open+StopLoss*point;}
        if(TakeProfit!=0&&HideTP==false){TP=open-TakeProfit*point;}
        if(stop!=SL||profit!=TP){
        OrderModify(tick,open,SL,TP,0,Red);
          }
         }
        }
       }
      }   

   if(OpenHedgingOrders==true&&OrdersTotalMagicBuy()<1){
   {
   if(UseATRSL)StopLoss=(100*ATR_SLPercent*iATR(NULL,1440,14,0))/point;
   if((UseATRSL)&&StopLoss<10)StopLoss=10;
   if(UseATRTP)TakeProfit=(100*ATR_TPPercent*iATR(NULL,1440,14,0))/point;
   if((UseATRTP)&&TakeProfit<10)TakeProfit=10;

         if(StopLoss==0||HideSL==true){SL=0;}else{SL=Ask-StopLoss*point;}
           if(TakeProfit==0||HideTP==true){TP=0;}else{TP=Ask+TakeProfit*point;}

            OrderSend(Symbol(),OP_BUY,Lots,Ask,3*D,SL,TP,"MR.dollar EA",MagicNumber,0,Blue);
            }
            {
            if(OrdersTotalMagicSell()<1){
         if(UseATRSL)StopLoss=(100*ATR_SLPercent*iATR(NULL,1440,14,0))/point;
         if((UseATRSL)&&StopLoss<10)StopLoss=10;
         if(UseATRTP)TakeProfit=(100*ATR_TPPercent*iATR(NULL,1440,14,0))/point;
         if((UseATRTP)&&TakeProfit<10)TakeProfit=10;

         if(StopLoss==0||HideSL==true){SL=0;}else{SL=Bid+StopLoss*point;}
           

Показано первые 50% кода (символов: 14594)

Как получить полную версию?

Введите ваш email и нажмите кнопку, чтобы перейти к оплате.