MT5 und Geschwindigkeit in Aktion - Seite 55

 
fxsaber:

Die Aufgabe besteht darin, das Terminal zu zwingen, Speicher freizugeben.

Ich habe meine Annahmen überprüft

Gibt den Speicher nicht frei, oder besser gesagt, gibt den Speicher nicht vollständig auf einmal frei - gibt den Speicher für die lokale Variable frei - Klasse/Struktur, aber im Terminalspeicher wird eine Kopie von Ticks sein


every Sleep(1000) - Speicher wird IMMER nach dem 9. Slip freigegeben, d.h. dies ist eine künstliche Beschränkung der Tick-Speicherung im Terminal, nicht in EA

Offenbar gibt es keine Möglichkeit - nur wenn die Entwickler die Speicherlogik für diese Daten ändern

 
fxsaber:
Ein Beispiel für einen EA, der die meisten VPS töten wird.

Ich habe es mit MetaQuotes-Demo auf einem Atomic-Tablet mit 4 GB Speicher ausgeführt - das Ergebnis:

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

Keine Katastrophe - Opera mit mehreren Tabs braucht sogar länger zum Laden.

Was mache ich falsch?

 
A100:

Ich habe es mit MetaQuotes-Demo auf einem Atomic-Tablet mit 4 GB Speicher ausgeführt - das Ergebnis:

Keine Katastrophe - Opera mit mehreren Tabs braucht länger zum Laden.

Was mache ich falsch?

Nicht genug Zecken. Sehen Sie sich die Zahl in meinen Protokollen an.

 
fxsaber:

Nicht viele Zecken. Sehen Sie sich die Menge in meinen Protokollen an.

Seltsame Funktion CopyTicksRange - Abfragezeitraum wurde mehrmals erhöht, aber es werden keine Ticks hinzugefügt und es werden keine Fehler zurückgegeben, GetLastError ist nach der Abfrage Null

 

Der Abfragezeitraum wurde auf den 01.06.20 gesetzt - das Ergebnis nach einem Neustart des Tablets und des Terminals war wie folgt (es wurden nur noch die relevanten Informationen ausgegeben):

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
Die Anzahl der Zecken ist vergleichbar
 
Ich habe den Zeitraum vom 01.01.20, Sleep(15000) eingestellt. Ergebnis:
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

Nur zur Erinnerung - ich habe 4Gb Arbeitsspeicher nur inklusive Videospeicher, d.h. nur 3.9-1.7 ist wirklich frei und hier brauche ich 6.5 nur für die Aufgabe - und alles ist langsam, aber es funktioniert!

 

Für die Arbeit mit Massentickern sollten Sie mehr Speicherplatz einrichten.

4 GB (Preis 20 €) sind im Jahr 2020 bei weitem nicht mehr ausreichend, wenn es um Analysen und Forschung geht.

 

Freigegebene Beta 2652, von Bedeutung:

  • Korrekturen in Watch-List-Ausdrücken des Debuggers
  • Kompilierunterbrechung verbessert (um 22 %).
  • Drastisch beschleunigter Zugriff auf SymbolInfoTick
  • Verbesserungen im Profiler-Bericht
  • Verbot des Handels beim Start von Frame-basierten Expert Advisors im Tester
  • Rücksetzen der Parameter beim Drücken der Schaltfläche "Zurücksetzen" in den Parametern des "Ichimoku Kinko Hyo"-Indikators behoben

 
Renat Fatkhullin:

Freigegebene Beta 2652, von Bedeutung:

  • Korrekturen in Watch-List-Ausdrücken des Debuggers
  • verbesserte Kompilierunterbrechungen (um 22%)
  • Drastisch beschleunigter Zugriff auf SymbolInfoTick
  • Verbesserungen im Profiler-Bericht
  • Verbot des Handels beim Start von Frame-basierten Expert Advisors im Tester
  • Rücksetzen der Parameter beim Drücken der Schaltfläche "Zurücksetzen" in den Parametern des "Ichimoku Kinko Hyo"-Indikators behoben

Vordefinierte Variablen für den aktuellen Tick wären wahrscheinlich besser.


 
Meine Herren Prog...
Lesen Sie zuerst über die Speicherzuweisung im Computer, dann wie und mit welchen Mitteln sie erfolgt, dann wie man sie bereinigt und von und zu liest, ist nicht schwer. Zumindest sind vernünftigere Vorschläge an die Entwickler möglich