Modify a free martingale system based EA

MQL4 Esperti

Lavoro terminato

Tempo di esecuzione 3 giorni
Feedback del cliente
this person has no time to deal, he finds an excuse or the other and moves ahead
Feedback del dipendente
Be careful - this customer try to get You to do extra work for free, threatening not to complete already performed job. Use arbitration without hesitation

Specifiche

hi

 

I like this below given free EA, it is martingale based EA, the EA from below code places a 0.01 lots order, and if the order is in loss, then it will put second order with 0.02 lots to even out the loosing order, and it keeps on making multiple orders of 0.03 , 0.04 etc lots to even out the loosing trades, i like this. But, the problem is that i do not want the EA to place the second order of 0.02 lots, instead the EA should place 2 orders at 15 seconds interval of 0.01 lots each, and for 0.03 lot, it should put 3 orders of 0.01 lots each at 15 seconds interval and so on.... i think you can use for loop for it... or whatever suitable

 Please note it that i want the results of the below EA and the modified EA to be SAME, by same i don't mean exactly same, but the result should be almost 95% same.... 

Also, i would like to tell you that i have already tried to put the mult = 1, by doing so, the EA does not make a single order by 0.02 lots, it does as i wanted, it does 0.01 lots 2 orders, but the problem here is that the second order is generated about 1 hour late as it waits for the occurrence of the stochastic to put the next order to even out the loosing order... and this makes the EA go in loss

 so as i said above, i just want the EA to put 2 orders of 0.01 instead of 0.02... and 3 orders of 0.01 instead of 0.03 and so on...

or however it is possible.... use your logic....

 all i need is the same performance but not the order of 0.02 or 0.03, all orders should be of constant lot 0.01 only and result should be same, the orders should be with 15 seconds gap

 the reason for the 15 second gap and constant lot size.... all i can tell is that i want this EA to be placed on a system as an account manager and the company has the rule of 15 second gap and constant lot size, so that is the reason i want this EA to be modified

 

thanks ..below is the code to be modified

 

//+------------------------------------------------------------------+
//|                                                          aaa.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double step=25;
extern int StepMode=0;
// Åñëè StepMode = 0, òî øàã ìåæäó îðäåðàìè ôèêñèðîâàííûé è ðàâåí step
// Åñëè StepMode = 1, òî øàã ïîñòåïåííî óâåëè÷èâàåòñÿ
extern double proffactor=10;
extern double mult=1.5;
extern double lotsbuy=0.01;
extern double lotssell=0.01;  
extern double per_K=200;
extern double per_D=20;
extern double slow=20;
extern double zoneBUY=50;
extern double zoneSELL=50;
extern double Magicbuy=555;
extern double Magicsell=556;
double openpricebuy,openpricesell,lotsbuy2,lotssell2,lastlotbuy,lastlotsell,tpb,tps,cnt,smbuy,smsell,lotstep,
ticketbuy,ticketsell,maxLot,free,balance,lotsell,lotbuy,dig,sig_buy,sig_sell,ask,bid;                           
                                int OrdersTotalMagicbuy(int Magicbuy)
 {
   int j=0;
   int r;
   for (r=0;r<OrdersTotal();r++)
   {
     if(OrderSelect(r,SELECT_BY_POS,MODE_TRADES))
     {
        if (OrderMagicNumber()==Magicbuy) j++;
     }
   }   
 return(j); 
 }

                                int OrdersTotalMagicsell(int Magicsell)
{
   int d=0;
   int n;
   for (n=0;n<OrdersTotal();n++)
   {
     if(OrderSelect(n,SELECT_BY_POS,MODE_TRADES))
     {
        if (OrderMagicNumber()==Magicsell) d++;
     }
   }    
 return(d);
  }     
                                      int orderclosebuy(int ticketbuy)
     {
string symbol = Symbol();
int cnt;
    for(cnt = OrdersTotal(); cnt >= 0; cnt--)
       {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);       
       if(OrderSymbol() == symbol && OrderMagicNumber()==Magicbuy) 
         {
         ticketbuy=OrderTicket();OrderSelect(ticketbuy, SELECT_BY_TICKET, MODE_TRADES);lotsbuy2=OrderLots() ;                         
         double bid = MarketInfo(symbol,MODE_BID); 
         RefreshRates();
         OrderClose(ticketbuy,lotsbuy2,bid,3,Magenta); 
         }
       }
       lotsbuy2=lotsbuy;return(0);
     } 
                                      int orderclosesell(int ticketsell)
     {
string symbol = Symbol();
int cnt;   
    for(cnt = OrdersTotal(); cnt >= 0; cnt--)
       {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);       
       if(OrderSymbol() == symbol && OrderMagicNumber()==Magicsell) 
         {
         ticketsell=OrderTicket();OrderSelect(ticketsell, SELECT_BY_TICKET, MODE_TRADES);lotssell2=OrderLots() ;                         
         double ask = MarketInfo(symbol,MODE_ASK); 
         RefreshRates();
         OrderClose(ticketsell,lotssell2,ask,3, Lime); 
         }
       }
       lotssell2=lotssell;return(0); 
     }
                                                 int start()
  {
//----
  double profitbuy=0;double profitsell=0;
  string symbol = OrderSymbol();
  double spread = MarketInfo(symbol,MODE_SPREAD);
  double minLot = MarketInfo(symbol,MODE_MINLOT);
  if (minLot==0.01){dig=2;maxLot=MarketInfo(symbol,MODE_MAXLOT);}
  if (minLot==0.1){dig=1;maxLot=((AccountBalance()/2)/1000);}
  if(OrdersTotalMagicbuy(Magicbuy)>0)
  {
  double smbuy;
  for (cnt=0;cnt<OrdersTotal();cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol() == Symbol() && OrderMagicNumber () == Magicbuy) 
      {
      ticketbuy = OrderTicket();OrderSelect(ticketbuy,SELECT_BY_TICKET, MODE_TRADES);
      smbuy = smbuy+OrderLots();openpricebuy = OrderOpenPrice();lastlotbuy = OrderLots();
      }
    }
    {   
    if (smbuy+(NormalizeDouble((lastlotbuy*mult),dig))<maxLot)
      {     
      if(StepMode==0)
        {
        if(Ask<=openpricebuy-step*Point)
          {
          lotsbuy2=lastlotbuy*mult;
          RefreshRates();ticketbuy=OrderSend(Symbol(),OP_BUY,NormalizeDouble(lotsbuy2,dig),Ask,3,0,0,"MartingailExpert",Magicbuy,0,Blue);
          }
        }
      if(StepMode==1)
        {
        if(Ask<=openpricebuy-(step+OrdersTotalMagicbuy(Magicbuy)+OrdersTotalMagicbuy(Magicbuy)-2)*Point)
          {
          lotsbuy2=lastlotbuy*mult;
          RefreshRates();ticketbuy=OrderSend(Symbol(),OP_BUY,NormalizeDouble(lotsbuy2,dig),Ask,3,0,0,"MartingailExpert",Magicbuy,0,Blue);
          } 
        }
      }
    }
  }
  if(OrdersTotalMagicsell(Magicsell)>0)
  {
  double smsell;
  for (cnt=0;cnt<OrdersTotal();cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol() == Symbol() && OrderMagicNumber () == Magicsell)
      {
      ticketsell = OrderTicket();OrderSelect(ticketsell,SELECT_BY_TICKET, MODE_TRADES);
      smsell = smsell + OrderLots();openpricesell = OrderOpenPrice();lastlotsell = OrderLots();
      }     
    }
    {
    if (smsell+(NormalizeDouble((lastlotsell*mult),dig))<maxLot)
      {
      if(StepMode==0)
        {
        if(Bid>=openpricesell+step*Point)
          {
          lotssell2=lastlotsell*mult;
          RefreshRates();ticketsell=OrderSend(Symbol(),OP_SELL,NormalizeDouble(lotssell2,dig),Bid,3,0,0,"MartingailExpert",Magicsell,0,Red);
          }
        }
      if(StepMode==1)
        {
        if(Bid>=openpricesell+(step+OrdersTotalMagicsell(Magicsell)+OrdersTotalMagicsell(Magicsell)-2)*Point)
          {
          lotssell2=lastlotsell*mult;
          RefreshRates();ticketsell=OrderSend(Symbol(),OP_SELL,NormalizeDouble(lotssell2,dig),Bid,3,0,0,"MartingailExpert",Magicsell,0,Red);
          }
        }
      }
    }  
  }
  if(OrdersTotalMagicbuy(Magicbuy)<1)
  { 
  if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)>iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
  && iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)>zoneBUY)ticketbuy = OrderSend(Symbol(),OP_BUY,lotsbuy,Ask,3,0,0,"MartingailExpert",Magicbuy,0,Blue);
  }
  if(OrdersTotalMagicsell(Magicsell)<1)
  {
  if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)<iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
  && iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)<zoneSELL)ticketsell = OrderSend(Symbol(),OP_SELL,lotssell,Bid,3,0,0,"MartingailExpert",Magicsell,0,Red);
  }
  for (cnt=0;cnt<OrdersTotal();cnt++)
  {
  OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
  if (OrderSymbol()==Symbol() && OrderMagicNumber () == Magicbuy)
    {
    ticketbuy = OrderTicket();OrderSelect(ticketbuy,SELECT_BY_TICKET, MODE_TRADES);profitbuy = profitbuy+OrderProfit() ;
    openpricebuy = OrderOpenPrice();
    }
  }  
  tpb = (OrdersTotalMagicbuy(Magicbuy)*proffactor*Point)+openpricebuy;
  double bid = MarketInfo(Symbol(),MODE_BID);
  if (profitbuy>0)
  {
  if (Bid>=tpb) orderclosebuy(ticketbuy);
  }
  for (cnt=0;cnt<OrdersTotal();cnt++)
  {   
  OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
  if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magicsell)
    {
    ticketsell = OrderTicket();OrderSelect(ticketsell,SELECT_BY_TICKET, MODE_TRADES);profitsell = profitsell+OrderProfit();
    openpricesell = OrderOpenPrice(); 
    }
  }
  tps = openpricesell-(OrdersTotalMagicsell(Magicsell)*proffactor*Point);
  double ask = MarketInfo(Symbol(),MODE_ASK);    
  if (profitsell>0)
  {
  if (Ask<=tps)orderclosesell(ticketsell);    
  }
  free = AccountFreeMargin();balance = AccountBalance();    
  for (cnt=0;cnt< OrdersTotal();cnt++)
  {   
  OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
  if (OrderSymbol()==Symbol() && OrderMagicNumber () == Magicbuy)  ticketbuy = OrderTicket();
  if (OrderSymbol()==Symbol() && OrderMagicNumber () == Magicsell) ticketsell = OrderTicket();
  }
  if (OrdersTotalMagicbuy(Magicbuy)==0)
  {
  profitbuy=0;ticketbuy=0;tpb=0;
  }
  if (OrdersTotalMagicsell(Magicsell)==0)
  {
  profitsell=0;ticketsell=0;tps=0;
  }
  Comment("FreeMargin = ",NormalizeDouble(free,0),"  Balance = ",NormalizeDouble(balance,0),"  maxLot = ",NormalizeDouble(maxLot,dig),"\n",
  "Totalbuy = ",OrdersTotalMagicbuy(Magicbuy),"  Lot = ",smbuy,"  Totalsell = ",OrdersTotalMagicsell(Magicsell),"  Lot = ",smsell,"\n",
  "---------------------------------------------------------------","\n","Profitbuy = ",profitbuy,"\n",
  "Profitsell = ",profitsell);
//----
   for(int ii=0; ii<2; ii+=2)
     {
      ObjectDelete("rect"+ii);
      ObjectCreate("rect"+ii,OBJ_HLINE, 0, 0,tps);
      ObjectSet("rect"+ii, OBJPROP_COLOR, Red);
      ObjectSet("rect"+ii, OBJPROP_WIDTH, 1);
      ObjectSet("rect"+ii, OBJPROP_RAY, False);
      }    
   for(int rr=0; rr<2; rr+=2)
      {
      ObjectDelete("rect1"+rr);
      ObjectCreate("rect1"+rr,OBJ_HLINE, 0, 0,tpb);      
      ObjectSet("rect1"+rr, OBJPROP_COLOR, Blue);
      ObjectSet("rect1"+rr, OBJPROP_WIDTH, 1);
      ObjectSet("rect1"+rr, OBJPROP_RAY, False);     
     }
   return(0);
}  
//+------------------------------------------------------------------+

 

Con risposta

1
Sviluppatore 1
Valutazioni
(851)
Progetti
1464
72%
Arbitraggio
122
29% / 48%
In ritardo
358
24%
In elaborazione
Pubblicati: 3 articoli
2
Sviluppatore 2
Valutazioni
(273)
Progetti
396
63%
Arbitraggio
70
53% / 26%
In ritardo
198
50%
Gratuito
3
Sviluppatore 3
Valutazioni
(59)
Progetti
182
55%
Arbitraggio
31
45% / 16%
In ritardo
103
57%
Gratuito
4
Sviluppatore 4
Valutazioni
(182)
Progetti
342
42%
Arbitraggio
118
12% / 73%
In ritardo
104
30%
Gratuito
Pubblicati: 4 codici
5
Sviluppatore 5
Valutazioni
(9)
Progetti
20
70%
Arbitraggio
1
0% / 100%
In ritardo
9
45%
Gratuito
6
Sviluppatore 6
Valutazioni
(180)
Progetti
301
30%
Arbitraggio
54
24% / 56%
In ritardo
98
33%
Gratuito
7
Sviluppatore 7
Valutazioni
(4)
Progetti
7
43%
Arbitraggio
5
0% / 60%
In ritardo
3
43%
Gratuito
Pubblicati: 1 codice
8
Sviluppatore 8
Valutazioni
(20)
Progetti
46
54%
Arbitraggio
3
67% / 0%
In ritardo
14
30%
Gratuito
9
Sviluppatore 9
Valutazioni
(59)
Progetti
90
39%
Arbitraggio
26
4% / 77%
In ritardo
40
44%
Gratuito
Ordini simili
Need Grid + Martingale Type Averaging EA ( Directional Buy or Sell entry then uses grid/martingale for Recovery if need ) * Must Work Buy + Sell Both Side ( Do not Open Buy or Sell at Once Let the Previous Order Close ) * Min Lot size 0.01 * Max Lot Size 1 ( Can be Edited to maximum ) * Auto TP Shift * Auto Averaging Position also Auto Shift TP as per Averaging * After Averaging Close the Trade in Maximum Profit (
C'est un Expert Advisor (EA) MQL5 pour MetaTrader 5, conçu pour l' XAUUSD , combinant un filtre de tendance et une grille adaptative avec gestion de panier ("basket") et protections contre le drawdown. Version 1.00. Logique de trading Filtre de tendance (H4 par défaut) • EMA rapide (50) vs EMA lente (200) pour déterminer la direction (UP/DOWN) • Filtre ADX (période 14, seuil 18) pour éviter de trader en
My EA is semi Auto EA..with Master and slave concept Using Heiken Ashi +Heiken Smooth and Moving Average What to do?1. Remove some previous feature 2.Change some rules of 4 slave to pending Order 3. Check the coding is clean. 4. create panel dialog box
I have 2 trading view indicators by GainzAlgo that I want code to mt5 , could u advise? I need you to give me response if you can convert This
Looking for an MT4/MT5 independent risk-management service or system that can monitor and automatically close trades opened and managed by another trader’s EA. The existing EA continuously removes/overrides manually added Stop Losses and may also override SLs placed by another EA. I need a solution that does not rely on modifying the existing trade or placing a Stop Loss. Instead, it should independently monitor each
I currently sell a white-label XAUUSD EA, but the existing supplier owns the source code. I now need a new, independently developed EA and licensing system that my company fully owns and controls. I am not requesting decompilation or copying of proprietary code. Existing settings, presets and trading examples will be provided as reference. The developer must first identify any missing strategy rules before
I am looking for an experienced trader, preferably a manual trader, with a minimum 12-month verifiable live trading track record. Requirements: - Target: Up to 10% monthly return - Maximum risk/drawdown tolerance: 20% - Maximum trade duration: 5 hours - No Martingale - No Hedging - No grid or other high-risk strategies - Minimum 12 months continuous track record - Track record must be independently verifiable through
Hello! I'm looking for an experienced programmer to help me fix bugs in NEOLOGICA, PROFIT. The code is written, without errors or warnings, but not everything works correctly. Please help me. I'm looking for a programmer for a long-term collaboration, so that this project can open doors to other interesting projects. :) You need to have access to this platform, but I think that's obvious
I DO NOT need any programming or strategy development. I already have a working NinjaTrader 8 automated strategy based on a 3/5 EMA crossover. I need you to run my existing strategy through NinjaTrader Strategy Analyzer/Optimizer, test the existing adjustable parameters, and find robust settings with the best profit factor and lowest reasonable drawdown. I will provide the existing NinjaScript ZIP. I do not want the
I need this MT5 EA to work according to the following exact logic: SYMBOL: Primarily optimized for XAUUSD/Gold. All important values such as lot size, SL, TP, spread and MA periods must remain adjustable from Inputs

Informazioni sul progetto

Budget
100 - 110 USD
Scadenze
da 1 a 7 giorno(i)