Per favore aiutatemi a risolvere questo mistero! - pagina 2

 
WHRoeder:
A meno che non stiate usando la modalità visiva nel tester, non ci sarà mai nulla nel diario.
Non è corretto. Non c'è niente in uscita nel diario durante l'ottimizzazione, ma l'uscita nel diario funziona bene se la modalità visiva NON è spuntata . (appena testato sulla Build 445)
 

Sto usando la modalità visiva in ogni caso!

C'è un'altra cosa molto strana. Quando eseguo lo STESSO EA con gli STESSI parametri più di una volta, ottengo diverse transazioni sul Visual Mode visualizzato!

La maggior parte delle volte il 90% sono le stesse - ma in certi punti ci sono risultati diversi con esecuzioni multiple!

C'è qualche buffer (per esempio le variabili) che deve essere inizializzato o cancellato dopo ogni esecuzione? Cerco di inizializzare tutte le variabili nella sezione delle dichiarazioni.

Forse il mio computer è andato in tilt? Mi sto arrampicando sugli specchi al momento.

 
ernest02:

Sto usando la modalità visiva in ogni caso!

C'è un'altra cosa molto strana. Quando eseguo lo stesso EA con gli stessi parametri più di una volta, ottengo diverse transazioni sul Visual Mode visualizzato!

La maggior parte del tempo il 90% è lo stesso - ma in certi punti ci sono risultati diversi con più esecuzioni!

C'è qualche buffer (ad esempio le variabili) che deve essere inizializzato o cancellato dopo ogni esecuzione? Cerco di inizializzare tutte le variabili nella sezione delle dichiarazioni.

Forse il mio computer è andato in tilt? Al momento mi sto arrampicando sugli specchi.

Qual è lo spread per ogni corsa?
 

Ok ragazzi! Risolvete questo!

Guardate il pezzo di codice più grande che ho postato.

La prima linea è un'istruzione "if" e, se vera, elaborerà le linee successive.

Una delle azioni che deve avvenire è la chiusura di qualsiasi ordine di acquisto aperto.

Ora, quando eseguo l'EA nel Tester, chiude effettivamente gli ordini di acquisto MA...

Salta la dichiarazione di stampa nel mezzo del codice - e questo non viene registrato nel Journal!

Quindi so che il codice viene elaborato, ma solo CERTE stampe vengono registrate nel Journal, mentre altre no!

Quindi, per favore, spiegatemi questo!

 
ernest02:

Ora, quando eseguo l'EA nel Tester, chiude effettivamente tutti gli ordini di acquisto MA...

Salta l'istruzione di stampa nel mezzo del codice - e questo non viene registrato nel Journal!

Quindi so che il codice viene elaborato, ma solo alcune stampe vengono registrate nel diario, mentre altre no!

Quindi, per favore, spiegami questo!

I seguenti verranno stampati nel diario...

   Print("SellTicket is ",SellTicket);    // <----- this will print

   if (SellTicket >= 0) 
      {
      PlaySound("news.wav");
      SellTime = OrderOpenTime();
      SellSignal = false;

      }
   Print("SellSignal2 is ", SellSignal);  // <----- this will print

se non stanno stampando, allora, per quanto posso vedere, le possibilità sono le seguenti:

  • non stai eseguendo il codice che hai inserito
  • gli ordini di acquisto vengono chiusi da qualche altro codice/funzione

 

se SellTicket è uguale a zero, seriamente?

if (SellTicket >= 0) // ???

Fai clic con il tasto destro del mouse sul diario, seleziona "Apri" e apri il registro del diario con il blocco note.

La scheda del diario non mostra sempre tutti i registri.

 

Ho guardato il file di log e non ci sono transazioni di vendita o acquisto registrate lì o qualsiasi altro comando "Stampa".

Sono così demotivato! Sono stato su questa cosa per 2 settimane e non ho fatto alcun progresso e sono a corto di idee su quale possa essere il problema.

(Voglio solo dire, per quello che vale, che ho anche Metatrader 5 installato sul mio computer ed eseguo Windows 7 che memorizza alcuni dati e file di log in Virtual Store sotto Utenti)

 
ernest02:

Ho guardato il file di log e non ci sono transazioni di vendita o acquisto registrate lì o qualsiasi altro comando "Stampa".

Sono così demotivato! Sono stato su questa cosa per 2 settimane e non ho fatto alcun progresso e sono a corto di idee su quale possa essere il problema.

(Voglio solo dire, per quello che vale, che ho anche Metatrader 5 installato sul mio computer ed eseguo Windows 7 che memorizza alcuni dati e file di log in Virtual Store sotto Utenti)

Ah, dove hai installato MT4 è in Program Files? Se è così forse hai un problema di UAC. Potresti provare una nuova installazione di MT4 in una directory che non sia Program Files per esempio, C:-MT4-Installs\ e provare il tuo EA.
 

Ho creato una cartella sotto C:/ dove ho installato MT4, ma ho altre due copie (una live e una demo) che sono installate sotto Program Files (x86).

Non ho alcun file di log con gli ultimi due, ma ho file di log sotto la root di MT4. (Questo è il motivo per cui posso riferire su ciò che è nel file di log)

Ora ho appena notato un'altra anomalia. (Ho già menzionato il fatto che ottengo risultati diversi da due corse identiche)

Uso iCCI per tracciare l'indice CCI per prendere decisioni sulle transazioni di acquisto/vendita. Ho scoperto che le transazioni avvengono anche quando la condizione CCI non è vera!

Questo è un gran casino! Ho voglia di tornare ai miei giorni di XP dove il mio sistema sembrava essere molto più semplice e stabile!

Sono pronto a gettare la spugna!

 
@ernest02: riscrivi semplicemente il codice. Usa le funzioni Print/Alert/Comment per il debug del tuo codice. Se sei perplesso sul perché OrderSend è stato eseguito, allora stampa i valori delle variabili che lo attivano [proprio sopra OrderSend]. Se siete perplessi sul perché CCI == true, stampate i valori delle variabili che attivano la chiamata CCI [Prima della chiamata CCI]. Continuate a spostare la frase di stampa all'indietro in questo modo finché non trovate il colpevole.