Costruisce più di 660 ingombrando l'HD con file di log e rallentando la velocità di ottimizzazione - pagina 3

 

La directory del file di log è sempre presente nella directory /tester, potrebbe essere solo il caso che la tua sia nella cartella UserData dato che sto usando MT4 in modalità /portable.

Sì, è possibile avviare il tester tramite la riga di comando, ma questo non aiuta affatto, il logging è fatto internamente al programma dalla build 670, non c'è modo di disattivarlo da una riga di comando.

Reindirizzare l'output a NUL non ha nulla a che fare con la registrazione interna. Tutto ciò che la tua idea farebbe è reindirizzare l'output di una casella del prompt dei comandi a nul (l'output di testo effettivo). Per un'applicazione con un'interfaccia grafica come MT4 questo non fa assolutamente nulla.

 

Più divertimento con i tronchi!



 

hmm - uno dei miei broker ha aggiornato a b765 - può essere che questa versione abbia perso questa "caratteristica"?

Usare uno script powershell che cancella immediatamente tutti i file di log nella tua cartella nel tempo?

NON TESTATO!

$path = "C:\Program Files\MetaTrader\tester\logs"   #  correct path?
while($true) {                                      #  endless loop switch off manually!!
    $files = Get-ChildItem -Path $path |  Where-Object {-not $_.PsIsContainer -and $_.name -like "*.log"}
    foreach ($file in $files) {                     #  Folder are excluded
       Remove-Item $file.FullName -Force -ErrorAction SilentlyContinue  
    }
    Start-Sleep -s 60                               #  sleep 60 seconds 
}
 
OK, controllerò B765. Come detto, i file di log sono bloccati da metatrader.exe mentre viene eseguito, non è possibile eliminarli senza prima chiudere il terminale, il che annullerebbe l'ottimizzazione effettiva.
 

Perciò questo:

Remove-Item $file.FullName -ErrorAction SilentlyContinue  

I file che non possono essere rimossi sono 'Silently[..]' bypassati e cancellati la volta successiva.

Penso che tu possa rimuovere -Force (così ho fatto io).

 
Ma "la prossima volta" è troppo tardi perché questo significherebbe dopo un riavvio del terminale (una volta che i file sono sbloccati), nel qual caso l'HD sarebbe già pieno (che è il mio vero problema). Anche "Force" non funziona, ho provato, ma come ho detto, i file sono bloccati da Metatrader fino a quando il terminale non viene spento e il tuo script quindi fallisce.
 

NO! La prossima volta significava dopo i 60 secondi di sonno! Non l'ho scritto?

Ogni minuto lo script cerca i log da cancellare!

Dato che - secondo me - un'esecuzione di prova blocca solo 1 file di log, quelli creati in precedenza possono essere cancellati - ma provate voi stessi.

Non posso perché non ho niente da ottimizzare in questo momento...

 
mt4user2000:

Che cosa intendi? I log di cui sto parlando registrano ogni SL che si è verificato durante l'ottimizzazione per ogni passaggio dell'ottimizzazione. Li ho già postati, quindi cosa c'è da interpretare diversamente in questi? Mostra chiaramente ciò che registra e questo in realtà non è affatto il problema, il problema è che registra tutto mentre non dovrebbe durante l'ottimizzazione perché ingombra l'harddisk.

Non stai leggendo i post degli altri.

Ho postato i miei log dai quali si può vedere che sto usando stoploss e che stoploss viene attivato dal sistema. Ho anche dichiarato sotto quale build ho fatto dei test.
Ma tu stai facendo le stesse domande a cui hai già risposto.

E nello stesso tempo state pubblicando grandi log che non contengono alcuna informazione.

mt4user2000:

E potrei piuttosto suggerirvi di imparare a TROVARE i log? Per X post mi stai dicendo "no, non c'è nulla di registrato" nelle build 670 e 745 e ora all'improvviso dici che si registra anche sul tuo sistema? LOL

Ti ho già detto che questo comportamento è in qualche modo innescato e che ovviamente ha bisogno di qualche altro fattore oltre all'ottimizzazione genetica per manifestarsi.

Ma è più facile e comodo scrivere LOL LOL che leggere e cercare di capire.

Inoltre, qual è il tuo problema? Rimuovi lo SL e esci dai trade con OrderClose().

Dal tuo scritto è ovvio che sei consapevole che MQ non si preoccupa di questo o di altri bug minori.

 

graziani,

questa non è la soluzione più appropriata, ma potresti provare a impedire a metatrader.exe di scrivere nella directory dei log modificando le ACL sulla directory dei log.

attenzione: fallo solo se sai cosa stai facendo.

saluti

 

graziani: scusa, non commenterò ulteriormente i tuoi post.

gooly: sì, so cosa intendi, ma non può ancora cancellare i file di log, sono bloccati e quindi non funziona. Prova tu stesso.

ics-mq4: questa è una cosa che ho provato anch'io e funziona, ma rallenta l'ottimizzazione di un fattore 10 purtroppo. Molto probabilmente perché Metatrader viene bombardato di errori perché non riesce a scrivere nella directory e riprova alcune volte prima di rinunciare. Un altro trucco è quello di cancellare la directory "logs" e creare un file con lo stesso nome, nel qual caso Metatrader non può più creare la directory "logs". Ma in questo caso succede lo stesso, un forte rallentamento dell'ottimizzazione.