Scriverò un EA gratuitamente - pagina 157

 
Ivan Butko #:
Il precedente, purtroppo, non andava bene. Ho cercato nel codebase e ho trovato quasi esattamente quello di cui ho bisogno

https://www.mql5.com/ru/code/10236

//+------------------------------------------------------------------+
//|                                                    i`lbeback.mq4 |
//|                                Copyright ? 2011, AM2 && Tiburond |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2011, AM2 && Tiburond"
#property link      "http://www.forexsystems.biz"

#define MAGIC  20110406

extern int  StopLoss    = 1300;   //???????? ??????
extern int  StartHour   = 21;     //??? ?????? ????????(???????????? ?????)
extern int  Distance    = 250;    //?????????? ?? ???? ??? ????????? ??????
extern int  Step        = 50;     //??? ????????? ???????
extern int  Count       = 4;      //?????????? ??????????????? ???????
extern int  Expiration  = 4;      //????? ????????? ??????
extern double  Lots     = 1;      //???
extern bool  MM         = true;   //?????????? ???????????????
extern double  TSP      = 5;      //????
extern bool  BU         = true;   //?????????? ?????? ??????? ? ????????? ? ??????? ???
extern int  BUHour      = 2;      //??? ????? ??????? ??????? ??????? ? ?????????

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int  init()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int  deinit()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int  start()
  {
   int  b=0,s=0,res;
   datetime  expiration = TimeCurrent()+3600*Expiration;
   double  BuyPrice=fND(Open[0]-Distance*Point);
   double  SellPrice=fND(Open[0]+Distance*Point);  
   for (int  i=OrdersTotal()-1;i>=0;i--)
     {
      if (OrderSelect(i, SELECT_BY_POS))
        {  
         if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
         if (OrderType()==OP_BUYLIMIT) b++;
         if (OrderType()==OP_SELLLIMIT) s++;
        }  
     }
   if (Hour()>BUHour && Hour()<StartHour && AllProfit()>0) ClosePositions();
   if (Hour()>BUHour && DayOfWeek() == 5) ClosePositions();  
   if (Hour()==StartHour && b<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {
     {              
      res=OrderSend(Symbol(),OP_BUYLIMIT,fLots(),fND(Ask-(Distance*Point+i*Step*Point)),3,fND(BuyPrice-StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Blue);      
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }
        
   if (Hour()==StartHour && s<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {  
     {              
      res=OrderSend(Symbol(),OP_SELLLIMIT,fLots(),fND(Bid+(Distance*Point+i*Step*Point)),3,fND(SellPrice+StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Red );
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }    
//----  
   return(0);
  }
//+------------------------------------------------------------------+
double  fND(double  d, int  n=-1)
  {  
   if (n<0) return(NormalizeDouble(d, Digits));
   return(NormalizeDouble(d, n));
  }
//+------------------------------------------------------------------+
double  fLots()
  {
   double  lot=Lots;
   double  lot_min =MarketInfo( Symbol(), MODE_MINLOT  );
   double  lot_max =MarketInfo( Symbol(), MODE_MAXLOT  );
   if (MM)
     {
      double  lot_step =MarketInfo( Symbol(), MODE_LOTSTEP );
      double  lotcost =MarketInfo( Symbol(), MODE_TICKVALUE );      
      double  dollarsPerPip=0.0;

      lot = AccountFreeMargin()*TSP/100.0;
      dollarsPerPip=lot/StopLoss;
      lot=fND(dollarsPerPip/lotcost, 2);      
      lot=fND(lot/lot_step, 0) * lot_step;
     }
   if (lot<lot_min) lot=lot_min;
   if (lot>lot_max) lot=lot_max;
   return(lot);
  }
//+------------------------------------------------------------------+
void  ClosePositions()
  {
   if(BU)
   for (int  i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol())
       {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
          {
            if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
            if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
          }
         Sleep(1000);
      }
    }
  }
//+------------------------------------------------------------------+
double  AllProfit()
  {
   double  Profit = 0;
   for (int  i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
         if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
    }
   return (Profit);
  }
//+------------------------------------------------------------------+


Per favore, aiutatemi a fare delle correzioni. Questo EA non chiude con forza gli ordini aperti. Mi piacerebbe che insieme al tempo di impostazione dei limiti potessimo anche impostare il tempo della loro chiusura forzata.
Abbiamo bisogno di TP e trall per ottimizzarli. Un trall, in modo che tutti i limiti sarebbero stati chiusi in modo piccolo ma raccogliere il rumore notturno.

Introdotta la cancellazione dell'ordine, la tempistica, l'impostazione degli stop e il trawl (preso qui https://www.mql5.com/ru/code/32662, stessa spiegazione lì).

Trailing 2SL
Trailing 2SL
  • www.mql5.com
Трал с двумя уровнями стопа. И с установкой ТП
File:
Limit.mq4  25 kb
 
Come scoprire l'id
 
Анна Калмыкова #:
Come si scopre l'id
L'id di cosa?
 
Come ritirare il denaro.
 
Togliere da dove?
 
Aiutami a scrivere un robot di trading EA. Il primo lotto compra 0,01 o meno. Se due punti sono presi, allora è chiuso e di nuovo comprare 0,01 due punti. In caso contrario, allora il lotto è sempre raddoppiato e va al contrario di vendere 0,02 per due o tre punti a seconda delle regole di trading per punto. Se non preso, comprare 0,04 e chiuso, se non preso 0,08 e così via fino a otto volte, cioè fino a 0,128 lotto. Cambiamo sempre la direzione. Se è stato preso, di nuovo 0,01. ***
 
Scrivi EAs a pagamento e senza discussione sul forum?
 
Lydvik-kaskad #:
Scrivi EAs a pagamento e senza discussione sul forum?

Servizio di scrittura pagato Freelance. Segui il link e leggi il materiale di riferimento.

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • 2021.10.02
  • www.mql5.com
Самый большой фриланс c разработчиками программ на MQL5
 

Salve, per favore aiutatemi.

Ho bisogno di un EA che cerchi e mostri situazioni sul grafico come negli screenshot.

I calcoli utilizzano una parabola SAR normale e un canale diregressione lineare normale.

L'indicatore mostra le situazioni ricercate nelle ultime 1000 barre.

Le onde discendenti della parabolica
L'indicatore calcola i parametri dopo il cambiamento della parabolica.
Per il calcolo, prendiamo le due onde della parabolica che si susseguono,
In questo caso, le onde discendenti (punti sopra il prezzo).
1) Ogni onda ha il punto più basso, l'onda 1 ha il punto A, l'onda 2 ha il punto B.
2) Il livello del punto B deve essere superiore a quello del punto A.
3) Questi punti sono collegati da un canale di regressione e il canale è diretto verso il basso - questo è il
la formazione desiderata.

Onde crescenti paraboliche
L'indicatore calcola i parametri dopo il cambiamento della parabolica.
Per il calcolo, si prendono due onde di una parabolica che si susseguono,
In questo caso, le onde crescenti (punti sotto il prezzo).
1) Si prende il punto più alto di ogni onda, l'onda 1 ha il punto A, l'onda 2 ha il punto B.
2) Il livello del punto B deve essere inferiore a quello del punto A.
3) Questi punti sono collegati da un canale di regressione e il canale deve essere diretto verso l'alto - questo è il

la formazione desiderata.


Sarebbe molto apprezzato. Posso condividere le voci.

File:
yxc3e4dpz2.png  64 kb
4cprtquce6.png  62 kb
 
var58 #:

Te ne sarei molto grato. Posso condividere gli input.

Perché prendere in giro ParabolicSAR - mostra perfettamente gli ingressi e le uscite così com'è.

Schermata 2021-10-05 114315