Thursday 8 June 2017

Absolute Dateipfad Ist Nicht Erlaubt Mt4 Forex

String filename, int mode, int delimiter) Öffnet die Datei für die Eingabe und / oder Ausgabe. Gibt ein Datei-Handle für die geöffnete Datei oder -1 (wenn die Funktion fehlschlägt). Um die detaillierten Fehlerinformationen zu erhalten, rufen Sie GetLastError () auf. Anmerkungen: Dateien können nur im Ordner terminaldirectoryexpertsfiles (terminaldirectorytesterfiles, wenn für Experten-Tests) oder in ihren Unterordnern geöffnet werden. FILEBIN - und FILECSV-Modi können nicht gleichzeitig verwendet werden. Wenn FILEWRITE nicht mit FILEREAD kombiniert wird, wird eine Datei mit null Länge geöffnet. Wenn die Datei einige Daten enthält, werden sie gelöscht. Wenn es notwendig ist, Daten zu einer vorhandenen Datei hinzuzufügen, muss sie mit der Kombination von FILEREAD FILEWRITE geöffnet werden. Wenn FILEREAD nicht mit FILEWRITE kombiniert wird, wird die Datei nur geöffnet, wenn sie bereits vorhanden ist. Wenn die Datei nicht existiert, kann sie im FILEWRITE-Modus erstellt werden. Es können nicht mehr als 32 Dateien gleichzeitig in einem ausführbaren Modul geöffnet werden. Handles von Dateien, die im selben Modul geöffnet wurden, können nicht an andere Module (Bibliotheken) weitergegeben werden. Anmerkungen: Dateien können nur im Ordner terminaldirectoryexpertsfiles (terminaldirectorytesterfiles, wenn für Experten-Tests) oder in ihren Unterordnern geöffnet werden. Theres eine Anzahl von Teilen des Codes auf diesem Forum, das das Win32 API benutzt, um Zugang zu den Akten irgendwo auf Scheibe zur Verfügung zu stellen. Zum Beispiel, mql5 / de / forum / 118999. Jjc: Theres eine Reihe von Code-Code auf diesem Forum mit der Win32-API, um Zugriff auf Dateien überall auf der Festplatte bieten. Zum Beispiel, mql5 / de / forum / 118999. Dank viel gute, neue Dinge zu lernen bearbeiten: Aber ich bemerkte, dass es nicht mit den Fileopen () functionNAT Dokumentation Benutzerdefinierte Nachrichtenquellen 1. Richten Sie die Nachrichtenquellen (MT4 Nachrichtenquellen) Warnung Getting Started war: MT4 Nachrichtenquellen sind in letzter Zeit oft erheblich verzögert , Wird es nicht empfohlen, (nur) MT4-Quellen für den Handel auf echten Konten zu verwenden Für echten Handel, kaufen Sie bitte die Vollversion und verwenden Sie die schnellere benutzerdefinierte Nachrichtenquellen. Klicken Sie hier für mehr Info. Zum Testen des News Readers können Sie den folgenden MT4 Broker mit Anlegerzugriff ausprobieren: Maklername: AxiTrader MT4 download link: axitrader / files / mt4setup. exe Login: 431388 Passwort: w2r4hf5t Server: AxiTrader-US06-Live (US06-live. mt4tradeserver ) Kurzname: AXI Pfad zu terminal. exe: Eingabe des MT4-Installationsverzeichnisses (Beispiel: quotC: Programmdateien (x86) MetaTrader - AxiTraderquot) Fenstertitelmuster: AxiTrader Es ist nicht erforderlich, mit MT4-Brokern zu handeln, Sie können nur für den Empfang der Nachrichten verwendet werden. Für den Handel kann fast jeder Broker verwendet werden (einschließlich nicht-MT4 Broker), es muss nur Trades schnell genug ausführen. Laden Sie die MT4, installieren, und geben Sie die Einstellungen in NAT (Optionen - gt News-Quellen - gt Hinzufügen). Starten Sie das MT4-Terminal, falls noch nicht geschehen. Sie können die Schaltfläche "Launch MT4squot" in NAT verwenden, um sie alle auf einmal zu starten. Um den Desktop-Bereich zu speichern, klicken Sie auf "Allquot ausblenden", um die Fenster auszublenden (MT4-Terminals werden im Hintergrund ausgeführt). Beachten Sie, dass die MTA-Meldung im MT4-Terminal möglicherweise nicht sofort erscheint, bis alle Nachrichten zum ersten Mal empfangen werden. Am Wochenende gibt es keine neuen Nachrichten. Alle Diagramme können geschlossen werden, sie sind nicht notwendig, um die Nachrichten zu empfangen. Klicken Sie im Hauptfenster auf StartStartquot, um zu überprüfen, ob die News-Schlagzeilen durch NAT lesbar sind. Um Informationen über alle empfohlenen Nachrichtenquellen (Zugangsdaten, Setup-Anweisungen, Einstellungen), einschließlich der schnellsten benutzerdefinierten Nachrichtenquellen, zu erhalten, erwerben Sie bitte die Vollversion. Klicken Sie hier für mehr Info. 2. Finden Sie tradable Nachrichten Die folgenden Aufstellungsorte können nützlich sein: fasteconomicnews / fxcalendar. aspx - Sie können sogar 1 Sekunde Diagramme der historischen Nachrichtenereignisse ansehen. Sehr nützlich, um Konsenswerte zu finden, Forschung handelbaren Nachrichten, Abweichungen und die besten Währungspaare zu handeln. Diese Seite bietet auch eine bezahlte Autoclick-Service, aber es ist sehr teuer. Australien bauaufsichtlichen Zulassungen Australien CPI Australien Beschäftigung Veränderung Australien BIP Australien Zinssatz Kanada Kern CPI Kanada Core-Retail Sales Kanada Beschäftigung Veränderung Kanada BIP EIA-Rohöllagerbestände EIA Erdgasspeicher ändern Deutschland PPI Deutschland ZEW-Konjunkturerwartungen Neuseeland CPI Neuseeland Zinssatz UK Core-Einzelhandel Sales UK CPI UK BIP UK Zinssatz UK Zinssatz APF UK Herstellung PMI UK Services PMI US ADP-Bericht US-Verbrauchervertrauen US Kern CPI US Core-Aufträge für langlebige Güter US Core-Retail Sales US-Verkäufe bestehender Häuser US-BIP US Zinssatz US ISM Manufacturing PMI US ISM Non-Manufacturing PMI US Neubauverkäufe US Nonfarm Payrolls US Arbeitslosenanträge andere Pressemitteilungen zu handeln Sie Ihre eigenen Skripts erstellen können, wenn die verwendeten Nachrichtenquellen, die notwendigen wirtschaftlichen Daten zur Verfügung stellen. 3. Bearbeiten Sie die Nachrichten-Skript (n) und das Setup, die Auslöser mit Nachrichten Skript-Editor (NSEditor) Achtung: beachten Sie, dass Sie die Skripte zu bearbeiten müssen und zu aktualisieren, die Auslöser (Konsens / Prognose Zahlen und Abweichungen) für jeden Handel Klicken Sie auf die 39Script Editor39 - Taste im Hauptfenster der NAT, um den Editor zu öffnen, das Skript für das zu tauschende News-Event zu öffnen und die Konsens - und (optional) Abweichungs-Trigger-Nummern zu aktualisieren. Konsens-Nummern können in den Kalenderseiten oben gefunden werden und sie unterscheiden sich in der Regel nicht viel. Zahlen bei fasteconomicnews / fxcalendar. aspx und forexpeacearmy / forexnewscalendar / sites sind in der Regel ziemlich genau und kann Quoten isquot verwendet werden. Const SYSTEMTITLE39US GDP q / q39 cns2.7 // US GDP q / q Konsensus posdev0.4 // kaufen USD / JPY negdev-0.4 // verkaufen USD / JPY strongposdev0.8 // kaufen USD / JPY strongnegdev-0.8 // verkaufen USD / JPY. Für vorhandene Skripte werden die empfohlenen Abweichungen und empfohlene Währungspaar (e) zum Handel in Kommentaren zur Verfügung gestellt, aber es wird empfohlen, eigene Recherchen durchzuführen, um die besten Einstellungen zu ermitteln. Achten Sie darauf, nicht wählen Sie das falsche Währungspaar zu handeln Sie können die Skripte mit Ihrem eigenen Make-up Schlagzeilen mit dem quotTesting Sandboxquot im Editor testen. 4. Handel die Nachrichten Es ist am besten, etwa 10 Minuten oder mehr vor der Veröffentlichung der Nachrichten vorzubereiten. Stoppen Sie alle Downloads und schließen Sie alle anderen unnötigen Programme, die die Internetverbindung für die beste Handelsausführungsgeschwindigkeit verwenden. Wenn das Skript bereit ist und nach dem Nachrichtenkalender Zeitplan Nachrichten sind bald freigegeben werden, bereiten für den Handel: 4.1. Klicken Sie in NSEditor auf quotAttachquot-Schaltfläche, um das zu verwendende Skript zu aktivieren und zu initialisieren. 4.2. Stellen Sie sicher, dass alle MT4-Terminals für die Nachrichtenlesung gestartet werden. 4.3. Starten Sie die Handelsplattform, öffnen Sie das Auftragsfenster, wählen Sie das Währungspaar aus, das Sie für den Handel ausgewählt haben und legen Sie die Handelsgröße (Lose / Einheiten) fest. Wenn dies Ihre ersten News-Trades sind, ist es ratsam, auf Demo-Konto handeln oder verwenden Sie eine kleine Handelsgröße. 4.4. Einrichten des Autoclicks: Klicken Sie im Haupt-NAT-Fenster auf die SchaltflächeCoordsquot und legen Sie die Koordinaten des Broker-Auftragsfensters (BUY / SELL, auch BUY / SELL, wenn Sie die Handelsgröße unterscheiden möchten) unter Verwendung der quotQuot-, quotquot, quotTquot, quotUquot-Hotkeys. Beispiel: Bewegen Sie den Mauszeiger über die Befehlsschaltfläche BUY und drücken Sie quotQquot, dann bewegen Sie den Cursor über die SELL-Taste des Auftragsfensters und drücken Sie quotEquot. Beispiel-Setup für MT4: Coords oder NAT-Fenster muss aktiviert sein, damit Hotkeys funktionieren. Alle Einstellungen werden sofort übernommen, können Sie das Fenster Coords schließen, wenn Sie fertig sind. Koordinateneinstellungen werden nicht gespeichert, wenn NAT geschlossen ist, sie müssen jedes Mal neu eingegeben werden, wenn NAT gestartet wird. Wenn Sie mit mehr als einem Broker gleichzeitig handeln möchten, klicken Sie auf Setup 2. Klicken Sie auf 2, 3. Koordinaten zu anderen Broker-Auftragsfensters BUY / SELL Buttons. Mit der Schaltfläche quotAdd Extra Clickquot können Sie bis zu 100 Klicks hinzufügen. Sie können auch die Click-Nummer auswählen, indem Sie die Hotkeys quot1quot-quot3quot verwenden (kann nützlich sein, um Koordinaten festzulegen, ohne das Fenster Coords zu öffnen). Hinweis: In virtuellen Maschinen (VMWare, Virtual PC) kann die simulierte Mauszeigerbewegung möglicherweise nicht funktionieren, allerdings sollten die Mausklicks dennoch korrekt registriert werden. 4.5. Stellen Sie sicher, dass der Nachrichtenreader gestartet wird, um die eingehenden Nachrichten zu verarbeiten (klicken Sie im Hauptfenster von NAT auf StartStartquot). 4.6. Ungefähr 1 Minute, bevor die Nachrichten veröffentlicht werden: Klicken Sie auf das Kontrollkästchen quotautoexecutequot, um den Autoclick zu aktivieren. Empfohlen: Halten Sie den Mauszeiger über quotautoexecutequot Kontrolle-Kästchen und überwachen die Broker-Spread für das ausgewählte Paar und die Preisaktion. Auf diese Weise können Sie die Ausführung des Handels durch schnelles Anklicken des Kontrollkästchens quotautoexecutequot wieder deaktivieren, um den Autoclick zu deaktivieren und damit zu verhindern, dass die Ausbreitung zu viel oder die Preisspitzen erhöht wird, bevor Sie ein Signal erhalten (falls Sie Nachrichten zu spät erhalten) Potenziell schlechten Handel. Wenn Sie ein Signal (erscheint im NAT-Signal-Panel) und der Handel ausgeführt wird, verwenden Sie Ihre Diskretion, um den Handel zu schließen (Geschäfte müssen manuell geschlossen werden). In den meisten Fällen empfiehlt es sich, Geschäfte in 1-3 Minuten oder weniger zu schließen. Hauptfenster des NAT-Fensters Falls einige Hauptfenster-Schnittstellenfunktionen zunächst nicht klar sind, wird es hier vollständig erklärt: 1. Öffnet das Fenster "Manuelles Kaufen / Verkaufen", um die Koordinaten des Maklers anzuordnen Wenn ein Handelssignal erzeugt wird). 2. Aktiviert / Deaktiviert die Autoclick-Funktion. 3. Wenn ein Skript an NAT angehängt wird, zeigt der Fenstertitel den Titel an, der durch das aktuelle Skript im 24-Stunden-Format definiert wurde. 4. Startet / stoppt den Nachrichtenleser (alle verfügbaren Nachrichtenquellen, einschließlich der benutzerdefinierten Nachrichtenquellen in der NAT-Vollversion). 5. Das Kontrollfeld "Ergebnisse". In den Skripten werden die Kennzahlenkonsensusnummern, Abweichungen usw. angezeigt. Standardbeschriftungen: cns - consensus, act - actual, dev - deviation, pre - previous, rev - revision, rdev - revisionsabweichung. Standard-Labels können durch Scripts umbenannt oder ausgeblendet werden, neue Labels können ebenfalls erstellt werden. 6. Das Kontrollfeld "Signalquellen". Zeigt das Signal an, das vom Skript aus der Verarbeitung der eingehenden Nachrichten generiert wurde. Unterstützte Signale: quotBUYquot, quotBUYquot (bedeutet starkes Kaufen), quotSELLquot, quotSELLquot (bedeutet starker Verkauf), quotNo Tradequot, quotCancelquot (bedeutet quotcancel tradequot - kann verwendet werden, um den Trader über möglichen Konflikt in später empfangenen Nachrichten zu informieren, vorschlagen, den Handel zu schließen so bald wie möglich). 7. Anzahl der aktiven Nachrichtenquellen. Wenn der Zeitungsleser gestoppt wird, ist der Wert 0. 8. Anzahl der neuen Nachrichten erhalten. Nach 999 Schlagzeilen wird der Wert auf 0 zurückgesetzt. 9. Der QuoteZeichenquadrat. Klicken Sie mit der rechten Maustaste, um die ausgewählte Überschrift in die Zwischenablage zu kopieren oder löschen Sie alle Schlagzeilen / Nachrichten. 10. Startet den News Script Editor (NSEditor). Mit der rechten Maustaste können Sie das aktuell angehängte Skript entfernen (entfernen). 11. Startet alle MT4-Terminals, die in den Optionen eingerichtet sind. 12. Schließt alle MT4-Klemmen. 13. Zeigt alle bisher verborgenen MT4-Terminals an. 14. Alle MT4-Terminalfenster ausblenden (sie werden im Hintergrund ausgeführt). 15. Auswahlfeld für MT4-Terminal (zum Anzeigen / Ausblenden bestimmter Terminals). 16./17. Ausgewähltes MT4-Terminal anzeigen oder ausblenden. Hinweis: In der Vollversion, wenn Sie die benutzerdefinierte Konsolenanwendung verwenden, kann das Konsolenfenster auch angezeigt / ausgeblendet werden. 18. Öffnet das Optionsfenster. Automatische Kauf / Verkauf Schaltfläche Standort Diese Funktion ermöglicht es automatisch, die Schaltflächen zu finden, in Broker-Plattform klicken, wenn ein Handel Signal generiert wird, so dass Sie don39t müssen die Koordinaten manuell jedes Mal angeben. Es ist jedoch nur auf einen einzigen Mausklick pro Handelssignal beschränkt. Es sollte für die meisten Broker-Plattformen funktionieren. Funktionsweise: Auftragsfenster befinden sich nach ihrem Fenstertitel und ihrem Klassennamen, die angegeben werden müssen. Die Schaltflächenpositionen werden unter Verwendung der angegebenen relativen Koordinaten innerhalb des Fensters bestimmt (Fenster-Client-Koordinaten, nicht absolute Koordinaten des Bildschirms). Wenn es mehrere Reihenfolge Fenster, korrigieren Fenster und klicken Sie auf (Kaufen / Verkaufen / Senden / etc.) Wird nach horizontalen Fenster Platzierung auf dem Bildschirm / Desktop bestimmt. Es stehen 4 Plazierungskonfigurationen für das Auftragsfenster zur Verfügung: 1. Einzelauftragsfenster, das sowohl Kauf - als auch Verkaufstasten enthält (Beispiel: MetaTrader 4). Fenster können irgendwo auf dem Bildschirm platziert werden, aber Kauf / Verkauf-Knöpfe müssen sichtbar sein. X - und Y-Koordinaten bestimmen die Schaltfläche "Kaufen" und "X2" und "Y2" die Schaltfläche "Verkauf" innerhalb des Fensters. Im Falle von BUY / SELL-Signalen werden die selben Buy / Sell Buttons dieses Fensters angeklickt (wenn es nur ein Orderfenster gibt). Beispiel: 2. Zwei Auftragsfenster, die jeweils sowohl Kauf - als auch Verkaufstasten enthalten. Das Fenster, das mehr nach links positioniert wird, wird für das Anklicken von BUY / SELL-Signalen verwendet, das Fenster mehr nach rechts auf BUY / SELL-Signale. Fenster vertikale Platzierung ist irrelevant, aber Kauf / Verkauf Tasten müssen sichtbar sein. X - und Y-Koordinaten geben die relative Buy-Taste an und X2 und Y2 die relative Sell-Schaltfläche innerhalb jedes Fensters und müssen für beide Fenster gleich sein. Beispiel: 3. Zwei Ordnungsfenster, die jeweils eine einzelne Schaltfläche enthalten, um den Handel zu öffnen. Ob es sich um einen Kauf - oder Verkaufsauftrag handelt, muss in jedem Auftragsfenster oder anderweitig angegeben werden (Beispiel: OANDA). Das Fenster, das mehr nach links positioniert wird, wird verwendet, um auf BUY - oder BUY-Signal zu klicken, das Fenster mehr nach rechts für SELL - oder SELL-Signal. Fenster vertikale Platzierung ist irrelevant, aber Schaltflächen zu klicken müssen sichtbar sein. Relative X - und Y-Koordinaten, die die Schaltflächenposition angeben, müssen für beide Fenster gleich sein. X2 und Y2 nicht angegeben werden sollen, müssen die SchaltflächenBuy und Sell innerhalb desselben Fensterbereichs deaktiviert werden. Beispiel: 4. Fenster mit vier Ordnungen, die jeweils eine einzelne Schaltfläche zum Öffnen des Handels enthalten (kann mit OANDA verwendet werden). Ob it39s Kauf oder Verkauf Auftrag muss in jedem Auftragsfenster oder auf andere Weise angegeben werden. Das am weitesten links positionierte Fenster wird zum Anklicken des BUY-Signals, des nächsten Fensters nach rechts - für das SELL-Signal, das nächste Fenster wieder rechts - für das BUY-Signal, das rechte Fenster - für das SELL-Signal verwendet. Fenster vertikale Platzierung ist irrelevant, aber Schaltflächen zu klicken müssen sichtbar sein. Relative X - und Y-Koordinaten, die die Schaltflächenposition angeben, müssen für alle vier Fenster gleich sein. X2 und Y2 nicht angegeben werden sollen, müssen die SchaltflächenBuy und Sell innerhalb desselben Fensterbereichs deaktiviert werden. Beispiel: 1. Wählen Sie unter quotOptions-gtClicker-gtBuy / Sell button location methodquot die OptionCustomquot aus. 2. Geben Sie die Informationen im Abschnitt "Kunden-Button-Standortmethode (Einzelklickgrenze)" ein. 2.1. Öffnen Sie das Broker-Plattform-Auftragsfenster. 2.2. Für quotOrder Fenstertitel patternquot geben Sie den Titel (Beschriftung) des Auftragsfensters ein. Wenn der Titel nicht konstant ist (zB den Währungspaarnamen), verwenden Sie den partiellen Titel (den nicht ändernden Teil). 2.3. Klicken Sie auf Sichtbare Fenstertitel und Klassennamen anzeigen und finden Sie den Klassennamen des Auftragsfensters. Geben Sie es im Feld quotWindow classnamequot ein. 2.4. Geben Sie die X-, Y - und ggf. auch X2, Y2-Koordinaten der Schaltflächen innerhalb des Auftragsfensters an. Dies muss durch Versuch und Irrtum getan werden. Verwenden Sie die Schaltflächen Kaufen / Verkaufen mit einem Klick auf deaktiviert, während das Auftragsfenster geöffnet ist, um die aktuellen Koordinaten zu testen und die Koordinaten anzupassen (klicken Sie immer auf "Applyquot" klicken), bis der Mauszeiger an die gewünschte Position verschoben wird. Hinweis: In virtuellen Maschinen (VMWare, Virtual PC) kann die simulierte Mauszeigerbewegung möglicherweise nicht funktionieren, jedoch sollten die Mausklicks dennoch korrekt registriert werden. Warnung: Wenn Sie die Test-Schaltflächen nicht verwenden, wird die Einstellung der Fensterplatzierungskonfiguration überprüft und beim Aktivieren des Kontrollkästchens autoclick (quotautoexecutequot im Hauptfenster von NAT) gespeichert. Die Fensterkonfiguration sollte danach nicht mehr geändert werden (oder das Autoclick wieder deaktivieren / aktivieren). Für MetaTrader 4-Plattform versuchen Sie folgende Einstellungen: Bestellen Sie Fenstertitelmuster: Auftragsprüfung quittierenAllow only exact matchquot Fensterklassenname: 32770 X-Position: 633 Y-Position: 230 Überprüfen Sie die SchaltflächenBuy und Sell im selben Fensterquot X2 Position: 424 Y2 Position: 230 Für OANDA FxTrade-Plattform versuchen, diese Einstellungen: Order Fenster Titelmuster: Market Order quotAllow nur genaue matchquot unchecked Fenster Klassenname: SunAwtFrame X Position: 136 Y Position: 442 quotBuy und verkaufen Schaltflächen innerhalb der gleichen windowquot unchecked Hinweis: Gegebenen Koordinaten sind für 96 DPI-System-Einstellung. Wenn Sie andere DPI-Einstellungen verwenden oder die Plattform-Schnittstelle geändert wird, müssen sie aktualisiert werden. Info zu Protokolldateien Wenn das Überschreiben der Protokollierung in NAT-Optionen deaktiviert ist, verwendet jedes angeschlossene Skript eine separate Protokolldatei mit demselben Dateinamen wie das Skript, jedoch mit der Erweiterung. txt. Wenn bereits eine Protokolldatei mit demselben Dateinamen vorhanden ist, werden neue Einträge angehängt, die Datei wird nicht überschrieben. Da Datei-Schreibvorgänge zwischengespeichert werden (4KB Schreibpuffer wird für bessere Leistung verwendet), werden Schlagzeilen in Protokolldateien möglicherweise nicht sofort angezeigt. Wenn kein Skript angefügt ist, werden Schlagzeilen immer noch in der Datei quotnewslog. txtquot protokolliert (sofern die Protokollierung deaktiviert ist). Test-Schlagzeilen, die in quotTesting sandboxquot (NSEditor) verwendet werden, werden nicht protokolliert. Das Verzeichnis der Standardprotokolldateien kann in NSEditor (Optionen - gt Script amp Log paths) geändert werden. Copyright Xangi Software, 2016. Alle Rechte vorbehalten. MetaTrader 4 Trading Terminal bauen 600 mit aktualisierten MQL4 Sprache und Markt der Anwendungen Freigegeben In den vergangenen 7 Monaten seit der Veröffentlichung des öffentlichen Build 509, haben wir eine Menge Anstrengungen zur Verbesserung von MetaTrader 4 Client-Endgerät. MQL4-Programmiersprache für die Entwicklung von Handelsstrategien hat die wichtigsten Veränderungen durchlaufen - die Geschwindigkeit der Programmausführung wurde erhöht, während die Sprache selbst näher an MQL5 herangeführt wurde, um das maximal mögliche Maß zu erreichen. Dies bedeutet, dass MQL4-Handel Roboter-Entwickler können nun auch alle Vorteile der OOP: Klassen und Strukturen, Vererbung, Standard-Bibliothek. Ressourcen und vieles mehr. Der neue MetaEditor bietet Funktionen wie Debugging, Profiling und persönliches Speichern. Autosubstitution von Funktionsnamen, Snippets, Einfügung von Ressourcen und intelligentes Code-Management. Das neue MetaTrader 4 Terminal verfügt über den Markt für geschützte Anwendungen für das MetaTrader 4 Terminal. Jetzt kann jeder Entwickler seine eigenen Handelsprogramme zum Verkauf auf dem vereinheitlichten Anwendungsspeicher setzen, während Händler jedes Produkt direkt vom Terminal kaufen können. Alle vom Markt heruntergeladenen EX4-Anwendungsdateien verfügen über ein hohes Schutzniveau wie MQL5. MQL4-Anwendungsentwickler können die Anzahl der Aktivierungen und Preise für ihre Produkte festlegen, ohne sich um die technischen Probleme im Zusammenhang mit dem Verkaufsprozess zu kümmern - MetaTrader 4 Market kümmert sich um letztere. Aufgrund von Änderungen in der Dateistruktur und dem Speicherort des Verzeichnisses für die Speicherung benutzerdefinierter Dateien (Indikatoren, Expertenberater, Skripts, Vorlagen, Protokolle usw.) werden diese Daten automatisch während der Aktualisierung an die neue Position verschoben. Nicht eine einzelne benutzerdefinierte Datei wird während des Prozesses gelöscht, und alle ursprünglichen Dateien bleiben an ihren entsprechenden Speicherorten werden Backup-Kopien. Alle benutzerdefinierten EX4-Dateien, die vom alten MQL4-Compiler erstellt wurden, werden automatisch in das neue Navigator-Verzeichnis verschoben und funktionieren in dem neuen Terminal genauso wie zuvor. Trading Terminal MQL4 Sprache für die Programmierung Handelsstrategien wurde wesentlich überarbeitet und seine Funktionalität wurde näher an die von MQL5 gebracht. Klassen und Strukturen wurden hinzugefügt, und die Sprachsyntax wurde erweitert, um es Entwicklern zu ermöglichen, alle Vorteile der objektorientierten Programmierung zu implementieren. Das bedeutet, dass Handelsroboter und technische Indikatoren jetzt viel einfacher und schneller erstellt werden können, während Expert Advisor-Entwickler neue Möglichkeiten in einer einzigen MetaEditor-Entwicklungsumgebung erlangt haben: Debugging, Profiling, Codevervollständigung, etc. Weitere Informationen zu den neuen Features finden Sie hier Ein separater Abschnitt des MetaEditor-Artikels über MQL5. Erhöhte Arbeitsgeschwindigkeit von MQL4-Anwendungen, die integrierte Unterstützung von DLL und Visual Studio, implementiert Zugriff auf MQL5-Speicher und vieles mehr. Added Market Tab für den Kauf und Download bezahlt und kostenlos Expert Advisors, Signale und Skripte von MetaTrader 4 Market. Jetzt kann jeder MQL4-Entwickler ein Verkäufer und bieten Produkte an Millionen von Händlern mit MetaTrader 4. Sie können eine Demoversion herunterladen oder kaufen eine voll ausgestattete bezahlte MQL4-Anwendung auf MetaTrader 4 Market direkt vom Terminal. Jeder Kauf ist völlig sicher, so dass ein Benutzer bis zu 5 Aktivierungen auf verschiedenen PCs und hat keine Beschränkungen für die Arbeitszeit, Kontotyp oder einen Makler. Jeder bezahlte Indikator oder ein Expert Advisor kann im MetaTrader 4 Strategie-Tester im visuellen Modus vor dem Kauf gestartet werden, um das Produkt zu bewerten. MetaTarder 4 build 600 bietet die neue Struktur und den Standort der Client-Terminal-Dateien. Nun werden MQL4-Anwendungen nach dem Programmtyp (Expert Advisors, Indicators oder Scripts) in separaten Verzeichnissen platziert. In den meisten Fällen werden die Terminaldaten nun in einem speziellen Datenordner gespeichert, der vom Terminalinstallationsort getrennt ist. In diesem Artikel werden wir im Detail beschreiben, wie Daten übertragen werden, sowie die Gründe für die Einführung des neuen Speichersystems. Warum wurde das neue Datenspeicher-System implementiert Microsoft Windows XP freigegeben 13 Jahren ermöglicht Anwendungen, ihre eigenen Daten zu schreiben Den Ort ihrer Installation, auch wenn diese im Programmordner-Systemordner stattgefunden hat. Ein Benutzer sollte nur über eine Administratorberechtigung verfügen, um Daten in einen beliebigen Ordner zu schreiben. Bei der Arbeit in 64-Bit-Systemen werden separate Installationsverzeichnisse für 32- und 64-Bit-Programme bereitgestellt: Programmdateien und Programmdateien (x86). Die in diesem Artikel beschriebenen Funktionsmerkmale gelten für beide Verzeichnisse. Ab Windows Vista hat Microsoft eine Beschränkung für das Schreiben in das Programmdateien-Verzeichnis eingeführt. Wenn das Benutzerkontensteuerung-System aktiviert ist, können Programme ihre Daten nicht im Programmordner-Ordner speichern. Alle Daten sollten sich in einem separaten Benutzerverzeichnis befinden. Diese Einschränkung wurde eingeführt, um Benutzer vor schädlichen Programmen zu schützen und zu verhindern, dass Anwendungen unter einem Benutzerkonto dieselben Programme ändern, die für ein anderes Benutzerkonto erforderlich sind. Seit dieser Zeit verschärfen sich die Sicherheitsanforderungen in Microsoft-Betriebssystemen. Insbesondere unter Windows 8 kann das UAC-System nicht deaktiviert werden, auch wenn die Option Never notify nicht in seinen Einstellungen ausgewählt ist. Microsoft hat den Virtualisierungsprozess implementiert, um bei der Verwendung von UAC die Kompatibilität mit älteren Anwendungen zu gewährleisten. Wenn ein Programm versucht, seine Daten in das Verzeichnis der Programmdateien zu speichern, werden die Daten tatsächlich (physisch) in einem separaten Ordner mit folgendem Look - C: Usersltuser-namegtAppDataLocalVirtualStoreProgram-Dateien gespeichert, während der Windows-Datei-Explorer die Dateien anzeigt, als ob sie gespeichert wurden Das Installationsverzeichnis. Microsoft behauptet, dass dieser Modus nur für Kompatibilität bereitgestellt wurde und später entfernt werden kann. Um die Microsoft-Empfehlungen zu erfüllen, wurde die Datenspeicherstruktur im MetaTrader 4-Client-Terminal ab dem Build 600 geändert. Jetzt speichert das Terminal seine Daten in einem Benutzerverzeichnis. Benutzerdatenverzeichnis In der neuen Version werden alle Daten eines bestimmten Benutzers, der mit einer bestimmten Kopie des MetaTrader 4 Terminals arbeitet, an einem speziellen Ort, dem Datenterminal, gespeichert. Dieser Ordner befindet sich auf folgendem Pfad auf einem Systemdatenträger (einem Datenträger mit installiertem Windows-Betriebssystem): - - Name eines Systemdatenträgers Useraccountname - Benutzerkonto für die Arbeit in Windows Instanceid - eindeutiger Name des Ordners, in dem sich alle Benutzer befinden Daten für die Arbeit mit einer bestimmten Kopie des MetaTrader 4 Terminals gespeichert. Ein einziger Name besteht aus 16 Zeichen. Der Name wird basierend auf dem Pfad zum Terminal-Installationsverzeichnis generiert, da der Pfad zum Terminal-Installationsverzeichnis nicht explizit als Ordnername verwendet werden kann. Die signifikante Länge des eindeutigen Namens wird durch die Tatsache erklärt, dass mehrere Kopien des Terminals auf einem einzigen PC installiert werden können. Der Befehl "Datenordner öffnen" wurde dem Menü "Datei" des Terminals zum Suchen und Öffnen des Datenordners hinzugefügt. Das Stammverzeichnis jedes Terminal-Datenordners enthält auch die Datei "origin. txt", in der Sie den Pfad zum Installationsordner des Terminals finden können, auf den sich diese Daten beziehen. Dies ermöglicht es Benutzern, jeden Terminaldatenordner mit einem bestimmten Terminalinstallationsverzeichnis abzustimmen, beispielsweise, wenn mehrere Kopien des MetaTrader 4-Terminals von einem Benutzer installiert werden. Diese Art der Arbeit mit dem Terminal, wenn der Datenordner von der Installation getrennt ist, ist der Hauptmodus. Für mehr Komfort wird ein Eintrag, der den Pfad zu dem Datenordner enthält, bei jedem Starten des Terminals in dem Terminalsjournal erzeugt. Beispiel: 2014.02.10 12: 48: 28.477 Datenordner: C: UsersJohnSmithAppDataRoamingMetaQuotesTerminal9F86138A4E27C7218E9EC98A5F8D8CA1 Kopieren von MQL4-Anwendungsdateien beim Aktualisieren auf MetaTrader 4 Build 600 und höher Wenn das neu gestartete Terminal gestartet wird, prüft es, ob der Datenordner vorhanden ist. Wenn der Datenordner noch nicht vorhanden ist, wird er erstellt. Wenn sich dieser Ordner von der Installation unterscheidet, werden die Terminals (Standard-MQL4-Programme, historische Daten, Konfigurationsdateien, Vorlagen usw.) in diese kopiert. Die Dateien, die während des Terminalbetriebs nicht geändert werden (ausführbare Dateien, mql. dll-Compiler, Sounddateien usw.), bleiben im Installationsverzeichnis. In den folgenden Fällen unterscheidet sich der Terminaldatenordner von der Installation: Das UAC-System ist aktiviert. Die Ausnahme ist, wenn das Terminal auf einem tragbaren Gerät (externe Festplatte, USB-Flash-Laufwerk, etc.) installiert ist. Der aktuelle PC-Benutzer verfügt über beschränkte Rechte zum Schreiben von Daten in das Installationsverzeichnis. Ein Benutzer arbeitet über Remote-Verbindung (RDP). Wenn keine der obigen Bedingungen erfüllt ist, werden die Terminaldaten im Installationsverzeichnis gespeichert. Anschließend werden die Benutzerdateien in den Datenordner verschoben. Zu diesem Zeitpunkt wird das Verzeichnis bestimmt, in dem die Endgerätebenutzerdaten gespeichert worden sind. Wenn die Daten im Terminal-Installationsordner abgelegt sind, werden sie folgendermaßen kopiert: Quellordner im Installationsverzeichnis Zielordner im Terminaldatenverzeichnis Als nächstes wird geprüft, ob das Client-Terminal Daten im Virtualisierungsverzeichnis gespeichert hat Wie oben beschrieben). Wenn das Terminal im Verzeichnis "Program Files" installiert wurde und das Betriebssystem Windows Vista oder höher ist, werden die Terminaldaten höchstwahrscheinlich in diesem Verzeichnis gespeichert. Wenn die Daten gefunden werden, wird sie entsprechend der obigen Tabelle kopiert. Die Dateien werden während der Migration kopiert und nicht verschoben. Die kopierten Dateien werden nicht aus den Quellordnern gelöscht. Während der Migration werden die Einträge, die Quell - und Zielpfade der kopierten Dateien enthalten, im Terminals Journal erstellt. Um alle Protokolle anzuzeigen, öffnen Sie das Register Journal des Terminalfensters und führen im Kontextmenü den Befehl Öffnen aus. Der Ordner mit den Terminalprotokolldateien wird geöffnet. Wenn die Migration für die aktuelle Terminalkopie erfolgreich abgeschlossen wurde, wird sie bei nachfolgenden MetaTrader 4-Terminalupdates nicht mehr wiederholt. Wenn sich der Datenordner von der Installation unterscheidet und benutzerdefinierte MQL4-Anwendungen zusammen mit den Standarddateien während der Migration kopiert wurden, wird das folgende Dialogfenster angezeigt: Der portable Startmodus ist für den Terminalbetrieb auf tragbaren Geräten und Nicht-Systemverzeichnissen vorgesehen , Sowie für die Arbeit in Windows XP. Beim Start in diesem Modus versucht das Terminal, seine Daten im Installationsordner zu speichern. Die Verwendung des tragbaren Modus garantiert jedoch nicht, dass ein Betriebssystem die Speicherung von Daten im Installationsordner ermöglicht (z. B. wenn das Terminal im Programmverzeichnisverzeichnis installiert ist und das UAC-System aktiviert ist). Die folgenden Bedingungen sollten erfüllt sein, um im tragbaren Modus zu arbeiten: Das Terminal wird immer im tragbaren Modus gestartet. Es wird nicht empfohlen, den tragbaren Modus zu verwenden, wenn Sie Windows Vista oder höher verwenden und das Terminal in Program Files installiert ist. Dieser Modus ist für den Terminalbetrieb für tragbare Geräte und Windows XP vorgesehen. Wenn Sie das Terminal aktualisiert haben und alle Daten in einen separaten Benutzerdatenordner kopiert wurden, wird auch nicht empfohlen, in den tragbaren Modus zu wechseln. Sie sollten die Daten manuell in den Installationsordner kopieren, um den tragbaren Modus nach dem Kopieren der Daten im Benutzerdatenordner zu verwenden. Beim Starten des Terminals im tragbaren Modus werden die Daten nicht aus dem Datenordner in die Installationsdatei kopiert. Um das Terminal im tragbaren Modus zu starten, verwenden Sie die / portable Taste. Für mehr Komfort können Sie eine zusätzliche Terminal-Verknüpfung mit dem entsprechenden Namen auf Ihrem Desktop erstellen und fügen Sie den Schlüssel direkt auf die Verknüpfung: Ändern Sie den Algorithmus für das Platzieren von Handelsanforderungen. In früheren Builds wurde eine zusätzliche Netzwerkverbindung beim Platzieren von Handelsanforderungen erstellt. Diese Verbindung blieb einige Zeit aktiv, nachdem eine letzte Handelsanfrage gesendet wurde, um ein schnelles Senden einer großen Anzahl von Handelsanforderungen zu ermöglichen. Jetzt werden bei der Platzierung von Handelsanforderungen alle über die Hauptverbindung mit dem Handelsserver übergeben. Somit ist der Zeitpunkt der Verarbeitung der Handelsanforderungen (insbesondere der ersten) beträchtlich verringert worden, da keine Notwendigkeit besteht, darauf zu warten, daß die Verbindung zum Handelsserver mehr hergestellt wird. Damit der neue Anforderungssendungsalgorithmus betriebsfähig ist, sollte auch der Handelsserver aktualisiert werden - Anfragen werden immer noch in einer separaten Verbindung auf älteren Handelsservern gesetzt. Durch den Übergang zum neuen Modell der Anforderungsverarbeitung wurde die Möglichkeit, die vom Server noch nicht akzeptierten Handelsaufträge abzubrechen (Schaltfläche Abbrechen im Status der Handelsanfrage) deaktiviert. Geändertes RateInfo-Verlaufsdatenspeicherformat. Die RateInfo-Struktur wurde in der alten Version wie folgt dargestellt: Im neuen Format enthält die RateInfo-Struktur Felder für die Speicherung von Spread - und Handelsvolumen: Wenn also MQL4-Programme DLLs zur Übergabe / Annahme von Preisdaten enthalten, sollten die entsprechenden Funktionen in den Quellcodes liegen Umgeschrieben und neu kompiliert unter Berücksichtigung Formatänderungen, um einen ordnungsgemäßen Betrieb zu gewährleisten. Alte EX4-Anwendungen und DLLs, die auf dem alten RateInfo-Format basieren, funktionieren nicht im neuen Terminal. Die Umwandlung in das neue Format ist erforderlich. Zusätzliche globale Suche im MetaTrader 4 Client-Terminal und bei MQL4. Durch die Suche im Terminal können Sie schnell Informationen in allen Abschnitten des Client-Endgeräts Code Base finden. Sowie auf MQL4- und MQL5-Websites. Worth-by-word-Suche im Hinblick auf die russische und englische Morphologie verwendet wird. Die Suche erfolgt in den von einem Benutzer in den Einstellungen angegebenen Abschnitten: Das Kontextmenü der Registerkarte Suchergebnisse enthält zusätzliche Befehle abhängig von der Art der Ergebnisse: Der Befehl zum Platzieren eines Sofortauftrages für die Entwicklung von MQL4-Anwendungen im Abschnitt Jobs wurde hinzugefügt . Jetzt kann jeder Händler nicht nur einen beliebigen Code aus der freien Bibliothek herunterladen, sondern auch einen Programmierer finden, der in der Lage ist, einen notwendigen Indikator oder einen Handelsroboter entsprechend dem Benutzeralgorithmus zu entwickeln. Der Prozess der Auftragsausführung wird im Artikel beschrieben, wie man einen Expertenratgeber bestellt und das gewünschte Resultat erhält und Schutz für Mühe-Parteien - einen Entwickler und einen Kunden zur Verfügung stellt. Added ability to send push notifications of transactions occurring on the client account: placing, changing and removing orders, activation of pending orders and SL-TP, Margin Call and Stop Out events. Push notifications are sent to the mobile terminals installed on iOS and Android powered devices, do not depend on the phone number and can be delivered if Internet connection is available. Find out the details in the article MetaQuotes ID in MetaTrader Mobile Terminal . Added display of alerts on the chart. The alerts can be managed via dragndrop. Also, the ability to set an alert expiration time has been implemented. When management of trading levels from the chart is allowed, alerts price value can be changed by its dragging to a new price level. Alerts can be disabled or removed using a context menu on the appropriate chart level. Added search for a server by a company name in the demo account opening window. Just enter a company name (or a fragment of a server name) and the terminal will automatically add all servers of the company (the servers containing the specified line in their names) to the list:Added display of subfolders and the structure of Expert Advisors, scripts and indicators in Navigator window. Improved accuracy of opening and closing time of trade orders and positions displayed in the lists of open orders and positions, trading history and trade reports - seconds have been added. Improved accuracy of the last quotes time displayed in Market Watch and Popup Prices windows - the last quotes time is shown up to seconds (instead of minutes). Added automatic terminal restart request after changing the interface language. The client terminal should be restarted in order for the change to take effect. Previously, users had to close and launch the terminal for themselves. Now, after changing the interface language, users are immediately prompted to restart the terminal - it can be closed and restarted at a single click. Fixed tooltips of trading levels in case the indicators using a separate subwindow are present on the chart. When hovering the mouse cursor over Stop Loss or Take Profit level on the chart, a tooltip containing profit/loss (in points and currency) to be received in case of the levels activation is displayed. Previously, if an indicator working in a separate subwindow (for example, standard MACD) was present on the chart, that tooltip was not displayed sometimes. Added automatic update of the client terminal built-in user guide files similar to the one implemented in MetaTrader 5. Now, help files are not included in the terminals installation and LiveUpdate packages reducing the traffic volume. The user guide is downloaded the first time a user opens it. In all subsequent cases, the system checks if the new versions are present. If there is a new version available, the user is prompted to update:The new system of working with help files also reduces the traffic consumption due to the fact that the language version of the downloaded user guide corresponds only to the language specified for the client terminals interface (no excessive language versions are downloaded). This system also provides regular update of the user guide regardless of the client terminal update. Added MQL5munity fast registration dialog in case a user has no account. Now, an MQL5munity account can be created without the need to leave the terminal. Specify login and email address in the registration window. After clicking Register, an email for MQL5munity account activation is sent to the specified address. MQL5munity account allows traders to use additional powerful services: MetaTrader 4 AppStore - users can buy MetaTrader 4 apps or download them for free directly from the terminal. MetaTrader 4 AppStore offers hundreds of various applications and their number is constantly increasing. Signals service - users can subscribe to trading signals provided by professional traders and make profit. Trading operations are automatically copied from providers account to subscribers one. The service also allows selling your own trading signals. A trading account can be connected to the monitoring system in a few clicks. Trading accounts are now displayed much clearer in Navigator window: Accounts are grouped by their appropriate trade servers. If an account is subscribed to trading signals, the icon with a signal name is displayed nearby. When hovering the mouse cursor over the signal, subscription expiration date is shown. If the current trading account is subscribed to a signal, the appropriate icon is displayed in Trade tab of Symbols window. When hovering the mouse cursor over the icon, the data on the signal is shown. There have been cases when traders forgot that their account was subscribed to a signal. That could happen, for example, when subscription has been made to check the services operation. The subscription icon makes working with signals more convenient. Added new graphical objects: Button, Bitmap, Bitmap Label, Rectangle Label. These objects cannot be manually installed on the charts and are designed for organizing a user interface for MQL5 applications: Expert Advisors, scripts and indicators. Optimized work with MQL5munity in case of slow Internet connection. Now, you can work with Trading Signals. Code Base library and the version MQL5 Storage conveniently even at low connection speed. Improved accuracy of the time displayed in the client terminals Journal - milliseconds have been added. Fixed One Click closing of positions in the list of open orders and positions (by clicking Cross button) - now the value of the acceptable price deviation from the trading settings is used in Instant Execution mode. Added ability to copy to clipboard on Company tab. Fixed arranging chart windows by commands. Fixed saving profiles when switching between full-screen charts. Fixed display of a number of dialogs when using the Japanese interface. All client terminal components require support for SSE2 instruction set by PCs processor for efficient operation and high performance. Optimized scanning for the best access point. Fixed looping errors that occurred during the update in case of refusal from elevating the rights when using UAC. Fixed display of the news header and contents, as well as of internal e-mails using UTF-8 encoding. Fixed an error that in some cases could lead to incorrect display of Margin and Free Margin fields in the list of open orders and positions. This error might occur when a user declined to accept One-Click Trading agreement. Updated the list of countries in the appropriate dialog when opening a demo account. Updated and enhanced translation of the interface into Swedish, Hungarian, Japanese, Italian and Bulgarian. Fixed time in the bar dialog of the quotes Archive. Previously, bar time was displayed incorrectly when re-opening the bar dialog. The quotes Archive allows managing the terminals price data - download, edit and delete bars of various timeframes. Fixed downloading history data via the quotes Archive. The error could occur if the number of characters on the current account is different from that of downloaded quotes (for example, if the current accounts prices have four decimal places, while the prices downloaded from the archive have five ones). Fixed displaying hedged margin in the symbol specification dialog. Previously, values have always been rounded up to the integer part: Trading Signals Expanded information about a trading signal: added information about the date of the latest trade and the number of trades for the last week. added Equity chart of the trading signals source account. added Distribution diagram displaying trading activity by symbols. Added the option for unconditional synchronization of positions between a signal source and a subscribers account. If enabled, synchronization of subscribers and signal sources accounts (including closing open positions not related to the signal) is performed without subscribers additional confirmation. This option is necessary when using signals on VPS (Virtual Private Server). It can also be used to increase the synchronization reliability when working with the already selected signal. Added legend for equity, growth, balance and distribution graphs. Also, marks displaying funds depositing and withdrawal have been added to the equity graph. When hovering the mouse cursor over the balance operation triangle, a tooltip with the operation sum is displayed:Added display of the number of new trading signals submitted over the past 3 days on the signals tab. Added consideration of the minimum allowed volume and minimum volume step during the initial synchronization of trading positions. If the size of the local position is less than the estimated volume at the signals side, increase in the local position is not performed, as it would be necessary to re-open the position. This might lead to the loss of the spread. Fixed opening and closing trade positions by symbols with the execution type being changed from Instant Execution to Request Execution when the threshold order volume value is exceeded. When symbols of a signal source and a subscriber are compared and a number of appropriate symbols at the subscribers side are found, permission to trade them is now considered. Added History and Reviews tabs to the information about a trading signal. Added signals rating column to the signal list. Removed display of tickets of signals orders and positions from the information about a trading signal. Fixed an error of trading signals synchronization that occasionally occurred in case of the large number of unidirectional positions having the same volume. Added automatic conversion of trading symbols GOLD ltgt XAUUSD and SILVER ltgt XAGUSD. Added prohibition to subscribe to trading signals for the accounts compatible with NFA FIFO regulations. Fixed subscription to signals when working under Wine (Linux and Mac). Removed Show full list of signals option from Signals tab of Symbols window. If this option is disabled, only signals provided from the accounts of the same broker are displayed in the the terminals signal showcase. Now, all signals are displayed in the showcase, regardless of a broker. As a result, traders always have a wide selection of signals available for subscription allowing them to choose the best offers. Strategy Tester Fixed consideration of a tick spread set in the testing parameters when optimizing using a tick cache. Fixed testing error that could occasionally lead to incorrect calculation of a trading deal commission. During the tests, charged commission settings are taken from the appropriate trading symbol parameters. Previously, if the commission value was charged as a percentage per annum, it was calculated incorrectly in the strategy tester. MQL4 Language Fixed an error that occasionally prevented closing and opening trading positions from MQL4 apps. This error could occur when dealing with trading symbols of Market Execution type when sending big volume orders. Fixed errors reported on the forum and in crash logs. Whats New in MQL4 MQL4 programming language has been completely revised reaching the level of MQL5 - now you can develop trading robots in MQL4/5 using the unified MetaEditor development environment, single style, libraries and debugging tools. MQL4 is popular among automated system developers due to the ease of learning and a huge amount of code generated for many years of using MetaTrader 4 terminal. However, the language also has some drawbacks arising from its main advantage - a simple programming language does not allow development of complex systems and hinders porting of debugged libraries from high-level languages. Therefore, we decided to implement in it the maximum possible amount of MQL5 language functions and features fully preserving MQL4 functionality. In other words, all powerful MQL5 functions, including P and the native code compiler, will become available in MQL4. To achieve this, we have developed a unified compiler that automatically supports both MQL4 and MQL5 languages. MetaEditor will also become a unified application both for MetaTrader 4 and MetaTrader 5 platforms. Thus, it will be possible to compile both MQL4 and MQL5 from any version. MQL5 Storage also becomes available for work. Protection of MQL4 applications rises to MQL5 level. New EX4/EX5 files are provided with a serious and completely revised protection. This means that the Market of secure EX4 applications also becomes available to MetaTrader 4. Besides, MQL4 now features new graphical objects and new functions for working with charts. MQL5 Standard Library is to be ported to MQL4 providing developers with new possibilities in creating their own graphical interfaces and trading libraries. Now, you can create full-fledged applications in MetaTrader 4 using the resources. Changes in MQL4 Language Added new char, short, long, uchar, ushort, uint, ulong and double data types. This will allow transferring codes from other C like languages. Data of various type is processed at different rates. Integer data is the fastest one to be processed. A special co-processor is used to handle the double-precision data. However, due to the complexity of the internal representation of floating-point data, it is processed slower than integer one. Typecasting has also been implemented. Strings are now presented in Unicode format, though they were in ANSI format (single byte ones) before. That should be considered if the program uses DLLs and passes string variables to them. Predefined Volume variable is now of ulong type. The time series for accessing the volumes also consist of ulong type arrays. It is recommended to use explicit casting of data having this type to the target type in old MQL4 programs to avoid type overflow error. Structures and classes, object pointers, void type and this key word allowing an object to receive a reference to itself have been added. All object-oriented programming standards are supported: Encapsulation and Extensibility of Types Inheritance Polymorphism Overload Virtual functions P allows developing programs using classes. This facilitates debugging and development of large applications, as well as provides ability to reuse previously generated code multiple times due to inheritance. However, that does not mean that you cannot generate your MQL4 code in procedure-oriented style as before. You can develop your programs as you did in the past if you dont need the new features. init(), deinit() and start() predefined functions have remained for compatibility, however, OnInit(), OnDeinit(), OnStart(), OnCalculate() and OnTick() ones can now be used instead. Besides, new OnTimer(), OnChartEvent() and OnTester() predefined handler functions have been added. In the previous MQL4 versions, predefined functions could have any parameters and any return type. These functions were called by their names, not signatures. In the new MQL4, all predefined functions should exactly match their signatures. In other words, they should have a clearly defined set of parameters and a return type. Now, variable names cannot contain special characters and points, and new MQL4 language keywords cannot be used as names. Old MQL4 programs can be recompiled with the new compiler in order to easily correct all such errors while following the compilers messages. The Precedence rule now matches C language standards. If you are unsure, you can insert parentheses in old MQL4 apps to clearly indicate the priority to increase reliability. Shortened conditions check is now used in logical operations, unlike the old MQL4 version where all expressions have been calculated and the check has been performed afterwards. Suppose there is a check of two conditions with the use of logical AND If condition1 expression is false . calculation of condition2 expression is not performed, as false ampamp true result is still equal to false . ArrayCopyRates() has also changed its behavior. Instead of virtual copying to double6 array, it now performs virtual copying to MqlRates array. Copying to double6 array has remained intact for the sake of compatibility, however, that copying is real, not virtual. In file operations, the number of simultaneously opened files can now reach 64 ones, while there could be no more than 32 ones in the old MQL4. Until recently, the files were always opened in FILESHAREREAD or FILESHAREWRITE mode. Now, the necessary opening mode should be specified explicitly. Working with functions, scope of variables and memory release in local arrays has also been changed. Since the number of changes is large enough, the new property strict property has been introduced to provide maximum compatibility with the previous approach to developing MQL4 programs. When creating new MQL4 application using MQL wizard, this property is always added to the template. The table below contains the differences between MQL4, new MQL4 without using strict and new MQL4 with specified strict compilation mode The table of differences between compilers Old MQL4 compiler New MQL4 compiler New MQL4 with property strict


No comments:

Post a Comment