Come ottenere informazioni di "errore" dal diario? - pagina 2

 
GumRai:


Ho già dato un esempio qualche post indietro, che tu hai liquidato.

Assicuratevi che il print() quando c'è un errore includa una stringa che sia facilmente identificabile.

Poi quando apri il file di log, usa edit/find per individuare quella stringa, così allo stesso tempo trova il rapporto di errore.


GumRai:
Se sai che avrai molte voci nel file di log da ordinare, potrebbe essere un'idea mettere qualcosa come "xyz" nel print() e poi usare Edit/Find per localizzare le istruzioni di stampa

Amico non si tratta di questo.Anche tu hai liquidato i miei post.Il problema non è che non riesco a vedere l'errore, è il fatto che ci sono oltre 10.000 voci di registro, vuoi che cerchi manualmente in tutte ? + L'errore mostrerà cose come il codice di errore 1, il codice di errore 2, come pensate che li assocerò in qualsiasi forma con un identificatore di testo.La soluzione sarebbe, come ho già detto 2 volte, un qualche tipo di codice che controlla se c'è stato un errore e lo stampa sul diario, o meglio, se ci sono più errori conta quanti sono. Non so se una cosa del genere è possibile, ecco perché lo chiedo, credo di non essere stato molto chiaro nello specificare il mio problema, ma qualsiasi aiuto sarà apprezzato :) .

 
Proximus:

Il problema non è che non riesco a vedere l'errore, è il fatto che ci sono più di 10.000 voci del diario, vuoi che cerchi manualmente in tutte? + L'errore mostrerà cose come il codice di errore 1, il codice di errore 2, come pensate che li assocerò in qualsiasi forma con un identificatore di testo.La soluzione sarebbe, come ho già detto 2 volte, un qualche tipo di codice che controlla se c'è stato un errore e lo stampa sul diario, o meglio, se ci sono più errori conta quanti sono. Non so se una cosa del genere è possibile, ecco perché lo chiedo, credo di non essere stato molto chiaro nello specificare il mio problema, ma qualsiasi aiuto sarà apprezzato :) .


Come fai a cercare manualmente quando usi Edit/find?

Se hai 10.000 voci e una particolare stringa appare solo 3 volte, ci vorranno 3 click del mouse per individuarle.

Se sei interessato solo alle voci che contengono la parola "errore", allora usa find per localizzare la parola "errore"

 
GumRai:


Come fai a cercare manualmente quando usi Edit/find?

Se avete 10.000 voci e una particolare stringa appare solo 3 volte, ci vorranno 3 clic del mouse per localizzarle.

Se sei interessato solo alle voci che contengono la parola "errore", allora usa find per localizzare la parola "errore"

1) Sì, è per questo che ho bisogno di automatizzare le cose, sono sicuro che mq4 ti permette di sviluppare un piccolo codice che può fare questo all'interno dell'EA

2) Questo non ha importanza.

3) Cosa succede se ci sono tipo 900 log di errore? Cosa succede se voglio raggruppare diversi tipi di errori, come se ottengo l'errore nr 1 e l'errore 4056, dato che l'errore nr 1 non è un errore così grave, ma si nasconde dentro le molte stringhe di errore nr 1. Cosa succede se voglio contarli?

In effetti, cambiamo la mia richiesta perché vedo che voi non capite cosa sto chiedendo, quindi la mia nuova richiesta è come contare diversi tipi di errori dal diario?

Es: errore nr.1 x 10 pezzi

errore nr. 4056 x 200 pezzi

errore nr. 4020 x 500 pezzi

In questo modo, come fare in modo che l'EA mi mostri quanti errori sono accaduti di un certo tipo?

 
Proximus:

1) Sì, è per questo che ho bisogno di automatizzare le cose, sono sicuro che mq4 ti permette di sviluppare un piccolo codice che può fare questo all'interno dell'EA

2) Questo non ha importanza.

3) Cosa succede se ci sono tipo 900 log di errore? Cosa succede se voglio raggruppare diversi tipi di errori, come se ottengo l'errore nr 1 e l'errore 4056, dato che l'errore nr 1 non è un errore così grave, ma si nasconde dentro le molte stringhe di errore nr 1. Cosa succede se voglio contarli?

Infatti cambiamo la mia richiesta perché vedo che non avete capito cosa sto chiedendo, quindi la mia nuova richiesta è come contare diversi tipi di errori dal diario?

Es: errore nr.1 x 10 pezzi

errore nr. 4056 x 200 pezzi

errore nr. 4020 x 500 pezzi

In questo modo, come fare in modo che l'EA mi mostri quanti errori si sono verificati di un certo tipo?

Se avete un solo errore correggetelo . . . se ne avete molti correggeteli tutti . . . se avete 2000 errori nel vostro registro avete problemi seri, non c'è bisogno di andare a cercare, correggete ogni errore che avete.
 
RaptorUK:
Se avete un solo errore correggetelo . . . se ne avete molti correggeteli tutti . . . se avete 2000 errori nel vostro registro avete problemi seri, non c'è bisogno di andare a cercare, correggete ogni errore che avete.

Sì, questo è il punto dopo tutto, ma sapete che quando avete 2000 trade nel log, questo lo riempie sempre di dati di modifica/chiusura/apertura degli ordini, e difficilmente potete vedere il messaggio di errore tra tutto quello spam inutile, ecco perché ho bisogno di sviluppare un qualche tipo di codice di cattura degli errori che mi notifichi se anche 1 errore è apparso.
 
Proximus:
Sì, questo è il punto dopo tutto, ma si sa che quando si hanno 2000 trade nel log, questo è sempre pieno di dati di modifica/chiusura/apertura degli ordini, e difficilmente si può vedere il messaggio di errore tra tutto quello spam inutile, ecco perché ho bisogno di sviluppare qualche tipo di codice di cattura degli errori che mi notifichi se anche 1 errore è apparso.

No, basta Print("MyEANameError: ", Error, . . . . . ) poi cerca MyEANameError e troverai tutti i tuoi errori .. .
 

Sembra che Proximus non comprenda Raptor.

Ho scritto questo codice di prova

 for(int line=1;line<=10000;line++)
      {
      if(line==5000)
         {
         Print("HeeHee, I'm line number 5,000 - you'll never find me!");
         continue;
         }
      Print("This is line ",line);
      }

Così ora ho un registro con 10.000 linee di Print()

Usando Edit/Find, HeeHee non apparirà in nessun'altra riga di codice

e semplicemente cliccando su find next, un millisecondo dopo

È molto semplice, basta usare il Notepad predefinito

 
Amico, tu davvero non mi capisci
Proximus:

1) Sì, è per questo che ho bisogno di automatizzare le cose, sono sicuro che mq4 ti permette di sviluppare un piccolo codice che può fare questo all'interno dell'EA

2) Questo non ha importanza.

3) Cosa succede se ci sono tipo 900 log di errore? Cosa succede se voglio raggruppare diversi tipi di errori, come se ottengo l'errore nr 1 e l'errore 4056, dato che l'errore nr 1 non è un errore così grave, ma si nasconde dentro le molte stringhe di errore nr 1. Cosa succede se voglio contarli?

In effetti cambiamo la mia richiesta perché vedo che voi ragazzi non capite cosa sto chiedendo, quindi la mia nuova richiesta è come contare diversi tipi di errori dal diario?

Es: errore nr.1 x 10 pezzi

errore nr. 4056 x 200 pezzi

errore nr. 4020 x 500 pezzi

In questo modo, come fare in modo che l'EA mi mostri quanti errori si sono verificati di un certo tipo?

Quindi l'idea è di catturare diversi tipi di errori e/o contarli, voglio sapere quanti ce ne sono e i tipi perché è più facile contare gli errori tipo per tipo che cercare nel blocco note, immaginate una situazione in cui ci sono 10 errori e 10 diversi nascosti tra le righe o ci sono centinaia di errori, ognuno è diverso, quindi se cerco diciamo l'errore numero 4025 come faccio a sapere che c'è anche un errore numero 4000? Ovviamente non ho intenzione di cercare tutti i codici di errore, quindi non sarebbe più facile se ci fosse una macchina contatrice che conta tutti gli errori raggruppati per tipo e li stampa ogni tanto.

+10.000 linee non sono sufficienti, non so esattamente quante ne conserva MT4 ma sono sicuro che non sono sufficienti per me, di solito faccio oggi backtest con 5000-7000 trades o più, 1 linea per orderopen, 3-4 linee per trailstops ordermodify, e 1 linea per orderclose =queste 6 linee /trade * 7000 trades =queste ~42000 linee o modalità e sono sicuro che il diario di MT4 non ne conserva così tante :)

Quindi sì, il metodo del conteggio sarebbe più efficace!

RaptorUK:
No, semplicemente Print("MyEANameError: ", Error, . . . . . ) poi cerca MyEANameError e troverai tutti i tuoi errori .. .

Neanche questa è la soluzione, cosa c'è nella variabile "Error"? Inoltre, come testare se si è verificato un errore? E forse, se possibile, come differenziare i diversi tipi di errore? Con del codice, ovviamente, grazie!
 

Spero di non dire un'ovvietà, e mi scuso se lo faccio!

Sospetto che tutti quelli che hanno risposto abbiano dato per scontato che tu lo sappia, ma il diario di MT è semplicemente un numero di file, uno al giorno, di cui le ultime linee dell'ultimo file sono visualizzate nella GUI.

I file (per il back testing) si trovano in MetaTrader Install Folder/tester/logs

È possibile cercare attraverso poi utilizzando qualsiasi strumento a vostra disposizione - ad esempio dos comando Findstr per estrarre i file ...

cd MetaTrader Folder/tester/logs

Findstr some_text *.log

Findstr some_text *.log > small_log.txt


Ancora una volta, mi scuso se sto dicendo l'ovvio e si sta effettivamente cercando qualcos'altro?

 
ydrol:

Di nuovo, mi scuso se sto dicendo l'ovvio e voi state cercando qualcos'altro?


Non c'è bisogno di scusarsi, ma ho capito che OP non era interessato a trovare e correggere gli errori, ma piuttosto alle loro statistiche.