Ancora non capisco - avete predittori che richiedono un calcolo più profondo? Ho bisogno di un - MA sul grafico giornaliero :) Sto solo eseguendo i test un anno prima e il commercio prima di quella data può essere vietato...
Sì - la profondità della storia è necessaria per più di un anno. La soluzione è già stata trovata. Ora farò anche un lancio anticipato di 3 anni e li salterò.
Vladimir Simakov: Quando tornerò dalle vacanze, se non sarà troppo disturbo, studierò la questione. Ma logicamente il bug potrebbe essere nel tuo codice e non in mql. A proposito, solo per divertimento, e se avete una libreria che funziona con quale codifica? Sei sicuro che utf-16, ma cosa succede se è utf-8, dopo tutto, il più comune.
Non l'ho ancora controllato, grazie per il suggerimento. Scaverò in quella direzione. La libreria è per Ocean, le classi con cui sto lavorando sono selezionate con una W, cioè Unicode.
utf-16 implica il tipo wchar_t, la funzione di libreria che legge la stringa restituisce const wchar_t* Da questo risulta chiaro che la funzione restituisce un puntatore alla stringa in codifica utf-16 Nelle proprietà del progetto, il supporto dei caratteri Unicode è anche selezionato. La documentazione di mql dice che la stringa funziona in Unicode.
Ho il sospetto che la variante 2 girerà più velocemente?
se è così, dove possono essere le insidie - uso in OnTick() - per cercare nell'ottimizzatore il tempo di scambio, cercando modi per ottimizzare il codice
SZZ: posso chiedere come controllare le opzioni di velocità numero 1 e numero 2, è molto probabile che il compilatore ottimizzi il codice eseguibile e i test non saranno corretti - quindi chiedo
Posso chiedere come verificare le varianti 1 e 2 in termini di velocità, c'è un'alta probabilità che il compilatore ottimizzi il codice eseguibile e i test non saranno corretti - quindi chiedo
Eseguire il solito test separatamente per 1 e 2 e confrontare i tempi? )
Se il tempo è trascurabile, eseguite la stessa ottimizzazione con la variante 1 e la variante 2.
HH: Posso chiedere come testare le varianti #1 e #2 sulla velocità, è altamente probabile che il compilatore ottimizzi il codice eseguibile e i test non saranno corretti - ecco perché chiedo
При написании разных версий кода может возникнуть необходимость измерения влияния их на общую производительность советника в тестере. Это позволяет не только понять, насколько оптимален написанный код по сравнению с другим, но и дает предпосылки к будущей быстрой оптимизации советника. Такой подход позволяет выявить "бутылочное горлышко" в...
Sto ottimizzando di nuovo, non sono sicuro di poter testare la velocità di esecuzione di questo codice:
Ho il sospetto che la variante 2 girerà più velocemente?
se è così, dove possono essere le insidie - uso in OnTick() - per trovare nel tempo di scambio dell'ottimizzatore, cercando modi per ottimizzare il codice
SZZ: posso chiedere come controllare le opzioni di velocità numero 1 e numero 2, è molto probabile che il compilatore ottimizzi il codice eseguibile e i test non saranno corretti - quindi chiedo
Controlla in modalità debug. Il compilatore non dovrebbe ottimizzare lì, anche se non so come sia nella realtà.
Domanda su ArrayResize. Faccio una riserva per diversi gigabyte in una volta sola. Poi aumento gradualmente la dimensione che è inferiore alla riserva iniziale.
Perché TaskManager mostra un aumento del consumo di memoria durante l'aumento delle dimensioni?
Domanda su ArrayResize. Faccio una riserva per diversi gigabyte in una volta sola. Poi aumento gradualmente la dimensione che è inferiore alla riserva iniziale.
Perché TaskManager mostra un aumento del consumo di memoria durante l'aumento delle dimensioni?
Perché oltre a metatrader c'è il sistema operativo Windows, che alla fine decide quale delle dozzine di processi (a proposito, ognuno di loro ha 4 GB di spazio di indirizzamento per impostazione predefinita) dovrebbe davvero essere assegnato alla RAM (quanta RAM hai lì?).
Ancora non capisco - avete predittori che richiedono un calcolo più profondo? Ho bisogno di un - MA sul grafico giornaliero :) Sto solo eseguendo i test un anno prima e il commercio prima di quella data può essere vietato...
Si prega di aggiornare il compilatore KB.
Quando tornerò dalle vacanze, se non sarà troppo disturbo, studierò la questione. Ma logicamente il bug potrebbe essere nel tuo codice e non in mql.
A proposito, solo per divertimento, e se avete una libreria che funziona con quale codifica? Sei sicuro che utf-16, ma cosa succede se è utf-8, dopo tutto, il più comune.
Non l'ho ancora controllato, grazie per il suggerimento. Scaverò in quella direzione.
La libreria è per Ocean, le classi con cui sto lavorando sono selezionate con una W, cioè Unicode.
Come ho capito la codifica.
const char *Utf8;
const char *Ansi;
const wchar_t *Utf16;
const wchar_t *Utf32;
utf-16 implica il tipo wchar_t, la funzione di libreria che legge la stringa restituisce const wchar_t*
Da questo risulta chiaro che la funzione restituisce un puntatore alla stringa in codifica utf-16
Nelle proprietà del progetto, il supporto dei caratteri Unicode è anche selezionato.
La documentazione di mql dice che la stringa funziona in Unicode.
Sto ottimizzando di nuovo, non sono sicuro di poter testare la velocità di esecuzione di questo codice:
Ho il sospetto che la variante 2 girerà più velocemente?
se è così, dove possono essere le insidie - uso in OnTick() - per cercare nell'ottimizzatore il tempo di scambio, cercando modi per ottimizzare il codice
SZZ: posso chiedere come controllare le opzioni di velocità numero 1 e numero 2, è molto probabile che il compilatore ottimizzi il codice eseguibile e i test non saranno corretti - quindi chiedo
Posso chiedere come verificare le varianti 1 e 2 in termini di velocità, c'è un'alta probabilità che il compilatore ottimizzi il codice eseguibile e i test non saranno corretti - quindi chiedo
Eseguire il solito test separatamente per 1 e 2 e confrontare i tempi? )
Se il tempo è trascurabile, eseguite la stessa ottimizzazione con la variante 1 e la variante 2.
HH: Posso chiedere come testare le varianti #1 e #2 sulla velocità, è altamente probabile che il compilatore ottimizzi il codice eseguibile e i test non saranno corretti - ecco perché chiedo
https://www.mql5.com/ru/code/18804
Sto ottimizzando di nuovo, non sono sicuro di poter testare la velocità di esecuzione di questo codice:
Ho il sospetto che la variante 2 girerà più velocemente?
se è così, dove possono essere le insidie - uso in OnTick() - per trovare nel tempo di scambio dell'ottimizzatore, cercando modi per ottimizzare il codice
SZZ: posso chiedere come controllare le opzioni di velocità numero 1 e numero 2, è molto probabile che il compilatore ottimizzi il codice eseguibile e i test non saranno corretti - quindi chiedo
Domanda su ArrayResize. Faccio una riserva per diversi gigabyte in una volta sola. Poi aumento gradualmente la dimensione che è inferiore alla riserva iniziale.
Perché TaskManager mostra un aumento del consumo di memoria durante l'aumento delle dimensioni?
Domanda su ArrayResize. Faccio una riserva per diversi gigabyte in una volta sola. Poi aumento gradualmente la dimensione che è inferiore alla riserva iniziale.
Perché TaskManager mostra un aumento del consumo di memoria durante l'aumento delle dimensioni?
Eseguire un test normale separatamente per 1 e 2 e confrontare i tempi? )
Se il tempo è trascurabile, eseguite la stessa ottimizzazione con la variante 1 e la variante 2.
https://www.mql5.com/ru/code/18804
Sto facendo qualcosa di sbagliato, ancora non ho potuto vedere la differenza, i risultati fluttuano intorno a 0,1 sec su una singola corsa