Come posso cambiare la struttura della variabile globale nell'indicatore quando mi sposto in un altro timeframe? - pagina 7

 

fxsaber
:

Il risultato del lavoro con SIZE = 1000 del mio codice(file StructArr.mqh - leggermente modificato. Ho buttato via cose inutili):

2021.07.11 08:13:06.839 TestVar (EURUSD,M5)     Сохранение данных - 30 микросекунд
2021.07.11 08:13:06.839 TestVar (EURUSD,M5)     Время T[] -> uint[] - 23 микросекунд
2021.07.11 08:13:17.276 TestVar (EURUSD,M6)     Востановление данных - 272 микросекунд
2021.07.11 08:13:17.276 TestVar (EURUSD,M6)     Время uint[] -> T[] - 22 микросекунд
2021.07.11 08:13:20.448 TestVar (EURUSD,M10)    Востановление данных - 488 микросекунд
2021.07.11 08:13:20.448 TestVar (EURUSD,M10)    Время uint[] -> T[] - 30 микросекунд
2021.07.11 08:13:23.431 TestVar (EURUSD,M12)    Востановление данных - 1355 микросекунд
2021.07.11 08:13:23.431 TestVar (EURUSD,M12)    Время uint[] -> T[] - 44 микросекунд
2021.07.11 08:13:27.729 TestVar (EURUSD,M20)    Востановление данных - 350 микросекунд
2021.07.11 08:13:27.729 TestVar (EURUSD,M20)    Время uint[] -> T[] - 22 микросекунд

Stesso risultato con la tua bibbia (file StructArrFx.mqh)

2021.07.11 08:20:52.663 TestVar (EURUSD,M5)     Сохранение данных - 60 микросекунд
2021.07.11 08:20:52.663 TestVar (EURUSD,M5)     Время T[] -> uint[] - 50 микросекунд
2021.07.11 08:21:01.888 TestVar (EURUSD,M6)     Востановление данных - 319 микросекунд
2021.07.11 08:21:01.888 TestVar (EURUSD,M6)     Время uint[] -> T[] - 7 микросекунд
2021.07.11 08:21:04.395 TestVar (EURUSD,M10)    Востановление данных - 615 микросекунд
2021.07.11 08:21:04.395 TestVar (EURUSD,M10)    Время uint[] -> T[] - 7 микросекунд
2021.07.11 08:21:07.774 TestVar (EURUSD,M12)    Востановление данных - 1410 микросекунд
2021.07.11 08:21:07.774 TestVar (EURUSD,M12)    Время uint[] -> T[] - 10 микросекунд
2021.07.11 08:21:10.292 TestVar (EURUSD,M15)    Востановление данных - 460 микросекунд
2021.07.11 08:21:10.292 TestVar (EURUSD,M15)    Время uint[] -> T[] - 6 микросекунд
2021.07.11 08:21:13.600 TestVar (EURUSD,M20)    Востановление данных - 692 микросекунд
2021.07.11 08:21:13.600 TestVar (EURUSD,M20)    Время uint[] -> T[] - 6 микросекунд


Vittoria a te :))
Dovrò scavare nel tuo codice :(
Buon lavoro. Grazie!

File:
 
fxsaber:

Un tale misuratore.

Sì, ho capito il tuo segreto.
Mi sono scervellato. Vedo che sembra che tu usi l'array dinamico all'interno dell'unione.
Poi ho capito come hai effettivamente fatto l'array pseudo-dinamico usando il loop.
È forte, specialmente il tuo stile crittografico "sto girando, sto avvitando" :))
Il guadagno è particolarmente evidente su grandi matrici di strutture.
L'unica cosa che potrei aver aggiunto è CONVERT_AMOUNT espanso a diversi valori: ad esempio 32, 128, 512, 2048, ... con rilevamento automatico.

 
Nikolai Semko:

Sì, ho capito il tuo segreto.
Mi sono scervellato. Vedo come se tu stessi usando un array dinamico all'interno dell'unione.
Poi ho capito come hai essenzialmente fatto un array pseudo dinamico usando un ciclo.
È forte, specialmente il tuo stile crittografico "sto girando, sto avvitando" :))
Il guadagno è particolarmente evidente su grandi array di strutture.
L'unica cosa che potrei aggiungere, èCONVERT_AMOUNT espanso a diversi valori: per esempio 32, 128, 512, 2048, ... Con rilevamento automatico.

 
fxsaber:
Forse. Credo di essermi imbattuto in qualcosa del genere.