Problema dell'inserimento di ordini multipli per un conto live con un broker specifico - pagina 3
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
CiaoFinanceEngineer, forse sarebbe meglio iniziare a controllare il tuo codice originale il problema degli ordini multipli, dato che se lo facciamo probabilmente affronteremo altri punti critici qui e non perderemo il focus, cosa ne pensi?
Ciao figurelli
Questo è il mio nuovo codice. Ho cambiato da quando ho sollevato il problema degli ordini multipli su questo thread.
Finora questo codice funziona bene con diversi broker. Nessun problema di ordine multiplo trovato dopo il cambiamento. BlindMist può provare questo codice per vedere se può evitare il problema di ordine multiplo con quel broker.
Ciao figurelli
Questo è il mio nuovo codice. Ho cambiato da quando ho sollevato il problema degli ordini multipli su questo thread.
Finora questo codice funziona bene con diversi broker. BlindMist può provare questo codice per vedere se può evitare il problema dell'ordine multiplo con quel broker.
Si prega di utilizzare il pulsante SRC quando si pubblica il codice.
Il codice che hai postato non può evitare (tutti) i doppi ordini, e al contrario può provocare doppi ordini in alcuni casi.
Si prega di utilizzare il pulsante SRC quando si pubblica il codice.
Il codice che hai postato non può evitare (tutti) i doppi ordini, e al contrario può provocare doppi ordini in alcuni casi.
Ciao figurelli
Questo è il mio nuovo codice. Ho cambiato da quando ho sollevato il problema degli ordini multipli su questo thread.
Finora questo codice funziona bene con diversi broker. Nessun problema di ordine multiplo trovato dopo il cambiamento. BlindMist può provare questo codice per vedere se può evitare il problema di ordine multiplo con quel broker.
CiaoFinanceEngineer, nota che nel tuo codice originale hai Print("OrderSend Code: "...) in if { } e else { }.
Ma else { } ha una pausa, e il tuo codice di debug mostra retcode = 10008 (TRADE_RETCODE_PLACED) x 10.
Quindi, per deduzione, stavi stampando il debug della condizione if { } e la tua pausa non è mai stata usata.
Ora hai cambiato il tuo codice, e sembra più chiaro, ma nota che non testi più il valore di ritorno di OrderSend(), solo il result.retcode. Potresti correggere questo usando la variabile checkOrderSend (*** guarda qui), che ho chiesto prima:
Quindi, a mio parere, la prima cosa da fare è correggere questo test e controllare di nuovo utilizzando lo stesso broker problematico che hai segnalato. Se il problema non si ripete, congratulazioni, hai davvero risolto il bug, cioè, questo non indica che il tuo codice è a prova di futuro o il più sicuro, ma che abbiamo trovato il bug.
In realtà, puoi dimenticare o evitare di cambiare di nuovo il tuo codice, dato che il bug non si verifica più, tuttavia, in questo caso, devi fare attenzione che non stai più testando il valore di ritorno di OrderSend().
Spero che queste informazioni possano aiutarvi.
CiaoFinanceEngineer, nota che nel tuo codice originale hai Print("OrderSend Code: "...) in if { } e else { }.
Ma else { } ha una pausa, e il tuo codice di debug mostra retcode = 10008 (TRADE_RETCODE_PLACED) x 10.
Quindi, per deduzione, stavi stampando il debug della condizione if { } e la tua pausa non è mai stata usata.
Ora hai cambiato il tuo codice, e sembra più chiaro, ma nota che non testi più il valore di ritorno di OrderSend(), solo il result.retcode. Potresti correggere questo usando la variabile checkOrderSend (*** guarda qui), di cui ho chiesto prima:
Quindi, a mio parere, la prima cosa da fare è correggere questo test e controllare di nuovo utilizzando lo stesso broker problematico che hai segnalato. Se il problema non si ripete, congratulazioni, hai davvero risolto il bug, cioè, questo non indica che il tuo codice è a prova di futuro o il più sicuro, ma che abbiamo trovato il bug.
In realtà, puoi dimenticare o evitare di cambiare di nuovo il tuo codice, dato che il bug non si verifica più, tuttavia, in questo caso, devi fare attenzione che non stai più testando il valore di ritorno di OrderSend().
Spero che queste informazioni possano aiutarvi.
Che mi dici del codice restituito 10010?
L'ordine a doppia entrata può verificarsi su qualsiasi broker, la probabilità di ottenerlo con Alpari è semplicemente maggiore poiché si ricevono molti più tick.
E il codice restituito 10010?
L'ordine a doppia entrata può verificarsi su qualsiasi broker, la probabilità di ottenerlo con Alpari è semplicemente maggiore poiché si ricevono molti più tick.
CiaoFinanceEngineer, nota che nel tuo codice originale hai Print("OrderSend Code: "...) in if { } e else { }.
Ma else { } ha una pausa, e il tuo codice di debug mostra retcode = 10008 (TRADE_RETCODE_PLACED) x 10.
Quindi, per deduzione, stavi stampando il debug della condizione if { } e la tua pausa non è mai stata usata.
Ora hai cambiato il tuo codice, e sembra più chiaro, ma nota che non testi più il valore di ritorno di OrderSend(), solo il result.retcode. Potresti correggere questo usando la variabile checkOrderSend (*** guarda qui), che ho chiesto prima:
Quindi, a mio parere, la prima cosa da fare è correggere questo test e controllare di nuovo utilizzando lo stesso broker problematico che hai segnalato. Se il problema non si ripete, congratulazioni, hai davvero risolto il bug, cioè, questo non indica che il tuo codice è a prova di futuro o il più sicuro, ma che abbiamo trovato il bug.
In realtà, potete dimenticarvi o evitare di cambiare nuovamente il vostro codice, dato che il bug non si verifica, tuttavia, in questo caso, dovete fare attenzione che non state più testando il valore di ritorno di OrderSend().
Spero che queste informazioni ti possano aiutare.
Ciao
So che sembra strano. Quando ho controllato il valore restituito di OrderSend(request,result) nel codice precedente, ho avuto il problema dell'ordine multiplo. Ora nel mio nuovo codice, non controllo il valore restituito di OrderSend(request,result) ( ma ho ancora assegnato il valore restituito a qualche variabile per evitare l'errore sulla nuova build del terminale.
Con il nuovo codice, non ho problemi di ordini multipli. Ho usato l'Alpari UK che ha la reputazione di inviare un sacco di tick. Il mio codice potrebbe non essere perfetto, ma pensa in questo modo. Ci sono un certo numero di codici restituiti che devono essere controllati in Meta Trader 5.
Il primo è il valore restituito da OrderCheck, il secondo è il valore restituito da OrderSend e il terzo è il valore restituito assegnato a result.retcode. Penso che qualunque siano i primi due valori restituiti, quello che dovrebbe interessarci di più è l'ultimo più l'ammontare del volume effettivamente eseguito.
Quindi, sulla base di questo fatto, ho reso il mio codice più semplice andando direttamente a controllare result.retcode. Per favore correggetemi se mi sbaglio. Penso che l'esecuzione degli ordini in MT5 sia certamente molto più sofisticata di MT4 e molti di noi sono confusi.
Se non possiamo costruire un caso chiaro usando solo la logica, allora possiamo costruire un caso chiaro usando gli esperimenti. Quindi consiglio a BlindMist o a qualsiasi altra persona di provare questo codice con il proprio broker per vedere se saltare il controllo della funzione OrderSend potrebbe essere effettivamente utile.
Cordiali saluti.
Se lo stai chiedendo a me, come ho detto prima, non considero questo codice a prova di futuro e abbastanza sicuro e questo è solo un esempio della mancanza di codice di ritorno, quindi per favore leggi di nuovo.
Ho chiesto a tutti coloro che partecipano a questo argomento. Ho perso il tuo messaggio sul codice 10010, dov'è?
Ho chiesto a tutti coloro che partecipano a questo argomento. Ho perso il tuo messaggio sul codice 10010, dove si trova?
Ciao Alain,
Non mi è chiaro cosa hai bisogno di sapere, dato che stiamo parlando solo del nuovo codice di FinanceEngineer, e di un consiglio sul test del codice di ritorno di OrderSend() che è stato cambiato dal codice originale.
Nota che sia il suo codice originale che quello nuovo non hanno il test del codice 10010, quindi se è rilevante per te perché non l'hai chiesto dal primo post di lui?
Comunque, puoi spiegare perché avresti bisogno del test del codice 10010 per una polizza di riempimento FOK?
Visto che non è la prima volta che vedo te e altri moderatori parlare, conosci qualche caso in cui è davvero necessario questo test del codice per gli ordini FOK (Fill Or Kill), che potresti condividere con noi?
Grazie in anticipo.
Ciao
So che sembra strano. Quando ho controllato il valore restituito di OrderSend(request,result) nel codice precedente, ho avuto il problema degli ordini multipli. Ora nel mio nuovo codice, non controllo il valore restituito di OrderSend(request,result) ( ma ho ancora assegnato il valore restituito a qualche variabile per evitare l'errore sulla nuova build del terminale.
Con il nuovo codice, non ho problemi di ordini multipli. Ho usato l'Alpari UK che ha la reputazione di inviare un sacco di tick. Il mio codice potrebbe non essere perfetto, ma pensa in questo modo. Ci sono un certo numero di codici restituiti che devono essere controllati in Meta Trader 5.
Il primo è il valore restituito da OrderCheck, il secondo è il valore restituito da OrderSend e il terzo è il valore restituito assegnato a result.retcode. Penso che qualunque siano i primi due valori restituiti, quello che dovrebbe interessarci di più è l'ultimo più l'ammontare del volume effettivamente eseguito.
Quindi, sulla base di questo fatto, ho reso il mio codice più semplice andando direttamente a controllare result.retcode. Per favore correggetemi se mi sbaglio. Penso che l'esecuzione degli ordini in MT5 sia certamente molto più sofisticata di MT4 e molti di noi sono confusi.
Se non possiamo costruire un caso chiaro usando solo la logica, allora possiamo costruire un caso chiaro usando gli esperimenti. Quindi consiglio a BlindMist o a qualsiasi altra persona di provare questo codice con il proprio broker per vedere se saltare il controllo della funzione OrderSend potrebbe essere effettivamente utile.
Cordiali saluti.