Wie man mit Metatrader 5 anfängt - Seite 110

 
Sergey Golubev:

und der folgende Artikel -



Ich bin neu, können Sie mir helfen?

 
armynnoow:

Ich bin neu, können Sie mir helfen?


Es gibt einen Beitrag für Neulinge (über "wo fange ich an") -

Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien

Wie man mit Metatrader 5 anfängt

Sergey Golubev, 2017.10.03 06:39

Nur für Neulinge (wenn Sie zum Beispiel neu auf dieser Website sind) - es wird dringend empfohlen, die folgenden Artikel/Posts/Threads zu lesen -

============

1. Benutzer-Memo

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wie man mit Metatrader 5 anfängt

Sergey Golubev, 2016.12.30 17:26

Nur eine Erinnerung daran, wie man Code in den Beitrag einfügt(für neue Benutzer/Neulinge) - lesen Sie hier, und lesen Sie den ganzen Artikel: MQL5.community - Benutzer-Memo

============

2. Wie man eine Suche auf dem Forum/mql5 Portal durchführt

============

3. Zusammenfassungen

3.1Wie man mit MT5 anfängt, eine Zusammenfassung!(inkl. des vorherigen Threads: Wie man mit MetaTrader und Forex anfängt, der Anfang)
MetaTrader 4 Hilfe - Client Terminal - Benutzerhandbuch
MetaTrader 5 Hilfe - Handelsplattform - Benutzerhandbuch

3.2Alles (noch) nicht über Strategy Tester, Optimierung und Cloud

3.3.ASCTREND SYSTEM Zusammenfassung(inkl. 2 gute EAs)

3.4.BRAINTRADING SYSTEM Anleitung

3.5.priceChannel Parabolic System(inkl. 2 Versionen des EAs)

3.6. dieBewertung der Marktbedingungen(2 EAs wurden erstellt)

3.7.ichimoku

3.8Finanz- und Handelsvideos - Inhaltsverzeichnis

3.9Alles über Kalender-Tab und makroökonomische Ereignisse

3.10Alles über den MQL5-Assistenten: Erstellen von Robotern ohne Programmierung

============

4. Erster Hauptartikel:
MetaTrader 5 - Mehr als Sie sich vorstellen können!

============

5. Der zweite Schlüsselartikel:
Grenzenlose Möglichkeiten mit MetaTrader 5 und MQL5

============

6. Wie man den Broker zu MT5 hinzufügt:

6.1. MetaTrader 5 Hilfe -Ein Konto eröffnen

6.2. MetaTrader 5 Android OS Hilfe -Eröffnung eines Demokontos

6.3 MetaTrader 5 iPhone/iPad Hilfe -Verbindung mit einem Konto herstellen und ein Demokonto eröffnen

============

7.signale

============

8.markt

============

9.mQL5 VPS für MT4/MT5

9.1. Wie Sie sich bei VPS anmeldenhttps://www.mql5.com/en/forum/187872#comment_4851530

9.2. Sie können Ihr VPS-Abonnement von einem Konto auf ein anderes übertragen
https://www.mql5.com/en/forum/172120#comment_4166892

9.3. MQL5 VPS Beschreibung
https://www.mql5.com/en/forum/172553#comment_4185979

9.4. VPS überwachen
https://www.mql5.com/en/forum/188920#comment_4800677

9.5. Synchronisieren -
https://www.mql5.com/en/forum/211508

============

10. Makler

10.1. Einen Server über den Namen des Brokers finden:
https://www.mql5.com/en/forum/9950/page88#comment_3981953
https://www.mql5.com/en/forum/214820

10.2. Hilfe für Anfänger
https://www.mql5.com/en/forum/214904

10.3. US-Broker
https://www.mql5.com/en/forum/12423/page500#comment_4736742

============

11. Werbung:
https://www.mql5.com/en/forum/9950/page88#comment_3982032
https://www.mql5.com/en/forum/9950/page88#comment_3982030
https://www.mql5.com/en/forum/9950/page88#comment_3982036

============

12. Freiberuflichkeit, Dekompilierung, die Regeln, Beispiele des dekompilierten Codes:
https://www.mql5.com/en/forum/203200

============

13. allgemeine Regeln und bewährte Praktiken des Forums

13.1. dasThema mit der Diskussion

13.2. die Regeln desForums

============

14. Der Thread über Threads:was sich überall im Forum abspielt
Guter Thread, wenn Sie etwas Neues und Modernes (und Kostenloses) suchen

============

15.MT5, mql5, mql5.com Thread für Verbesserungsvorschläge

============

16. Wie man ein Thema abonniert oder eine Person in das Thema einlädt-der Thread

============


 

Der MetaEditor (der zusammen mit Metatrader aktualisiert wird) wurde stark verbessert.
Sehr viel!
Mehr Code-Schutz, Projekte und mehr und mehr.

Sie können versuchen, es selbst zu finden, oder auf die Veröffentlichungen warten, die im Laufe der Woche erscheinen werden.

Nur zur Information.

 

Es ist ein sehr interessantes Update, vor allem für MetaEditor, so scheint es, dass ich darüber lernen muss -

------------------

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

MetaTrader 5 Plattform Beta Build 1700: Projekte in MetaEditor und synthetische Finanzinstrumente

MetaQuotes Software Corp., 2017.12.05 14:33

MetaTrader 5 Plattform Beta Build 1700: Projekte in MetaEditor und Synthetische Finanzinstrumente

Die Beta-Version der aktualisierten MetaTrader 5-Plattform wird am 6. Dezember 2017 veröffentlicht. Wir werden unseren öffentlichen MetaQuotes-Demo-Server aktualisieren, der sich unter access.metatrader5.com:443 befindet. Wir laden alle Trader ein, an den Tests teilzunehmen, um die aktualisierten Plattformfunktionen zu testen und den Entwicklern bei der Fehlerbehebung zu helfen.

Um die MetaTrader 5 Plattform bis zum Build 1700 zu aktualisieren, verbinden Sie sich mit access.metatrader5.com server:443.

Der endgültige Build der neuen MetaTrader 5 Plattform wird nach dem öffentlichen Betatest veröffentlicht.

Ende des Supports für ältere Terminalversionen
Die Unterstützung für ältere Versionen von Desktop- und mobilen Terminals wird mit der Veröffentlichung der neuen Plattformversion eingestellt:
  • Client Terminal: Versionen unter 730, 23. November 2012
  • Mobiles Terminal für iPhone: Versionen unter 1171, 11. November 2015
  • Mobiles Terminal für Android: Versionen unter 1334, August 5, 2016
Nicht unterstützte Terminalversionen können sich nicht mit den neuen Serverversionen verbinden. Wir empfehlen dringend, dass Sie Ihre Terminals im Voraus aktualisieren.

Änderungen am MQL5-Speicherbetriebsprotokoll
Um neue gemeinsame Projekte zu unterstützen, haben wir das Betriebsprotokoll mit dem MQL5-Speicher aktualisiert. Daher müssen Sie nach der Aktualisierung der Plattform einen Checkout aller Daten aus dem Speicher durchführen. Die auf dem MQL5-Speicher gespeicherten Daten gehen bei der Aktualisierung nicht verloren und werden nicht beeinträchtigt.

Bevor Sie die Plattform auf die neue Version aktualisieren, empfehlen wir Ihnen, die Operation Commit durchzuführen, um alle lokalen Änderungen an den MQL5-Speicher zu senden.

Das Update wird die folgenden Änderungen beinhalten:

  1. Projekte mit vollem Funktionsumfang sind jetzt in MetaEditor verfügbar. Der Programmentwicklungsprozess ist bequemer geworden.

    Jetzt erscheint die MQ5-Hauptprogrammdatei nicht mehr als Projekt. Das Projekt ist eine separate "MQPROJ"-Datei, in der Programmeinstellungen, Kompilierungsparameter und Informationen über alle verwendeten Dateien gespeichert sind. Auf die Haupteinstellungen des Projekts kann von einem separaten Dialogfeld aus zugegriffen werden, so dass es nicht mehr notwendig ist, sie im Quellcode über #property anzugeben.

    Eine separate Registerkarte im Navigator ermöglicht ein bequemes Arbeiten mit dem Projekt. Alle Dateien, wie Include-, Ressource-, Header- und andere Dateien sind auf dieser Registerkarte in Kategorien geordnet. Alle Dateien werden automatisch zum Projektnavigator hinzugefügt. Wenn Sie zum Beispiel eine neue MQH-Datei einbinden, erscheint sie automatisch im Abschnitt "Abhängigkeiten" des Navigators.

    Die Unterstützung für neue Projekte wurde auch in das aktualisierte Online-Repository von MQL5 Storage integriert. Dies ist eine bequeme Option für die Entwicklung großer Projekte durch Zusammenarbeit mit anderen Mitgliedern der MQL5.community.

    Für Gruppenprojekte gibt es einen neuen Bereich für gemeinsame Projekte. Ein in diesem Bereich erstelltes Projekt wird sofort an das Storage gesendet: Sie können anderen Benutzern Berechtigungen erteilen und sofort mit der Zusammenarbeit beginnen.





    Wenn Sie ein Projekt in Shared Projects kompilieren, wird automatisch eine ausführbare EX5-Datei in das lokale Verzeichnis Experts, Indicators oder Scripts kopiert, je nach Programmtyp. Sie können das Programm einfach auf einem Diagramm starten, ohne die Dateien manuell kopieren zu müssen.


    Was ist neu an der MQL5-Speicheroperation
    Um die Unterstützung für neue gemeinsame Projekte zu implementieren, haben wir das Arbeitsprotokoll mit MQL5 Storage geändert. Daher müssen Sie nach der Aktualisierung der Plattform einen Checkout aller Daten aus dem Speicher durchführen. Die im MQL5-Speicher gespeicherten Daten gehen nicht verloren und werden durch das Update nicht beeinträchtigt.
    Bevor Sie die Plattform auf die neue Version aktualisieren, empfehlen wir Ihnen, die Operation Commit durchzuführen, um alle lokalen Änderungen an den MQL5-Speicher zu senden.
    Der Befehl "Auschecken aus dem Storage" ist jetzt nur noch in Shared Projects verfügbar. Für andere Kataloge im MQL5-Ordner werden die Befehle 'MQL5-Speicher aktivieren' und 'Aus Speicher aktualisieren' verwendet:

    • Wenn Sie den MQL5-Speicher in der aktuellen MetaEditor-Instanz noch nicht verwendet haben, klicken Sie im Kontextmenü des Navigator-Fensters auf "MQL5-Speicher aktivieren". Alle Kataloge und Dateien, die in Ihrem Storage verfügbar sind, werden auf Ihren lokalen Computer hochgeladen.
    • Wenn Sie bereits mit dem Speicher arbeiten, klicken Sie auf "Update files from Storage" im Kontextmenü des Root-MQL5-Elements im Navigator, um alle Daten aus dem Speicher zu erhalten.


    Neue Projekte: Beispiele für die Erstellung und Operationsdetails
    In MetaEditor wurde eine neue Projekteinheit hinzugefügt. Ein Projekt ist eine mqproj-Datei, die allgemeine Programmeigenschaften und Informationen über alle verwendeten Dateien speichert. Die Programmeigenschaften können nun bequem über einen separaten MetaEditor-Dialog verwaltet werden, anstatt die Eigenschaften im Quellcode manuell zu ändern (mit #property-Direktiven).

    Wenn Sie über verfügbaren Code verfügen, können Sie neue Projekte ganz einfach mit dem Befehl 'Neues Projekt aus dem Quellcode' testen.




    In dem Verzeichnis, in dem sich die ausgewählte Datei befindet, wird eine neue Projektdatei mit demselben Namen und der Erweiterung mqproj erstellt. Die wichtigsten Programmeigenschaften, die im Quellcode über #property angegeben sind, werden automatisch zum Projekt hinzugefügt, einschließlich Name, Copyright, Version, Link zur Website des Entwicklers und Programmbeschreibung.
    Der Satz von Programmeigenschaften in der Projektdatei hat eine höhere Priorität als die im Programmcode angegebenen Eigenschaften. Wenn Eigenschaften sowohl im Projekt als auch in der Quelldatei angegeben sind, werden die Eigenschaften aus dem Projekt verwendet.




    Zwei neue Optionen zum Kompilieren von MQL5-Programmen wurden zu den Projekteigenschaften hinzugefügt:

    • Aktivieren Sie die zusätzliche Optimierung: Anwendungen, bei denen die Optimierung deaktiviert ist, werden schneller kompiliert, aber langsamer ausgeführt.
    • Fließkomma-Teiler prüfen: Anwendungen, bei denen die Prüfung deaktiviert ist, arbeiten etwas schneller, da der Fehler bei der Nullteilung während der Codeausführung nicht geprüft wird.

    Um mit Projekten zu arbeiten, verwenden Sie eine separate Registerkarte Projekt im Navigatorfenster. Alle Dateien, die in einem Projekt verwendet werden, werden auf dieser Registerkarte in einer praktischen Form angezeigt. Wenn ein Projekt aus einer Quelldatei erzeugt wird, werden alle verwendeten Include-Dateien (die über das #include-Verzeichnis in der MQ5-Hauptdatei und in ihren Include-Dateien angegeben werden) automatisch zum Abschnitt Abhängigkeiten hinzugefügt.

    Wenn eine neue Include-Datei zum Quellcode hinzugefügt wird, erscheint sie auch im Projektnavigator. Verwendete Header-Dateien werden dem Abschnitt Headers hinzugefügt; Bilder, Sounds und andere MQL5-Programme, die im Projekt als Ressourcen verwendet werden, werden dem Abschnitt Resources hinzugefügt. MQ5-Dateien mit dem Quellcode werden im Abschnitt "Sources" angezeigt. Im Abschnitt "Einstellungen und Dateien" können Sie weitere Dateien hinzufügen, z. B. Set-Dateien für Tests und Diagrammvorlagen.

    Verwenden Sie die Befehle des Kontextmenüs, um bestehende Dateien zu einem Projekt hinzuzufügen oder um Dateien aus dem Projekt zu löschen. Seien Sie beim Löschen von Dateien vorsichtig, denn Sie können eine Datei aus dem Projekt entfernen (die Bindung aufheben) oder sie vollständig von der Festplatte löschen:



    Die Erstellung eines neuen Projekts ist so einfach wie die Erstellung eines normalen MQL5-Programms. Klicken Sie auf 'Neues Projekt', wählen Sie den Typ des neuen Programms und geben Sie im MQL5-Assistenten die Eigenschaften an (z. B. Name, Ereignishandler usw.).

    Um eine ausführbare EX5-Datei zu erhalten, können Sie das Projekt öffnen und F7 (den Kompilierungsbefehl) drücken oder die MQ5-Hauptdatei des Programms öffnen und sie kompilieren.

    Gemeinsame Projekte im MQL5-Speicher: Details zum Betrieb
    Gemeinsame Projekte werden in einem separaten Abschnitt Gemeinsame Projekte verwaltet. Wenn Sie den Speicher noch nicht verbunden haben, führen Sie den Befehl 'MQL5-Speicher aktivieren' aus dem Kontextmenü des gewünschten Ordners aus. MetaEditor prüft, ob Ihr Speicher irgendwelche gespeicherten Daten enthält und ob Ihnen freigegebene Projekte zur Verfügung stehen. Alle verfügbaren Daten werden aus dem Speicher abgerufen und auf Ihren Computer hochgeladen (der Auscheckvorgang). Verfügbare Gruppenprojekte werden im Abschnitt "Gemeinsame Projekte" angezeigt. Um die Projekte abzurufen, führen Sie "Auschecken aus dem Speicher" im Kontextmenü aus.

    Um ein neues Gruppenprojekt zu erstellen, wählen Sie den Ordner "Gemeinsame Projekte" und klicken Sie auf "Neues Projekt":



    Führen Sie dann die Standard-MQL5-Schritte aus: legen Sie den Typ, den Namen und die Eigenschaften des gewünschten Programms fest. Für Gruppenprojekte sollten Sie klare und verständliche Namen verwenden, damit die anderen Teilnehmer sie leicht finden können. In Projektnamen können nur lateinische Buchstaben ohne Leerzeichen verwendet werden.

    Ein erstelltes Objekt wird sofort dem MQL5-Speicher hinzugefügt. Die im Projekt verwendeten Standardbibliotheksdateien werden nicht zum Speicher hinzugefügt, Sie können sie manuell hinzufügen.

    Um anderen Teilnehmern die Arbeit mit dem Projekt zu ermöglichen, öffnen Sie seine Eigenschaften. Von hier aus können Sie ausgewählten Benutzern durch Angabe ihres MQL5.community-Logins Berechtigungen erteilen und gemeinsame Parameter für die Gruppenarbeit festlegen:

    • Privates Projekt
    • Kostenloses Projekt zum Beitritt
    • Projekt auf Anfrage beitreten



    Wenn Sie ein Gruppenprojekt kompilieren, wird die ausführbare EX5-Datei automatisch in das lokale Verzeichnis Experts, Indicators oder Scripts kopiert, je nach Programmtyp. So können Sie das Programm sofort im Terminal ausführen, ohne es manuell in das richtige Verzeichnis kopieren zu müssen.

  2. Terminal: Die Handelsplattform ermöglicht nun die Erstellung synthetischer Finanzinstrumente, d.h. von Symbolen, die auf einem oder mehreren bestehenden Instrumenten basieren. Der Benutzer muss die Formel für die Berechnung der Notierungen festlegen, woraufhin die Plattform die Ticks des synthetischen Instruments in Echtzeit generiert und auch dessen Minutenverlauf erstellt.

    Wie es funktioniert
    • Sie erstellen ein synthetisches Instrument und legen die Formel für die Preisberechnung fest.
    • Die Plattform berechnet die Ticks mit einer Frequenz von 10 Mal pro Sekunde, vorausgesetzt, dass sich der Preis mindestens eines der in der Formel verwendeten Instrumente geändert hat.
    • Die Plattform berechnet auch die Historie der Ein-Minuten-Balken (für die letzten zwei Monate) auf der Grundlage der Minuten-Balken der in ihrer Formel verwendeten Instrumente. Alle neuen Balken (aktuelle und nachfolgende) werden in Echtzeit auf der Grundlage der erzeugten Ticks des synthetischen Instruments erstellt.
    Sie können zum Beispiel ein Instrument erstellen, das den Dollar-Index (USDX) anzeigt. Dabei wird die folgende Formel verwendet:
    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)
    Hinweis: Die Paare USDEUR und USDGBP werden in der Ausgangsformel für den Dollar-Index verwendet. Da auf der Plattform nur umgekehrte Paare verfügbar sind, werden in der Formel für das synthetische Symbol eine negative Potenz und Ask statt Bid verwendet.

    Die Plattform berechnet den Preis des neuen Instruments in Echtzeit auf der Grundlage der von Ihrem Broker bereitgestellten Kurse der anderen sechs Symbole. Die Preisänderungen werden im Fenster Market Watch und im Chart angezeigt:



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



    Zur Vereinfachung zeigt der Formeleditor eine Liste der möglichen Optionen an, während Sie die Namen der Symbole und Funktionen eingeben.

    Die Berechnung von Ticks und Ein-Minuten-Balken eines synthetischen Instruments beginnt, wenn dieses Instrument zum Market Watch hinzugefügt wird. Außerdem werden alle Symbole, die für die Berechnung des synthetischen Preises benötigt werden, automatisch zum Market Watch hinzugefügt. Ein Eintrag über den Start der Berechnung wird in das Journal der Plattform aufgenommen: Synthetisches Symbol USDX: Verarbeitung gestartet.
    • Die Berechnung eines synthetischen Instruments wird beendet, wenn es aus dem Market Watch entfernt wird.
    • Symbole, die aktuell für die Berechnung von synthetischen Symbolpreisen verwendet werden, können nicht aus dem Market Watch ausgeblendet werden.

    Echtzeit-Berechnung von Kursen
    Alle 100 ms (d.h. zehnmal pro Sekunde) werden die Preise der in der Berechnung verwendeten Symbole überprüft. Hat sich mindestens einer von ihnen geändert, wird der Preis des synthetischen Symbols berechnet und ein neuer Tick erzeugt. Die Berechnung erfolgt parallel in drei Threads für den Geldkurs, den Briefkurs und den letzten Kurs. Wenn die Berechnungsformel zum Beispiel EURUSD*GBPUSD lautet, wird der Preis des synthetischen Symbols wie folgt berechnet:

    • Geld = Geld(EURUSD)*Geld(GBPUSD)
    • Ask = ask(EURUSD)*ask(GBPUSD)
    • Letzter = letzter(EURUSD)*letzter(GBPUSD)

    Die Verfügbarkeit von Änderungen wird für jeden Preis separat geprüft. Wenn sich zum Beispiel nur der Geldkurs eines Quellinstruments geändert hat, wird nur der entsprechende Kurs eines synthetischen Instruments berechnet.

    Erstellen einer Historie von Minuten-Bars
    Zusätzlich zur Erfassung von Ticks in Echtzeit erstellt die Plattform eine Minutenhistorie des synthetischen Instruments. Sie ermöglicht es Händlern, synthetische Symbolcharts ähnlich wie normale Charts zu betrachten und technische Analysen mit Objekten und Indikatoren durchzuführen.

    Wenn ein Händler ein synthetisches Instrument zu Market Watch hinzufügt, prüft die Plattform, ob der berechnete Minutenverlauf existiert. Wenn dies nicht der Fall ist, wird die Historie der letzten 60 Tage erstellt, die etwa 50.000 Balken umfasst. Wenn in den Plattformeinstellungen unter dem Parameter "Max. Bars in Chart" ein niedrigerer Wert angegeben ist, gilt die entsprechende Einschränkung.

    Wenn einige der Balken innerhalb dieses Zeitraums bereits erstellt wurden, generiert die Plattform zusätzlich neue Balken. Eine tiefere Historie wird erstellt, wenn der Benutzer versucht, einen älteren Zeitraum auf dem Diagramm zu betrachten (durch Zurückblättern oder Zugriff aus einem MQL5-Programm).

    Die Historie der Ein-Minuten-Balken eines synthetischen Instruments wird auf der Grundlage von Ein-Minuten-Balken (nicht Ticks) der in der Formel verwendeten Instrumente berechnet. Um zum Beispiel den Eröffnungskurs eines 1-Minuten-Balkens eines synthetischen Symbols zu berechnen, verwendet die Plattform die Eröffnungskurse der in ihrer Formel verwendeten Symbole. Die Preise für High, Low und Close werden auf ähnliche Weise berechnet.

    Wenn der erforderliche Balken für eines der Instrumente nicht verfügbar ist, verwendet die Plattform den Schlusskurs des vorherigen Balkens. Zum Beispiel werden drei Instrumente verwendet: EURUSD, USDJPY und GBPUSD. Wenn bei der Berechnung eines Bars, der 12:00 Uhr entspricht, der erforderliche Bar von USDJPY nicht verfügbar ist, werden die folgenden Preise für die Berechnung verwendet:

    • Öffnen: EURUSD Open 12:00, USDJPY Close 11:59, GBPUSD Open 12:00
    • Hoch: EURUSD Hoch 12:00, USDJPY Schluss 11:59, GBPUSD Hoch 12:00
    • Tief: EURUSD Tief 12:00, USDJPY Schluss 11:59, GBPUSD Tief 12:00
    • Schluss: EURUSD Schluss 12:00, USDJPY Schluss 11:59, GBPUSD Schluss 12:00

    Wenn der Minutenbarren nicht für alle in der Formel verwendeten Instrumente verfügbar ist, wird der entsprechende Minutenbarren des synthetischen Instruments nicht berechnet.

    Zeichnen neuer Minutenbalken
    Alle neuen Balken (aktuelle und nachfolgende) des synthetischen Instruments werden auf der Grundlage der generierten Ticks erstellt. Der Preis, der für die Erstellung der Balken verwendet wird, hängt von dem Wert des Parameters Chart Mode in der Spezifikation ab:




    Welche Operationen können in der Symbolformel verwendet werden?
    Kursdaten und einige Eigenschaften bestehender Symbole, die vom Broker bereitgestellt werden, können für die Berechnung der synthetischen Preise verwendet werden. Geben Sie das Folgende an:

    • Symbolname - je nach dem zu berechnenden synthetischen Preis wird der Bid, Ask oder Last des angegebenen Instruments verwendet. Wenn zum Beispiel EURUSD*GBPUSD angegeben wird, wird Bid als Bid(EURUSD)*Bid(GBPUSD) und Ask = Ask(EURUSD)*Ask(GBPUSD) berechnet.
    • bid(Symbolname) - der Geldkurs des angegebenen Symbols wird zwangsweise für die Berechnung des Geldkurses des synthetischen Instruments verwendet. Diese Option ist ähnlich wie die vorhergehende (bei der der Preistyp nicht angegeben wird).
    • ask(Symbolname) - der Ask-Kurs des angegebenen Symbols wird für die Berechnung des Bid-Kurses des synthetischen Instruments verwendet. Der Geldkurs des angegebenen Instruments wird für die Berechnung des Briefkurses verwendet. Der letzte Kurs des angegebenen Symbols wird für die Berechnung des letzten Kurses verwendet. Wenn ask(EURUSD)*GBPUSD angegeben ist, wird die folgende Berechnung verwendet:
      • Вid = ask(EURUSD)*bid(GBPUSD)
      • Brief = Geld(EURUSD)*Brief(GBPUSD)
      • Letzter = letzter(EURUSD)*letzter(GBPUSD)
    • last(Symbolname) - der letzte Kurs des angegebenen Symbols wird für die Berechnung aller Kurse des synthetischen Instruments (Bid, Ask und Last) verwendet. Wenn last(EURUSD)*GBPUSD angegeben ist, wird die folgende Berechnung verwendet:
      • Вid = last(EURUSD)*bid(GBPUSD)
      • Ask = zuletzt(EURUSD)*ask(GBPUSD)
      • Letzter = letzter(EURUSD)*letzter(GBPUSD)
    • volume(symbol name) - das Tick-Volumen des angegebenen Instruments wird in der Formel verwendet. Vergewissern Sie sich, dass die Volumendaten vom Broker für dieses Symbol bereitgestellt werden.
    • point(symbol name) - die minimale Preisänderung des angegebenen Instruments wird in den Berechnungen verwendet.
    • digits(Symbolname) - die Anzahl der Dezimalstellen des angegebenen Symbolpreises wird in der Formel verwendet.

    Wenn ein Symbol einen komplexen Namen hat (mit Bindestrichen, Punkten usw.), muss es in Anführungszeichen geschrieben werden. Beispiel: "RTS-6.17".
    Die folgenden arithmetischen Operationen können in der Formel verwendet werden: Addition (+), Subtraktion (-), Multiplikation (*), Division (/) und Rest der Division (%). Zum Beispiel bedeutet EURUSD+GBPUSD, dass der Preis als Summe der Preise von EURUSD und GBPUSD berechnet wird. Sie können auch das unäre Minus verwenden, um das Vorzeichen zu ändern, zum Beispiel: -10*EURUSD.

    Beachten Sie die Berechnungspriorität der arithmetischen Operationen:

    • Zuerst werden die Operationen der Multiplikation, der Division und des Rests durchgeführt; danach werden die Operationen der Addition und der Subtraktion durchgeführt.
    • Die Operationen werden von links nach rechts ausgeführt. Wenn in der Formel mehrere Operationen mit gleicher Priorität verwendet werden (z. B. Multiplikation und Division), wird die Operation auf der linken Seite zuerst ausgeführt.
    • Sie können Klammern ( und ) verwenden, um die Priorität der Operationen zu ändern. Operationen in Klammern haben bei der Berechnung die höchste Priorität. Auch für sie gilt das Links-nach-Rechts-Prinzip: Operationen in Klammern auf der linken Seite werden zuerst berechnet.

    Sie können Konstanten in der Formel verwenden:

    • Numerisch (Integer und Float). Beispiel: EURUSD*2+GBPUSD*0.7.
    • Symboleigenschaften _Digits und _Point. Sie fügen der Formel die entsprechenden Eigenschaften des benutzerdefinierten Symbols aus der Spezifikation hinzu. _Digits steht für die Anzahl der Dezimalstellen des Instrumentenpreises; _Point steht für die kleinste Änderung des Symbolpreises.

    Sie können in der Formel auch alle in MQL5 unterstützten mathematischen Funktionen verwenden, mit Ausnahme von MathSrand, MathRand und MathIsValidNuber: Für alle Funktionen werden nur Kurznamen verwendet, wie fabs(), acos(), asin() usw.

  3. Terminal: Es wurde eine neue Option implementiert, die es ermöglicht, Kurse von benutzerdefinierten Instrumenten in Echtzeit hinzuzufügen. Jetzt ist es möglich, einen MQL5 Expert Advisor zu entwickeln, der die Kurse des angegebenen benutzerdefinierten Symbols einspeisen würde. Die Funktion CustomTicksAdd wird dafür verwendet.
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    Die Funktion CustomTicksAdd ermöglicht die Einspeisung von Kursen, als ob diese Kurse vom Server eines Brokers empfangen würden. Die Daten werden an das Market Watch-Fenster gesendet, anstatt direkt in die Tick-Datenbank geschrieben zu werden. Anschließend speichert das Terminal die Ticks aus dem Market Watch in der Datenbank. Wenn eine große Datenmenge in einem Aufruf übergeben wird, ändert sich das Verhalten der Funktion, um Ressourcen zu sparen. Wenn mehr als 256 Ticks übertragen werden, werden die Daten in zwei Teile aufgeteilt. Ein größerer Teil wird direkt in der Tickdatenbank aufgezeichnet (ähnlich wie bei CustomTicksReplace). Der zweite Teil, bestehend aus den letzten 128 Ticks, wird an den Market Watch gesendet, von wo aus das Terminal die Ticks in einer Datenbank speichert.

  4. MQL5: Der neue Online-Dienst MQL5 Cloud Protector wurde hinzugefügt, um zusätzlichen Schutz für MQL5-Programme zu bieten. Der Schutz ist vergleichbar mit der Option, die im größten Speicher für Handelsanwendungen MetaTrader Market verwendet wird, wo die von den Verkäufern eingereichten EX5-Produktdateien zusätzlich in nativen Code kompiliert werden.

    Diese Art des Schutzes steht nun allen Benutzern der Plattform zur Verfügung. Um Ihre Dateien zu schützen, führen Sie den folgenden Befehl in MetaEditor aus: Tools-MQL5 Cloud Protector. Der einzige Unterschied zwischen MQL5 Cloud Protector und dem auf dem Markt verwendeten Mechanismus besteht darin, dass die Datei nicht mit dem Computer des Benutzers verbunden ist. Mit MQL5 Cloud Protector geschützte Dateien können auf beliebigen Computern ausgeführt werden, ähnlich wie bei gewöhnlichen EX5-Dateien.
    MQL5 Cloud Protector ist ein sicherer Dienst. Ein zusätzlicher Schutz wird nur auf eine kompilierte Datei angewendet. Der Quellcode wird nicht an den Dienst weitergegeben. Im ersten Schritt wird ein Programm auf dem Computer des Benutzers in eine EX5-Datei kompiliert; danach wird die kompilierte Datei über einen verschlüsselten Kanal an den Dienst gesendet, wo sie geschützt und an den Benutzer zurückgegeben wird.



  5. Terminal: Das Marktbeobachtungsfenster enthält jetzt zusätzlich den Höchst- und Tiefstpreis. Diese Spalten sind standardmäßig ausgeblendet. Sie können über das Kontextmenü aktiviert werden:




    Wenn ein Symbolchart mit Geldkursen konstruiert ist (gemäß den Spezifikationseinstellungen), werden für dieses Symbol Geldhoch- und Geldtiefkurse angezeigt. Wenn ein Symbolchart auf Basis von Last-Preisen konstruiert ist, werden Last High und Last Low für dieses Symbol angezeigt.

    Wenn Market Watch mindestens ein Symbol enthält, dessen Chart auf Basis von Last-Kursen gezeichnet wird, wird die Spalte Last automatisch zusätzlich zu High/Low aktiviert.

  6. Terminal: Jetzt ist es möglich, die Tick-Historie von benutzerdefinierten Finanzinstrumenten zu bearbeiten. Klicken Sie im Market Watch-Kontextmenü auf "Symbole", wählen Sie ein benutzerdefiniertes Symbol aus und fordern Sie das gewünschte Datenintervall auf der Registerkarte Ticks an.

    • Tippen Sie doppelt, um den Wert zu ändern.
    • Verwenden Sie das Kontextmenü, um Einträge hinzuzufügen oder zu löschen.
    • Wenn Sie mehrere Balken/Ticks auf einmal löschen müssen, wählen Sie sie mit der Maus aus, während Sie die Umschalttaste oder Strg+Umschalttaste gedrückt halten.



    Der Einfachheit halber werden die geänderten Einträge wie folgt hervorgehoben:

    • Grüner Hintergrund bedeutet einen geänderten Eintrag
    • Grauer Hintergrund bedeutet einen gelöschten Eintrag
    • Gelber Hintergrund zeigt einen hinzugefügten Eintrag an

    Um die Änderungen zu speichern, klicken Sie auf "Änderungen übernehmen" am unteren Rand des Fensters.

  7. Terminal: Anzeige der Zeit in Millisekunden im Fenster "Zitate" hinzugefügt.




  8. Terminal: Die Suche nach verfügbaren Servern im Dialog zur Eröffnung eines neuen Kontos ist schneller geworden.
  9. Terminal: Die Anzeige des Trendlinien-Grafikobjekts bei aktivierten Optionen "Strahl links" und "Strahl rechts" wurde korrigiert.
  10. Terminal: Optimierter Betrieb mit einer großen Anzahl von internen E-Mails (Hunderttausende).
  11. Terminal: Optimierter Terminalbetrieb bei einer großen Anzahl von Handelsinstrumenten (50.000 oder mehr).
  12. MQL5: Es wurden neue Funktionen für die Arbeit mit benutzerdefinierten Finanzinstrumenten hinzugefügt.

    Funktion Aktion
    CustomSymbolCreate Erzeugt ein benutzerdefiniertes Symbol mit dem angegebenen Namen in der angegebenen Gruppe
    CustomSymbolDelete Löscht ein benutzerdefiniertes Symbol mit dem angegebenen Namen
    CustomSymbolSetInteger Setzt den Wert der Ganzzahl-Eigenschaft für ein benutzerdefiniertes Symbol
    CustomSymbolSetDouble Setzt den Eigenschaftswert vom Typ Real für ein benutzerdefiniertes Symbol
    CustomSymbolSetString Legt den Wert der Eigenschaft "String" für ein benutzerdefiniertes Symbol fest
    CustomSymbolSetMarginRate Einstellen der Margin-Raten in Abhängigkeit von der Auftragsart und -richtung für ein benutzerdefiniertes Symbol
    CustomSymbolSetSessionQuote Legt die Start- und Endzeit der angegebenen Notierungssitzung für das angegebene Symbol und den angegebenen Wochentag fest
    CustomSymbolSetSessionTrade Legt die Anfangs- und Endzeit der angegebenen Handelssitzung für das angegebene Symbol und den angegebenen Wochentag fest
    CustomRatesDelete Löscht alle Balken aus der Kurshistorie des benutzerdefinierten Symbols im angegebenen Zeitintervall
    CustomRatesReplace Ersetzt die Kurshistorie des benutzerdefinierten Symbols innerhalb des angegebenen Zeitintervalls vollständig durch die Daten aus dem Array vom Typ MqlRates
    CustomRatesUpdate Ergänzt fehlende Balken in der Historie des benutzerdefinierten Symbols und ersetzt die vorhandenen Daten durch die Daten aus dem Array vom Typ MqlRates
    CustomTicksAdd Fügt Daten aus einem Array des Typs MqlTick zur Kurshistorie eines benutzerdefinierten Symbols hinzu. Das benutzerdefinierte Symbol muss im Fenster Market Watch ausgewählt sein.
    CustomTicksDelete Löscht alle Ticks aus der Kurshistorie des benutzerdefinierten Symbols im angegebenen Zeitintervall
    CustomTicksReplace Vollständiges Ersetzen des Preisverlaufs des benutzerdefinierten Symbols im angegebenen Zeitintervall durch die Daten des Arrays vom Typ MqlTick

  13. MQL5: Unterstützung für Vorlagen für den Datentyp union wurde hinzugefügt.
  14. MQL5: Die Eigenschaft SYMBOL_VISIBLE für Handelsinstrumente wurde hinzugefügt. Der Aufruf von SymbolInfoInteger(symbol, SYMBOL_VISIBLE) gibt false zurück, wenn das angegebene Symbol im Market Watch nicht sichtbar ist.
  15. MQL5: Neue Eigenschaft CHARTEVENT_MOUSE_WHEEL hinzugefügt. Das Ereignis wird aufgerufen, wenn das Mausrad auf dem Diagramm gescrollt oder gedrückt wird (wenn CHART_EVENT_MOUSE_WHEEL=true für das Diagramm).
  16. MQL5: Die folgenden Diagrammeigenschaften wurden hinzugefügt:

    • CHART_EVENT_MOUSE_WHEEL - Aktivierung/Deaktivierung der Erzeugung von CHART_EVENT_MOUSE_WHEEL (Maus-Scroll- und Klick-Ereignis auf dem Diagramm). Mögliche Werte: 0 und 1.
    • CHART_CROSSHAIR_TOOL - aktiviert/deaktiviert die Möglichkeit, den Cursor durch einen mittleren Klick in den Fadenkreuzmodus zu schalten. Mögliche Werte: 0 und 1.
    • CHART_CONTEXT_MENU - aktiviert/deaktiviert die Verwendung des Rechtsklicks, um das Kontextmenü des Charts anzuzeigen. Mögliche Werte: 0 und 1.

  17. MQL5: Jetzt werden Zeichenpuffer mit dem Stil DRAW_NONE bei der Berechnung der Skala des Indikatorfensters nicht berücksichtigt.
  18. MQL5: Hinzufügen der CHARTEVENT_CHART_CHANGE Ereignisgenerierung bei der Einstellung der CHART_SCALEFIX (feste Skala) Eigenschaft für das Diagramm.
  19. MQL5: Die Funktion ArraySwap wurde hinzugefügt, die es ermöglicht, den Inhalt von dynamischen Arrays schnell zu tauschen.
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    Die Funktion akzeptiert dynamische Arrays des gleichen Typs und der gleichen Dimensionen. Bei mehrdimensionalen Arrays sollte die Anzahl der Elemente in allen Dimensionen außer der ersten übereinstimmen.

  20. Signale: Feste Angabe der Auftragsfüllungsart im Falle einer erzwungenen Schließung von Positionen, die aufgrund eines Signals eröffnet wurden. Die Option "Stoppen, wenn das Konto niedriger als XXX USD ist" ist in den Optionen zum Kopieren von Signalen enthalten: wenn das Eigenkapital unter ein bestimmtes Niveau fällt, wird das Kopieren von Handelssignalen automatisch beendet, alle Positionen werden geschlossen. Früher konnte im Falle einer erzwungenen Schließung ein falscher Füllungstyp für Positionsschließungsaufträge eingestellt werden. Jetzt prüft das Terminal die zulässigen Füllungsarten in den Symboleinstellungen und zeigt eine geeignete Option an.
  21. Tester: Das Verhalten der Funktion HistoryOrderSelect im Strategietester entspricht nun der gleichen Funktion im Client-Terminal.
  22. Tester: Das Verhalten der Funktionen CopyTicks und CopyTicksRange im Strategietester entspricht jetzt den gleichen Funktionen im Client-Terminal.
  23. Tester: Optimierte Anzeige von Grafikobjekten beim visuellen Testen.
  24. Tester: Die Anzeige der Testergebnisse von Börseninstrumenten (mit dem Modell des Börsenrisikomanagements) wurde korrigiert. Der Chart zeigt jetzt nur noch das Eigenkapital an, während der Saldo und die Depotbelastung nicht angezeigt werden. Der Handelsstatus solcher Konten wird auf der Grundlage des Eigenkapitalniveaus bewertet. Der Saldo zeigt nur den Geldbetrag auf dem Konto an und ignoriert die Vermögenswerte und Verbindlichkeiten des Händlers. Die Einzahlungslast (Marge/Eigenkapital) wird nicht angezeigt, da die Marge im Berechnungsmodus der Börse dem aktuellen abgezinsten Wert der Aktiva/Passiva entspricht und sich mit dem Eigenkapital ändert.
  25. MetaEditor: Es wurde die Möglichkeit hinzugefügt, Eigenschaften und Ressourcen einfach in den Programmcode einzufügen. Zum Beispiel können Sie schnell eine eingebundene Datei zum Code hinzufügen. Verwenden Sie den Befehl "Insert-MQH as #incude", und wählen Sie die gewünschte Include-Datei aus. Die #include-Anweisung mit dem richtigen Pfad zur ausgewählten Datei wird in den Programmcode eingefügt.



    Das gleiche Menü ermöglicht das Hinzufügen von Dateien in Form eines Binär- oder Textarrays zum Programmcode. Unter anderem können Sie Chartvorlagen mit Expert Advisors oder Indikatoren übertragen: Fügen Sie Ihre Vorlage als Array in den Programmcode ein und speichern Sie sie anschließend mit der Funktion FileSave auf der Festplatte. Danach kann die Vorlage direkt aus einem Expert Advisor mit der Funktion ChartApplyTemplate auf den gewünschten Chart angewendet werden.
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  26. MetaEditor: Es wurde eine Option zur Konvertierung von Strings zwischen den Formaten ASCII, HEX und Base64 hinzugefügt. Wählen Sie eine Zeile im Quellcode und klicken Sie auf den gewünschten Befehl im Menü Bearbeiten-Konvertieren:




  27. MetaEditor: Die Groß-/Kleinschreibung wurde bei der Suche in Dateien nicht berücksichtigt.
  28. MetaEditor: Ein Debugger-Fehler wurde behoben, der bei der Berechnung von Ausdrücken ähnlich x.y[0][1].z auftreten konnte.
  29. MetaEditor: Die Code-Navigation mit den Schaltflächen Vor und Zurück wurde korrigiert.
  30. Die Benutzeroberfläche ist jetzt auch auf Niederländisch verfügbar.
  31. Aktualisierte Dokumentation.


Das Update wird über das LiveUpdate-System verfügbar sein.


 

Ein sehr interessanter Artikel wurde heute veröffentlicht -

----------------

Wie man über MetaTrader 5 an einer externen Kryptowährungsbörse handelt

Vor nicht allzu langer Zeit haben die Entwickler der MQL5-Sprache die aktualisierte Funktionalität eingeführt, die die Möglichkeit bietet, benutzerdefinierte Symbole und Charts zu entwickeln. Die breite Trader-Gemeinschaft hatte noch keine Zeit, die Kraft dieser Innovation zu schätzen, aber schon ein einfaches und unaufdringliches Brainstorming zeigt das enorme Potenzial, das in den benutzerdefinierten Symbolen steckt. Zusammen mit anderen MQL-Tools können Sie damit viele der gewagtesten und interessantesten Ideen umsetzen.

Von nun an ist MetaTrader 5 nicht mehr nur ein Terminal, das mit einem DC interagiert. Stattdessen ist er eine autarke Analyseplattform, die sich über die API mit verschiedenen Börsen verbinden und Kursbewegungen und Handelsströme visualisieren kann. Ein kleiner Satz neuer Funktionen macht das Terminal zu einem offenen System und nicht zu einem Werkzeugkasten mit einer begrenzten Anzahl von Handelswerkzeugen. Meiner Meinung nach können benutzerdefinierte Tools auch zu leistungsstarken Analysefunktionen werden.

Lassen Sie uns die neuen Sprachfunktionen am Beispiel des beliebten Themas der Kryptowährungen veranschaulichen. Ich glaube, dies wird das Interesse der Community an benutzerdefinierten Symbolen weiter stärken.

Wer könnte von diesem Artikel profitieren?

  • Kryptowährungsbörsen-Händler;
  • Investoren, die mit MetaTrader 5 und Portfolio-Investitionen vertraut sind;
  • Freiberufliche Programmierer, die jetzt die Aufträge ihrer Kunden im Zusammenhang mit dem Handel mit Kryptowährungen auf einfachere (und billigere) Weise ausführen können;
  • alle, die die neuen MetaTrader 5- und MQL5-Sprachfunktionen verfolgen.
 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Neuer MetaTrader 5 Build 1730: Projekte in MetaEditor und synthetische Finanzinstrumente

MetaQuotes Software Corp., 2017.12.20 13:49

Neuer MetaTrader 5 Build 1730: Projekte im MetaEditor und synthetische Finanzinstrumente

Das MetaTrader 5 Plattform-Update wird am 21. Dezember 2017 veröffentlicht.

Ende der Unterstützung für ältere Terminalversionen
Die Unterstützung für ältere Versionen von Desktop- und mobilen Terminals wird mit der Veröffentlichung der neuen Plattformversion eingestellt:
  • Client Terminal: Versionen unter 730, 23. November 2012
  • Mobiles Terminal für iPhone: Versionen unter 1171, 11. November 2015
  • Mobiles Terminal für Android: Versionen unter 1334, August 5, 2016
Nicht unterstützte Terminal-Builds können keine Verbindung zu neuen Serverversionen herstellen. Wir empfehlen dringend, dass Sie Ihre Terminals im Voraus aktualisieren.

Änderungen am MQL5-Speicherbetriebsprotokoll
Um neue gemeinsame Projekte zu unterstützen, haben wir das Betriebsprotokoll mit dem MQL5-Speicher aktualisiert. Daher müssen Sie nach der Aktualisierung der Plattform einen Checkout aller Daten aus dem Speicher durchführen. Die auf dem MQL5-Speicher gespeicherten Daten gehen bei der Aktualisierung nicht verloren und werden nicht beeinträchtigt.

Bevor Sie die Plattform auf die neue Version aktualisieren, empfehlen wir Ihnen, die Operation Commit durchzuführen, um alle lokalen Änderungen an den MQL5-Speicher zu senden.

Das Update wird die folgenden Änderungen beinhalten:

  1. Projekte mit vollem Funktionsumfang sind jetzt in MetaEditor verfügbar. Der Programmentwicklungsprozess ist bequemer geworden.

    Jetzt erscheint die MQ5-Hauptprogrammdatei nicht mehr als Projekt. Das Projekt ist eine separate "MQPROJ"-Datei, in der Programmeinstellungen, Kompilierungsparameter und Informationen über alle verwendeten Dateien gespeichert sind. Auf die Haupteinstellungen des Projekts kann von einem separaten Dialogfeld aus zugegriffen werden, so dass es nicht mehr notwendig ist, sie im Quellcode über #property anzugeben.

    Eine separate Registerkarte im Navigator erleichtert die Arbeit innerhalb des Projekts. Alle Dateien, wie z.B. Include-, Ressource-, Header- und andere Dateien, sind auf dieser Registerkarte in Kategorien angeordnet. Alle Dateien werden automatisch zum Projektnavigator hinzugefügt. Wenn Sie zum Beispiel eine neue MQH-Datei einbinden, erscheint sie automatisch im Abschnitt "Abhängigkeiten" des Navigators.

    Die Unterstützung für neue Projekte wurde auch in das aktualisierte Online-Repository von MQL5 Storage integriert. Jetzt ist es viel bequemer geworden, große Projekte durch Zusammenarbeit mit anderen Mitgliedern der MQL5.community zu entwickeln.

    Für Gruppenprojekte gibt es einen neuen Bereich "Gemeinsame Projekte". Ein in diesem Bereich erstelltes Projekt wird sofort an den Speicher gesendet: Sie können anderen Benutzern Berechtigungen erteilen und sofort mit der Zusammenarbeit beginnen.




    Wenn Sie ein Projekt in Shared Projects kompilieren, wird automatisch eine ausführbare EX5-Datei in das lokale Verzeichnis Experts, Indicators oder Scripts kopiert, je nach Programmtyp. Sie können das Programm einfach auf einem Diagramm starten, ohne die Dateien manuell kopieren zu müssen.


    Was ist neu an der MQL5 Storage Operation

    Um die Unterstützung für neue gemeinsame Projekte zu implementieren, haben wir das Arbeitsprotokoll mit dem MQL5 Storage geändert. Daher müssen Sie nach der Aktualisierung der Plattform einen Checkout aller Daten aus dem Speicher durchführen. Die im MQL5-Storage gespeicherten Daten gehen bei der Aktualisierung nicht verloren und werden nicht beeinträchtigt.

    Bevor Sie die Plattform auf die neue Version aktualisieren, empfehlen wir Ihnen, die Commit-Operation durchzuführen, um alle lokalen Änderungen an den MQL5-Speicher zu senden.

    Der Befehl "Auschecken aus dem Speicher" ist jetzt nicht mehr verfügbar. Stattdessen werden die Befehle 'MQL5-Speicher aktivieren' und 'Aus Speicher aktualisieren' verwendet, um Daten zu erhalten:

    • Wenn Sie den MQL5-Speicher in der aktuellen MetaEditor-Instanz noch nicht verwendet haben, klicken Sie im Kontextmenü des Navigatorfensters auf 'MQL5-Speicher aktivieren'. Alle Kataloge und Dateien, die in Ihrem Storage verfügbar sind, werden auf Ihren lokalen Computer hochgeladen.
    • Wenn Sie bereits mit dem Speicher arbeiten, klicken Sie im Kontextmenü eines bestimmten Projekts oder des MQL5-Wurzelelements im Navigator-Fenster auf "Dateien aus dem Speicher aktualisieren", um Daten aus dem Speicher zu erhalten.

    Neue Projekte: Beispiele für die Erstellung und den Betrieb von Details

    In MetaEditor wurde eine neue Projekteinheit hinzugefügt. Ein Projekt ist eine mqproj-Datei, die allgemeine Programmeigenschaften und Informationen über alle verwendeten Dateien speichert. Die Programmeigenschaften können nun bequem über einen separaten MetaEditor-Dialog verwaltet werden, anstatt die Eigenschaften im Quellcode manuell zu ändern (mit #property-Direktiven).

    Wenn Sie über verfügbaren Code verfügen, können Sie mit dem Befehl "Neues Projekt aus dem Quellcode" neue Projekte einfach testen.




    In dem Verzeichnis, in dem sich die ausgewählte Datei befindet, wird eine neue Projektdatei mit demselben Namen und der Erweiterung mqproj erstellt. Die wichtigsten Programmeigenschaften, die im Quellcode über #property angegeben sind, werden automatisch zum Projekt hinzugefügt, einschließlich Name, Copyright, Version, Link zur Website des Entwicklers und Programmbeschreibung.

    Der Satz von Programmeigenschaften in der Projektdatei hat eine höhere Priorität als die im Programmcode angegebenen Eigenschaften. Wenn Eigenschaften sowohl im Projekt als auch in der Quelldatei angegeben sind, werden die Eigenschaften aus dem Projekt verwendet.




    Zwei neue Optionen zum Kompilieren von MQL5-Programmen wurden zu den Projekteigenschaften hinzugefügt:

    • Aktivieren Sie die zusätzliche Optimierung: Anwendungen, bei denen die Optimierung deaktiviert ist, werden schneller kompiliert, aber langsamer ausgeführt.
    • Fließkomma-Teiler prüfen: Anwendungen, bei denen die Prüfung deaktiviert ist, arbeiten etwas schneller, da der Fehler bei der Nullteilung während der Codeausführung nicht geprüft wird.

    Um mit Projekten zu arbeiten, verwenden Sie eine separate Registerkarte Projekt im Navigatorfenster. Alle Dateien, die in einem Projekt verwendet werden, werden auf dieser Registerkarte in einer praktischen Form angezeigt. Wenn ein Projekt aus einer Quelldatei generiert wird, werden alle verwendeten Include-Dateien (die über das #include-Verzeichnis in der MQ5-Hauptdatei und in ihren Include-Dateien angegeben werden) automatisch zum Abschnitt Abhängigkeiten hinzugefügt.

    Wenn eine neue Include-Datei zum Quellcode hinzugefügt wird, erscheint sie auch im Projektnavigator. Verwendete Header-Dateien werden dem Abschnitt Headers hinzugefügt; Bilder, Sounds und andere MQL5-Programme, die im Projekt als Ressourcen verwendet werden, werden dem Abschnitt Resources hinzugefügt. MQ5-Dateien mit dem Quellcode werden im Abschnitt "Sources" angezeigt. Im Abschnitt "Einstellungen und Dateien" können Sie weitere Dateien hinzufügen, z. B. Set-Dateien für Tests und Diagrammvorlagen.

    Verwenden Sie die Befehle des Kontextmenüs, um bestehende Dateien zu einem Projekt hinzuzufügen oder um Dateien aus dem Projekt zu löschen. Seien Sie beim Löschen von Dateien vorsichtig, denn Sie können eine Datei aus dem Projekt entfernen (die Bindung aufheben) oder sie komplett von der Festplatte löschen:




    Die Erstellung eines neuen Projekts ist so einfach wie die Erstellung eines normalen MQL5-Programms. Klicken Sie auf 'Neues Projekt', wählen Sie den Typ des neuen Programms und geben Sie im MQL5-Assistenten die Eigenschaften an (z. B. Name, Ereignishandler usw.).

    Um eine ausführbare EX5-Datei zu erhalten, können Sie das Projekt öffnen und F7 (den Kompilierungsbefehl) drücken oder die MQ5-Hauptdatei des Programms öffnen und sie kompilieren.


    Gemeinsame Projekte im MQL5-Speicher: Details zum Betrieb

    Gemeinsame Projekte werden in einem separaten Abschnitt Gemeinsame Projekte verwaltet. Wenn Sie den Speicher noch nicht verbunden haben, führen Sie den Befehl 'MQL5-Speicher aktivieren' aus dem Kontextmenü des gewünschten Ordners aus. MetaEditor prüft, ob Ihr Speicher irgendwelche gespeicherten Daten enthält und ob Ihnen freigegebene Projekte zur Verfügung stehen. Alle verfügbaren Daten werden aus dem Speicher abgerufen und auf Ihren Computer hochgeladen (der Auscheckvorgang). Verfügbare Gruppenprojekte werden im Abschnitt "Gemeinsame Projekte" angezeigt. Um die Projekte abzurufen, führen Sie "Auschecken aus dem Speicher" im Kontextmenü aus.

    Um ein neues Gruppenprojekt zu erstellen, wählen Sie den Ordner "Gemeinsame Projekte" und klicken Sie auf "Neues Projekt":




    Führen Sie dann die Standard-MQL5-Schritte aus: Legen Sie den Typ, den Namen und die Eigenschaften des gewünschten Programms fest. Für Gruppenprojekte sollten Sie klare und verständliche Namen verwenden, damit die anderen Teilnehmer sie leicht finden können. In Projektnamen können nur lateinische Buchstaben und Zahlen ohne Leerzeichen verwendet werden.

    Ein erstelltes Objekt wird sofort dem MQL5-Speicher hinzugefügt. Die im Projekt verwendeten Standardbibliotheksdateien werden nicht zum Speicher hinzugefügt, sondern können manuell hinzugefügt werden.

    Um anderen Teilnehmern die Arbeit mit dem Projekt zu ermöglichen, öffnen Sie seine Eigenschaften. Von hier aus können Sie ausgewählten Benutzern Rechte erteilen, indem Sie deren MQL5.community-Login angeben, sowie gemeinsame Parameter für die Gruppenarbeit festlegen:

    • Privates Projekt
    • Frei zugängliches Projekt
    • Projekt auf Anfrage beitreten




    Wenn Sie ein Gruppenprojekt kompilieren, wird die ausführbare EX5-Datei je nach Programmtyp automatisch in das lokale Verzeichnis Experts, Indicators oder Scripts kopiert. So können Sie das Programm sofort im Terminal ausführen, ohne es manuell in das richtige Verzeichnis kopieren zu müssen.


    Öffentliche Projekte im MQL5-Speicher: Teilnahme an der Entwicklung

    Wie bereits erwähnt, verfügt jedes Gruppenprojekt in MQL5 Storage über Werbeeinstellungen: Das Projekt kann privat oder für andere Benutzer offen sein. Jetzt werden alle Projekte, denen Sie frei beitreten können, auf der separaten Registerkarte "Öffentliche Projekte" angezeigt.

    Jeder kann ein spannendes Projekt finden und sich an seiner Entwicklung beteiligen. Klicken Sie einfach auf Beitreten und erhalten Sie das Projekt aus dem Speicher.




    Jeder beigetretene Benutzer erhält nur Leserechte. Wenden Sie sich an den Projektautor, um Ihre Änderungen einreichen zu können. Um sein oder ihr Login zu erfahren, öffnen Sie die Projekteigenschaften über das Kontextmenü.

  2. Terminal: Die Handelsplattform ermöglicht jetzt die Erstellung synthetischer Finanzinstrumente, d. h. von Symbolen, die auf einem oder mehreren bestehenden Instrumenten basieren. Der Nutzer muss die Formel für die Berechnung der Kurse festlegen, woraufhin die Plattform die Ticks des synthetischen Instruments in Echtzeit generiert und auch dessen Minutenverlauf erstellt.


    Wie funktioniert es?

    • Sie erstellen ein synthetisches Instrument und legen die Formel für die Preisberechnung fest.
    • Die Plattform berechnet die Ticks mit einer Frequenz von 10 Mal pro Sekunde, vorausgesetzt, dass sich der Preis mindestens eines der in der Formel verwendeten Instrumente geändert hat.
    • Die Plattform berechnet auch die Historie der Ein-Minuten-Balken (für die letzten zwei Monate) auf der Grundlage der Minuten-Balken der in ihrer Formel verwendeten Instrumente. Alle neuen Balken (aktuelle und nachfolgende) werden in Echtzeit auf der Grundlage der erzeugten Ticks des synthetischen Instruments erstellt.

    Sie können zum Beispiel ein Instrument erstellen, das den Dollar-Index (USDX) abbildet. Es verwendet die unten stehende Formel:

    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)

    Hinweis: Die Paare USDEUR und USDGBP werden in der Quell-Dollar-Indexformel verwendet. Da in der Plattform nur umgekehrte Paare verfügbar sind, werden in der Formel für das synthetische Symbol eine negative Potenz und Ask statt Bid verwendet.

    Die Plattform berechnet den Preis des neuen Instruments in Echtzeit auf der Grundlage der von Ihrem Broker bereitgestellten Kurse der anderen sechs Symbole. Die Preisänderungen werden im Market Watch-Fenster und auf dem Chart angezeigt:




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




    Zur Vereinfachung zeigt der Formeleditor eine Liste der möglichen Optionen an, während Sie die Namen der Symbole und Funktionen eingeben.

    Die Berechnung von Ticks und Ein-Minuten-Balken eines synthetischen Instruments beginnt, wenn dieses Instrument zum Market Watch hinzugefügt wird. Außerdem werden alle Symbole, die für die Berechnung des synthetischen Preises benötigt werden, automatisch zum Market Watch hinzugefügt. Ein Eintrag über den Start der Berechnung wird in das Journal der Plattform aufgenommen: Synthetisches Symbol USDX: Verarbeitung gestartet.
    • Die Berechnung eines synthetischen Instruments endet, wenn es aus dem Market Watch entfernt wird.
    • Symbole, die aktuell für die Berechnung von synthetischen Symbolpreisen verwendet werden, können nicht aus dem Market Watch ausgeblendet werden.

    Echtzeit-Berechnung von Kursen
    Alle 100 ms (d.h. zehnmal pro Sekunde) werden die Preise der in der Berechnung verwendeten Symbole überprüft. Hat sich mindestens eines von ihnen geändert, wird der Preis des synthetischen Symbols berechnet und ein neuer Tick erzeugt. Die Berechnung erfolgt parallel in drei Threads für den Geldkurs, den Briefkurs und den letzten Kurs. Wenn die Berechnungsformel zum Beispiel EURUSD*GBPUSD lautet, wird der Preis des synthetischen Symbols wie folgt berechnet:

    • Bid = Bid(EURUSD)*Bid(GBPUSD)
    • Ask = ask(EURUSD)*ask(GBPUSD)
    • Letzter = letzter(EURUSD)*letzter(GBPUSD)

    Die Verfügbarkeit von Änderungen wird für jeden Preis separat geprüft. Wenn sich zum Beispiel nur der Geldkurs eines Quellinstruments geändert hat, wird nur der entsprechende Kurs eines synthetischen Instruments berechnet.

    Erstellen einer Historie von Minuten-Bars
    Zusätzlich zur Erfassung von Ticks in Echtzeit erstellt die Plattform eine Minutenhistorie des synthetischen Instruments. Sie ermöglicht es Händlern, synthetische Symbolcharts ähnlich wie normale Charts zu betrachten und technische Analysen mit Objekten und Indikatoren durchzuführen.

    Wenn ein Händler ein synthetisches Instrument zu Market Watch hinzufügt, prüft die Plattform, ob der berechnete Minutenverlauf existiert. Wenn dies nicht der Fall ist, wird die Historie der letzten 60 Tage erstellt, die etwa 50.000 Balken umfasst. Wenn in den Plattformeinstellungen unter dem Parameter "Max. Bars in Chart" ein niedrigerer Wert angegeben ist, gilt die entsprechende Einschränkung.

    Wenn einige der Balken innerhalb dieses Zeitraums bereits erstellt wurden, generiert die Plattform zusätzlich neue Balken. Eine tiefere Historie wird erstellt, wenn der Benutzer versucht, einen älteren Zeitraum auf dem Diagramm zu betrachten (durch Zurückblättern oder Zugriff aus einem MQL5-Programm).

    Die Historie der Ein-Minuten-Balken eines synthetischen Instruments wird auf der Grundlage von Ein-Minuten-Balken (nicht Ticks) der in der Formel verwendeten Instrumente berechnet. Um zum Beispiel den Eröffnungskurs eines 1-Minuten-Balkens eines synthetischen Symbols zu berechnen, verwendet die Plattform die Eröffnungskurse der in ihrer Formel verwendeten Symbole. Die Preise für High, Low und Close werden auf ähnliche Weise berechnet.

    Wenn der erforderliche Balken für eines der Instrumente nicht verfügbar ist, verwendet die Plattform den Schlusskurs des vorherigen Balkens. Zum Beispiel werden drei Instrumente verwendet: EURUSD, USDJPY und GBPUSD. Wenn bei der Berechnung eines Bars, der 12:00 Uhr entspricht, der erforderliche Bar von USDJPY nicht verfügbar ist, werden die folgenden Preise für die Berechnung verwendet:

    • Öffnen: EURUSD Open 12:00, USDJPY Close 11:59, GBPUSD Open 12:00
    • Hoch: EURUSD Hoch 12:00, USDJPY Schluss 11:59, GBPUSD Hoch 12:00
    • Tief: EURUSD Tief 12:00, USDJPY Schluss 11:59, GBPUSD Tief 12:00
    • Schluss: EURUSD Schluss 12:00, USDJPY Schluss 11:59, GBPUSD Schluss 12:00

    Wenn der Minutenbarren nicht für alle in der Formel verwendeten Instrumente verfügbar ist, wird der entsprechende Minutenbarren des synthetischen Instruments nicht berechnet.

    Zeichnen neuer Minutenbalken
    Alle neuen Balken (aktuelle und nachfolgende) des synthetischen Instruments werden auf der Grundlage der generierten Ticks erstellt. Der Preis, der für die Erstellung der Balken verwendet wird, hängt von dem Wert des Parameters Chart Mode in der Spezifikation ab:





    Welche Operationen können in der Symbolformel verwendet werden?
    Kursdaten und einige Eigenschaften bestehender Symbole, die vom Broker bereitgestellt werden, können für die Berechnung der synthetischen Preise verwendet werden. Geben Sie das Folgende an:

    • Symbolname - je nach dem zu berechnenden synthetischen Preis wird der Bid, Ask oder Last des angegebenen Instruments verwendet. Wenn zum Beispiel EURUSD*GBPUSD angegeben wird, wird Bid als Bid(EURUSD)*Bid(GBPUSD) und Ask = Ask(EURUSD)*Ask(GBPUSD) berechnet.
    • bid(Symbolname) - der Geldkurs des angegebenen Symbols wird zwangsweise für die Berechnung des Geldkurses des synthetischen Instruments verwendet. Diese Option ist ähnlich wie die vorhergehende (bei der der Preistyp nicht angegeben wird).
    • ask(Symbolname) - der Ask-Kurs des angegebenen Symbols wird für die Berechnung des Bid-Kurses des synthetischen Instruments verwendet. Der Geldkurs des angegebenen Instruments wird für die Berechnung des Briefkurses verwendet. Der letzte Kurs des angegebenen Symbols wird für die Berechnung des letzten Kurses verwendet. Wenn ask(EURUSD)*GBPUSD angegeben ist, wird die folgende Berechnung verwendet:
      • Вid = ask(EURUSD)*bid(GBPUSD)
      • Brief = Geld(EURUSD)*Brief(GBPUSD)
      • Letzter = letzter(EURUSD)*letzter(GBPUSD)
    • last(Symbolname) - der letzte Kurs des angegebenen Symbols wird für die Berechnung aller Kurse des synthetischen Instruments (Bid, Ask und Last) verwendet. Wenn last(EURUSD)*GBPUSD angegeben ist, wird die folgende Berechnung verwendet:
      • Вid = last(EURUSD)*bid(GBPUSD)
      • Ask = last(EURUSD)*ask(GBPUSD)
      • Letzter = letzter(EURUSD)*letzter(GBPUSD)
    • volume(symbol name) - das Tick-Volumen des angegebenen Instruments wird in der Formel verwendet. Vergewissern Sie sich, dass die Volumendaten vom Broker für dieses Symbol bereitgestellt werden.
    • point(symbol name) - die minimale Preisänderung des angegebenen Instruments wird in den Berechnungen verwendet.
    • digits(Symbolname) - die Anzahl der Dezimalstellen des angegebenen Symbolpreises wird in der Formel verwendet.

    Wenn ein Symbol einen komplexen Namen hat (mit Bindestrichen, Punkten usw.), muss es in Anführungszeichen geschrieben werden. Beispiel: "RTS-6.17".
    Die folgenden arithmetischen Operationen können in der Formel verwendet werden: Addition (+), Subtraktion (-), Multiplikation (*), Division (/) und Rest der Division (%). Zum Beispiel bedeutet EURUSD+GBPUSD, dass der Preis als Summe der Preise von EURUSD und GBPUSD berechnet wird. Sie können auch das unäre Minus verwenden, um das Vorzeichen zu ändern, zum Beispiel: -10*EURUSD.

    Beachten Sie die Berechnungspriorität der arithmetischen Operationen:

    • Zuerst werden die Operationen der Multiplikation, der Division und des Rests durchgeführt; danach werden die Operationen der Addition und der Subtraktion durchgeführt.
    • Die Operationen werden von links nach rechts ausgeführt. Wenn in der Formel mehrere Operationen mit gleicher Priorität verwendet werden (z. B. Multiplikation und Division), wird die Operation auf der linken Seite zuerst ausgeführt.
    • Sie können Klammern ( und ) verwenden, um die Priorität der Operationen zu ändern. Operationen in Klammern haben bei der Berechnung die höchste Priorität. Auch für sie gilt das Links-nach-Rechts-Prinzip: Operationen in Klammern auf der linken Seite werden zuerst berechnet.

    Sie können Konstanten in der Formel verwenden:

    • Numerisch (Integer und Float). Beispiel: EURUSD*2+GBPUSD*0.7.
    • Symboleigenschaften _Digits und _Point. Sie fügen der Formel die entsprechenden Eigenschaften des benutzerdefinierten Symbols aus der Spezifikation hinzu. _Digits steht für die Anzahl der Dezimalstellen des Instrumentenpreises; _Point steht für die kleinste Änderung des Symbolpreises.

    Sie können in der Formel auch alle in MQL5 unterstützten mathematischen Funktionen verwenden, mit Ausnahme von MathSrand, MathRand und MathIsValidNumber: Für alle Funktionen werden nur Kurznamen verwendet, wie fabs(), acos(), asin() usw.

  3. Terminal: Es wurde eine neue Option implementiert, die es ermöglicht, Kurse von benutzerdefinierten Instrumenten in Echtzeit hinzuzufügen. Jetzt ist es möglich, einen MQL5 Expert Advisor zu entwickeln, der die Kurse des angegebenen benutzerdefinierten Symbols einspeisen würde. Die Funktion CustomTicksAdd wird dafür verwendet.
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    Die Funktion CustomTicksAdd ermöglicht die Einspeisung von Kursen, als ob diese Kurse vom Server eines Brokers empfangen würden. Die Daten werden an das Market Watch-Fenster gesendet, anstatt direkt in die Tick-Datenbank geschrieben zu werden. Anschließend speichert das Terminal die Ticks aus dem Market Watch in der Datenbank. Wenn eine große Datenmenge in einem Aufruf übergeben wird, ändert sich das Verhalten der Funktion, um Ressourcen zu sparen. Wenn mehr als 256 Ticks übertragen werden, werden die Daten in zwei Teile aufgeteilt. Ein größerer Teil wird direkt in der Tickdatenbank aufgezeichnet (ähnlich wie bei CustomTicksReplace). Der zweite Teil, bestehend aus den letzten 128 Ticks, wird an den Market Watch gesendet, von wo aus das Terminal die Ticks in einer Datenbank speichert.

  4. MQL5: Der neue Online-Dienst MQL5 Cloud Protector wurde hinzugefügt, um zusätzlichen Schutz für MQL5-Programme zu bieten. Der Schutz ist vergleichbar mit der Option, die im größten Speicher für Handelsanwendungen MetaTrader Market verwendet wird, wo die von den Verkäufern eingereichten EX5-Produktdateien zusätzlich in nativen Code kompiliert werden.

    Diese Art des Schutzes steht nun allen Benutzern der Plattform zur Verfügung. Um Ihre Dateien zu schützen, führen Sie den folgenden Befehl in MetaEditor aus: Tools-MQL5 Cloud Protector. Der einzige Unterschied zwischen MQL5 Cloud Protector und dem auf dem Markt verwendeten Mechanismus besteht darin, dass die Datei nicht mit dem Computer des Benutzers verbunden ist. Mit MQL5 Cloud Protector geschützte Dateien können auf beliebigen Computern ausgeführt werden, ähnlich wie bei gewöhnlichen EX5-Dateien.
    MQL5 Cloud Protector ist ein sicherer Dienst. Ein zusätzlicher Schutz wird nur auf eine kompilierte Datei angewendet. Der Quellcode wird nicht an den Dienst weitergegeben. Im ersten Schritt wird ein Programm auf dem Computer des Benutzers in eine EX5-Datei kompiliert; danach wird die kompilierte Datei über einen verschlüsselten Kanal an den Dienst gesendet, wo sie geschützt und an den Benutzer zurückgegeben wird.



  5. Terminal: Das Marktbeobachtungsfenster enthält jetzt zusätzlich den Höchst- und Tiefstpreis. Diese Spalten sind standardmäßig ausgeblendet. Sie können über das Kontextmenü aktiviert werden:




    Wenn ein Symbolchart mit Geldkursen konstruiert ist (gemäß den Spezifikationseinstellungen), werden für dieses Symbol Geldhoch- und Geldtiefkurse angezeigt. Wenn ein Symbolchart auf Basis von Last-Preisen konstruiert ist, werden Last High und Last Low für dieses Symbol angezeigt.

    Wenn Market Watch mindestens ein Symbol enthält, dessen Chart auf Basis von Last-Kursen gezeichnet wird, wird die Spalte Last automatisch zusätzlich zu High/Low aktiviert.

  6. Terminal: Jetzt ist es möglich, die Tick-Historie von benutzerdefinierten Finanzinstrumenten zu bearbeiten. Klicken Sie im Market Watch-Kontextmenü auf "Symbole", wählen Sie ein benutzerdefiniertes Symbol aus und fordern Sie das gewünschte Datenintervall auf der Registerkarte Ticks an.

    • Tippen Sie doppelt, um den Wert zu ändern.
    • Verwenden Sie das Kontextmenü, um Einträge hinzuzufügen oder zu löschen.
    • Wenn Sie mehrere Balken/Ticks auf einmal löschen möchten, wählen Sie sie mit der Maus aus, indem Sie die Umschalttaste oder Strg+Umschalttaste gedrückt halten.




    Der Einfachheit halber werden die geänderten Einträge wie folgt hervorgehoben:

    • Grüner Hintergrund bedeutet einen geänderten Eintrag
    • Grauer Hintergrund bedeutet einen gelöschten Eintrag
    • Gelber Hintergrund zeigt einen hinzugefügten Eintrag an

    Um die Änderungen zu speichern, klicken Sie auf "Änderungen übernehmen" am unteren Rand des Fensters.

  7. Terminal: Anzeige von vorläufigen Konten im Navigator-Baum hinzugefügt.

    Händler können direkt vom Desktop-Terminal aus eine Anfrage an einen Broker senden, um ein echtes Konto zu eröffnen. Der Benutzer muss dazu ein einfaches Antragsformular mit seinen Kontaktdaten ausfüllen. Daraufhin wird ein spezielles vorläufiges Konto für den Händler eingerichtet. Der Broker setzt sich dann mit dem Händler in Verbindung, um die Beziehungen zu formalisieren und aus dem vorläufigen Konto ein echtes Konto zu machen.




  8. Terminal: Anzeige der Zeit in Millisekunden im Fenster "Quotes" hinzugefügt.





  9. Terminal: Die Suche nach verfügbaren Servern im Dialog zur Eröffnung eines neuen Kontos ist schneller geworden.
  10. Terminal: Die Anzeige des Trendlinien-Grafikobjekts bei aktivierten Optionen "Strahl links" und "Strahl rechts" wurde korrigiert.
  11. Terminal: Optimierter Betrieb mit einer großen Anzahl von internen E-Mails (Hunderttausende).
  12. Terminal: Optimierter Terminalbetrieb bei einer großen Anzahl von Handelsinstrumenten (50.000 oder mehr).
  13. Terminal: Optimierung der Tick-Historie von benutzerdefinierten Finanzinstrumenten, die nach der Bearbeitung der Historie ausgeführt werden, wurde hinzugefügt.
  14. MQL5: Es wurden neue Funktionen für die Arbeit mit benutzerdefinierten Finanz instrumenten hinzugefügt.

    Funktion Aktion
    CustomSymbolCreate Erzeugt ein benutzerdefiniertes Symbol mit dem angegebenen Namen in der angegebenen Gruppe
    CustomSymbolDelete Löscht ein benutzerdefiniertes Symbol mit dem angegebenen Namen
    CustomSymbolSetInteger Setzt den Wert der Ganzzahl-Eigenschaft für ein benutzerdefiniertes Symbol
    CustomSymbolSetDouble Setzt den Eigenschaftswert vom Typ Real für ein benutzerdefiniertes Symbol
    CustomSymbolSetString Legt den Wert der Eigenschaft "String" für ein benutzerdefiniertes Symbol fest
    CustomSymbolSetMarginRate Einstellen der Margin-Raten in Abhängigkeit von der Auftragsart und -richtung für ein benutzerdefiniertes Symbol
    CustomSymbolSetSessionQuote Legt die Start- und Endzeit der angegebenen Notierungssitzung für das angegebene Symbol und den angegebenen Wochentag fest
    CustomSymbolSetSessionTrade Legt die Anfangs- und Endzeit der angegebenen Handelssitzung für das angegebene Symbol und den angegebenen Wochentag fest
    CustomRatesDelete Löscht alle Balken aus der Kurshistorie des benutzerdefinierten Symbols im angegebenen Zeitintervall
    CustomRatesReplace Ersetzt die Kurshistorie des benutzerdefinierten Symbols innerhalb des angegebenen Zeitintervalls vollständig durch die Daten aus dem Array vom Typ MqlRates
    CustomRatesUpdate Ergänzt fehlende Balken in der Historie des benutzerdefinierten Symbols und ersetzt die vorhandenen Daten durch die Daten aus dem Array vom Typ MqlRates
    CustomTicksAdd Fügt Daten aus einem Array des Typs MqlTick zur Kurshistorie eines benutzerdefinierten Symbols hinzu. Das benutzerdefinierte Symbol muss im Fenster Market Watch ausgewählt sein.
    CustomTicksDelete Löscht alle Ticks aus der Kurshistorie des benutzerdefinierten Symbols im angegebenen Zeitintervall
    CustomTicksReplace Vollständiges Ersetzen des Preisverlaufs des benutzerdefinierten Symbols im angegebenen Zeitintervall durch die Daten des Arrays vom Typ MqlTick

  15. MQL5: Generische Datensammlungen zur Standardbibliothek hinzugefügt. Sie enthalten Klassen und Schnittstellen zur Definition von Sammlungen auf Basis von Vorlagen. Die neuen stark typisierten Collections bieten einen größeren Komfort bei der Anwendungsentwicklung und eine hohe Leistung bei der Datenverarbeitung.

    Die Bibliothek befindet sich im Ordner Include\Generic des Arbeitsverzeichnisses des Terminals.

  16. MQL5: Unterstützung für Templates für den Union-Datentyp wurde hinzugefügt.
  17. MQL5: Die Eigenschaft SYMBOL_VISIBLE für Handelsinstrumente wurde hinzugefügt. Der Aufruf von SymbolInfoInteger(symbol, SYMBOL_VISIBLE) gibt false zurück, wenn das angegebene Symbol im Market Watch nicht sichtbar ist.
  18. MQL5: Neue Eigenschaft CHARTEVENT_MOUSE_WHEEL hinzugefügt. Das Ereignis wird aufgerufen, wenn das Mausrad auf dem Diagramm gescrollt oder gedrückt wird (wenn CHART_EVENT_MOUSE_WHEEL=true für das Diagramm).
  19. MQL5: Die folgenden Diagrammeigenschaften wurden hinzugefügt:

    • CHART_EVENT_MOUSE_WHEEL - Aktivierung/Deaktivierung der Erzeugung von CHARTEVENT_MOUSE_WHEEL (Maus-Scroll- und Klick-Ereignis auf dem Chart). Mögliche Werte: 0 und 1.
    • CHART_CROSSHAIR_TOOL - aktiviert/deaktiviert die Möglichkeit, den Cursor durch einen mittleren Klick in den Fadenkreuzmodus zu schalten. Mögliche Werte: 0 und 1.
    • CHART_CONTEXT_MENU - aktiviert/deaktiviert die Verwendung des Rechtsklicks, um das Kontextmenü des Charts anzuzeigen. Mögliche Werte: 0 und 1.

  20. MQL5: Jetzt werden Zeichenpuffer mit dem Stil DRAW_NONE bei der Berechnung der Skala des Indikatorfensters nicht berücksichtigt.
  21. MQL5: Hinzufügen der CHARTEVENT_CHART_CHANGE Ereignisgenerierung bei der Einstellung der CHART_SCALEFIX (feste Skala) Eigenschaft für das Diagramm.
  22. MQL5: Die Funktion ArraySwap wurde hinzugefügt, die es ermöglicht, den Inhalt von dynamischen Arrays schnell zu tauschen.
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    Die Funktion akzeptiert dynamische Arrays des gleichen Typs und der gleichen Dimensionen. Bei mehrdimensionalen Arrays sollte die Anzahl der Elemente in allen Dimensionen außer der ersten übereinstimmen.

  23. MQL5: Hinzufügen der neuen Eigenschaft TERMINAL_RETRANSMISSION - Prozentsatz der erneut gesendeten Netzwerkpakete(Re-Transmits) im TCP/IP-Protokoll für alle laufenden Anwendungen und Dienste auf dem gegebenen Computer. Paketverluste treten selbst in den schnellsten und korrekt konfigurierten Netzen auf. In diesem Fall gibt es keine Bestätigung für die Zustellung der Pakete zwischen Empfänger und Absender. Daher werden verlorene Pakete erneut gesendet.

    Das Endgerät berechnet diesen Wert nicht. Er wird einmal pro Minute vom Betriebssystem abgefragt. Er ist kein Hinweis auf die Verbindungsqualität zwischen einem bestimmten Terminal und einem Handelsserver, da der Prozentsatz für die gesamte Netzaktivität, einschließlich System- und Hintergrundaktivitäten, berechnet wird.

    Die Eigenschaft TERMINAL_RETRANSMISSION wird der Aufzählung ENUM_TERMINAL_INFO_DOUBLE hinzugefügt, die Funktion TerminalInfoDouble wird verwendet, um sie zu erhalten.
  24. MQL5: Die Arbeit mit der Handelsgeschichte wurde optimiert.
  25. Signale: Feste Angabe der Art der Auftragsbefüllung im Falle einer erzwungenen Schließung von Positionen, die aufgrund eines Signals eröffnet wurden. Die Option 'Stop if the account is lower than XXX USD' ist in den Optionen zum Kopieren von Signalen enthalten: wenn das Eigenkapital unter ein bestimmtes Niveau fällt, wird das Kopieren von Handelssignalen automatisch beendet, alle Positionen werden geschlossen. Früher konnte im Falle einer erzwungenen Schließung ein falscher Füllungstyp für Positionsschließungsaufträge eingestellt werden. Jetzt prüft das Terminal die zulässigen Füllungsarten in den Symboleinstellungen und zeigt eine geeignete Option an.
  26. Tester: Das Verhalten der Funktion HistoryOrderSelect im Strategietester entspricht nun der gleichen Funktion im Client-Terminal.
  27. Tester: Das Verhalten der Funktionen CopyTicks und CopyTicksRange im Strategy Tester entspricht jetzt den gleichen Funktionen im Client Terminal.
  28. Tester: Optimierte Anzeige von Grafikobjekten beim visuellen Testen.
  29. Tester: Die Anzeige der Testergebnisse von Börseninstrumenten (mit dem Modell des Börsenrisikomanagements) wurde korrigiert. Der Chart zeigt jetzt nur noch das Eigenkapital an, während der Saldo und die Depotbelastung nicht angezeigt werden. Der Handelsstatus solcher Konten wird auf der Grundlage des Eigenkapitalniveaus bewertet. Der Saldo zeigt nur den Geldbetrag auf dem Konto an und ignoriert die Vermögenswerte und Verbindlichkeiten des Händlers. Die Einzahlungslast (Marge/Eigenkapital) wird nicht angezeigt, da die Marge im Berechnungsmodus der Börse dem aktuellen abgezinsten Wert der Aktiva/Passiva entspricht und sich mit dem Eigenkapital ändert.
  30. MetaEditor: Es wurde die Möglichkeit hinzugefügt, Eigenschaften und Ressourcen einfach in den Programmcode einzufügen. Zum Beispiel können Sie schnell eine eingebundene Datei zum Code hinzufügen. Verwenden Sie den Befehl "Insert-MQH as #incude", und wählen Sie die gewünschte Include-Datei aus. Die #include-Anweisung mit dem richtigen Pfad zur ausgewählten Datei wird in den Programmcode eingefügt.




    Das gleiche Menü ermöglicht das Hinzufügen von Dateien in Form eines Binär- oder Textarrays zum Programmcode. Unter anderem können Sie Chartvorlagen mit Expert Advisors oder Indikatoren übertragen: Fügen Sie Ihre Vorlage als Array in den Programmcode ein und speichern Sie sie anschließend mit der Funktion FileSave auf der Festplatte. Danach kann die Vorlage direkt aus einem Expert Advisor mit der Funktion ChartApplyTemplate auf den gewünschten Chart angewendet werden.
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  31. MetaEditor: Es wurde eine Option zur Konvertierung von Strings zwischen den Formaten ASCII, HEX und Base64 hinzugefügt. Wählen Sie eine Zeile im Quellcode und klicken Sie auf den gewünschten Befehl im Menü Bearbeiten-Konvertieren:




  32. MetaEditor: Die Groß-/Kleinschreibung wurde bei der Suche in Dateien nicht berücksichtigt.
  33. MetaEditor: Ein Debugger-Fehler wurde behoben, der bei der Berechnung von Ausdrücken ähnlich x.y[0][1].z auftreten konnte.
  34. MetaEditor: Die Code-Navigation mit den Schaltflächen Vor und Zurück wurde korrigiert.
  35. Die Benutzeroberfläche ist jetzt auch auf Niederländisch verfügbar.
  36. Aktualisierte Dokumentation.

Das Update wird über das Live-Update-System verfügbar sein.


 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Обсудим совместные проекты в редакторе - зачем они и куда движутся

Renat Fatkhullin, 2017.12.28 16:51

Ich habe ganz vergessen - wir bringen im Januar ein neues Kommunikationssystem für die Kommunikation heraus.

Dies ist ein Analogon des Telegramms, einschließlich Kanäle und Gruppen (öffentlich und privat).

Es wird möglich sein, thematische Gruppen zu starten, einschließlich bezahlter Gruppen.

So kann man zum Beispiel den analogen Inhalt per Abonnement verbreiten. Großer Wert wird auf den Datenaustausch von Endgeräten gelegt. Dadurch wird es viel schneller und bequemer sein, Diagramme, Profile, Einstellungen, Programme usw. auszutauschen.

 
Sergey Golubev:
Herr Sergey, glauben Sie nicht, dass dies zu einer starken Trennung und Isolierung von freiem Wissen im Forum führen wird. Denn jetzt müssen sich die Leute anmelden, um Wissen zu erhalten!
 

In Bezug auf MT5 seine jetzt robust und vielversprechend. Ich plane, auf MT5 ab dem nächsten Jahr zu migrieren, ich möchte schnell in Bezug auf "Synthetische Formel und benutzerdefinierte Symbol" zu fragen, sagen wir, mein Broker bietet nicht die benutzerdefinierte Symbol, das ich wählen, um zu erstellen, kann ich offene Trades auf diese Symbol und machen Gewinn/ Verluste und wird es hinzugefügt / abgezogen, um meine Bilanz?

 

Erstellen eines benutzerdefinierten Newsfeeds für MetaTrader 5


MetaTrader 5 verfügt über viele nützliche Funktionen, die ein Händler unabhängig von seinem Handelsstil benötigt, darunter auch einen möglichen Zugang zu einem Live-Newsfeed. Er bietet Händlern einen unschätzbaren Kontext, der sich auf die Märkte auswirken kann. Die einzige Einschränkung ist der Umfang der angebotenen Nachrichten. Meiner Meinung nach könnten Händler von einem flexibleren Nachrichten-Feed profitieren, der es ihnen ermöglicht, nicht nur die Art der Nachrichten zu wählen, sondern auch deren Quelle.