Beta-Version der MetaTrader 5 Plattform Build 1700: Projekte im MetaEditor und synthetische Finanzinstrumente

Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Beta-Version der MetaTrader 5 Plattform Build 1700: Projekte im MetaEditor und synthetische Finanzinstrumente
Am 6. Dezember 2017 wird ein Update für die MetaTrader 5 Plattform als Beta-Version veröffentlicht. Wir aktualisieren unseren öffentlichen Server MetaQuotes-Demo unter der Adresse access.metatrader5.com:443. Wir laden alle Händler ein, sich am Testen der neuen Version zu beteiligen, um alle Funktionen selbst auszuprobieren und den Entwicklern bei der Fehlerbehebung zu helfen.
Für das Update auf die neue Version 1700 der MetaTrader 5 Plattform reicht es, Verbindung zum Server access.metatrader5.com:443 herzustellen.
Nachdem diese Phase des Beta-Testens abgeschlossen ist, wird die neue Version der MetaTrader 5 Plattform veröffentlicht.
In der neuen Version der Plattform wird die Unterstützung für Desktop-Terminals und mobile Terminals älterer Versionen eingestellt:
Protokolldatei des MQL5 Storage geändert
Für die Unterstützung von Gruppenprojekten wurde die Protokolldatei des MQL5 Storage geändert. Aus diesem Grund müssen Sie nach dem Update der Plattform alle Daten aus dem Storage erneut laden (Checkout). Die Daten, die im MQL5 Storage gespeichert sind, werden während der Aktualisierung nicht betroffen und gehen nicht verloren.
Vor dem Update auf die neue Version der Plattform empfehlen wir alle lokalen Änderungen im Storage zu speichern (Commit ausführen).
Dieses Update beinhaltet folgende Änderungen:
Die Hauptdatei eines MQL5-Programms erscheint jetzt nicht mehr als Projekt. Ein Projekt ist eine separate Datei "MQPROJ", in welcher die Einstellungen eines Programms, Parameter der Kompilierung und Informationen über alle verwendeten Dateien gespeichert werden. Der Zugriff auf die wichtigsten Einstellungen des Projekts erfolgt über ein separates Dialog-Fenster. Man braucht nicht mehr diese im Queelcode über #property anzugeben.
Für eine bessere Arbeit mit dem Projekt ist ein separates Tab im Navigator vorgesehen. Hier werden alle verwendeten Dateien nach Kategorien angezeigt: include, resource, header usw. Dabei werden die Dateien zum Navigator des Projekts automatisch hinzugefügt. Zum Beispiel, wenn Sie eine neue MQH-Datei in den Code miteinbeziehen, wird diese im Bereich "Dependencies" im Navigator automatisch angezeigt.
Es wurde die Möglichkeit implementiert, mit neuen Projekten im MQL5 Online-Storage zu arbeiten. Nun kann man große Projekte gemeinsam mit anderen Mitgliedern der MQL5.community entwickeln.
Für das Arbeiten mit Gruppenprojekten wurde der neue Bereich Shared Projects hinzugefügt. Ein Projekt, das in diesem Bereich erstellt wurde, wird direkt in den Storage geschickt. Sie können anderen Nutzern Zugriffsrechte schnell erteilen und mit einer gemeinsamen Entwicklung beginnen.
Bei der Kompilierung des Projekts in Shared Project wird die EX5-Datei je nach dem Typ des Programms in das lokale Verzeichnis Experts, Indicators oder Scripts automatisch kopiert. Sie können das Programm direkt auf dem Chart starten, ohne Dateien jedes Mal manuell kopieren zu müssen.Neue Funktionen bei der Arbeit mit dem MQL5 Storage
Für die Implementierung einer vollständigen Arbeit mit Gruppenprojekten wurde das Protokoll der Arbeit mit dem MQL5 Storage komplett geändert. Aus diesem Grund müssen Sie nach dem Update der Plattform alle Daten aus dem Storage erneut laden (Checkout). Die Daten, die im MQL5 Storage gespeichert sind, werden während der Aktualisierung nicht betroffen und gehen nicht verloren.
Neue Projekte: ein Beispiel für die Erstellung und Details der Arbeit
Dem MetaEditor wurde eine neue Einheit hinzugefügt. Es geht um Projekte. Das ist eine Datei mit der Erweiterung mqproj, in welcher allgemeine Eigenschaften eines Programms sowie Informationen über alle verwendeten Dateien gespeichert werden. Nun kann man die Eigenschaften des Programms in einem separaten Dialogfensters des MetaEditors verwalten statt diese manuell im Quellcode zu ändern (Befehle #property).
Wenn Sie einen Code haben, können Sie neue Projekte ganz einfach testen, indem Sie den Befehl "Neues Projekt aus der Quelldatei" ausführen.
Im Verzeichnis, in welchem sich die ausgewählte Quelldatei befindet, wird eine gleichnamige Datei des Projekts mit der Erweiterung mqproj erstellt. Dem Projekt werden die Haupteigenschaften des Programms automatisch hinzugefügt, die als #property in der Quelldatei angegeben sind. Dazu gehören Name, Copyright, Version, Link zum Autor und Beschreibung.
Es wurden zwei neue Optionen für die Kompilierung von MQL5-Programmen den Projekteigenschaften hinzugefügt:Für die Arbeit mit dem Projekt nutzen Sie das separate Tab "Projekt" im Navigator-Fenster. In diesem Reiter werden alle im Projekt verwendeten Dateien angezeigt. Bei der Erzeugung eines Projekts aus der Quelldatei werden zum Bereich "Dependencies" alle Include-Dateien (die mittels der Anweisung #include in der MQ5-Hauptdatei und in allen miteinbezogenen Dateien) automatisch hinzugefügt.
Beim Hinzufügen neuer Include-Dateien zum Quellcode erscheinen diese auch im Navigator des Projekts. Zum Bereich Headers werden die verwendeten Header-Dateien hinzugefügt, zum Bereich Resources — Abbildungen, Töne und andere MQL5-Programme, die als Ressourcen ins Projekt miteinbezogen werden. Im Bereich Sources werden MQ5-Dateien mit dem Quellcode angezeigt. Man kann andere Dateien zum Bereich Settings and files hinzufügen, zum Beispiel Testeinstellungen und Vorlagen für Charts.
Um bereits existierende Dateien zum Projekt hinzuzufügen oder aus dem Projekt zu löschen, nutzen Sie das Kontextmenü. Seien Sie aufmerksam beim Löschen: Sie können eine Datei aus dem Projekt entfernen (Bindung entfernen) oder diese von der Festplatte komplett löschen:

Ein neues Projekt zu erstellen ist genauso einfach, wie ein MQL5-Programm. Klicken Sie auf "Neues Projekt", wählen Sie den Typ des Programms im MQL5 Wizard im Standardmodus aus und geben Sie seine Eigenschaften an (Name, Event-Handler usw).Um eine ausführbare EX5-Datei zu erhalten, können Sie das Projekt öffnen und die Kompilierung ausführen (F7) oder wie früher, die MQL5-Hauptdatei öffnen und diese kompilieren.
Gruppenprojekte im MQL5 Storage: Details der Arbeit
Gruppenprojekte werden im Bereich Shared Projects verwaltet. Wenn Sie den Storage noch nicht aktiviert haben, führen Sie den Befehl Activate MQL5 Storage im Kontextmenü des Ordners aus. MetaEditor überprüft, ob Ihr Storage gespeicherte Daten enthält und ob Gruppenprojekte für Sie verfügbar sind. Die vorhandenen Daten werden aus dem Storage extrahiert und auf den PC geladen (Checkout). Verfügbare Gruppenprojekte werden im Bereich Shared Project angezeigt, um diese zu erhalten, klicken Sie auf "Dateien aus dem Storage extrahieren" im Kontextmenü.
Um ein neues Gruppenprojekt zu erstellen, wählen Sie den Ordner Shared Projects aus und klicken Sie auf "Neues Projekt":

Durchlaufen Sie die Standardschritte des MQL5 Wizards: Geben Sie den Typ, den Namen und die Eigenschaften des künftigen Programms ein. Wählen Sie klare und verständliche Namen für Gruppenprojekte aus, damit andere Teilnehmer diese leicht finden könnten. Der Name darf nur lateinische Buchstaben enthalten, Leerzeichen nicht nicht erlaubt.Sobald das Projekt erstellt ist, wird es zum MQL5 Storage automatisch hinzugefügt. Die Dateien der Standardbibliothek werden zum Storage nicht hinzugefügt, wenn nötig, können Sie dies manuell tun.
Um anderen Teilnehmern die Arbeit an dem Projekt zu erlauben, öffnen Sie seine Eigenschaften. Hier kann man konkreten Nutzern Rechte auf den Zugriff erteilen, indem man ihre Benutzernamen in der MQL5.community angibt, sowie allgemeine Parameter der Gruppenarbeit setzen:

Einfachheitshalber wird die finale ausführbare Datei (EX5) bei der Kompilierung je nach dem Typ des Programms in den Ordner Experts, Indicators oder Scripts automatisch kopiert. Auf diese Weise können Sie das Programm direkt im Terminal starten, ohne es manuell in das benötigte Verzeichnis kopieren zu müssen.Wie es funktioniert
Hinweis: in der ursprünglichen Formel des Dollarindex werden die Währungspaare USDEUR und USDGBP verwendet. Das es nur gegenläufige Währungspaare auf der Plattform gibt, wird für diese eine negative Potenz und der Ask-Preis statt Bid-Preis verwendet.
Die Plattform berechnet den Preis des neuen Symbols in Echtzeit basierend auf den Kursen der sechs anderen Symbole, die von Ihrem Broker bereitgestellt werden. In der Marktübersicht und auf dem Chart sehen Sie, wie sich sein Preis ändert:

Erstellen Sie ein neues benutzerdefiniertes Symbol, öffnen Sie dessen Spezifikation und geben Sie seine Formel an:

Einfachheitshalber zeigt der Formel-Editor die Liste möglicher Varianten an, während man Namen von Symbolen und Funktionen eingibt.Die Berechnung von Ticks und Minutenbalken eines synthetischen Symbols beginnt, sobald es zur Marktübersicht hinzugefügt wird. Gleichzeitig werden der Marktübersicht alle Symbole hinzugefügt, die für die Berechnung des synthetischen Symbols benötigt werden. Dem Journal der Plattform wird eine Eintragung über den Beginn der Berechnung hinzugefügt: Synthetic Symbol USDX: processing started.
Berechnung von Kursen in Echtzeit
Jede 100 Ms (zehn mal pro Sekunde) wird überprüft, ob sich der Preis der Symbole in der Formel geändert hat. Wenn sich der Preis mindestens eines Symbols geändert hat, wird der Preis des synthetischen Symbols berechnet und ein Tick wird generiert. Die Berechnung wird parallel in drei Threads für Bid, Ask und Last-Preise durchgeführt. Zum Beispiel, wenn die Formel EURUSD*GBPUSD ist, werden die Preise des synthetischen Symbols wie folgt berechnet:
Das Vorhandensein der Veränderungen wird für jeden Preis separat geprüft. Wenn sich bei einer Berechnung nur der Bid-Preis des ursprünglichen Symbols verändert hat, wird für den Tick des synthetischen Symbols nur der entsprechende Preis berechnet.
Zeichnen der Historie von Munitenbalken
Neben dem Sammeln von Ticks in Echtzeit, erstellt die Plattform eine Minuten-Historie des synthetischen Symbols. Auf diese Weise kann sich der Trader seine Charts wie die Charts einfacher Symbole ansehen und mithilfe von Objekten und Indikatoren technische Analyse durchführen.
Sobald der Trader ein synthetisches Symbol zur Marktübersicht hinzufügt, prüft die Plattform, ob es für ihn eine berechnete Minutenhistorie gibt. Wenn nicht, wird die Historie für die letzten 60 Tage erstellt. Das macht ungefähr 50 000 Balken aus. Wenn ein kleinerer Wert im Parameter "Max. Balken im Chart" in den Einstellungen der Plattform angegeben wurde, wird diese Beschränkung angewandt.
Wenn einige Balken für diese Perioden bereits gezeichnet wurden, erzeugt die Plattform zusätzlich neue Balken. Eine tiefere Historie wird erst beim Versuch erstellt, sich einen älteren Zeitraum auf dem Chart anzusehen (wenn man zurück scrollt oder die Historie aus einem MQL5-Programm abruft).
Die Historie von Minutenbalken eines synthetischen Symbols wird basierend auf Minutenbalken (nicht Ticks) der Symbole in seiner Formel berechnet. Um den Open-Kurs eines Minutenbalkens eines synthetischen Symbols zu berechnen, verwendet die Plattform Open-Kurse der Symbole in der Formel. Die High-, Low- und Close- Kurse werden gleich berechnet.
Wenn der benötigte Minutenbalken für ein Symbol aus der Formel fehlt, verwendet die Plattform den Close-Kurs des vorherigen Balkens für die Berechnung. Es werden zum Beispiel drei Symbole verwendet: EURUSD, USDJPY und GBPUSD. Fehlt bei der Berechnung eines Balkens, der der Minute 12:00 entspricht, der Minutenbalken von USDJPY, werden folgende Preise verwendet:
Wenn der Minutenbalken bei allen Symbolen in der Formel fehlt, wird der entsprechende Minutenbalken des synthetischen Symbols nicht berechnet.
Zeichnen neuer Minutenbalken
Alle neuen Balken (der aktuelle und die darauffolgenden) des synthetischen Symbols werden basierend auf erzeugten Ticks erstellt. Der Preis, nach welchem die Balken gezeichnet werden, hängt vom Parameter "Zeichnen von Charts" in der Spezifikation ab:
Welche Operationen in der Formel des Symbols verwendet werden dürfen
In der Formel können Preisdaten sowie einige Eigenschaften existierender Symbole (bereitgestellt vom Broker) verwendet werden. Dafür sind folgende Informationen anzugeben:
Die Rechenoperationen werden nach Vorrangregeln ausgeführt:
Darüber hinaus können Konstanten in der Formel verwendet werden:
Darüber hinaus kann man in der Formel alle mathematischen Funktionen, die in MQL5 unterstützt werden, außer MathSrand, MathRand und MathIsValidNuber verwenden. Für alle Funktionen werden kurze Namen verwendet: fabs(), acos(), asin() usw.
Die Funktion CustomTicksAdd erlaubt es, die Tick so zu übertragen, als ob sie vom Server des Brokers eintreffen würden. Die Daten werden nicht direkt in die Datenbank von Ticks geschrieben, sondern in die Marktübersicht gesendet. Das Terminal speichert dann die Ticks aus der Marktübersicht in seiner Datenbank. Wenn eine große Datenmenge bei einem Aufruf übertragen wird, ändert die Funktion ihr Verhalten, um Ressourcen zu sparen. Wenn über 256 Ticks übergeben werden, werden die Daten in zwei Teile geteilt. Der erste Teil (der größere) wird direkt in die Datenbank von Ticks geschrieben (wie dies CustomTicksReplace tut). Der zweite Teil, der aus den letzten 128 Ticks besteht, wird in die Marktübersicht übertragen und danach vom Terminal in der Datenbank gespeichert.
Nun ist dieser Schutz für jeden Nutzers verfügbar. Man muss nur den Befehl Service — MQL5 Cloud Protector im MetaEditor ausführen. Der einzige Unterschied zum Schutz im Market besteht darin, dass die Datei nicht an den PC des Nutzers gebunden wird. Die durch den MQL5 Cloud Protector geschützten Dateien können auf allen Rechnern wie EX5-Dateien gestartet werden.
Für Symbole, deren Charts nach Bid-Preisen (in der Spezifikation angegeben) gezeichnet werden, werden Bid High und Bid Low Preise angezeigt. Für Finanzinstrumente, deren Charts nach Last-Preisen gezeichnet werden, werden Last High und Last Low angezeigt.
Mit den Spalten High/Low wird die Last-Spalte automatisch aktiviert, wenn es mindestens ein Symbol in der Marktübersicht gibt, dessen Charts nach Last-Preisen gezeichnet werden.

Die geänderten Einträge werden wie folgt hervorgehoben:Um die Änderungen zu speichern, klicken Sie auf "Änderungen übernehmen" im unteren Teil des Fensters.
Die Funktion akzeptiert dynamische Arrays von einem Typ und einer Dimension. Für mehrdimensionale Arrays muss die Anzahl der Elemente in allen Dimensionen außer der ersten gleich sein.

Über dieses Menü können Sie auch Dateien als ein binäres Array oder ein Text-Array in den Code eines Programms einfügen. Sie können zum Beispiel Vorlagen von Charts samt Expert Advisors/Indikatoren übertragen: fügen Sie ihre Vorlage in den Code des Programms als Array ein und speichern Sie ihn mithilfe der FileSave Funktion auf der Festplatte. Danach kann man die Vorlage direkt aus dem Expert Advisor mithilfe der Funktion ChartApplyTemplate auf den Chart anwenden.Die Aktualisierung wird über LiveUpdate verfügbar sein.