Fehler, Irrtümer, Fragen - Seite 1625

 
Vladislav Andruschenko:

mt4 kompiliert in 888 msec.

das gleiche Projekt kompiliert 4103 ms in mt5

Nun, es scheint, dass die Probleme mit v5 verbunden sind. 4.5 Unterschied ist nicht ein wenig. Obwohl, um das Bild zu vervollständigen wäre es schön, mit alten Compiler (1159) zu überprüfen, wenn Sie es haben (oder ich kann es herunterladen). Aber vielleicht müssen Sie einige Korrekturen in Ihrem Code machen.
 
-Aleks-:

Ich habe kein Geld für MT5 - ich handle mit Cent-Konten und der DC hat es nicht eilig, sie für einen Fünfer zu eröffnen.

Ich habe nicht genau genug hingesehen. https://www.mql5.com/ru/forum/88768/page2#comment_2587760
Крупнейшие брокеры отмечают взрывной рост популярности MetaTrader 5
Крупнейшие брокеры отмечают взрывной рост популярности MetaTrader 5
  • Bewertungen: 3
  • www.mql5.com
Недавно один из национальных брокеров России Solid Financial Services запустил торговую платформу MetaTrader 5 с хеджинговой системой учета позиций...
 
Alexey Navoykov:

Ich möchte das Problem der langsamen MQL5-Kompilierung noch einmal ansprechen. Vor etwa drei Monaten habe ich versucht, dieses Problem anzusprechen, aber es wurde nicht verstanden, anscheinend waren meine Argumente nicht überzeugend genug. Daher bin ich zum alten Build (1159) zurückgekehrt, der alles fast sofort kompilierte (während mein Projekt mit den neuen Compilern in 20 Sekunden kompiliert wurde).

Und so habe ich vor einer Woche versucht, auf ein neues Build umzusteigen. Ich dachte mir, "vergiss die 20 Sekunden, ich halte es aus, um der neuen Sachen willen". Natürlich musste ich den Code ein wenig anpassen, um den neuen Bedingungen zu entsprechen, was einige Bugs des neuen Compilers offenbarte (über die ich hier berichtet habe).Das Ergebnis ist, dass mein Projekt bereits seit 30 Sekunden kompiliert! Ich weiß nicht, ob es mit der Kompliziertheit des Projekts oder mit einer weiteren "Komplikation" des Compilers zu tun hat, aber es passt einfach nicht mehr.

Das Projekt enthält etwa 700 Kb Quellcode, es ist ein Expert Advisor, der ein paar Dutzend mqh enthält. Alles ist OOP. Man schrieb mir früher, dass die Verlangsamung wahrscheinlich durch große Funktionen verursacht wird. Ich hatte ein paar davon. Nun, ich habe sie in kleinere Teile zerlegt und sie haben keine Wirkung.

Das Erstaunlichste ist, dass diese superlange Zusammenstellung überhaupt keinen Nutzen hat. Die Geschwindigkeit des Programms ist die gleiche wie mit dem alten Compiler, ich habe sie extra gemessen. Das lässt nur einen Satz zu: "Wozu?".

Ich habe das starke Gefühl, dass es einen Fehler/Fehlfunktion im Compiler gibt, aufgrund dessen er untätig durch einen leeren Raum rast. Wie sonst kann ich mir die Tatsache erklären, dass ein absolut leeres Skript mit nur der Funktion OpenStart() { } über 400 ms kompiliert!Es ist unvorstellbar, dass es so lange dauern kann, ein leeres Skript zu kompilieren/optimieren. Nun, wenn man kleine Funktionen und Klassen hinzufügt, kann man sehen, wie schnell die Kompilierungszeit wächst.

Ich möchte gleich sagen, dass meine Hardware natürlich alles andere als leistungsfähig ist - Core i5U. Aber das hindert mein Projekt nicht daran, in 1-2 Sekunden auf einem alten Compiler zu kompilieren, bzw. der Dummy ist dort in einem Moment kompiliert.

Ich möchte noch anmerken. Dem Compiler fehlt nicht nur die Zwischenspeicherung früher kompilierter Fragmente, sondern auch eine triviale Überprüfung, um sicherzustellen, dass der Quellcode identisch ist. D.h. Sie kompilieren Ihr Projekt und klicken dann erneut auf die Schaltfläche "Kompilieren", ohne irgendwelche Änderungen vorzunehmen, und warten wieder dieselben 30 Sekunden. Wie gut ist das?

Ich würde gerne Kommentare von MT-Entwicklern und Forumsnutzern hören, die mit großen Projekten arbeiten (habe nur ich dieses Problem?), wie lange es dauert zu kompilieren usw. Wir müssen gleich sagen, dass wir über die Kompilierung einer ausführbaren Datei sprechen.

Meine Projekte haben mehr als ein Dutzend Quelldateien, wie Ihre, und alle auf OOP, während ich nicht behaupten, über 20 Sekunden, aber mehr als 11 - 14 Sekunden sehe ich ständig. Dennoch findet eine Art Zwischenspeicherung statt, denn wenn Sie nichts ändern, ändert sich die Zeit um 1-2 Sekunden in eine unvorhersehbare Richtung. Ich vergleiche die Erstellung der Projekte mit dem alten und dem neuen Compiler nicht, weil die alten Compiler alles viel schneller erstellt haben. Ich denke, die Entwickler selbst sehen diesen Punkt und werden ihn eines Tages beheben :) Nicht umsonst veröffentlichen sie jeden Monat mehrere neue Durchläufe - das bedeutet, dass sie etwas erkennen und es beheben.

 

Terminalversion und Bitrate

v.1375, 64-bit

Beschreibung des Problems.

Nach dem Upgrade auf die neueste Version frieren die Agenten nach den ersten 1900-2100 Durchläufen während der Optimierung ein. Vor dem Update war alles in Ordnung, alle Parameter und der EA-Code sind identisch.

Abfolge der Maßnahmen

Die Optimierung beginnt. Eröffnungsmakler. Echtes Konto. Die Werkzeuge: Si Splice, Vtb Splice, Si 9.16, Vtb 9.16 (andere habe ich nicht ausprobiert). Intervall: monatlich, Minute, 15-Minuten. Eröffnungskurse oder OHLC.

Ergebnis.

Lokale und entfernte Agenten frieren nach 2000 Durchläufen tatsächlich ein, die CPU-Last ändert sich um etwa 0,01 % pro 10 Minuten. 14 Agenten.

Erwartetes Ergebnis

Optimierungs-Walkthrough wie bei der vorherigen Version.

Zusätzliche Informationen

Über mich: erfahrener .net MQL5 Programmierer


Ich habe mir die Protokolle überall angesehen. Ich habe sie mit den Protokollen des vorherigen Builds verglichen. Ich bin auf keine Probleme oder Fehler gestoßen. Die Qualität der Geschichte ist gut.
Dateien:
image.jpg  89 kb
 
coderex:

Allerdings findet eine gewisse Zwischenspeicherung statt, denn wenn Sie nichts ändern, ändert sich die Zeit um 1-2 Sekunden in eine unvorhersehbare Richtung.

:) es ist offensichtlich nur ein Fehler, Einfluss von anderen Prozessen im System, plus Disk-Cache. 10-15% ist auf jeden Fall überhaupt nicht die Indikatoren, für die Zwischenspeicherung durchgeführt wird.

Ich würde die Erstellung von Projekten mit alten und neuen Compilern nicht vergleichen, da die alten Compiler alles viel schneller erstellen. Ich denke, die Entwickler sehen diesen Punkt selbst und werden ihn irgendwann beheben :) Nicht umsonst werden jeden Monat mehrere neue Durchläufe veröffentlicht, das heißt, sie sehen etwas und beheben es.

Neue Betas werden veröffentlicht, weil sich die Leute über verschiedene Bugs beschweren, aber wenn Bugs ein solides Argument für sie sind, um sie zu beheben, dann ist der ganze Rest ... Man muss sie lange Zeit überzeugen. Selbst wenn es scheint, klar brachte alle Argumente, klar skizziert das Bild so klar wie sein kann, sie immer noch widerstehen, auf Biegen und Brechen :) Hier bin ich die gleichen 3 Monate vor versucht, sie zu überzeugen, aber niemand unterstützt.

Und ich habe gesehen, dass nur wenige Leute MQL für große Projekte verwenden und sich bei kleinen Projekten wahrscheinlich nicht die Mühe machen, wegen ein paar zusätzlicher Sekunden.

Übrigens, welche Art von CPU haben Sie?

 
Alexey Navoykov:

... sie werden alles tun, was sie können :)

Das ist, warum ich nicht versuche, etwas zu beweisen :) Darüber hinaus nehmen Plus-Projekte viel länger zu bauen, obwohl sie viel größer sind, aber ich bin daran gewöhnt, Plus-Builds in Minuten für ausführbare Datei oder Bibliothek, während das Projekt von mehreren Dateien mit Verzeichnisstruktur dauert bis zu mehrere Dutzend Minuten :) und 10-20 Sekunden zu warten ist kein Problem...
 
Alexey Viktorov:
Ich habe nicht genau genug hingesehen. https://www.mql5.com/ru/forum/88768/page2#comment_2587760
Der Link enthält nicht die Informationen, die Sie interessieren - seien Sie konkret.
 
ProfitTraderRU:

Terminalversion und Bitrate

v.1375, 64-bit

Beschreibung des Problems.

Nach dem Upgrade auf die neueste Version frieren die Agenten nach den ersten 1900-2100 Durchläufen während der Optimierung ein. Vor dem Update war alles in Ordnung, alle Parameter und der EA-Code sind identisch.

Abfolge der Maßnahmen

Die Optimierung beginnt. Eröffnungsmakler. Echtes Konto. Die Werkzeuge: Si Splice, Vtb Splice, Si 9.16, Vtb 9.16 (andere habe ich nicht ausprobiert). Intervall: monatlich, Minute, 15-Minuten. Eröffnungskurse oder OHLC.

Ergebnis.

Lokale und entfernte Agenten frieren nach 2000 Durchläufen tatsächlich ein, die CPU-Last ändert sich um etwa 0,01 % pro 10 Minuten. 14 Agenten.

Erwartetes Ergebnis

Optimierungs-Walkthrough wie bei der vorherigen Version.

Zusätzliche Informationen

Über mich: erfahrener .net MQL5 Programmierer


Ich habe mir die Protokolle überall angesehen. Ich habe sie mit den Protokollen des vorherigen Builds verglichen. Ich bin auf keine Probleme oder Fehler gestoßen. Die Qualität der Geschichte ist gut.

Tritt dieses Verhalten bei jedem Expert Advisor auf?

Es wäre schön, wenn Sie die Protokolle hätten. Bitte senden Sie ein Ticket an den Service Desk.

 
Ich habe nur meine EAs getestet. Beim vorherigen Build wurden sie normal optimiert.

Ich habeeinen Antrag bei servicedesk gestellt. Glauben Sie mir, in den Protokollen ist nichts Ungewöhnliches zu finden (ich habe die Protokolle des vorherigen und des aktuellen Builds gesehen).
 
Alexey Da:

Terminalprotokolle sind gut, interessanter sind Protokolle von Strategietestern und Testagenten.

+ Fügen Sie Ihrem Ticket mindestens EX5 Ihres Expert Advisors bei (wir löschen ihn nach der Recherche) + Beschreibung der bei der Optimierung verwendeten Parameter.

OK, vielen Dank.
Grund der Beschwerde: