English Русский 中文 Español 日本語 Português
Datenstruktur in MetaTrader 4 Build 600 und Höher

Datenstruktur in MetaTrader 4 Build 600 und Höher

MetaTrader 4Beispiele | 4 Mai 2016, 12:20
1 939 0
MetaQuotes
MetaQuotes

Einführung

MetaTrader 4 Build 600 verfügt über die neue Struktur und Position der Client-Terminal-Dateien. Nun sind MQL4 Anwendungen in separaten Verzeichnissen nach dem Programmtyp (Expert Advisors, Indikatoren oder Skripte) platziert. In den meisten Fällen werden Terminal-Daten nun in einem speziellen Datenordner vom Terminal Installationsort getrennt gespeichert. In diesem Artikel werden wir im Detail beschreiben, wie Daten übertragen werden, sowie die Gründe für das neue Speichersystem einzuführen.



Warum wurde das neue Daten-Speicher-System implementiert

Microsoft Windows XP, vor 13 Jahren veröffentlicht, ermöglicht Anwendungen ihre eigenen Daten an den Ort ihrer Installation zu schreiben, auch wenn letztere im Program Files Systemordner stattfand. Ein Benutzer musste nur eine Administrator-Berechtigung haben, um Daten in einen beliebigen Ordner schreiben.

Für die Arbeit in 64-Bit-Systemen werden separate Installationsverzeichnisse für 32 und 64-Bit-Programme zur Verfügung gestellt: Program Files und Program Files (x86) Betriebsfunktionen in dem Artikel wenden beide Verzeichnisse an.

Ab Windows Vista hat Microsoft eine Beschränkung auf das Schreiben in Programm-Verzeichnisse eingeführt. Wenn das Benutzerkontensteuerung (UAC) System aktiviert ist, wird den Programmen nicht erlaubt ihre Daten in die Program Files Ordner zu speichern. Alle Daten sollten sich in einem separaten Benutzerverzeichnis befinden. Diese Beschränkung wurde zum Schutz der Benutzer vor bösartigen Programmen eingeführt und zu verhindern, dass Anwendungen unter einem Benutzerkonto, die notwendigen Daten für das gleiche Programm eines anderen Benutzerkontos ändern oder beschädigen. Seit dieser Zeit, wurden die Sicherheitsanforderungen in Microsoft-Betriebssystemen weiter angezogen. Insbesondere, beginnend mit Windows 8, kann das UAC-System nicht einmal deaktiviert werden, wenn "Nie benachrichtigen"-Option in den Einstellungen ausgewählt ist.

Microsoft hat einen Virtualisierung Prozess implementiert, um Kompatibilität mit älteren Anwendungen zu bereitzustellen, wenn UAC verwendet wird. Wenn ein Programm versucht, seine Daten in das Programmdateiverzeichnis zu speichern, werden die Daten tatsächlich (physisch) in einen separaten Ordner gespeichert, mit dem folgenden aussehen - C:\Users\user-name\AppData\Local\VirtualStore\Program Files, während Windows-Datei-Explorer die Dateien so anzeigt, als wären sie im Installationsverzeichnis gespeichert. Microsoft behauptet, dass dieser Modus nur für die Kompatibilität zur Verfügung gestellt worden ist, und später entfernt werden kann.

Um den Microsoft Empfehlungen nachzukommen, wurde die Datenspeicherstruktur in MetaTrader 4 Client-Terminal beginnend ab Build 600 geändert. Nun wird das Terminal seine Daten auch in einem Benutzerverzeichnis speichern.



Benutzerdatenverzeichnis

In der neuen Version werden alle Daten eines bestimmten Benutzers, die mit einer bestimmten Kopie von MetaTrader 4 Terminal arbeiten, an einem speziellen Ort namens Terminal Dateiordner gespeichert. Dieser Ordner kann auf einem Systemlaufwerk (eine Festplatte mit installiertem Windows-Betriebssystem), auf dem folgenden Pfad

C:\Users\User_account_name\AppData\Roaming\MetaQuotes\Terminal\Instance_id
wobei:
  • P!: - Name des System-Laufwerks,
  • User_account_name - Benutzerkonto für die Arbeit in Windows,
  • Instance_id - eindeutiger Name des Ordners, in dem alle Daten des Nutzers für die Arbeit mit einer bestimmten Kopie von MetaTrader 4 Terminal gespeichert sind. Ein eindeutiger Name besteht aus 16 Zeichen. Der Name wird basierend auf dem Pfad zu dem Terminal Installationsverzeichnis erzeugt, da der Pfad zu dem 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 einzelnen PC installiert werden können.

"Dateiordner öffnen" Befehl wurde dem Menü des Terminals unter Datei hinzugefügt, für die Suche und das Öffnen des Datenordners.

Open Data Folder

Das Wurzelverzeichnis jedes Terminal Dateiordner enthält auch origin.txt Datei, in der Sie den Pfad zu dem Installationsordner des Terminals, auf den diese Daten sich beziehen, finden können. Dies ermöglicht Benutzern, jeden Terminal Datenordner mit einem bestimmten Terminal-Installationsverzeichnis übereinzustimmen, beispielsweise für den Fall, wenn mehrere Kopien von MetaTrader 4 Terminal von einem Benutzer installiert werden. Diese Art mit dem Terminal zu arbeiten, wenn der Dateiordner von der Installation getrennt ist, ist der Hauptmodus.

Für mehr Komfort, wird ein Eintrag, der den Pfad zum Dateiordner enthält, in das Terminal Journal gemacht, jedes Mal wenn das Terminal gestartet wird. Zum Beispiel:

2014.02.10 12:48:28.477 Dateiordner: C:\Users\JohnSmith\AppData\Roaming\MetaQuotes\Terminal\9F86138A4E27C7218E9EC98A5F8D8CA1


Kopieren von MQL4 Anwendungsdateien Bei der Aktualisierung auf MetaTrader 4 Build 600 und Höher

Wenn das neu aktualisierte Terminal gestartet wird, prüft es, ob der Dateiordner vorhanden ist. Wenn der Dateiordner noch nicht vorhanden ist, wird er erstellt. Wenn der Ordner ein anderer als die Installation ist, werden die regelmäßigen Daten des Terminals (Standard MQL4 Programme, historische Daten, Konfigurationsdateien, Vorlagen, usw.) hinein kopiert. Die Dateien, die sich während des Terminalbetriebs nicht ändern (ausführbare Dateien, mql.dll Compiler, Sound-Dateien, usw.) werden in dem Installationsverzeichnis belassen. Der Terminal-Dateiordner unterscheidet sich von dem der Installation in den folgenden Fällen:

  • UAC-System ist aktiviert. Die Ausnahme ist, wenn das Endgerät auf einem tragbaren Gerät (externe Festplatte, USB-Stick, usw.) installiert ist.
  • Der aktuelle PC-Benutzer hat begrenzte Rechte Daten in das Installationsverzeichnis zu schreiben.
  • Ein Benutzer arbeitet per Remote-Verbindung (RDP).

Wenn keine der obigen Bedingungen erfüllt ist, werden die Terminal-Daten in das Installationsverzeichnis gespeichert.

Dann werden die Benutzerdateien in den Dateiordner verschoben. In dieser Phase wird das Verzeichnis, wo die Benutzerdaten des Terminals gespeichert werden, bestimmt. Wenn die Daten in den Terminal-Installationsordner gespeichert wurden, werden sie auf die folgende Weise kopiert:

Quellordner in dem Installationsverzeichnis
Inhalte Zielordner in dem Terminal Datenverzeichnis
\experts
Expert Advisors (Handelsroboter)
Hinweis: nur Dateien aus dem Wurzelverzeichnis \experts werden kopiert. Es werden keine Unterverzeichnisse kopiert, da es unmöglich ist zuverlässsig deren Inhalte zu bestimmen
\MQL4\Experts
\experts\indicators Benutzerdefinierte Indikatoren
\MQL4\Indicators
\experts\scripts
Skripte (MQL4 Anwendungen für eine einmalige Anwendung auf dem Chart) \MQL4\Scripts
\experts\include Quellcode MQH und MQ4 Dateien umgesetzt in anderen Programmen \MQL4\Include
\experts\libraries Bibliotheken in Form von MQ4 Quellcodes und EX4 ausführbare Dateien, aus diesen kompiliert. Sie werden verwendet für den dynamischen Aufruf der Funktionen, die in anderen MQL4 Programmen enthalten sind \MQL4\Libraries
\experts\files Spezial "Datei Sandbox". MQL4 Anwendungen ist es erlaubt Dateioperationen nur innerhalb dieses Orders auszuführen \MQL4\Files
\experts\logs
Protokolldateien von MQL4 Anwendungen
\MQL4\Logs
\experts\presets
Dateien mit Voreinstellungen für MQL4 Anwendungen
\MQL4\Presets
\experts\images
Bilddateien die von Ressourcen verwendet werden \MQL4\Images

Als nächstes wird geprüft, ob das Client-Terminal Daten in das Virtualisierungs-Verzeichnis (des Betriebssystems virtueller Speicher, oben beschrieben) gespeichert hat. Wurde das Terminal in Program Files Verzeichnis installiert und das Betriebssystem ist Windows Vista oder höher, sind die Terminal Daten höchstwahrscheinlich in diesem Verzeichnis gespeichert. Wenn die Daten gefunden wurden, wird nach der obigen Tabelle kopiert.

Die Dateien werden kopiert und während der Migration nicht bewegt. Die kopierten Dateien werden aus dem Quellordner nicht gelöscht.

Während der Migration, werden die Einträge der kopierten Dateien Quell- und Ziel Pfade, in das Terminal-Journal gemacht. Um alle Protokolle anzuzeigen, öffnen Sie das Journal Register im Terminal-Fenster und führen Sie Befehl Öffnen im Kontextmenü aus. Der Ordner, der die Terminal-Log-Dateien enthält, wird geöffnet.

Wenn die Migration erfolgreich für die aktuelle Terminal Kopie abgeschlossen ist, wird sie während der nachfolgenden MetaTrader 4 Terminal-Updates nicht mehr wiederholt. Wenn der Dateiordner sich von dem der Installation unterscheidet, und benutzerdefinierte MQL4 Anwendungen wurden zusammen mit den Standarddateien während der Migration kopiert, erscheint das folgende Dialogfenster:

Migration completed successfully



Portable Modus

Der Portable Startmodus ist für den Terminalbetrieb auf tragbaren Geräten und Nicht-System-Verzeichnisse zur Verfügung gestellt, sowie für die Arbeit in Windows XP. Wird in diesem Modus gestartet, versucht das Terminal seine Daten in den Installationsordner zu speichern. Jedoch garantiert der Portable Modus nicht, dass ein Betriebssystem es ermöglicht, Daten in den Installationsordner zu speichern (zum Beispiel, wenn das Terminal in Programmdateiverzeichnis installiert ist, und UAC-System aktiviert ist).

Folgende Bedingungen sollten für das Arbeiten im Portable-Modus erfüllt sein:

Installationsverzeichnis
Betriebssystem
Anforderungen
Program Files oder anderes Systemverzeichnis (zum Beispiel, Windows)
Windows XP
Erlaubnis zum Schreiben in den Installationsordner
Anderes nicht-System Verzeichnis
Windows XP
Erlaubnis zum Schreiben in den Installationsordner
Externe Festplatte, USB-Stick, usw. Windows XP Das Terminal wird immer im Portable Modus gestartet.
Program Files oder anderes Systemverzeichnis (zum Beispiel, Windows) Windows Vista\Windows 7
Starten des Terminals als Administrator und deaktiviertem UAC
Anderes nicht-System Verzeichnis Windows Vista\Windows 7
Erlaubnis zum Schreiben in den Installationsordner
Externe Festplatte, USB-Stick, usw. Windows Vista\Windows 7 Das Terminal wird immer im Portable Modus gestartet.
Program Files oder anderes Systemverzeichnis (zum Beispiel, Windows)
Windows 8 und höher
Es ist unmöglich den Portable Modus zu verwenden, da UAC System nicht deaktiviert werden kann
Anderes nicht-System Verzeichnis Windows 8 und höher
Erlaubnis zum Schreiben in den Installationsordner
Externe Festplatte, USB-Stick, usw. Windows 8 und höher Das Terminal wird immer im Portable Modus gestartet.
  • Es ist nicht empfohlen tragbare Modus zu verwenden, für den Fall, dass Sie Windows Vista oder höher verwenden, und das Terminal in Program Files installiert ist. Dieser Modus ist für den Terminalbetrieb auf tragbaren Geräten und Windows XP bereitgestellt.
  • Wenn Sie das Terminal aktualisiert haben und alle Daten in einen separaten Benutzerdatenordner kopiert worden sind, ist es auch nicht empfohlen in den Portable-Modus zu wechseln.
  • Sie sollten die Daten manuell in den Installationsordner kopieren, um den Portable Modus nach dem Kopieren der Daten in den Benutzerdatenordner zu verwenden. manuell kopieren. ist das Starten des Terminals im Portable-Modus kopiert nicht die Daten aus dem Datenordner in den der Installation.

Um das Terminal im Portable-Modus zu starten, verwenden Sie die "/ portable" -Taste. Für mehr Komfort können Sie eine zusätzliche Terminal Start Verknüpfung mit dem entsprechenden Namen auf Ihrem Desktop erstellen und fügen Sie die Taste direkt der Verknüpfung zu::

Launching MetaTrader 4 in Portable mode



Fazit

Änderungen in dem MetaTrader 4 Terminal Datenspeichersystem wurden, um den Anforderungen von Windows-Betriebssystemen, entwickelt von Microsoft, gerecht zu werden gemacht. Das Datenspeichersystem war ursprünglich in MetaTrader 5 umgesetzt, und viele Trader nutzen es im Moment erfolgreich.

MetaTrader 4 Terminal-Daten werden automatisch in das Benutzerverzeichnis übertragen. In den meisten Fällen werden keine zusätzlichen Aktionen von den Benutzern erforderlich. Informationen über alle Daten-Kopieroperationen werden in dem MetaTrader 4 Journal angezeigt.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1388

Aktualisierung auf MetaTrader 4 Build 600 und Höher Aktualisierung auf MetaTrader 4 Build 600 und Höher
Die neue Version des MetaTrader 4 Terminal verfügt über die aktualisierte Struktur der Benutzerdatenspeicherung. In früheren Versionen wurden alle Programme, Vorlagen, Profile usw. direkt in dem Terminal Installationsordner gespeichert. Nun sind alle notwendigen Daten, die für einen bestimmten Benutzer benötigt werden, in einem separaten Verzeichnis namens Dateiordner gespeichert. Lesen Sie den Artikel und finden Sie Antworten auf häufig gestellte Fragen.
Offline Charts in dem Neuen MQL4 Offline Charts in dem Neuen MQL4
Das aktualisierte MQL4 hat das neue Format zum Speichern historischer Daten und stellt die geeignete MqlRates Struktur für die komfortable Aufbewahrung der Zeit-, Öffnung-, Tief-, Hoch-, Schluss- und Volumen-Werte bereit. Seit vielen Jahren haben Trader ihre MQL4 Anwendungen entwickelt, die ihre Daten in HST-Dateien sammeln und speichern um Offline-Charts zu erzeugen. Wir können Ihnen versichern, dass alle zuvor kompilierten EX4 Dateien im neuen MetaTrader 4 Terminal auf die gleiche Weise wie zuvor funktionieren.
Häufige Fehler in MQL4 Programmen und wie man sie vermeidet Häufige Fehler in MQL4 Programmen und wie man sie vermeidet
Um kritisches Beenden von Programmen zu vermeiden, hat die vorherige Compiler Version viele Fehler in der Laufzeitumgebung behandelt. Zum Beispiel Division durch Null oder ein Array außerhalb des Bereichs sind kritische Fehler und führen in der Regel zum Programmabsturz. Der neue Compiler kann tatsächliche oder potenzielle Fehlerquellen erkennen und die Code-Qualität verbessern. In diesem Artikel besprechen wir mögliche Fehler, die bei der Erstellung von alten Programmen erkannt werden können und sehen, wie sie zu beheben sind.
Testen und Optimierung von Expert Advisors Testen und Optimierung von Expert Advisors
Der Artikel bietet eine umfassende Beschreibung des Vorgangs zum Testen und Optimieren von Expert Advisors in dem MetaTrader 4 Strategietester. Die Bedeutung solcher Informationen und die Notwendigkeit dieser Publikation darf nicht unterschätzt werden. Viele Anwender, die nur mit der MetaTrader 4 Handelsplattform beginnen, haben eine sehr vage Vorstellung davon, was und wie getan werden muss, wenn sie mit Expert Advisors arbeiten. Der vorgeschlagene Artikel gibt einfache und deutliche Antworten auf alle diese Fragen und einen etwas professionelleren Ansatz zur Handhabung dieser Probleme mit einem spezifischen Beispiel.