Ajude me criar um bot esta escrito em baixo

MQL4 Experts Scripts

Tâche terminée

Temps d'exécution 16 jours

Spécifications

Então eu pensei num bot tipo esse aqui de baixo, Quero algum Desenvolvedor de EA que possa concertar isso.

 e também quero que insira esses Lots específicos aqui em baixo em cada ordem  q for aberta com perda, quando a ganha a ordem volta para o lot inicial

 

Adiciona eu no whatsapp +55 11 95724-2910 

 

extern int MagicNumber=10001;
extern double Lots =0.1;
extern double StopLoss=50;
extern double TakeProfit=50;
extern int TrailingStop=50;
extern int Slippage=3;
extern double minlot=0.1;
extern double maxlot=10;


//+------------------------------------------------------------------+
//    expert start function
//+------------------------------------------------------------------+

double numero[]={0.1,0.2,0.3};
int n,result;

double lotsfactor=1.5,ilots;
double initiallotsfactor=1;




int start()
{

//|---------martingale initialization

   int tempfactor,total=OrdersTotal();
  
   if(tempfactor==0 && total>0)
   {
      for(int cnt=0;cnt<total;cnt++)
      {
         if(OrderSelect(cnt,SELECT_BY_POS))
         {
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            {
               tempfactor=NormalizeDouble(OrderLots()/numero[n],1+(MarketInfo(Symbol(),MODE_MINLOT)==0.01));
               break;
            }
         }
      }
   }
   int histotal=OrdersHistoryTotal();
   if(tempfactor==0&&histotal>0)
   {
      for(cnt=0;cnt<histotal;cnt++)
      {
         if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
         {
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            {
               tempfactor=NormalizeDouble(OrderLots()/numero[n],1+(MarketInfo(Symbol(),MODE_MINLOT)==0.01));
               break;
            }
         }
      }
   }
   if(tempfactor>1)
   lotsfactor=tempfactor;
















  double MyPoint=Point;
  if(Digits==3 || Digits==5) MyPoint=Point*10;
  
  double TheStopLoss=0;
  double TheTakeProfit=0;
  if( TotalOrdersCount()==0 )
  {
     int result=0;
     if((Bid>Open[0])) // Here is your open buy rule
     {
     for(n=0;n<numero[n];n++){
     result=numero[n]+OrderLots();
    
    
      numero[n]=NormalizeDouble(numero[n]=martingalefactor(),1);
      if(numero[n]<minlot)numero[n]=minlot;if(numero[n]>maxlot)numero[n]=maxlot;
      
      
        result=OrderSend(Symbol(),OP_BUY,numero[n],Ask,Slippage,0,0,"Bot",MagicNumber,0,Blue);
        
      
        if(result>0)
        {
         TheStopLoss=0;
         TheTakeProfit=0;
         if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
         if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
         OrderSelect(result,SELECT_BY_TICKET);
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
        }
        return(0);
        }
     }
     if((Bid<Open[0])) // Here is your open Sell rule
     {
     for(n=0;n<numero[n];n++){
     result=numero[n]+OrderLots();
    
    
              numero[n]=NormalizeDouble(numero[n]=martingalefactor(),1);
              
         if(numero[n]<minlot)numero[n]=minlot;if(numero[n]>maxlot)numero[n]=maxlot;
        
        
        result=OrderSend(Symbol(),OP_SELL,numero[n],Bid,Slippage,0,0,"Bot",MagicNumber,0,Red);
        
        
        
        if(result>0)
        {
         TheStopLoss=0;
         TheTakeProfit=0;
         if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
         if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
         OrderSelect(result,SELECT_BY_TICKET);
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
        }
        return(0);
        }
     }
  }
  
  for(int vnt=0;vnt<OrdersTotal();vnt++)
     {
      OrderSelect(vnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&  
         OrderSymbol()==Symbol() &&
         OrderMagicNumber()==MagicNumber
         )  
        {
         if(OrderType()==OP_BUY)  
           {
            if(TrailingStop>0)  
              {                
               if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else
           {
            if(TrailingStop>0)  
              {                
               if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
}

int TotalOrdersCount()
{
  int result=0;
  for(int i=0;i<OrdersTotal();i++)
  {
     OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
     if (OrderMagicNumber()==MagicNumber) result++;

   }
  return (result);
}

int martingalefactor()
{
   int histotal=OrdersHistoryTotal();
   if (histotal>0)
   {
      for(int cnt=histotal-1;cnt>=0;cnt++)
      {
         if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
         {
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            {
               if(OrderProfit()<0)
               {
                  
                  lotsfactor=numero[n]+OrderLots();
                  
                  
                    return(lotsfactor);
               }
              
               else
               {
                  lotsfactor=numero[n];
                  if(lotsfactor>=0)
                  {
                   lotsfactor=1.5;
                  }
                  return(lotsfactor);
                  
                  
                  
                  
                  
               }
            }
         }
      }
   }
   return(lotsfactor);

}

 

Répondu

1
Développeur 1
Évaluation
(89)
Projets
139
24%
Arbitrage
34
32% / 44%
En retard
59
42%
Travail
Commandes similaires
1️⃣ OVERVIEW Platform: MetaQuotes MetaTrader 5 Language: MQL5 Timeframe: H1 (hard-coded default, but parameterized) Default Symbol: EURUSD (must support any symbol) Execution Mode: Market Execution 2️⃣ CORE PHILOSOPHY System optimized for: Capturing expansion after pullback Maximizing R multiple Allowing volatility-based scaling Accepting moderate-to-high drawdown No: Martingale Grid Hedging 3️⃣ INPUT PARAMETERS 🔹

Informations sur le projet

Budget
20 - 30 USD
Délais
de 1 à 10 jour(s)