Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 712

 
artmedia70:
La risposta dovrebbe essere data da sola. Ordina le posizioni aperte in base al tempo della loro apertura. E poi chiuderli con la lista dall'array ordinato.

Complicato per me, penserà) c'è un codiceper chiudere gli ordini nell'ordine in cui sono stati aperti.

//+------------------------------------------------------------------+
//|                 Закрыть все ордера                               |
//+------------------------------------------------------------------+


double ClossAllOrders ()

{
  for(int i=0; i<OrdersTotal(); )
  {
    if ( !OrderSelect(i, SELECT_BY_POS) )
      break;
    
    int type   = OrderType();

    bool result = false;
    
    switch(type)
    {
      //Close opened long positions
      case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3, Lime );
                          break;
      
      //Close opened short positions
      case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3, Lime );
                          break;

      //Close pending orders
      case OP_BUYLIMIT  :
      case OP_BUYSTOP   :
      case OP_SELLLIMIT :
      case OP_SELLSTOP  : result = OrderDelete( OrderTicket() );
    }
    
    if(result == false)
    {
      Print("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
      i++;
      Sleep(500);
    }  
  }
}

// End

Qui, come ho capito, l'ordinamento va a scapitodi OrderTicket

come metterlo nel codice)

 
_new-rena:

138 - "Il prezzo richiesto non è aggiornato, o l'offerta e la domanda sono confuse.

Il prezzo di apertura/chiusura non può essere ricalcolato, perché è lì, ma c'è un problema qui(è necessario interrogare il prezzo e dargli un valore usando MarketInfo, e riassegnare questo a un'altra variabile):

Grazie per il suggerimento) Ma si è scoperto che il mio problema è nell'EA stesso e non in questa funzione.
 
Come ricordare un certo livello. Diciamo che era il Massimo di una candela. Ma l'assegnazione di questo valore a una variabile era attraverso if. e in un'altra situazione, questa variabile è zero. cioè ho bisogno di ricordare un certo prezzo in qualche modo.
 
305:
Come memorizzare un certo livello. Supponiamo che sia il Massimo di una candela. Ma l'assegnazione di questo valore a una variabile era attraverso if. e in un'altra situazione, questa variabile è zero. cioè ho bisogno di ricordare un certo prezzo in qualche modo.
Forsehttps://book.mql4.com/ru/variables/arrays potrebbe aiutarti. Penso che ci sia qualcosa di cui hai bisogno qui sotto.

Array di serie temporali

 
Non funziona. Proverò una linea orizzontale
 
305:
Non funziona, proverò con la linea orizzontale.

kim ha molte funzioni diverse per memorizzare qualsiasi cosa, ci vogliono circa 3 minuti per scorrere i nomi, forse si può trovarehttps://www.mql5.com/ru/forum/131859

 
7Konstantin7:

Complicato per me, penserà) c'è un codiceper chiudere gli ordini nell'ordine in cui sono stati aperti.

Qui, come ho capito, l'ordinamento va a scapitodi OrderTicket

Vorrei metterlo nel codice)

Per favore, ditemi qual è il segreto per chiudere gli ordini in un certo ordine e non in fila? In che modo un paio di secondi cambierebbero la vita dell'account?

Grazie.

 
Roger:

Dimmi, qual è il segreto per chiudere gli ordini in un certo ordine e non in fila? Come potrebbero un paio di secondi fare la differenza nella vita di un conto?

Grazie.

Prendiamo quel trawl che non sono mai riuscito a riscrivere la funzione(, che chiude gli ordini nell'ordine in cui sono stati aperti: shuffle

Questa funzione chiude prima tutti gli ordini redditizi, poi tutti quelli perdenti, il che si traduce in un brutto grafico di equilibrio nello stack più dati errati: massimo drawdown, massima serie di ordini perdenti, massimo profitto e massima serie di ordini redditizi.

Se chiudessi gli ordini in modo misto , allora non ci sarebbero valori così grandi.

Se usate gli ordini di chiusura nell'ordine in cui sono stati aperti, il grafico del bilancio diventerà più uniforme, i dati informativi nell'estratto conto saranno più adeguati.

Supponiamo di scambiare molte coppie, se le copriamo tutte una per una, il prezzo potrebbe andare via per qualche coppia prima che la raggiungiamo,

Se copriamo nell'ordine di apertura chiuderemo su una coppia, poi su un'altra e così via, quindi è più diversificato.

Penso che MT4 possa inviare fino a 8 ordini simultaneamente, ma non sono sicuro, in questo caso possiamo chiudere ancora più velocemente.

 
7Konstantin7:

Prendiamo quel trawl dove non ho potuto cambiare la funzione( in modo che chiuda gli ordini nell'ordine in cui sono stati aperti: Shuffle

in questa funzione tutti gli ordini redditizi e poi tutti gli ordini perdenti vengono chiusi per primi, il che si traduce in un brutto grafico di equilibrio nello stack più dati errati: drawdown massimo, serie massima di ordini perdenti, profitto massimo e serie massima di ordini redditizi.

Poi si scopre che è una stupida montagna russa decente, per esempio, è salito di 500 $ poi è sceso di 400 $. Se dovessimo chiudere gli ordini in modo misto , allora valori così grandi non esisterebbero.

Se usiamo gli ordini di chiusura nell'ordine in cui sono stati aperti, il grafico del bilancio diventerà più fluido e l'informazione dei dati nell'estratto conto sarà più adeguata.

Supponiamo di scambiare molte coppie e se le chiudiamo tutte una per una, il prezzo potrebbe andare via per qualche coppia prima di arrivarci,

Se copriamo nell'ordine di apertura chiuderemo su una coppia, poi su un'altra e così via, quindi è più diversificato.

Penso che MT4 possa inviare fino a 8 ordini simultaneamente, ma non sono sicuro, in questo caso possiamo chiudere ancora più velocemente.

Ciclo inverso. Cercare la prima posizione aperta, chiuderla, andare all'inizio del ciclo. Continuate fino ad esaurire le posizioni da chiudere.
 
artmedia70:
Ciclo inverso. Cerca la prima posizione aperta, chiudila, vai all'inizio del ciclo. Continuate in questo modo fino ad esaurire tutte le posizioni da chiudere.

Grazie, non posso farlo, ho solo pensato che forse qualcuno potrebbe scarabocchiare qualche riga in quella funzione o potrebbe far cadere un gufo, la versione finale. Non credo che sia difficile, ma è improbabile che qualcuno ci aiuti.

Ci sono 4 crediti su mql5 potrebbe dare) se è possibile trasferire tra i membri.