bisogno di consigli da un professionista della pesca a strascico che controlla due posizioni indipendentemente l'una dall'altra, come può essere implementato? - pagina 6

 
charony:

Funziona più o meno così.


solo che non sono interessato ai criteri di attivazione della rete a strascico

Ho bisogno del trawl per gestire ogni posizione aperta separatamente dalle altre

Questa traccia inizia a tracciare solo le posizioni che sono in positivo, non sposta gli stop sulle posizioni negative.

"È possibile impostare un trawl di 50 pips per entrambe le posizioni,

ma non si chiudono allo stesso tempo.

Entrambe le posizioni hanno uno strascico di 50 pips".

Entrambi chiuderanno solo se sono in più, se uno è in più e l'altro in meno allora lo stop si muoverà solo al più.

 
PozitiF:

Non ho letto tutte le pagine, ma credo di aver capito il succo del discorso.

https://www.mql5.com/ru/articles/1390 qui, crea un array con gli ordini, quando crei un ordine prendi una magia da qualche parte, puoi scrivere Magic = 1 nei parametri di input dell'EA, per esempio, e aumentare il valore di 1 con il prossimo ordine aperto,

Se il terminale si blocca, sarete in grado di ripristinare l'array.

Il trull che Magic prende come parametro nella pagina precedente che ho scritto.



Non è l'array giusto, non puoi mettere int e double insieme nello stesso array.
 
charony:

L'array è sbagliato, non puoi mettere int e double insieme nello stesso array.
Si può, basta mettere un intero prima del punto.
 
PozitiF:
Si può, basta mettere un intero prima del punto.


doppio prezzo EUR/USD 1.3915 in int 1

int sell = 1, in double sell = 1.0

poi cercare il motivo per cui il programma non funziona????????

o peggio, arriva lo zio "Kolya Margin".

 

E perché mettere il prezzo in int, non ho scritto niente di tutto ciò.

Ho scritto che si può mettere il numero int in una variabile di tipo double.

da double poi di nuovo a int e tutto funziona di nuovo per voi) https://www.mql5.com/ru/forum/136406

 

Ho messo int MN= TimeCurrent(); e questo OrderSend(Symbol(),OP_BUY,Lots_New,Ask,2,0,0,NULL,MN,0,Green);

cioè un magik è assegnato ad ogni ordine

nella rete a strascico dopo la selezione

int Tip=OrderType();

se(OrderSymbol()!=Symbol()||Tip>1)continua;

se(OrderMagicNumber()==MN)

Ora ci proverò.

 

No, deve esserci qualcos'altro che non va, ora sto parlando della rete a strascico.

Lo cercheremo.

 
PozitiF:

E perché mettere il prezzo in int, non ho scritto nulla a questo proposito né l'ho suggerito affatto.

Ho scritto che si può mettere il numero int in una variabile di tipo double.

da double poi di nuovo a int e tutto funziona di nuovo) https://www.mql5.com/ru/forum/136406

doppio prezzo EUR/USD 1,3915 in int 1 e poi di nuovo in doppio e si ottiene 1,0.

doppio prezzo EUR/USD 1,3915 =========> doppio 1,0

dove ridere??????????????????



int 1------> double 1.0 ------> int 1 probabilmente funzionerà qui, ma non è bello

 
charony:

No, deve esserci qualcos'altro che non va, ora sto parlando della rete a strascico.

Lo cercherò.

Trall funziona al 100%, funziona in quasi tutti i miei EA.

int Trall = 50;

int MN= TimeCurrent();

OrderSend(Symbol(),OP_BUY,Lots_New,Ask,2,0,0,NULL,MN,0,Green);

int Tip=OrderType();

if(OrderSymbol()!=Symbol()||Tip>1)continue;
for(int i = 0; i<OrderTotals(); i++){
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true){
      if(OrderMagicNumber()==MN) TrailingStop(Trall, 5, MN);
   }
}

Dovrebbe pescare a strascico.

 
//+-----------------------------trailingstop----------------------------------------------+
 total=OrdersTotal();
    for(int n=0;n<total;n++)
     {
      if(OrderSelect(n, SELECT_BY_POS, MODE_TRADES) == true)
         { 
         int Tip=OrderType();                  
         if(OrderSymbol()==Symbol()&&OrderType()==Tip)
            {
                MN = OrderMagicNumber();
                TrailingStop(level_ts, level_step , MN);
            } 
         }    
      }
 
  

   
   return;                             // exit start()
  }
//+-----------------------------start end----------------------------------------------+

void TrailingStop(int level_ts,int level_step , int MN) 
{
   int ot, err, quantity_orders, cx;
   bool fm;
   double op, as, bd, pt, sl, tp, ut;
//----
   quantity_orders = OrdersTotal();
   if(quantity_orders >= 0) {
      for(cx = 0; cx < quantity_orders; cx++) {
         if(!OrderSelect(cx, SELECT_BY_POS, MODE_TRADES)) {
            Print("Error: SimpleTrailing(), OrderSelect: " + cx + ". Îøèáêà: " + GetLastError());
         }
         if (OrderMagicNumber()==MN ) 
         {   
            pt = MarketInfo(OrderSymbol(), MODE_POINT);
            bd = MarketInfo(OrderSymbol(), MODE_BID);
            as = MarketInfo(OrderSymbol(), MODE_ASK);
            op = OrderOpenPrice();
            ot = OrderType();
            sl = OrderStopLoss();
            tp = OrderTakeProfit();
            ut = level_ts + level_step;
         
            if(ot == OP_BUY) {
               if(sl == 0 || sl < op) {                              
                  if(op <  (bd - ut * pt)) {                         
                     sl = bd - level_ts * pt;
                  }
               }
               else {
                  if(sl < (bd - ut * pt) && bd > (op + ut * pt)) {
                     sl = bd - level_ts * pt;
                  }
               }
            }
            if(ot == OP_SELL) {
               if(sl == 0 || sl > op) {
                  if(op > (as + ut * pt)) {
                     sl = as + level_ts * pt;
                  }
               }
               else {
                  if(sl > (as + ut * pt) && as < (op - ut * pt)) {
                     sl = as + level_ts * pt;
                  }
               }
            }
            if (sl != OrderStopLoss()) {
               op = NormalizeDouble(op, Digits);
               tp = NormalizeDouble(tp, Digits);
               sl = NormalizeDouble(sl, Digits);
               fm = OrderModify(OrderTicket(), op, sl, tp, 0, CLR_NONE);
               
            }
         }
      }
   }
}

//+-----------------------------trailingstop end----------------------------------------------+

Ho inserito il codice, la rete a strascico funziona.

ma il problema persiste.

Motivazione: