Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1110
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
A volte restituisce l'errore 4108 - biglietto sbagliato per OrderClose. È possibile che OrderTicket() non corrisponda al biglietto in OrderSelect? La variabile biglietto può essere uguale a zero.
Mi ci vuole molto tempo per riprodurre l'errore, è più facile chiedere.A volte restituisce l'errore 4108 - biglietto sbagliato per OrderClose. È possibile che OrderTicket() non corrisponda al biglietto in OrderSelect? La variabile biglietto può essere uguale a zero.
Mi ci vuole molto tempo per riprodurre l'errore, è più facile chiedere.Si seleziona un ordine per biglietto. Sei sicuro che l'ordine selezionato non sia già chiuso? Ma voi provate a chiuderlo di nuovo ... Controlla l'orario di chiusura dopo aver selezionato con successo il biglietto.
Stai selezionando l'ordine sul biglietto. E sei sicuro che l'ordine selezionato non sia già chiuso? Ma state cercando di chiuderla di nuovo. Controlla l'orario di chiusura dopo una selezione riuscita sul biglietto.
Controllerò quando riprodurrò l'errore. Ho tutti i biglietti memorizzati in variabili globali. Quando l'ordine viene chiuso, vengono cancellati. Prima di OrderSelect() il biglietto viene preso dalle variabili globali. Se il biglietto non è nelle variabili - questa variabile sarà 0, e quindi l'ordine non dovrebbe essere selezionato e OrderSelect() restituirà false. Ma in generale, sì, vale la pena controllare. Grazie.
Controllerò quando riprodurrò l'errore. Ho tutti i biglietti memorizzati in variabili globali. Quando l'ordine viene chiuso, vengono cancellati. Prima di OrderSelect() il biglietto viene preso dalle variabili globali. Se il biglietto non è nelle variabili - questa variabile sarà 0, e quindi l'ordine non dovrebbe essere selezionato e OrderSelect() restituirà false. Ma in generale, sì, vale la pena controllare. Grazie.
È standard controllare il prezzo di chiusura quando un ordine è selezionato dal ticket. Non sapresti in nessun altro modo se l'ordine è chiuso e selezionato dalla lista degli ordini chiusi, o se è ancora aperto e selezionato dalla lista degli ordini a mercato.
Il modo più miope è quello di memorizzare i biglietti in variabili globali. Dovrebbero essere presi dall'ambiente di trading - le informazioni attuali sono lì.
È standard controllare il prezzo di chiusura quando un ordine è selezionato dal ticket. Non saprai in nessun altro modo se l'ordine è chiuso e viene selezionato dalla lista degli ordini chiusi, o se è ancora aperto e viene selezionato dalla lista degli ordini a mercato.
È il più miope memorizzare i biglietti in variabili globali. Dovrebbero essere presi dall'ambiente di trading - le informazioni attuali sono lì.
Se seleziono così: OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES), dovrebbe risolvere parzialmente il problema? Memorizzo i biglietti in variabili globali per altri motivi, beh, l'ho usato anche in questo caso.
Se seleziono così: OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES), dovrebbe risolvere parzialmente il problema? Memorizzo i biglietti in variabili globali per altri motivi, e li ho usati anche in questo caso.
No, non lo farà - il pool (MODE_TRADES) è ignorato durante la selezione per biglietto.
A volte restituisce l'errore 4108 - biglietto sbagliato per OrderClose. È possibile che OrderTicket() non corrisponda al biglietto in OrderSelect? La variabile del biglietto potrebbe essere uguale a zero.
Mi ci vuole molto tempo per riprodurre l'errore, è molto più facile chiedere.Di solito è sufficiente controllare gli ordini di mercato:
OrderCloseTime() == 0 //l'ordine è aperto
OrderCloseTime() > 0 //l'ordine è chiuso
per gli ordini limite, si dovrebbe anche controllare il prezzo di chiusura; se è uguale a 0, l'ordine limite è stato cancellato
Ciao!
Condividete il codice usando il metodo PositionClosePartial, se potete.
Teoricamente capisco come funziona, ma mi piacerebbe vedere del codice funzionante.
O consigliarmi dove cercare.
Grazie in anticipo.
Ciao!
Condividete il codice usando il metodo PositionClosePartial, se potete.
Teoricamente capisco come funziona, ma mi piacerebbe vedere del codice funzionante.
O consigliarmi dove cercare.
Vi sono grato in anticipo.
In realtà è solo una linea di codice. Ma devi ottenere il biglietto di posizione per questo. Ecco l'Expert Advisor di OnInit che apre la posizione con 0,2 lotti e chiude metà della posizione in OnTick.
Oppure ecco il codice completo della classe CTrade