MetaTrader 5 Build 2265: DirectX-Funktionen für 3D-Darstellungen in MQL5 und Symboleinstellungen im Strategietester

Jetzt sind weitere Spalten in der Marktübersicht verfügbar. Im Hauptbereich stehen nun 40 zusätzliche Symbolparameter zur Verfügung, die bisher nur über die Registerkarte Details verfügbar waren

6 Dezember 2019

Terminal

  1. Jetzt sind weitere Spalten in der Marktübersicht verfügbar. Im Hauptbereich stehen nun 40 zusätzliche Symbolparameter zur Verfügung, die bisher nur über die Registerkarte Details verfügbar waren.




  2. Hinzugefügt wurde die Hervorhebung des aktuell verbundenen Kontos und des aktuellen Servers im Navigator. Die Funktion ist nützlich, wenn Sie mehrere Konten bei verschiedenen Brokern haben.




  3. Aktualisiertes Rahmendesign der Charts. Die Rahmen sind kleiner geworden und damit steht nun mehr Platz für nützliche Informationen zur Verfügung.




  4. Modifizierter Algorithmus zur Berechnung der Handelssummen bei der Anzeige der Handelshistorie als Positionen. Die Werte werden nun auf Basis von Ist-Sätzen berechnet.

    Um die Handelshistorie in Form von Positionen anzuzeigen, verwendet das Terminal Informationen über die im angeforderten Zeitraum abgeschlossenen Deals. Nur die Positionen, die in diesem Zeitraum geschlossen wurden, werden in der Historie angezeigt. Wenn die Position noch offen ist oder ihre Schließzeit nicht innerhalb des gewählten Zeitraums liegt, wird sie in der Historie nicht angezeigt. Daher können sich die gesamten Gewinne und Provisionen im Modus "Positionen" von denen im Modus "Orders/Deals" unterscheiden.

    Sie schauen sich beispielsweise den Verlauf der vergangenen Woche an. In diesem Zeitraum wurden 100 Deals durchgeführt, von denen 98 beim Eröffneten und 20 Positionen geschlossen wurden. Die letzten beiden Deals eröffneten neue Positionen, die bisher nicht geschlossen wurden. In diesem Fall enthält die Historie der Deals 100 Datensätze und entsprechende Gesamtwerte, die auf der Grundlage dieser Deals berechnet werden. Wenn Sie sich die Historie als Positionen anzeigen lassen, sehen Sie 20 Datensätze, die auf 98 Deals basieren. Nur diese Daten werden bei der Berechnung der Gesamtwerte berücksichtigt. Wenn der Broker bei der Eröffnung eines Deals Gebühren erhebt, unterscheidet sich der endgültige Provisionswert in der Deal-Historie von den in der Positionshistorie angezeigten Provisionen, da die beiden letzten Deals im letzteren Fall ignoriert werden.

  5. Ein schnellerer Start von MQL5-Programmen wurde implementiert.
  6. Für die Terminal-Installationsdatei wurde ein neuer /beta-Schlüssel hinzugefügt, der den Download der Beta-Version ermöglicht. Im Normalmodus sollte zuerst die Release-Version installiert werden, die dann bis zu einer Beta-Version aktualisiert werden kann. Wenn Sie diesen Schritt überspringen, können Sie Zeit und Traffic sparen. Beispiel für einen Installationsstart:
    C:\mt5setup.exe /beta
  7. Die Darstellung der Margenanforderungen für Instrumente mit dem Typ "Exchange Stocks" wurde korrigiert.
  8. Beschleunigte Ausführung aller Plattformkomponenten durch den Einsatz des Clang/LLVM-Compilers. In einigen Fällen ist die Kompilierung 20% schneller.

MQL5

  1. Neue Funktionen und Shader von DirectX 11 für die 3D-Visualisierung wurden hinzugefügt. Jetzt können leistungsstarke dreidimensionale Grafiken direkt in MQL5 erstellt werden.

    Die neue Klasse CCanvas3D ist eine Erweiterung der Klasse CCanvas Custom Graphic. Sie befinde sich im Verzeichnis \MQL5\Include\Canvas\. Die Klasse verfügt über Funktionen zur Darstellung dreidimensionaler Objekte über das DirectX-API.

    • Create — erstellt eine Szene.
    • Attach — verbindet eine Szene mit einem Chart.
    • Destroy — zerstört eine Szene.
    • ObjectAdd — fügt der Szene ein von der Basisklasse CDXObjekt abgeleitetes Objekt hinzu.
    • Render — die vollständige Renderschleife mit Pufferclearing und Rendering aller CDX-Objekte, die über die Methode ObjectAdd hinzugefügt wurden.
    • RenderBegin — startet das Rendern der Szenen, füllt den Renderpuffer mit der angegebenen Farbe (wenn das Flag DX_CLEAR_COLOR gesetzt ist) und den Tiefenpuffer (bei Verwendung von DX_CLEAR_DEPTH) und setzt den Szenenpuffer DXInputScene für den Standard-Shader.
    • RenderEnd — schließt das Rendering der Szenen ab und empfängt ein Ergebnis in einem internen Puffer. Wenn redraw==true, wird das Bild auf dem Chart angezeigt, auf dem es gerade läuft.
    • ViewMatrixGet — empfängt eine Ansichtsmatrix.
    • ViewMatrixSet — setzt eine Ansichtsmatrix. Die Matrix ist nicht kompatibel mit den Methoden ViewPositionSet, ViewRotationSet, ViewTargetSet und ViewUpDirectionsSet.
    • ViewPositionSet — stellt die Kameraposition ein.
    • ViewRotationSet — setzt die Kamera-Rotationsmatrix.
    • ViewTargetSet — setzt den Punkt, auf den die Kamera zeigt. Zusammen mit ViewUpDirectionsSet ist es eine Alternative zu ViewRotationSet.
    • ViewUpDirectionsSet — stellt die vertikale Position der Kamera ein. Zusammen mit ViewTargetSet ist es eine Alternative zu ViewRotationSet.
    • ProjectionMatrixGet — Empfängt eine Projektionsmatrix.
    • ProjectionMatrixSet — Setzt eine Projektionsmatrix.

    Eine ausführliche Dokumentation der neuen Bibliothek wird in Kürze veröffentlicht.




  2. Hinzugefügt wurde die Unterstützung für die Arbeit mit SQLite-Datenbanken direkt aus MQL5. Dies ermöglicht eine einfache Ausführung von SQL-Abfragen, ohne komplexe Anweisungen zu erstellen. Der interne Betrieb wird durch die neue Standardbibliothekserweiterung realisiert.

    Es stehen folgende Funktionen zur Verfügung:
    >
    • DatabaseOpen — öffnet oder erstellt eine Datenbank in der angegebenen Datei
    • DatabaseClose — schließt eine Datenbank
    • DatabaseTableExists — prüft, ob es eine Tabelle in der Datenbank gibt
    • DatabaseExecute — führt eine Abfrage bei der angegebenen Datenbank durch
    • DatabasePrepare — erstellt das Handle für die Anfrage, das mit DatabaseRead() weiter ausgeführt werden kann
    • DatabaseRead — springt zum nächsten Datensatz im Abfrageergebnis
    • DatabaseFinalize — löscht eine Abfrage, die in DatabasePrepare() erstellt wurde
    • DatabaseTransactionBegin — startet die Ausführung einer Transaktion
    • DatabaseTransactionCommit — schließt die Ausführung einer Transaktion ab
    • DatabaseTransactionRollback — Zurücksetzen einer Transaktion
    • DatabaseColumnsCount — empfängt die Anzahl der Felder in einer Abfrage
    • DatabaseColumnName — empfängt den Feldnamen nach Nummer
    • DatabaseColumnType — empfängt Feldtyp nach Nummer
    • DatabaseColumnSize — empfängt Feldgröße in Bytes
    • DatabaseColumnText — empfängt den Feldwert als Zeichenkette aus dem aktuellen Datensatz
    • DatabaseColumnInteger —  empfängt einen Integer-Wert aus dem aktuellen Datensatz
    • DatabaseColumnLong — empfängt einen Long-Wert aus dem aktuellen Datensatz
    • DatabaseColumnDouble — empfängt einen Double-Wert aus dem aktuellen Datensatz
    • DatabaseColumnBlob — empfängt ein Array von Feldwerten aus dem aktuellen Datensatz

    Die folgenden Fehlernummern wurden für die Funktionen hinzugefügt:

    • ERR_MQL_DATABASE_INTERNAL (5120) — interner Datenbankfehler
    • ERR_MQL_DATABASE_INVALID_HANDLE (5121) — ungültiges Datenbankhandle
    • ERR_MQL_DATABASE_TOO_MANY_OBJECTS (5122) maximale Anzahl der Datenbankobjekte überschritten
    • ERR_MQL_DATABASE_CONNECT (5123)Datenbankverbindungsfehler
    • ERR_MQL_DATABASE_EXECUTE (5124) Ausführungsfehler der Anfrage
    • ERR_MQL_DATABASE_PREPARE (5125) Fehler bei der Erstellung von Anfragen
    • ERR_MQL_DATABASE_NO_MORE_DATA (5126) — keine Daten mehr zum Lesen
    • ERR_MQL_DATABASE_STEP (5127) Fehler beim Wechsel zum nächsten Abfragedatensatz
    • ERR_MQL_DATABASE_NOT_READY (5128) Daten zum Lesen von Abfrageergebnissen sind noch nicht bereit
    • ERR_MQL_DATABASE_BIND_PARAMETERS (5129) SQL-Abfrage Auto-Substitutionsfehler

  3. Hinzugefügt wurden neue Eigenschaft von MQL5-Programmen, die die Auswahl einer Standard-Visualisierungsmethode ermöglicht.
    #property optimization_chart_mode "3d,InpX,InpY"
    Die Eigenschaft ermöglicht die Bestimmung des Chart-Typs, der sich am Ende der Optimierung öffnet, sowie der Programmparameter für die X- und Y-Achse.
    Die Eigenschaft legt nur die Standardsicht des Charts fest. Sie kann über das Kontextmenü jederzeit manuell geändert werden.

  4. Die neue Funktion MathArctan2. Liefert das Bogenmaß des Winkels, dessen Tangente gleich dem Verhältnis der beiden angegebenen Zahlen ist.
    double  MathArctan2(
       double  y      // die Y-Koordinate des Punktes
       double  x      // die X-Koordinate des Punktes
       );
  5. Wir haben die allgemeine Optimierung von Programmen zur Leistungssteigerung und Reduzierung des Ressourcenverbrauchs durchgeführt.
  6. Beispiele für mathematische Berechnungen, die im Strategie-Tester durchgeführt werden können, wurden hinzugefügt. Sie befinden sich im Verzeichnis \MQL5\Experts\Examples\Math 3D\Math.
  7. Es wurde eine strengere Kontrolle der namespaces (Namensräume) eingeführt.
  8. Das Laden von verknüpften Bibliotheken bei der Verwendung von .NET-Bibliotheken in MQL5-Programmen wurde hinzugefügt. Wenn die verwendete Bibliothek .NET andere Bibliotheken für den Betrieb benötigt, versucht der Compiler, die benötigten Bibliotheken automatisch aus \MQL5\Libraries zu laden.
  9. Feste Zeitoperationen im MetaTrader-Modul für die Python-Integration. Nun verwenden alle Ausgabedaten die Zeit des Handelsservers, mit dem das Terminal verbunden ist.

Tester

  1. Eine Fülle von neuen Funktionen und Verbesserungen:


    Nutzereinstellungen für Finanzinstrumente
    Nun können Sie die Einstellungen des Haupthandelsinstruments ändern, für das eine Test/Optimierung durchgeführt wird. Fast alle Spezifikationsparameter können überschrieben werden: Volumen, Handelsmodi, Margenanforderungen, Ausführungsmodus und andere Einstellungen. Wenn Sie also einen Expert Advisor unter verschiedenen Bedingungen überprüfen müssen, ist es nicht erforderlich, ein separates nutzerdefiniertes Symbol zu erstellen und dessen Historie zu erstellen. Dies kann durch Ändern der Standardsymbol-Einstellungen geschehen.



    Wenn die Symbolspezifikation angepasst ist, werden das Zahnradsymbol und das Symbolsymbol mit einem Sternchen gekennzeichnet. Dies zeigt, dass für den aktuellen Test nutzerdefinierte Parameter verwendet werden.




    Letzte Einstellungen/Expert Advisors/Charts
    Mit den neuen Kontextmenübefehlen können Sie schnell testen oder optimieren. Wählen Sie die zuletzt verwendeten Testeinstellungen, die letzten Charts oder Anwendungen:




MetaEditor

  1. Es wurde die Möglichkeit zugefügt, mit C/C++- und Python-Projekten direkt aus dem MetaEditor zu arbeiten. Jetzt können mehrsprachige Projekte mit dem integrierten Editor verwaltet werden.

    Wenn auf Ihrem PC entsprechende Compiler installiert sind, erkennt MetaEditor diese und fügt sie zu den Einstellungen hinzu. Optional können Sie auf der Registerkarte Compiler Pfade zu den erforderlichen Komponenten angeben. Über die gleiche Registerkarte können Sie die Komponenten laden, indem Sie auf Installieren neben dem entsprechenden Feld klicken.




    Danach können Sie mit C/C++- und Python-Projekten ähnlich wie mit MQL5-Programmen arbeiten.

  2. Hinzugefügt wurde eine Unterstützung für Teilprojekte im Verzeichnis der gemeinsamen Projekte, die für die gemeinsame Projektentwicklung über MQL5 Storage bestimmt sind. Bisher konnten auf der obersten Ebene nur einzelne Projekte angelegt werden.
  3. Eingebaute Debugger-Updates.
  4. Das Hinzufügen eines Funktionskopfes bei Verwendung eines Code Stylers wurde korrigiert.
  5. Die Befehle 'Zur vorherigen/nächsten Cursorposition springen' sind nun nicht nur im Menü Ansicht, sondern auch in der Symbolleiste verfügbar.
  6. Leerzeichen können nun auch in Projektnamen verwendet werden.

Android

  1. Es wurde die Möglichkeit zugefügt, direkt zu den Ein-/Auszahlungsseiten auf der Broker-Website zu wechseln.

    Sie müssen nicht mehr nach geeigneten Funktionen im Händlerraum auf der Website Ihres Brokers suchen. Befehle für eine direkte Navigation sind direkt in den Terminals verfügbar: Aus den Bereichen Konten und Handel kann der Nutzer direkt auf Ein- und Auszahlungsseiten wechseln:



    • Ein- und Auszahlungsvorgänge sind nur verfügbar, wenn für das Handelskonto auf der Brokerseite entsprechende Funktionen aktiviert sind.
    • Das Handelsterminal führt keine Kontoein- und -auszahlungen durch. Die integrierten Funktionen leiten den Nutzer auf die entsprechenden Seiten der Broker-Website weiter.

  2. Positionen in der Historie werden nun nach dem Datum der Positionsschließung sortiert.
  3. Hinzugefügt wurde das Markieren von Positionen, die durch Stop-Loss oder Take-Profit geschlossen wurden, mit roten und grünen vertikalen Linien im Abschnitt History.
  4. Hinzugefügt wurden neue Felder in der Spezifikation eines Handelssymbols:

    • Kategorie — die Eigenschaft wird zur zusätzlichen Kennzeichnung von Finanzinstrumenten verwendet. Dies kann beispielsweise die Marktsparte sein, zu der das Symbol gehört: Landwirtschaft, Öl & Gas und andere. Die Kategorie wird nur angezeigt, wenn der Broker die entsprechenden Informationen zur Verfügung stellt.
    • Börse — der Name der Börse an der das Wertpapier gehandelt wird. Die Kategorie wird nur angezeigt, wenn der Broker die entsprechenden Informationen zur Verfügung stellt.

  5. Hinzugefügt wurde eine Statusanzeige bezüglich eines Margin-Calls im Handelsbereich. Bei Eintreten dieser Situation werden die Parameter Marge, Freie Marge und Margenstufe rot dargestellt.
  6. Die Anzeige der OTP-Sektion Öffnungsknopf in Tabletten wurde korrigiert.
  7. Andere Korrekturen und Verbesserungen.

iPhone/iPad

  1. Es wurde die Möglichkeit zugefügt, schnell zu den Ein-/Auszahlungsseiten auf der Broker-Website zu wechseln. Weitere Informationen finden Sie in der Liste What's New von MetaTrader 5 für Android.



  2. Unterstützung für den Dunkelmodus für iOS/iPadOS hinzugefügt.
  3. Der Bereich Einmal-Passwort ist jetzt in der iPad-Version verfügbar.
  4. Die Positionen, die durch Stop-Loss oder Take-Profit geschlossen werden, sind im Abschnitt Historie mit roten und grünen vertikalen Linien markiert.
  5. Positionen in der Historie werden nun nach dem Datum der Positionsschließung sortiert. Wenn die Position noch nicht geschlossen wurde, wird ihr Öffnungsdatum für die Sortierung verwendet.
  6. Weitere Korrekturen und Verbesserungen.