MT5 et la vitesse en action - page 55

 
fxsaber:

La tâche consiste à forcer le terminal à libérer de la mémoire.

J'ai vérifié mes hypothèses

Ne libère pas la mémoire, ou plutôt ne libère pas la mémoire complètement en une seule fois - libère la mémoire pour la variable locale - classe/structure, mais dans la mémoire terminale il y aura une copie des ticks.


every Sleep(1000) - TOUJOURS la mémoire est libérée après le 9ème glissement, c'est-à-dire qu'il s'agit d'une restriction artificielle de la sauvegarde des ticks dans le terminal, pas dans EA

Apparemment, il n'y a aucun moyen - seulement si les développeurs changent la logique de stockage de ces données.

 
fxsaber:
Un exemple d'un EA qui va tuer la plupart des VPS.

Je l'ai fait tourner sur MetaQuotes-Demo sur une tablette Atomic avec 4 Go de mémoire - le résultat :

2020.10.13 22:43:51.219 0018 (USDJPY,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 1747129
2020.10.13 22:43:51.294 0018 (USDJPY,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 913
2020.10.13 22:43:51.995 0018 (EURUSD,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 1976814
2020.10.13 22:43:52.071 0018 (EURUSD,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1335
2020.10.13 22:43:53.415 0018 (AUDUSD,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 1964168
2020.10.13 22:43:53.452 0018 (AUDUSD,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1465
2020.10.13 22:43:54.554 0018 (CHFJPY,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 1784317
2020.10.13 22:43:54.607 0018 (CHFJPY,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1483
2020.10.13 22:43:56.546 0018 (EURNZD,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 2729847
2020.10.13 22:43:56.611 0018 (EURNZD,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1483
2020.10.13 22:43:58.199 0018 (EURJPY,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 2288326
2020.10.13 22:43:58.278 0018 (EURJPY,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1484

Pas de catastrophe - Opera avec plusieurs onglets prend même plus de temps à charger.

Qu'est-ce que je fais de mal ?

 
A100:

Je l'ai fait tourner sur MetaQuotes-Demo sur une tablette Atomic avec 4 Go de mémoire - le résultat :

Pas de catastrophe - Opera avec plusieurs onglets prend plus de temps à charger.

Qu'est-ce que je fais de mal ?

Pas assez de tiques. Regardez le nombre dans mes registres.

 
fxsaber:

Pas beaucoup de tiques. Regardez la quantité dans mes registres.

Une fonction étrange CopyTicksRange - a augmenté la période de requête plusieurs fois, mais aucun ticks n'est ajouté et aucune erreur n'est retournée, GetLastError est zéro après la requête.

 

La période d'interrogation était fixée au 01.06.20 - en conséquence, après avoir redémarré la tablette et le terminal, le résultat était le suivant (il ne restait que les informations pertinentes à sortir) :

2020.10.14 04:03:31.203 0018 (EURGBP,H1)        Тиков=6855538, Памяти=2202
2020.10.14 04:03:35.271 0018 (EURCHF,H1)        Тиков=6385392, Памяти=2225
2020.10.14 04:03:41.031 0018 (EURAUD,H1)        Тиков=9317261, Памяти=2916
2020.10.14 04:03:44.068 0018 (CHFJPY,H1)        Тиков=6586851, Памяти=2528
2020.10.14 04:03:47.109 0018 (AUDUSD,H1)        Тиков=6214303, Памяти=2157
2020.10.14 04:03:50.634 0018 (EURUSD,H1)        Тиков=6946988, Памяти=2157
Le nombre de tiques est comparable
 
J'ai défini la période du 01.01.20, Sleep(15000). Résultat :
2020.10.14 04:21:30.297 0018 (EURGBP,H1)        Тиков=17354722, Памяти=6523
2020.10.14 04:21:40.916 0018 (AUDUSD,H1)        Тиков=13644101, Памяти=6525
2020.10.14 04:21:57.025 0018 (EURAUD,H1)        Тиков=21763832, Памяти=5520
2020.10.14 04:22:08.628 0018 (CHFJPY,H1)        Тиков=16150733, Памяти=4729
2020.10.14 04:22:19.463 0018 (EURUSD,H1)        Тиков=18471813, Памяти=3462
2020.10.14 04:22:29.411 0018 (EURCHF,H1)        Тиков=16227930, Памяти=2514

Juste un rappel - j'ai 4Gb de mémoire seulement incluant la mémoire vidéo, c'est-à-dire que seulement 3.9-1.7 est vraiment libre et ici j'ai besoin de 6.5 juste pour la tâche - et tout est lent, mais ça marche !

 

Pour un travail de tic-tac en masse, mettez plus de mémoire.

4 Go (prix 20 €), c'est loin d'être suffisant en 2020 pour l'analyse et la recherche.

 

Sortie de la bêta 2652, d'importance :

  • corrections dans les expressions Watch List du débogueur
  • les interruptions de compilation se sont améliorées (de 22%).
  • Accélération spectaculaire de l'accès à SymbolInfoTick
  • Améliorations dans le rapport du profileur
  • interdiction d'effectuer des transactions lors du lancement de conseillers experts basés sur des cadres dans le testeur
  • Correction de la réinitialisation des paramètres en appuyant sur le bouton "Reset" dans les paramètres de l'indicateur "Ichimoku Kinko Hyo".

 
Renat Fatkhullin:

Sortie de la bêta 2652, d'importance :

  • corrections dans les expressions Watch List du débogueur
  • les interruptions de compilation se sont améliorées (de 22%).
  • Accélération spectaculaire de l'accès à SymbolInfoTick
  • Améliorations dans le rapport du profileur
  • interdiction d'effectuer des transactions lors du lancement de conseillers experts basés sur des cadres dans le testeur
  • Correction de la réinitialisation des paramètres en appuyant sur le bouton "Reset" dans les paramètres de l'indicateur "Ichimoku Kinko Hyo".

Des variables prédéfinies, pour le tick actuel, seraient probablement meilleures.


 
Gentlemen prog...
Lisez d'abord ce qu'est l'allocation de mémoire dans l'ordinateur, puis comment et par quels moyens elle se fait, ensuite comment nettoyer et lire depuis et vers n'est pas difficile. Au moins, il est possible de faire des suggestions plus raisonnables aux développeurs.