Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

Memory Mapping - Bibliothek für den MetaTrader 5

Ansichten:
877
Rating:
(36)
Veröffentlicht:
2016.06.13 10:22
Aktualisiert:
2016.11.22 07:34
memmap32.zip (754.96 KB)
memmapdll.zip (29.22 KB)
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Dieses Projekt (Visual C++ 2010) enthält 2 Klassen - CMemMapApi und CMemMapFile.

Sie wurden entworfen, um mit Speicherabbilddateien zu arbeiten. Sie können:

  • Eine Datei im Speicher erstellen;
  • Von einer Speicherabbilddatei lesen und schreiben;
  • Es gibt eine Möglichkeit Daten zwischen Anwendungen auszutauschen, einschließlich MetaTrader 4 und МetaТrader 5.
Durch die Verwendung von Speicherabbilddateiem können sie eine großartige Performance beim Datenaustausch erreichen.

Die Hauptanwendung ist der Datenaustausch:
  • Kopieren der Trades für verschiedenen Terminal auf einem PC
  • Austausch von Quotierungen für Arbitrage Expert Advisors etc.

Die Speicherabbilddateien können verwendet werden um den Expert Advisors temporäre Daten zur Verfügung zu stellen.
Die CMemMapApi Klasse ist nur ein Wrapper für die WinApi Funktionen, das ist der Unterschied zwischen CMemMapFile und CMemMapApi.

CMemMapFile ist praktisch, weil es Dateinamen, Dateihandles und Steuerung der Überprüfung der Dateigröße zur Verfügung stellt. Im Gegensatz dazu kann die CMemMapApi Klase mit verschiedenen Speicherabbilddateien arbeiten.

Im aktuellen Projekt sind die exportierten DLL-funktionen in CMemMapApi organisiert, um mit verschiedenen Speicherabbilddateien zu arbeiten.
Die CMemMapFile Klasse wurde entworfen um mit Speicherabbilddateien in anderen C++ Projekten zu arbeiten.

Exportierte Funktionen:
//--- öffnet/erstellt Speicherabbilddatei und gibt Handle zurück
int MemOpen(string path,int size,int mode,int &err[]);
//--- Schließt Speicherabbilddateien 
void MemClose(int hmem);             
//--- Vergrößert die Speicherabbilddatei
int MemGrows(int hmem,string path,int newsize,int &err[]);
//--- gibt die Größe der Speicherabbilddatei zurück
int MemGetSize(int hmem, int &err[]);
//--- setzt die Größe der Speicherabbilddatei
int MemSetSize(int hmem, int size, int &err[]);
//--- Schreibt v Vektor (Größe Bytes) in Speicherabbilddatei ab der Position pos
int MemWrite(int hmem,int &v[], int pos, int size, int &err[]);       
//--- Liest v Vektor (Größe Bytes) von Speicherabbilddatei beginnend ab Position pos
int MemRead(int hmem, int &v[], int pos, int size, int &err[]);
//--- Schreibt einen String (Größe Bytes) in Speicherabbilddatei ab Position pos
int MemWriteStr(int hmem, string buf, int pos, int size, int &err[]);
//--- Liest einen String (Größe Bytes) von Speicherabbilddatei beginnend ab Position pos
int MemReadStr(int hmem, string buf, int pos, int &size, int &err[]);


Beispiel für Verwendung der DLL:  Monitoring der Quotierungen (Speicherabbilddatei)

12.03. 2012: Fehler in MemWriteStr behoben


Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/816

StopOutPrice StopOutPrice

Das Skript berechnet den Stop Out Preis (bei diesem preis wird die Position durch den Broker geschlossen) einer offenen Position und den Preis, bei dem die freie Margin negativ wird (LockOut Preis).

Pivot Point Pivot Point

Klassischer Pivot Punkt Indikator zeichnet Pivotpunkt und drei Widerstands- und Unterstützungslevels für alle Datenpunkte.

Monitoring von Quotierungen Monitoring von Quotierungen

Dieser Expert Advisor ist ein Beispiel für die Arbeit mit Abbildungsfunktionen bei der Verwendung der Speicherabbilddatei-DLL. In diesem Beispiel des Expert Advisor wird eine virtuelle (Speicherabbild) Datei erstellt und die Aktualisierung der Quotierungen für eine Symbol gestartet. Auf diese Weise können Expert Advisors unter Verwendung von Speicherabbilddateien Daten austauschen (zum Beispiel Quotierungen).

Abbildungsdateien ohne DLL Abbildungsdateien ohne DLL

Die Klassen (konvertiert von C++ zu MQL5) zum Arbeiten mit Speicherabbilddateien.