Problema con MT4 che apre una transazione e poi la richiude subito dopo - pagina 4

 

È un problema difficile a causa della difficoltà di trovare un modello coerente.

Questo problema si verifica solo a volte e non può essere replicato in modo coerente.

Ho considerato il suggerimento di Magic Numbers, e mentre inizialmente era una possibilità, ulteriori osservazioni suggeriscono che non è probabile.

Mi sto strappando i capelli qui, e spero che qualcun altro abbia già visto questo problema.

 
peterc005:

Ho considerato il suggerimento di Magic Numbers, e mentre inizialmente era una possibilità, ulteriori osservazioni suggeriscono che non è probabile.

Quali sono le osservazioni in dettaglio che escludono definitivamente che un diverso EA chiuda operazioni che non gli appartengono? Ci sono molti EA là fuori che permettono l'inserimento di un numero magico ma internamente non lo usano o peggio ancora lo usano a volte ma non sempre, solo per certe condizioni di uscita, solo in alcuni rami delle loro decine di if annidati e loop iterativi di ordini duplicati.

Questa ricerca su Google

"OrderSymbol() == Symbol()" -OrderMagicNumber

ne troverà un sacco, inizia già con il terzo della lista (earlybird1, gridmaster_03, e così via, l'intero risultato della ricerca è pieno di loro) sostengono di usare un numero magico ma internamente semplicemente lo ignorano. Ne troverete un sacco. Questo schema di codice difettoso è presente in tutti i forum e finisce copiato in molti EA.

 
7bit:

Si tratta di un difetto del prodotto venduto, non di un intento criminale.

Certo, difetto, nessun problema.

"Sabotaggio" ha però un significato diverso, e difficilmente di natura tecnica, e non è un sostituto della parola "difetto".

Sono sicuro che coloro la cui prima lingua non è l'inglese possono essere scusati.

 
blogzr3:

"Sabotaggio" ha però un significato diverso, e difficilmente di natura tecnica, e non è un sostituto della parola "difetto".

Il difetto si manifesta come un robot che sabota l'altro. Poiché è il robot che sabota, non vedo come un robot possa avere un intento. Il robot è difettoso e questo lo porta a sabotare altri trade. Nient'altro ho scritto o voluto dire. E il venditore vende prodotti difettosi.
 
7bit:
Il difetto si manifesta come un robot che sabota l'altro. Poiché è il robot che sabota, non vedo come un robot possa avere un intento. Il robot è difettoso e questo lo porta a sabotare altri trade. Nient'altro ho scritto o voluto dire. E il venditore vende prodotti difettosi.

La maggior parte di questi EA sembra usare l'indicatore ZigZag, che è un probabile colpevole.

Quando è successo la prima volta con un EA chiamato "Caliber" ho decompilato l'EA per guardare il codice. Era un EA di merda, ma non c'era nulla che sembrasse sospetto e la logica del Magic Number sembrava a posto.

Ho aggiunto una logica extra per evitare che l'EA facesse trading più di una volta ogni 90 minuti.

Per coincidenza, questo ha anche migliorato le prestazioni complessive dell'EA, perché aveva la tendenza a colpire uno SL dopo poco tempo, quindi a inserire un nuovo trade nella stessa direzione. Si potrebbe pensare che con uno SL di 30 pip sia un EA sicuro, ma se colpisce quello SL 4 volte in un'ora non va bene.

Limitare i trade in questo modo ha davvero migliorato le prestazioni dell'EA nei back test, e dopo che ho inviato le modifiche al codice al fornitore, hanno poi rilasciato un aggiornamento con le mie modifiche.

Comunque, all'epoca stavo testando le mie modifiche a Calibre su un conto demo ed è successa la stessa cosa. Potevo vedere i trade che venivano aperti e chiusi immediatamente. Era solo un conto demo, quindi mi sono seduto e l'ho visto accadere.

In questo caso si trattava di un nuovo conto demo con un solo EA in esecuzione. Questo mi fa pensare che sia un problema di piattaforma MT4, piuttosto che di MQL4.

Ora conosco bene MT4 e MQL4 e posso capire la maggior parte dei problemi da solo. Questo problema mi ha riempito e sto chiedendo suggerimenti ad altri.


 

Scommetto che è un problema di indicatore/calcolo. forse una divisione per 0 che accade solo in alcuni casi specifici...

se puoi ripetere l'errore nel tester questo sarebbe la metà dell'affitto.

Dal momento che sai quale EA stava causando questo problema e anche quando è successo, dovrebbe essere facile controllare se è ripetibile.

in seguito, se sei riuscito a ripetere l'errore, non dovrebbe essere difficile trovare il pezzo di codice che causa l'errore.


//z

 

Here is one of the older log files. The problem is obvious from the number of trades opened and closed.

Nel file di log si può vedere che MT4 e il broker stanno ricevendo istruzioni per aprire e chiudere gli ordini, ma perché?

File:
 
peterc005:


Una cosa che ho notato in un file di log per una data rilevante erano migliaia di errori che dicono:

09:36:58 HistoryBase: memoria insufficiente per 'EURCHF1' in AddTick()

09:36:58 Gestore della memoria: impossibile allocare 160308896 byte di memoria

Invece di un file di log di 10k, era di 7Mb

 
peterc005:

Ecco uno dei vecchi file di log. Il problema è evidente dal numero di trade aperti e chiusi.

Nel file di log si può vedere che MT4 e il broker stanno ricevendo istruzioni per aprire e chiudere gli ordini, ma perché?

Avete anche l'altro log (quello della cartella experts/logs)? Questo conterrà il nome dell'EA incriminato.
 
zzuegg:

dal momento che sai quale EA stava causando questo

Non si sa ancora quale EA sta causando questo.


Tutto ciò che abbiamo visto finora sono i sintomi (i trade di diversi EA vengono chiusi immediatamente dopo l'apertura) e alcune teorie. Non si sa ancora quale EA stia effettivamente chiudendo questi trade. Abbiamo bisogno dei log degli esperti nella cartella experts/logs di tutti e 4 i terminali che coprono lo stesso arco di tempo per trarre ulteriori conclusioni. Questi log potrebbero supportare o respingere la mia teoria e alla fine mostreranno chi sta inviando tutti gli ordini di chiusura.

Motivazione: