Fehler, Irrtümer, Fragen - Seite 1938

 
Aleksey Vyazmikin:

Versuchen Sie Ihre Option - innerhalb der Fehlermarge ändern

Das war es:
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: 107509 Ticks, 35385 Balken erzeugt. Die Umgebung wurde um 0:00:00.032 synchronisiert. Test bestanden in 0:02:52.037 (einschließlich Ticks Vorverarbeitung 0:00:00.031).
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: Gesamtzeit von der Anmeldung bis zum Beenden des Tests 0:02:52.069 (einschließlich 0:00:00.032 für die Synchronisierung der Verlaufsdaten)
2017.07.21 17:23:20.046 Core 1 351 Mb Speicher verwendet, davon 32 Mb History-Daten, 64 Mb Tick-Daten

Wurde mit Ihrem Code
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: 107509 Ticks, 35385 Balken erzeugt. Die Umgebung wurde um 0:00:00.031 synchronisiert. Test bestanden in 0:02:58.013 (einschließlich Ticks Vorverarbeitung 0:00:00.031).
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: Gesamtzeit von der Anmeldung bis zum Beenden des Tests 0:02:58.044 (einschließlich 0:00:00.031 für die Synchronisierung der Verlaufsdaten)
2017.07.21 17:27:37.393 Core 1 352 Mb Speicher verwendet, davon 32 Mb History-Daten, 64 Mb Tick-Daten

MT4
2017.07.21 17:27:57.070 RUBRUR,M1: 225314 Tick-Ereignisse (35701 Takte, 231783 Taktzustände) verarbeitet in 0:00:04.306 (Gesamtzeit 0:00:11.357)

Hier können Sie auch versuchen, die Array-Deklaration in Funktionen zu entfernen und sie global zu machen. Das heißt, array arr[ 1 ] global machen und string double arr[ 1 ]; aus allen Funktionen entfernen.
 
Andrey Khatimlianskii:

Sie wurden bereits zu einer fertigen Lösung beraten -https://www.mql5.com/ru/code/18305

Nach Ihren Anforderungen zu urteilen:

Es ist das Richtige für Sie.

Ich habe es ausprobiert, und das ist das Ergebnis:

2017.07.21 18:15:16.395 Core 1 Si-9.17,M1: 107509 Ticks, 35385 Balken erzeugt. Die Umgebung wurde um 0:00:00.047 synchronisiert. Test bestanden in 0:02:37.748 (einschließlich Ticks Vorverarbeitung 0:00:00.031).
2017.07.21 18:15:16.395 Core 1 Si-9.17,M1: Gesamtzeit von der Anmeldung bis zum Beenden des Tests 0:02:37.795 (einschließlich 0:00:00.047 für die Synchronisierung der Verlaufsdaten)
2017.07.21 18:15:16.395 Core 1540 Mb Speicher verwendet, davon 32 Mb History-Daten, 64 Mb Tick-Daten

Nicht viel Nutzen, und aus unklaren Gründen ist das finanzielle Ergebnis anders :(

 
Alexey Kozitsyn:
Sie können auch versuchen, die Array-Deklaration in Funktionen zu entfernen und sie global zu machen. D.h. array arr[ 1 ] global machen und string double arr[ 1 ]; aus allen Funktionen entfernen.

Hier ist das Ergebnis

2017.07.21 18:28:58.653 Core 1 Si-9.17,M1: 107509 Ticks, 35385 Balken erzeugt. Die Umgebung wurde um 0:00:00.078 synchronisiert. Test bestanden in 0:02:51.477 (einschließlich Ticks Vorverarbeitung 0:00:00.031).
2017.07.21 18:28:58.653 Core 1 Si-9.17,M1: Gesamtzeit von der Anmeldung bis zum Beenden des Tests 0:02:51.555 (einschließlich 0:00:00.078 für die Synchronisierung der Verlaufsdaten)
2017.07.21 18:28:58.653 Core 1 359 Mb Speicher verwendet, davon 32 Mb History-Daten, 64 Mb Tick-Daten

Ja, es ist ein bisschen schneller als vorher, aber es ist kein Vergleich zu MQL4...

 
Was, wenn ich annehme, dass es nicht am Code liegt? Im Moment hat mein EA furchtbar verlangsamt und war nicht in der Lage, für etwa 10 Minuten zu beenden - ich habe keine Änderungen an ihm überhaupt gemacht....
 
Aleksey Vyazmikin:
Was ist, wenn ich annehme, dass es nicht am Code liegt? Im Moment verlangsamt sich mein Expert Advisor und ist seit etwa 10 Minuten nicht mehr in der Lage, seine Arbeit zu beenden - ich habe keine Änderungen an ihm vorgenommen....

Es hat sich herausgestellt, dass sich die Art des Tickens geändert hat... mystisch.
 

Also, meine Herren, jetzt bin ich ernsthaft verwirrt - schneiden Sie die ganze ungültige OnTick(), und bekam ein erstaunliches Ergebnis

2017.07.21 21 21:22:08.048 Core 1 Si-9.17,M1: 107509 Ticks, 35385 Balken erzeugt. Test bestanden in 0:02:32.928 (einschließlich Ticks Vorverarbeitung 0:00:00.031).
2017.07.21 21:22:08.048 Core 1 346 Mb Speicher verwendet, davon 32 Mb History-Daten, 64 Mb Tick-Daten

Und dann kommt mir eine Idee, vielleicht verlangsamen sich die externen Indikatoren, deren Handschrift deklariert und empfangen wird, wenn sie nicht einmal abgefragt werden, wenn ja, warum hat das Profiling dann darüber geschwiegen und mich einen Tag meines Lebens gekostet...

 
Aleksey Vyazmikin:

...wenn das der Fall ist, warum hat das Profiling dann geschwiegen und mir einen Tag meines Lebens geraubt...

Weil du deinen Code nicht veröffentlichst und jedem hier einen Tag seines Lebens raubst. Umkehrung des Universums )

 
Andrey Khatimlianskii:

Denn Sie geben Ihren Code nicht heraus und nehmen jedem hier einen Tag seines Lebens. Umkehrung des Universums )

Ist es das , wovon Sie sprechen?

 
Vitaly Muzichenko:

Ist es das , wovon Sie sprechen?

Sieht aus wie

 
Vitaly Muzichenko:

Ist es das , wovon Sie sprechen?


Nein, nein, ich habe die Ergebnisse der Profilerstellung veröffentlicht!