Die neue MetaTrader 5 Plattform build 2650: Verbesserungen beim Laden von Hintergrundcharts und des MQL5-Code-Profilers

Die Registerkarte Optionen bietet eine neue Einstellung mit dem Titel "Chartdaten für offene Positionen und Orders vorab laden"

9 Oktober 2020

Terminal

  1. Die Registerkarte Optionen bietet eine neue Einstellung mit dem Titel "Chartdaten für offene Positionen und Orders vorab laden".

    Um Datenverkehr zu sparen, lädt die Handelsplattform die Historie der Symbolpreise nur dann herunter, wenn die entsprechenden Daten angefordert werden, z.B. beim Öffnen des Preischarts oder beim Start von Tests. Bei aktiv verwendeten Symbolen ist dies jedoch nicht immer sinnvoll. Wenn Sie die neue Option aktivieren, werden die Charts der Symbole, für die Sie offene Positionen oder Pending Orders haben, im Hintergrundmodus aktualisiert, sobald Sie die Plattform starten. Auf diese Weise müssen Sie nach der Chart-Eröffnung nicht auf das Herunterladen der Daten warten, und die relevanten Daten stehen sofort zur Analyse zur Verfügung.




  2. Korrektur der Generierung von Tagesbars nach Wochenenden.
  3. Korrektur der Aktualisierung von Charts. Nach dem zusätzlichen Herunterladen von aktualisierten Preisdaten konnte es gelegentlich vorkommen, dass die Charts nicht aktualisiert wurden.
  4. Optimierte Aktualisierung des Caches der Konto-Handelshistorie. Die Optimierung ermöglicht die Reduzierung von Datenverzögerungen bei der Verwendung der Funktionen History*.
  5. Korrektur der Darstellung der Kommentarspalte bei Anzeige Handelshistorie als Positionen.
  6. Die Anzeige der Schaltfläche SignalAbonnementserneuerung wurde korrigiert.

MQL5

  1. Weitere Verbesserungen innerhalb des Gesamtupdates des Code-Profilers. Die folgenden Funktionen wurden zusätzlich zu den in build 2615 vorgestellten Neuerungen implementiert:

    Neue Parameter wurden hinzugefügt
    Wir haben bereits früher die Anwendung der Beispielmethode für den neuen Profiler angekündigt. Der Profiler macht Pausen in der MQL-Programmoperation (~1000 Mal pro Sekunde) und sammelt Statistiken darüber, wie viele Pausen in bestimmten Codesegmenten durchgeführt wurden. Dazu gehört auch die Analyse von Aufrufstapeln, um den Anteil jeder Funktion an der gesamten Code-Operationszeit zu bestimmen. Nach dem Profiling erhalten die Nutzer Statistiken darüber, wie oft die Operation angehalten wurde und wie oft jede der Funktionen im Aufrufstapel erschien:

    • Gesamt-CPU [Einheit,%] — wie oft die Funktion im Aufrufstapel erschien.
    • Eigen-CPU [Einheit,%] — die Anzahl der "Pausen", die direkt innerhalb der angegebenen Funktion aufgetreten sind. Diese Variable ist entscheidend für die Erkennung von Engpässen: Laut Statistik treten Pausen häufiger auf, wenn mehr Prozessorzeit benötigt wird.


    Hinzugefügt wurde die Möglichkeit, die Funktion Inlining während des Profiling zu deaktivieren
    Bei der Kompilierung von MQL-Programmen werden Funktionen inlined, d.h. der Funktionscode wird direkt der Funktionsaufrufseite hinzugefügt. Dies ermöglicht eine erhebliche Beschleunigung. Allerdings erschwert dieses Verfahren das Profiling von Funktionen. Um einen Bericht "rein" über die Funktionen zu erhalten, können Sie Inlining in den Einstellungen des MetaEditors deaktivieren:




    Aktualisierter Berichtsentwurf
    Wir haben den Bericht über das Profiling und die Darstellung der Informationen über das Profiling im Quellcodefenster neu gestaltet. Das modernisierte Design wird den Nutzern von Visual Studio vertrauter sein.




  2. Korrektur der Funktion CopyTicksRange. Die Funktion konnte manchmal unvollständige Daten zurückgeben.
  3. Neuer Fehlercode TRADE_RETCODE_HEDGE_PROHIBITED — Eröffnung einer Position oder Platzierung einer Pending Order ist nicht erlaubt, da Hedge-Positionen nicht möglich sind. Der Fehler wird zurückgegeben, wenn ein Nutzer versucht, eine Handelsoperation auszuführen, falls das Hedging für das Konto deaktiviert ist und der Nutzer bereits eine entgegengesetzte Order oder Position für dasselbe Symbol hat.
  4. Die Möglichkeit zum Aufruf von MessageBox beim Debuggen von Indikatoren wurde entfernt. MessageBox kann nicht von Indikatoren aus aufgerufen werden, da sie die Thread-Ausführung für die gesamte Zeit aussetzt, während sie auf die Antwort des Benutzers wartet.
  5. Optimierte und signifikant beschleunigte Aufnahme von Handelsinstrumenten in den Market Watch mit der Funktion SymbolSelect.
  6. Korrektur der Funktion ArrayInsert für Array mit fixer Größe. Jetzt entspricht das Verhalten der Beschreibung in der Dokumentation: Beim Einfügen von Elementen ändert sich die Größe des Ziel-Arrays nicht und die Elemente rechts von der Einfügeposition werden nach rechts verschoben (die letzten 'count'-Elemente werden "fallengelassen"), während die Elemente von der Quelle auf den freigewordenen Platz kopiert werden.

Tester

  1. Korrektur der Arbeit mit nutzerdefinierten Handelsbedingungen-Einstellungen während des Testens; der Einstellungsdialog wurde überarbeitet.

    • Die Berechnung der nutzerdefinierten Provisionen wurde korrigiert. Um Provisionen zu aktivieren, reicht es jetzt aus, den Symbolnamen statt des gesamten Pfades anzugeben.
    • Neu arrangierte Registerkarten für einen effizienteren Betrieb.
    • Das Dialogfeld und die Option zur Aktivierung nutzerdefinierter Einstellungen wurden umbenannt.
    • Optimierte Spaltenbreite in den Einstelltabellen.
    • Wenn die Option "Nutzerdefinierte Einstellungen verwenden" deaktiviert ist, sind alle anderen Einstellungen im Dialogfeld deaktiviert. Zuvor blieben die Einstellungen editierbar, und Nutzer könnten fälschlicherweise annehmen, dass die Einstellungen während des Testens angewendet werden.




  2. Ein gelegentlicher Fehler im Zusammenhang mit dem Empfang von Orders aus der Handelsgeschichte per Ticket wurde behoben.

MetaEditor

  1. Es wurden Voreinstellungen für das Farbschema des Code-Editierfensters hinzugefügt: hell (Standard), dunkel und blau. Sie können den Editor anpassen, ohne die Editor-Ansicht manuell konfigurieren zu müssen.

    Zusätzlich ist es jetzt möglich, die Randfarbe für die Tooltips der Funktion anzupassen.



     
  2. Alle Symbole in den Symbolleisten wurden aktualisiert, um HiDPI-Monitore zu unterstützen.

Die Dokumentation wurde aktualisiert.