Ajude me criar um bot esta escrito em baixo

MQL4 전문가 스크립트

작업 종료됨

실행 시간 16 일

명시

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);

}

 

응답함

1
개발자 1
등급
(89)
프로젝트
139
24%
중재
34
32% / 44%
기한 초과
59
42%
작업중
비슷한 주문
Hi, I've been developing a Scalping strategy that now I want to apply to a bot in order to save me some time. Requirements: - Trade Timeframe: M1 - Indicators: EMA (Exponential Moving Average), SMA (Simple Moving Average) Based on indicators above, bot will buy assets applying Stop Loss and Take Profit values. Let me know if you are interested... Thanks
Robô para negociação automática: Variáveis de negociação: Lote, hora de negociação, horário de zeragem de ordens. trail stop sim ou nao: cada canal rompido a favor da operação, sobe x canal Stop do dia: em pontos Take do dia: em pontos Quantidade de operações no dia: x Quantidade de ganhos no dia: x Quantidade de perdas no dia: x Variáveis dos indicadores: Media móvel, período e tipo de calculo e quantidade de pontos
Gostaria de corrigir 2 erros em meu EA, ele é complexo e tem mais de 6k linhas. Quero saber sua experiência antes de firmarmos qualquer acordo. Conversaremos mais a respeito e tenho que colocar palavras aqui para dar 30 palavras e eu poder postar

프로젝트 정보

예산
20 - 30 USD
개발자에게
18 - 27 USD
기한
에서 1  10 일