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

 
7bit:

Non si sa ancora quale EA sta causando questo.


Tutto ciò che abbiamo visto finora sono i sintomi e alcune teorie. 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 mostreranno chi sta inviando gli ordini di chiusura.

Pensavo che stesse eseguendo ogni EA su un conto/terminale diverso?

//Dopo aver riletto il thread ho visto che sta eseguendo 30 EA su 4 terminali.

//z.

 
zzuegg:

Pensavo che stesse eseguendo ogni EA su un account/terminale diverso?

Abbiamo bisogno di tanti log quanti sono i terminali. IIRC ha parlato di 4 terminali, ognuno dei quali esegue alcuni EA. Ma non importa quanti siano, la cosa più importante è guardare i log di tutti i terminali allo stesso tempo.

Un trade aperto da EA1 sul terminale1 potrebbe essere chiuso da EA2 in esecuzione sul terminale2. EA1 riaprirebbe immediatamente il trade e EA2 lo chiuderebbe di nuovo all'infinito.

Il registro degli esperti del terminale1 si riempirebbe di voci su OPEN e il registro degli esperti sul terminale2 si riempirebbe di voci su CLOSE. Nella storia del conto tutte le perdite saranno attribuite a EA1 perché è quello che apre il trade e EA2 rimarrà completamente sotto il radar, il suo nome non sarà menzionato nella storia del conto. Solo nel log degli esperti del terminale su cui sta girando.


Lo prometto: se l'EA incriminato sarà stato finalmente trovato sarà l'unico che non ha sofferto di tutto questo, l'unico che sembrava comportarsi bene per tutto il tempo, quello che è meno sospettato sarà il colpevole.

 

Una volta, uno dei miei EA ha avuto un issius simile, il codice colpevole era:

if(Close[1]<Open[1] && Close[2] < Open[2]){
  //CLOSE ALL PROFITALBE BUYS
}

Questo è successo solo una volta... sono stato fortunato che ho chiuso solo i trade redditizi... quindi il mio EA ha fatto 100 trade e li ha chiusi appena erano positivi.

 



Questo problema si è verificato per la prima volta nel maggio 2010 e ha interessato un EA chiamato "Callibre".

Mi sono svegliato la mattina e c'era un buco di $4.000 nel conto, e la scheda Storia ci metteva secoli a caricare.

Ho parlato con il broker e ho ottenuto un dump dei log del loro server MT4 (allegato).

In allegato c'è anche un grafico che mostra i trade.

I log del server correlano che le operazioni di apertura e di chiusura provengono dallo stesso EA.

All'epoca ho dato la colpa all'EA, pensando che il problema si verificasse solo con quell'EA.

*** Dal campo Commenti nel log delle transazioni del server posso dire che lo stesso EA (Callibre in questo esempio) ha aperto i trade, poi li ha chiusi subito.

Il problema è scomparso per 4 mesi e ho dato per scontato che fosse quell'EA.

Nelle ultime due settimane il problema è riapparso, attraverso 4 diversi EA che hanno funzionato bene per diversi mesi, e attraverso 2 diversi broker.

Questo fine settimana disinstallerò tutte le copie di MT4 e le reinstallerò da zero. Pulirò anche la cartella Experts e mi assicurerò di eseguire l'ultima copia di tutto.

Qualsiasi altro suggerimento è apprezzato.
 
 
peterc005:
Dal campo Commenti nel log delle transazioni del server posso dire che lo stesso EA (Callibre in questo esempio) ha aperto i trade, poi li ha chiusi subito.

Peter: Come ho già spiegato il campo commenti mostra chi ha aperto il trade, non mostra chi lo ha chiuso. Questo potrebbe essere fuorviante e controintuitivo ed è la ragione per cui stai cercando nel posto sbagliato. Il campo dei commenti è impostato con l'ottavo parametro nella funzione OrderSend(). Questo è quando l'ordine viene aperto. Dopo questo momento il campo di commento è fisso e non può più essere cambiato. OrderClose( ) non permette di specificare alcuna informazione testuale. Non importa come o da chi viene chiuso l'ordine, esso manterrà il suo commento o sarà preceduto da [sl] o [tp] o qualche altra stringa per indicare stoploss o takeprofit o chiusura parziale o margin call, ecc.

Un ordine che viene chiuso da OrderClose() manterrà il suo commento originale. L'unico posto per scoprire chi ha chiamato OrderClose() è cercarlo nei log degli esperti di tutti i terminali che erano in funzione in quel momento.

Allega i 4 log degli esperti di tutti e 4 i terminali che si trovano nella cartella experts/logs/ su ogni macchina su cui hai un terminale in esecuzione (questo è il log della scheda "experts" di ognuno di questi terminali) per scoprire chi ha chiuso i trade. Non è il calibro EA.

 

Ciao 7bit, caricherò i log a breve.

Una cosa che ho notato nei log dei giorni incriminati è un sacco di questi errori:

00:11:16 Memory handler: impossibile allocare 160308896 byte di memoria

00:11:16 HistoryBase: memoria insufficiente per 'EURGBP1' in AddTick()

Facendo una ricerca su Google, questo è causato da troppe barre in un grafico. Avevo il parametro Max Bars impostato alto in modo da poter scaricare più storia, ma da allora ho ridotto questa impostazione.

Mi sto chiedendo se questi errori hanno incasinato i segnali degli indicatori, causando problemi agli EAs?

Al momento questa è la mia teoria preferita!

 
peterc005:

00:11:16 Gestore della memoria: impossibile allocare 160308896 byte di memoria

00:11:16 HistoryBase: memoria insufficiente per 'EURGBP1' in AddTick()


Non credo che questo sia rilevante. E non dice nemmeno chi ha effettivamente fatto la chiamata a OrderClose().
 
7bit:
Non credo che questo sia rilevante. E non dice nemmeno chi ha effettivamente fatto la chiamata a OrderClose().

Ho ancora il sospetto che una mancanza di risorse di memoria abbia incasinato un indicatore, causando l'apertura e la chiusura dei trade. Se è così, sarà molto difficile provarlo.
 

Di seguito sono riportati gli estratti delle due cartelle Logs che sono un esempio di ciò che sta accadendo.

Questo EA è FAP Turbo LT. che ho eseguito per anni e si è sempre comportato bene.

La cartella Logs mostra quello che fa MT4, cioè aprire e poi chiudere il trade, in questo caso l'affare # 2662451

La cosa strana è che nel file di log Experts, l'operazione è aperta, poi modificata per impostare lo SL + TP, ma non c'è nessun record che mostri la chiusura.

Ho guardato altri record nel log Experts quando FAP Turbo funziona bene, e questo EA genera sicuramente un record di chiusura di solito, ma non in questo caso.

Ho guardato tutti i file di log che ho potuto trovare per altre istanze di MT4, ma non ci sono altri riferimenti a questo affare.

Cartella MT4\Logs:

17:28:49 '103028': ordine aperto: #2662451 compra 0.20 EURUSDFXF a 1.2909 sl: 0.0000 tp: 0.0000

17:28:49 '103028': modificato ordine #2662451 compra 0.20 EURUSDFXF a 1.2909 sl: 0.0000 tp: 0.0000 -> sl: 1.2407 tp: 1.2929

17:29:02 '103028': chiudi ordine #2662451 compra 0.20 EURUSDFXF a 1.2909 sl: 1.2407 tp: 1.2929 al prezzo 1.2906

17:29:02 '103028': richiesta accettata dal server


MT4\Experts\Logs:

17:28:48 FapTurbo50 EURUSDFXF,M5: aperto #2662451 compra 0,20 EURUSDFXF a 1,2909 ok

17:28:49 FapTurbo50 EURUSDFXF,M5: modificare #2662451 comprare 0.20 EURUSDFXF a 1.2909 sl: 1.2407 tp: 1.2929 ok