Errori, bug, domande - pagina 3153

 

Bug - Indicatore di codice fantasma

C'è un indicatore, c'è un esperto che ci sta lavorando. Il codice dell'indicatore è cambiato. Viene ricompilato e i cambiamenti dell'indicatore possono essere chiaramente visti sul grafico. L'Expert Advisor viene eseguito nel tester, ma sembra che il codice non sia stato modificato. Il risultato è lo stesso.

Potete anche cancellare l'ex5 dell'indicatore. Potete continuare ad eseguire l'esperto nel tester (questo ex5 cancellato è chiaramente segnato in esso) come se non fosse successo nulla. Dove prende il file per l'esecuzione, da ether????

Se riavviate il terminale ed eseguite il tester dopo di che vedrà il nuovo codice. (e lancia un errore se manca ex5)


Ho provato diversi modi per fargli vedere il nuovo codice - ho riloggato il terminale (senza riavviare) e ricompilato l'espert stesso. Cambiati i parametri degli esperti nel tester. Niente aiuta, tranne il riavvio del terminale

 
Max B #:

Bug - Indicatore di codice fantasma

C'è un indicatore, c'è un esperto che ci sta lavorando. Il codice dell'indicatore è cambiato. Viene ricompilato e i cambiamenti dell'indicatore possono essere chiaramente visti sul grafico. L'Expert Advisor viene eseguito nel tester, ma sembra che il codice non sia stato modificato. Il risultato è lo stesso.

Potete anche cancellare l'ex5 dell'indicatore. Potete continuare ad eseguire l'esperto nel tester (questo ex5 cancellato è chiaramente segnato in esso) come se non fosse successo nulla. Dove prende il file per l'esecuzione, da ether????

Se riavviate il terminale ed eseguite il tester dopo di che vedrà il nuovo codice. (e lancia un errore se manca ex5)


Ho provato diversi modi per fargli vedere il nuovo codice - ho riloggato il terminale (senza riavviare) e ricompilato l'espert stesso. Cambiati i parametri degli esperti nel tester. Niente aiuta, tranne il riavvio del terminale.

Lei ha già risposto alla sua stessa domanda. Se cancelli qualcosa e appare, significa che è stato salvato da qualche parte))). Quando si avvia il terminale, l'intero ambiente viene estratto dal profilo dell'ultimo stato. È come se aveste resettato tutti gli Expert Advisors e gli indicatori nella finestra del terminale con i parametri preimpostati. Nel tuo caso, l'Expert Advisor deve essere ricompilato o può essere rimosso e ricaricato. Esso (l'EA) ha già estratto le maniglie e i dati della vecchia versione e non li ricalcola.

 
Valeriy Yastremskiy #:

Lei stesso ha risposto alla sua stessa domanda. Se si cancella qualcosa e questa appare, deve essere conservata da qualche parte). Quando si carica il terminale, l'intero ambiente viene estratto dal profilo dell'ultimo stato. È come se aveste resettato tutti gli Expert Advisors e gli indicatori nella finestra del terminale con i parametri preimpostati. Nel tuo caso, l'Expert Advisor deve essere ricompilato o può essere rimosso e ricaricato. Esso (l'EA) ha già tirato le maniglie e i dati della vecchia versione e non li ricalcola.

L'Expert Advisor nel terminale non si blocca su nulla, è solo il tester di strategia che lo lascia entrare. L'Expert Advisor stesso ha un deinit dove ho IndicatorRelease(handle_mtf_Sys); ho provato a ricompilare l'EA - non aiuta. In qualche modo prende ancora il codice fantasma

 
Max B #:

L'Expert Advisor nel terminale non si blocca su nulla, solo il tester di strategia lo permette. L'Expert Advisor stesso ha un deinit dove IndicatorRelease(handle_mtf_Sys); ho provato a ricompilarlo - non serve a niente.

Nel tester, oltre alla scheda Impostazioni, c'è anche una scheda Impostazioni. Controllali, forse ci sono vecchi valori predefiniti. Se non è anche questo, allora sì, è un bug, ho avuto la stessa cosa circa 2 mesi fa, poi è andato via, non so di cosa si trattasse.
 
Max B #:

L'Expert Advisor nel terminale non si blocca su nulla, solo il tester di strategia lo permette. L'Expert Advisor stesso ha un deinit dove ho IndicatorRelease(handle_mtf_Sys); ho provato a ricompilare l'EA - non aiuta.

Prima si compila l'indicatore, poi l'EA? E l'EA prende i dati del vecchio indicatore? Se è così, deve essere un bug. L'Expert Advisor non si blocca, funziona nella finestra del grafico del terminale. E la chiusura normale ricorda e memorizza lo stato di tutti i grafici. Forse ha anche dei file fisici. Non lo so. Ma a giudicare dal bug è possibile.

Se avete cancellato un exechanger, ma avete un file mcl, allora tutti i file mcl con exechanger mancanti vengono compilati quando il terminale viene caricato. Questo è uno dei modi per compilare e ottenere esezioni di file mcl senza meta-editor - per ricaricare il terminale.

 
Wizard #:
In Strategy Tester, oltre alla scheda Settings, c'è anche la scheda Settings. Controllali, forse i vecchi valori sono lì di default. Se non è lo stesso, allora sì, questo è un bug, 2 mesi fa, ero lo stesso, poi è scomparso, non so di cosa si trattasse.

I parametri sono memorizzati lì - ma non cambiano e non hanno importanza in questo caso. È il codice all'interno dell'indicatore che cambia. In generale, il bug è sgradevole - ogni volta prima di eseguire il tester, il terminale deve essere ricaricato.

Valeriy Yastremskiy #:

Prima si compila l'indicatore, poi l'Expert Advisor, e l'Expert Advisor prende i dati del vecchio indicatore? Se è così, deve essere un bug. L'Expert Advisor non si blocca, funziona nella finestra del grafico del terminale. E la chiusura normale ricorda e memorizza lo stato di tutti i grafici. Forse anche con file fisici. Non lo so. Ma a giudicare dal bug, potrebbe essere così.

Il fatto è che il nostro EA non si siede su nessun grafico. È solo nel tester di strategia selezionato. Sono preoccupato per il debug nel tester della strategia, non nel terminale. Non dovrebbe essere memorizzato nella cache da nessuna parte.

Quando si avvia lo Strategy Tester, dovrebbe essere caricata l'ultima versione compilata dell'indicatore e dell'EA, non il fantasma sconosciuto da fonti sconosciute. Ha senso?

 
Max B #:

I parametri sono memorizzati lì - ma non cambiano e non hanno importanza in questo caso. È il codice all'interno dell'indicatore che cambia. In generale, questo bug è sgradevole - ogni volta prima di avviare il tester devo riavviare il terminale.

Il fatto è che il nostro EA non appartiene a nessun grafico. È solo nel tester di strategia. Mi interessa il debugging nel tester di strategia, non nel terminale. Non dovrebbe essere memorizzato nella cache da nessuna parte.

Quando si avvia lo Strategy Tester, dovrebbe essere caricata l'ultima versione compilata dell'indicatore e dell'EA, non il fantasma sconosciuto da fonti sconosciute. Ha senso?

Fate un esempio riproducibile di un bug e postatelo qui con il codice e la sequenza di azioni. Forse gli sviluppatori faranno attenzione).
 

Voglio fare un elenco a discesa di coppie di valute e strumenti (coppie proprie) nella finestra delle impostazioni di input dell'EA. Come posso fare?

Seconda domanda: come sarebbe corretto scrivere...

Come questo:

double stop = SymbolInfoDouble(_Symbol, SYMBOL_ASK) - NormalizeDouble(100*_Point, _Digits);

O come questo:

double stop = NormalizeDouble(SymbolInfoDouble(_Symbol, SYMBOL_ASK) - 100*_Point, _Digits);

???

Terza domanda. È possibile normalizzare i prezzi 2-3 volte di seguito? Non influirà sul lavoro?

So che le domande sono stupide, ma sono le piccole cose che mi affliggono al momento, anche se entrambe le opzioni funzionano. Bisogna sapere come farlo bene.

 
Wizard #:

Voglio fare un elenco a discesa di coppie di valute e strumenti (coppie proprie) nella finestra delle impostazioni di input dell'EA. Come posso fare?

Seconda domanda: come sarebbe corretto scrivere...

Come questo:

O come questo:

???

Terza domanda. È possibile normalizzare i prezzi 2-3 volte di seguito? Non influirà sul lavoro?

So che le domande sono stupide, ma sono le piccole cose che mi affliggono al momento, anche se entrambe le opzioni funzionano. Bisogna sapere come farlo bene.

Questo costrutto NormalizeDouble dovrebbe essere evitato se possibile, è pesante da gestire.

 
Vitaly Muzichenko #:

Questa costruzione NormalizeDouble dovrebbe essere evitata se possibile, è pesante da gestire.

Capito. E se non voglio usare la funzione NormalizePrice della classe CSymbolInfo (cerco di evitare le librerie se possibile), c'è un'alternativa?

Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo
  • www.mql5.com
CSymbolInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5