Problema dei terminali globali - pagina 3

 

Ciao, Pensiero Profondo

Ho provato a farlo e ogni volta che ci ho provato, MT4 si è bloccato. Non ero seduto su un punto di interruzione quando ho provato a caricare il modello, però. Proverò a mettere un punto di interruzione all'inizio di OnStart() e vedere cosa succede. L'IDE dovrebbe essere fermato indipendentemente dal tipo di applicazione quando sei seduto su un punto di interruzione. Ho appena provato - non ha funzionato. Quando il debugger colpisce un punto di interruzione il terminale è congelato. Il tentativo di fare qualcosa lo blocca. Ho notato che stai usando grafici offline. Io no. Questa potrebbe essere la differenza - se stai usando MT4. Grazie per il consiglio - valeva la pena provare. Ora ho un problema più grande. Il mio debugger ha smesso di funzionare. Devo aver fatto qualcosa ma non sono sicuro di cosa. Ah - la vita e i tempi di un programmatore :-)

 

Nessun problema.

Ma no, i grafici offline non hanno effetto sul salvataggio dei modelli (almeno con le ultime build, dato che c'era un bug anche qualche settimana fa).

Sì, il terminale si blocca durante il debugger. Il debugger aggancia il thread principale dell'IDE, dove di solito girano tutti gli indicatori. Si scongela per un po' dopo aver lasciato il tuo metodo evento (OnStart, OnInit), ed è vivo fino a quando non lo fermi di nuovo in un punto di interruzione.

 
ProfessorMetal:

Ciao, Pensiero Profondo

Ho provato a farlo e ogni volta che ci ho provato, MT4 si è bloccato. Non ero seduto su un punto di interruzione quando ho provato a caricare il modello, però. Proverò a mettere un punto di interruzione all'inizio di OnStart() e vedere cosa succede. L'IDE dovrebbe essere fermato indipendentemente dal tipo di applicazione quando sei seduto su un punto di interruzione. Ho appena provato - non ha funzionato. Quando il debugger colpisce un punto di interruzione il terminale è congelato. Il tentativo di fare qualcosa lo blocca. Ho notato che stai usando grafici offline. Io no. Questa potrebbe essere la differenza - se stai usando MT4. Grazie per il consiglio - valeva la pena provare. Ora ho un problema più grande. Il mio debugger ha smesso di funzionare. Devo aver fatto qualcosa, ma non sono sicuro di cosa. Ah - la vita e i tempi di un programmatore :-)

Scusa ma non ho alcun problema con il debugger. Usa il debug.tpl che ho salvato e non si blocca.

Quindi posso suggerirti 2 cose, o scrivi qui come riprodurre il tuo problema, così possiamo provare ad aiutarti. Oppure scrivere al ServiceDesk di Metaquotes.

 

Grazie ancora, DeepThought. Non pensavo davvero che i grafici avessero qualcosa a che fare con questo, ma ho pensato che valesse la pena menzionarlo, nel caso. Se hai guardato il mio profilo, avrai visto che sono uno sviluppatore molto esperto. Ho imparato a mie spese che quello che pensi non sia un problema spesso si rivela essere un problema. Vale sempre la pena fare una domanda anche se si pensa che sia irrilevante. Penso però di aver frainteso il tuo post precedente. Se il terminale è congelato quando il debugger colpisce un punto di interruzione, non c'è modo che tu possa caricare un modello per il grafico su cui ti trovi. Ovviamente, ho frainteso qualcosa che stavi cercando di dirmi.

angevoyageur,

non posso postare niente di più di quello che ho già fatto. Non ci sono passi A, B, C che stanno causando questo. Si comporta come se cercasse di trovare un modello di debug e non ci riuscisse e quindi non apre un grafico. Il registro sembra sostenere questo. Se elimino debug.tpl il debugger aprirà un grafico. Devo ancora impostare il grafico da solo, ma è meglio che non avere alcun debug. Questo comincia a sembrare un problema per il service desk. Non so perché io lo vedo e tu e DeepThought no. Sono persino arrivato a reinstallare MT4 e la situazione persiste. Potrebbe anche essere che ci sia qualcosa di sbagliato nel mio codice che sta causando il crash quando cerca di caricare il template. Ho intenzione di perseguire questo punto di vista prima di portarlo al Service Desk. In questo momento, ho bisogno di schiantarmi e riposare un po'. Sono troppo stanco per concentrarmi. Grazie ancora per il vostro aiuto.

 
Oh, ora capisco il tuo punto mancante. La parola è che il template debug.tpl si carica automaticamente se il grafico viene aperto dal debugger - lo stesso accade per default.tpl con qualsiasi grafico ordinario, tester.tpl con un tester di strategia, offline.tpl con un grafico offline, e oltre al tester di strategia, <ea_name>.tpl si carica preferibilmente.
 

Ad essere onesti, non ho mai usato il debugger. Uso solo le funzioni di stampa. In questo modo, posso eseguire il debug più velocemente. Naturalmente uso l'account demo, ma sta diventando un test in avanti piuttosto che indietro.

A molte persone piace il back testing ma a me piace il forward testing. Che senso ha fare l'ottimizzazione sui dati storici?

Io faccio l'ottimizzazione su dati reali dal vivo. Grazie a questo, il mio EA è diventato stabile al 100% e può gestire la maggior parte degli errori senza che io faccia nulla.

Naturalmente mi ci sono voluti molti mesi per farlo, ma ne è valsa la pena.

 
ProfessorMetal:

Grazie ancora, DeepThought. Non pensavo davvero che i grafici avessero qualcosa a che fare con questo, ma ho pensato che valesse la pena menzionarlo, nel caso. Se hai guardato il mio profilo, avrai visto che sono uno sviluppatore molto esperto. Ho imparato a mie spese che quello che pensi non sia un problema spesso si rivela essere un problema. Vale sempre la pena fare una domanda anche se si pensa che sia irrilevante. Credo però di aver frainteso il tuo post precedente. Se il terminale è congelato quando il debugger colpisce un punto di interruzione, non c'è modo che tu possa caricare un modello per il grafico su cui ti trovi. Ovviamente, ho frainteso qualcosa che stavi cercando di dirmi.

angevoyageur,

non posso postare niente di più di quello che ho già fatto. Non ci sono passi A, B, C che stanno causando questo. Si comporta come se cercasse di trovare un modello di debug e non ci riuscisse e quindi non apre un grafico. Il registro sembra sostenere questo. Se elimino debug.tpl il debugger aprirà un grafico. Devo ancora impostare il grafico da solo, ma è meglio che non avere alcun debug. Questo comincia a sembrare un problema per il service desk. Non so perché io lo vedo e tu e DeepThought no. Sono persino arrivato a reinstallare MT4 e la situazione persiste. Potrebbe anche essere che ci sia qualcosa di sbagliato nel mio codice che sta causando il crash quando cerca di caricare il modello. Ho intenzione di perseguire questo punto di vista prima di portarlo al Service Desk. In questo momento, ho bisogno di schiantarmi e riposare un po'. Sono troppo stanco per concentrarmi. Grazie ancora per il tuo aiuto.

Puoi provare con un template molto semplice? Forse è legato al modello stesso? Se funziona con un template semplice (per esempio visualizzare le candele), allora vai passo dopo passo aggiungendo 1 cosa alla volta nel tuo template.

Se non funziona dall'inizio, è sicuramente qualcosa per il ServiceDesk.

 

Pensiero profondo,

"Si dice che il template debug.tpl viene caricato automaticamente se il grafico viene aperto dal debugger" Un problema potrebbe essere qualcosa che ho menzionato prima. L'installazione di MT4 non ha la directory profiles/templates che la documentazione dice che dovrebbe. Ecco perché l'ho aggiunta io stesso e poi ho salvato il mio modello di debug in essa. Ho provato ad avviare il debugger sia con MT4 in esecuzione che con MT4 spento e lasciare che il debugger avvii tutto con gli stessi risultati. Ho visto un paio di cose strane con entrambi gli approcci. Il log a volte riporta un errore di unitizzazione 2, indicando che il mio indie sta ricompilando quando avvio il debugger. Questo non ha senso. Ho provato ad avviare il debugger sia con MT4 in esecuzione che semplicemente lasciando che il debugger stesso avvii tutto con gli stessi risultati. Questo succede solo se ho la cartella profiles/template con debug.tpl. Se mi sbarazzo di questo, il debugger porta su un grafico che ha l'indie che sto cercando di testare e nient'altro. Per quanto riguarda l'avere il debugger attivo e funzionante e poi provare a caricare un template, il debugger si spegne istantaneamente quando seleziono il template e mi trovo a guardare il grafico come se avessi avviato MT4 con un profilo contenente il grafico con la mia configurazione.

deysmacro, sono d'accordo.

Il back testing è inutile. Come te, faccio solo test in avanti. Ci vuole un sacco di tempo ma si ottiene un quadro molto più accurato di ciò che la tua applicazione farà. Se devo creare uno strumento per il mio uso personale o per la vendita commerciale, giudicherò la sua efficienza applicandolo a ciò che il mercato sta facendo ORA, non a ciò che ha fatto cinque anni fa. Per me, questa è l'unica cosa che ha senso.

Buon suggerimento, angevoyageur. Avrei dovuto pensarci io stesso. Non sono ancora del tutto sicuro che l'indie su cui sto lavorando sia incolpevole in questo. Calcolo i punti di entrata e di uscita in base alle MA e occasionalmente ottengo divisioni nulle. I registri suggeriscono che non è questo il problema, ma chi lo sa. Una ragione per cui non credo che sia questo il problema è che quando ho la directory e la struttura dei file impostata secondo la documentazione, il log mostra che gli indici e l'EA vengono caricati con successo e poi immediatamente de-inizializzati senza dare una ragione del perché. Ho degli avvisi nelle funzioni OnInit()e OnDeinit() e nessuna di esse viene eseguita, il che suggerisce che qualsiasi cosa stia saltando in aria lo sta facendo prima che qualsiasi cosa abbia la possibilità di essere eseguita. Continuerò a lavorare su questo e posterò quello che trovo. Potrebbe essere che dovrò girare questo al ServiceDesk. Come ho detto prima, però, ho un workaround, per quanto doloroso possa essere. :-)

 
ProfessorMetal:

Pensiero profondo,

L'installazione di MT4 non ha la directory profiles/templates che la documentazione dice che dovrebbe avere. Ecco perché l'ho aggiunta io stesso e poi ci ho salvato il mio modello di debug.


Nemmeno il mio ce l'ha nella directory di installazione. Non importa.
 
DeepThought:

Nessuno dei miei lo ha nella directory di installazione. Non importa.

:-)