Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 708

 
Rustam Bikbulatov:
Ciao ragazzi. Potete dirmi perché ho un paio di dozzine di ordini che sono chiusi in ordine sfalsato o in ordine diverso? Come devo risolvere il problema? C'è un metodo per chiudere subito?

alla chiusura - cambiare l'ordine degli ordini

cioè il ciclo dovrebbe essere

for(int i=OrdersTotal()-1;i>=0;i--){...}

almeno :-)

PS. a patto che uno ci abbia messo il piede sopra - chiudere gli ordini in un ordine "scaglionato" a volte può essere utile.
 
Maxim Kuznetsov:

alla chiusura - cambiare l'ordine degli ordini

cioè ci deve essere un ciclo

almeno :-)

PS. visto che ci hai comunque messo il piede sopra - chiudere gli ordini in un ordine "scaglionato" a volte può essere utile.

Se è una chiusura controllata ;)

In generale (anche se il tuo commento è corretto) la domanda riguardava il "metodo di chiusura in una volta sola", che non può essere fatto in un ciclo.

Qui è necessario aprire la posizione opposta con un lotto uguale alla somma dei lotti di tutte le posizioni aperte per la chiusura, e poi chiudere tranquillamente quella opposta.

 
Artyom Trishkin:

Se è una chiusura controllata ;)

E in generale (anche se il tuo commento è corretto) la domanda riguardava il "metodo di chiusura in una volta sola", che non può essere fatto in un ciclo.

Devi aprire una posizione opposta con un lotto uguale alla somma dei lotti di tutte le posizioni aperte per il blocco, e poi chiudere tranquillamente quella opposta.

E cosa vi impedisce di chiudere gli ordini uno per uno?

 
Rustam Bikbulatov:

e cosa impedisce la chiusura degli ordini in ordine?

Offset degli indici degli ordini nella lista del mercato quando vengono cancellati in un ciclo diretto da zero a OrdersTotal()-1.

 
Rustam Bikbulatov:

cosa impedisce di chiudere gli ordini in ordine?

O si chiudono tutte le posizioni aperte nel ciclo inverso da OrdersTotal()-1 a >=0 nell'ordine del loro ordine nella lista, o si apre una posizione opposta per il blocco, e poi si chiudono tranquillamente le posizioni richieste con una opposta.

 
Grazie Artem!
 
Artyom Trishkin:

Se è una chiusura controllata ;)

In generale (anche se il tuo punto è corretto) la domanda riguardava il "metodo di chiusura in una volta sola", che non può essere fatto in un ciclo.

Qui è necessario aprire la posizione opposta con un lotto uguale alla somma dei lotti di tutte le posizioni aperte per la chiusura, e poi già tranquillamente chiudere con il contatore

Il metodo di chiusura più appropriato è quello di chiamare il vostro agente: "John, chiudi la posizione su General Electric, siamo d'accordo su tutto".

:-)

Non è sempre possibile coprire con il volume opposto. E scivola di più - il volume è grande.

 
Artyom Trishkin:

Offset degli indici degli ordini nella lista del mercato quando li si cancella in sequenza diretta da zero a OrdersTotal()-1.

Ho visto il codice per chiudere gli ordini in una sequenza diretta e ha funzionato senza problemi.

Lì stava solo aumentando il contatore del ciclo di uno quando un ordine veniva chiuso con successo. )))) O era diminuito? Non ricordo esattamente e non posso sforzare il cervello.

 
Maxim Kuznetsov:

Il metodo di chiusura più corretto è chiamare il vostro agente: "John, chiudi la posizione su General Electric, siamo d'accordo su tutto".

:-)

Non è sempre possibile coprire con il contro volume. E scivola di più - il volume è alto.

Ma tutti insieme :) E in un ciclo, uno alla volta.

 
Alexey Viktorov:

Ho visto il codice per chiudere gli ordini in una sequenza diretta e ha funzionato senza problemi.

Ha semplicemente aumentato il contatore del ciclo di uno quando l'ordine è stato chiuso con successo. )))) Non ricordo esattamente e non posso sforzare il cervello.

Per evitare di sforzare il cervello, puoi raccogliere tutte le posizioni che hai preparato per la cancellazione in una lista nell'ordine che vuoi (qualunque ordine tu voglia), e poi cancellarle "per nome" guardando la lista. In questo modo, l'ordine di cancellazione corretto sarà mantenuto.