Allarme: Terminale MT4 che duplica gli ordini inviati dagli esperti

 

Qualcosa di strano sta accadendo con i conti di trading MT4 ovunque (può accadere con qualsiasi broker, per quanto posso dire). La piattaforma a volte, anche se raramente, duplica gli ordini inviati dagli esperti.

Ho visto questo accadere almeno 3 volte con la build 500 di MT4. Le prime due erano su conti demo, e l'ultima, ieri, era su un conto reale. Il problema si è verificato:

1)Su diverse installazioni MT4.

2)Su diversi computer.

3)Con diversi broker.

4)Usando diversi expert advisor.

Oltre a tutto ciò, il fatto che mi dice che si tratta di un problema con il terminale è molto facile da verificare. Quando accade l'ordine duplicato:

1)Succede immediatamente dopo l'ordine legittimo, con esattamente la stessa dimensione di lotto, simbolo e commento.

2) Laprima operazione, come al solito, viene mostrata nella scheda degli esperti, così come nella scheda del giornale. Tuttavia, il duplicato è mostrato nel diario, ma NON è mostrato nella scheda degli esperti. Questa è una prova affidabile che il duplicato NON è stato inviato dall'esperto.

Esorto Metaquotes a risolvere questo problema il più presto possibile. Ieri ho dovuto chiudere manualmente l'operazione di duplicazione e ho perso denaro, anche se non troppo. Ma questo problema può davvero creare scompiglio in un conto automatizzato.

Per favore, se qualcuno di voi ha visto questo problema, segnalatelo in modo che abbiamo ulteriori prove e che il bug corrispondente venga risolto rapidamente.

 
Ricardo1:

Penso che la questione qui sia che i tuoi EA sono progettati per lavorare su una base di tick per tick, quindi per esempio se l'EA sta attraversando in media su M5, durante quei 5 minuti il prezzo scorre e potrebbe far sì che le tue condizioni per inviare ordini si verifichino più di una volta.


La soluzione sarebbe impostare un filtro sull'invio degli ordini per controllare se sei aperto o hai ordini sul mercato o no. Oppure lavorare su base Bar. Mi dispiace ma sono un novellino e posso pensare a quale sia il problema ma non posso inviarvi alcun codice :).

Spero che questo aiuti.

 
Ricardo1: Esorto Metaquotes a risolvere questo problema il prima possibile.
Perché pensi che il problema sia con MT4 e non con il tuo EA? Pubblica il tuo codice.
 
Ricardo1:

Qualcosa di strano sta accadendo con i conti di trading MT4 ovunque (può accadere con qualsiasi broker, per quanto posso dire). La piattaforma a volte, anche se raramente, duplica gli ordini inviati dagli esperti.

Ho visto questo accadere almeno 3 volte con la build 500 di MT4. Le prime due erano su conti demo, e l'ultima, ieri, era su un conto reale. Il problema si è verificato:

1)Su diverse installazioni MT4.

2)Su diversi computer.

3)Con diversi broker.

4)Usando diversi expert advisor.

Devi chiudere l'altra copia del tuo EA che sta girando sull'altro grafico... se questo non è il caso, per favore dimostralo postando il file di log degli esperti che mostra l'esperto che parte e gli ordini duplicati. Questo errore è stato fatto prima...

 

Voi mi stupite un po'. Partite dal presupposto che devo fare qualcosa di sbagliato, che MT4 non può avere bug. Qui affronterò le vostre risposte.


xavilin:


Questo non è un problema dell'EA. L'EA che sto usando ha più di un anno di lavoro su diverse piattaforme. Inoltre, questo problema è successo con 3 diversi EA, due miei e uno commerciale.


WHRoeder:

Non posso postare il mio codice, ma come ho detto, il problema si è verificato su 3 diversi EA. Non succede mai in backtesting, ovviamente. Come ti ho detto, *questo succede molto raramente*. Infatti, se sommate il tempo che il mio EA (quello che stavo usando ieri) è stato in esecuzione, sommando tutti gli account sarebbe stato in esecuzione per alcuni anni. E ieri è successo per la *prima* volta. Pensi che possa essere un bug nel mio codice?


RaptorUK:

Pensi davvero che io sia così ingenuo da avere più di un EA nell'account e poi segnalare questo come un problema?


Come ho detto prima, la prova principale è che la scheda giornale ha l'ordine, ma la scheda esperti *non*. È letteralmente impossibile che un EA stia inviando l'ordine e che la scheda degli esperti non lo riporti!

Potrei postare qui sia il log degli esperti che il log del diario, ma per motivi di privacy non mi è possibile. Ma non credo che sia necessario. Se credete che io possa leggere entrambi i file e dirvi cosa dicono, allora credete che l'ordine fasullo è contenuto nel journal log e non è contenuto nel log degli esperti, quindi non è stato avviato da nessun esperto. E naturalmente non è stato avviato da me.

È vero che vorrei il tuo supporto, ma è a beneficio di tutti noi utenti. Se pensate che non ci sia alcun errore, Metaquotes impiegherà più tempo a riconoscere il bug.

Mi sono sentito in dovere di condividere questo con voi, e spero che Metaquotes faccia almeno qualche controllo.

 
Ricardo1: Voi ragazzi mi stupite in qualche modo. Partite dal presupposto che devo fare qualcosa di sbagliato, che MT4 non può avere bug. Qui affronterò le vostre risposte.

Non so come dirlo gentilmente senza far arrabbiare una persona come te. Ma devi cambiare il tuo atteggiamento. Quando qualcuno afferma che qualcosa è un bug, significa che è riproducibile. Voi non avete alcun modo di riprodurre il bug, sostenete che accade "*la prima* volta", qualunque cosa significhi, e non fornite alcun codice per escludere che il codice non sia il problema. Come si suppone che qualcuno possa rintracciarlo?

Per non parlare dei milioni di persone che usano questo software per piazzare Dio solo sa quanti milioni di scambi al giorno; tu sei l'unica persona a cui questo sta succedendo. Credimi, quando si tratta di soldi, se questo stesse accadendo a tutti (raramente) noi tutti su questo forum ne staremmo ancora sentendo parlare spesso. Molta gente viene qui a piangere bug e il 99% delle volte il problema sta nei loro codici. Una volta che ho smesso di dare la colpa, sono riuscito a risolvere molti dei miei problemi di codifica più velocemente.

Ps: RaptorUK non rappresenta MetaQuotes, è un moderatore sociale e i suoi commenti hanno lo stesso peso dei tuoi/miei. Perché non potrebbe essere un problema del Broker? Finché altri non iniziano a segnalare questo bug, IMO l'onere della prova è su di voi.

 
Ricardo1:


RaptorUK:

Pensi davvero che io sia così ingenuo da avere più di un EA nel conto e poi segnalare questo come un problema?


Come ho detto prima, la prova principale è che la scheda giornale ha l'ordine, ma la scheda esperti *non*. È letteralmente impossibile che un EA stia inviando l'ordine e che la scheda degli esperti non lo riporti!

Potrei postare qui sia il log degli esperti che il log del diario, ma per motivi di privacy non è possibile per me. Ma non credo che sia necessario. Se credete che io possa leggere entrambi i file e dirvi cosa dicono, allora credete che l'ordine fasullo è contenuto nel diario e non è contenuto nel registro degli esperti, quindi non è stato avviato da nessun esperto. E naturalmente non è stato avviato da me.

È vero che vorrei il tuo supporto, ma è a beneficio di tutti noi utenti. Se pensate che non ci sia alcun errore, Metaquotes impiegherà più tempo a riconoscere il bug.

Mi sono sentito in dovere di condividere questo con voi, e spero che Metaquotes faccia almeno qualche controllo.


Come ho detto . . . è stato fatto prima (ho cercato il post e le mie risposte ma non le ho trovate) e l'OP ha anche ipotizzato un problema di MT4 . . .

Se non pubblichi alcuna prova per indagare e non pubblichi alcun metodo per riprodurre il problema, come ti aspetti che qualcuno indaghi e ti aiuti? In ogni caso, sollevi un problema di Service Desk, ma non sembra che tu voglia offrire alcuna informazione utile per aiutare a identificare/diagnosticare il problema. Di quali problemi di privacy ti preoccupi? Puoi modificare/rimuovere (cercare e sostituire) i tuoi numeri di conto... non hai bisogno di postare l'intero registro, solo abbastanza da quando l'EA inizia fino a quando l'ordine duplicato appare...

Guarda nella tua cronologia degli ordini, l'ordine è lì? scrivi un piccolo script per interrogare l'ordine nella cronologia per vedere se ha un numero magico, il tuo EA usa un numero magico? ci sono cose che puoi fare per indagare. . vorrai sapere se questo problema è causato da te o dagli EA che hai eseguito, tu e tutti gli altri vorrebbero sapere se è causato da MT4. è nelle tue mani, tu hai le informazioni, noi no . . .

 

ubzen e RaptorUK: Grazie mille per le vostre risposte.

ubzen, hai ragione quando dici "Per non parlare dei milioni di persone che usano questo software per piazzare Dio solo sa quanti milioni di scambi al giorno; tu sei l'unica persona a cui questo sta succedendo". Non posso rispondere a questa obiezione. Io gestisco un bel po' di EA su diversi conti e ho visto questo accadere 3 volte con la build 500, su 2 diverse piattaforme di broker. Tuttavia, avendo visto la prova stessa, non ne dubito, anche se centinaia o migliaia di altri non hanno ancora parlato.

Tuttavia, quando dici "Quando qualcuno afferma che qualcosa è un bug, significa che è riproducibile", devo dire che ti sbagli. I bug più difficili sono proprio quelli che non sono riproducibili dall'utente. Accadono raramente, e come i giganti del software sanno, possono richiedere molto tempo e fatica per essere rintracciati. Accadono raramente perché richiedono un insieme definito di condizioni che non sono sempre sotto il controllo dell'utente. Chiunque usi ampiamente qualcosa come Microsoft Office può confermarlo.

RaptorUK, grazie per l'offerta di postare i file omettendo i dati personali. Li posterò proprio in questa finestra, omettendo i miei dati personali. (ubzen: Non credo che l'onere della prova sia su di me, in quanto non ho bisogno di dimostrare nulla, ma voglio mostrarvelo, nel caso in cui interessi a qualcuno).


Log degli esperti per il 2013.06.11:

22:32:05 Expert Advisor 1 EURCHF,M15: Prezzo aperto richiesto per ordine BUY: 1.2307

22:32:07 Expert Advisor 1 EURCHF,M15: aperto #20212520 compra 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320 ok

Diario del 2013.06.11:

05:14:12 '000000': login

05:14:30 '000000': accesso

05:14:31 '000000': precedente autorizzazione riuscita eseguita da 201.141.75.152

08:10:12 '000000': accesso

08:10:17 '000000': accesso

08:10:19 '000000': precedente autorizzazione eseguita con successo da 201.141.75.152

20:33:35 '000000': accesso

20:33:43 '000000': connessione DataCenter fallita [2]

20:33:44 '000000': precedente autorizzazione eseguita con successo da 201.141.75.152

22:32:06 '000000': ordine istantaneo compra 0,01 EURCHF a 1,2307 sl: 1,2232 tp: 1,2320

22:32:07 '000000': richiesta accettata dal server

22:32:07 '000000': richiesta in corso

22:32:07 '000000': ordine aperto: #20212520 comprare 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320

22:32:08 '000000': ordine istantaneo compra 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320

22:32:08 '000000': richiesta accettata dal server

22:32:08 '000000': richiesta in corso

22:32:10 '000000': ordine aperto: #20212521 compra 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320

23:07:26 '000000': il trading con un click è stato abilitato

23:07:31 '000000': chiuso ordine #20212521 compra 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320 al prezzo 1.2291

23:07:32 '000000': richiesta accettata dal server

23:07:32 '000000': richiesta in corso

23:07:32 '000000': ordine #20212521 compra 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320 chiuso al prezzo 1.2291


Come puoi vedere, l'ordine 20212520 è stato avviato dall'esperto. Tuttavia, l'ordine 20212521 NON lo è stato. Questo ordine fasullo è stato chiuso manualmente (le ultime 5 righe del file journal corrispondono a operazioni manuali).

Sono ridondante qui, ma lo ripeto: Poiché l'ordine fasullo 20212521 non è riportato nel registro degli esperti, non è stato avviato da nessun esperto, quindi il codice dell'esperto è irrilevante a questo scopo.

 

Ricardo1:

...

Come potete vedere, l'ordine 20212520 è stato avviato dall'esperto. Tuttavia, l'ordine 20212521 NON lo è stato. Questo ordine fasullo è stato chiuso manualmente (le ultime 5 righe del file giornale corrispondono a operazioni manuali).

Sono ridondante qui, ma lo ripeto: Poiché l'ordine fasullo 20212521 non è riportato nel log degli esperti, non è stato avviato da nessun esperto, quindi il codice dell'esperto è irrilevante a questo scopo.

Il tuo EA usa un numero magico?

Se sì, allora puoi controllare se il tuo ordine "fasullo" ha un numero magico. Puoi vederlo nella scheda della storia: scorri le finestre per vedere l'ordine, poi posiziona il tuo mouse su questo ordine (senza cliccare), un tooltip deve essere visualizzato con qualcosa come :

#20212521, id 12345

Se non c'è un numero magico, allora il campo id manca.

 
Ricardo1:


22:32:06 '000000': ordine istantaneo compra 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320

22:32:07 '000000': richiesta accettata dal server
22:32:07 '000000': richiesta in corso
22:32:07 '000000': l'ordine è stato aperto: #20212520 comprare 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320

22:32:08 '000000': ordine istantaneo compra 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320
22:32:08 '000000': richiesta accettata dal server
22:32:08 '000000': richiesta in corso
22:32:10 '000000': ordine aperto: #20212521 compra 0.01 EURCHF a 1.2307 sl: 1.2232 tp: 1.2320


Come puoi vedere, l'ordine 20212520 è stato avviato dall'esperto. Tuttavia, l'ordine 20212521 NON lo è stato.

Quello che vedo è che l'EA ha aperto un ordine e un secondo dopo ne ha aperto un altro. Non che due pacchetti siano usciti insieme.

Metti una dichiarazione di stampa prima e dopo l'OrderSend e dimostra che lo stai chiamando due volte.

 
angevoyageur:

Il tuo EA usa un numero magico?

Se sì, allora puoi controllare se il tuo ordine "fasullo" ha un numero magico. Puoi vederlo nella scheda della storia: scorri le finestre per vedere l'ordine, poi posiziona il tuo mouse su questo ordine (senza cliccare), un tooltip deve essere visualizzato con qualcosa come :

#20212521, id 12345

Se non c'è un numero magico, allora il campo id manca.



Tutto nell'ordine fasullo è lo stesso dell'ordine originale, compreso il commento e il numero magico. Tuttavia, l'EA non l'ha inviato; come ho detto, il log degli esperti lo dimostra.