Errori, bug, domande - pagina 2558

 
Aleksey Vyazmikin:

Vi darò alcune informazioni sull'ambiente:

- Indicatori 16, il rendering non è complicato, senza kanvas, barre degli strumenti e altri fronzoli - bastoni/strisce - uno screenshot è allegato.

- Nessun programma sul grafico, apro la finestra dopo l'ottimizzatore, è solo un esempio - anche i grafici di lavoro sono lenti, ma meno (ci sono meno indicatori).

- No, gli eventi non vengono elaborati.

- La modalità di visualizzazione delle barre illimitata è selezionata, cioè la paginazione è in un certo senso esclusa.

- Non ci sono oggetti grafici, o meglio ho rimosso tutte le frecce e i trattini. Rimane solo un'etichetta - è quella dell'indicatore. Oggi ho un giorno libero e non dovrebbe interferire con esso.

Ho uno screenshot sopra che mostra che la scheda grafica non funziona, posso controllare se funziona o è normale quando il carico è vicino allo zero e il core è occupato?


Qui si tratta di un problema noto sul suo volto, il funzionamento degli indicatori in un filo!
Un solo filo non può gestire il carico!
Abbiamo bisogno del multi-threading, è stato scritto molte volte in precedenza.

 

Si è rivelato più semplice, ho salvato il modello dopo l'ottimizzazione, ho aperto un nuovo grafico e caricato il modello - nessun freno, il che significa che i freni sono esattamente quando il grafico viene chiamato dall'ottimizzatore!

Non ha notato che H1 è stato aperto di default e i freni su M1. Gli indicatori incorporati funzionano ancora bene, ma alcuni dei miei sono lenti nel rendering.

Ho trovato un indicatore che anche in 1 istanza può caricare il processore (basta scorrere avanti e indietro sul grafico con la rotella del mouse) - se vuoi un'analisi dettagliata - posso inviartela di persona.
 
I commenti non relativi a questo argomento sono stati spostati in "Tutte le domande dei neofiti su MQL4 e MQL5, aiuto e discussione su algoritmi e codici".
 
Renat Fatkhullin:

1) dovete troncare lo storione con INT_MAX(2 bn) qui:

anche questo possiamo correggere

2) tutta la memoria deve essere gestita nel modo più rigido, nessun GC qui

3) la reinizializzazione dell'indicatore al cambio di timeframe è calda senza la reinizializzazione fisica da zero, quindi è necessario liberare la memoria da soli. soprattutto le risorse a livello globale

4) usare OOP, darà almeno la possibilità di descrivere e controllare correttamente le risorse

Capito, grazie.
Infatti, senza INT_MAX il crash non potrebbe essere riprodotto. Non ci avrei mai pensato. Starò più attento a usare valori estremi d'ora in poi. Li ho usati molto.
A volte si vuole fare lo scemo nel codice per riprodurlo e controllare la protezione infallibile.

 
I commenti non relativi a questo argomento sono stati spostati in "Tutte le domande dei neofiti su MQL4 e MQL5, aiuto e discussione su algoritmi e codici".
 

la differenza di prestazioni tra MQ5 e MQL4 è fantastica, ma vorrei finire il codice multipiattaforma, quindi ho una domanda:

1. Quale profiler(MQ5 o MQL4) è meglio usare per valutare l'ottimizzazione dopo aver fatto dei cambiamenti in un codice sorgente?

2. Ha senso trasformare tutte le chiamate Print() in controllo if( MQLInfoInteger(MQL_OPTIMIZATION)) o le chiamate Print() saranno automaticamente escluse senza perdita di prestazioni?

 

Ottimizzatore

2019.09.14 20:24:18.638 Core 2  genetic pass (2, 504) tested with error "no memory in OnTick function (cannot get 5376 Kb, used 1943 Mb)" in 0:00:21.536
2019.09.14 20:24:33.884 Core 1  genetic pass (2, 432) tested with error "no memory in OnTick function (cannot get 5088 Kb, used 2130 Mb)" in 0:00:26.018
2019.09.14 20:24:40.079 Core 2  genetic pass (2, 504) tested with error "no memory in OnTick function (cannot get 5376 Kb, used 1943 Mb)" in 0:00:21.439
2019.09.14 20:25:00.011 Core 1  genetic pass (2, 432) tested with error "no memory in OnTick function (cannot get 5088 Kb, used 2130 Mb)" in 0:00:26.125
2019.09.14 20:25:00.024 Core 1  genetic pass (2, 432) tested with error "no memory" in 0:00:00.000
2019.09.14 20:25:00.037 Core 1  genetic pass (2, 432) tested with error "no memory" in 0:00:00.000
2019.09.14 20:25:01.671 Core 2  genetic pass (2, 504) tested with error "no memory in OnTick function (cannot get 5376 Kb, used 1943 Mb)" in 0:00:21.589
2019.09.14 20:25:01.680 Core 1  genetic pass (2, 504) tested with error "no memory" in 0:00:00.000
2019.09.14 20:25:01.693 Core 1  genetic pass (2, 504) tested with error "no memory" in 0:00:00.000
2019.09.14 20:25:10.181 Core 3  genetic pass (2, 432) tested with error "no memory in OnTick function (cannot get 5088 Kb, used 1659 Mb)" in 0:00:10.142
2019.09.14 20:25:10.190 Core 1  genetic pass (2, 432) tested with error "no memory" in 0:00:00.000
2019.09.14 20:25:10.203 Core 1  genetic pass (2, 432) tested with error "no memory" in 0:00:00.000
2019.09.14 20:25:10.215 Core 1  genetic pass (2, 432) tested with error "no memory" in 0:00:00.000
2019.09.14 20:25:10.228 Core 1  genetic pass (2, 432) tested with error "no memory" in 0:00:00.000
2019.09.14 20:25:20.343 Core 3  genetic pass (2, 432) tested with error "no memory in OnTick function (cannot get 5088 Kb, used 1659 Mb)" in 0:00:10.114

All'inizio, tutti i core hanno funzionato per circa un'ora senza errori. Non ci sono array nell'EA. Poi hanno cominciato a verificarsi questi errori.

Ho solo un terminale in funzione sul mio computer. 16Gb, 7 core coinvolti.


SZY L'Expert Advisor si differenzia dagli altri in quanto ha un numero maggiore di operazioni


Quanto consuma allora la storia commerciale?


ZZZY Ogni tanto appare la scritta "no disk space", anche se decine di gigabyte sono liberi.

 
Domanda in fondo alla mia mente: come mettere il sorgente in kodobase insieme alle risorse grafiche in formato bmp (che vanno in OBJ_BITMAP_LABEL, per esempio)? Lalibreria standard ha solo file bmp nella cartella res (cioè non so se le risorse possono essere png/jpg). Se allegato in zip, il codice non si compila quando viene controllato, vero?
 
Stanislav Korotky:
Domanda in fondo alla mia mente: come mettere il sorgente in kodobase insieme alle risorse grafiche in formato bmp (che vanno in OBJ_BITMAP_LABEL, per esempio)? La libreria standard ha solo file bmp nella cartella res (cioè non so se le risorse possono essere png/jpg). Se allegato in zip, il codice non si compila quando viene controllato, vero?
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XX): Создание и хранение ресурсов программы
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XX): Создание и хранение ресурсов программы
  • www.mql5.com
Часто при создании программы, нам требуется использовать звуки и изображения. В языке MQL есть несколько возможностей использования таких данных, и все они связаны с необходимостью загружать файлы из файловой песочницы терминала. Если в конечном результате предполагается скомпилированный файл, то достаточно подключить файл как ресурс и...
 
Artyom Trishkin:

Questo dovrebbe in qualche modo rispondere alla domanda su codobase?