und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5

CFastFile - Klasse für das Arbeiten mit uchar Array als virtuelle Datei - Bibliothek für den MetaTrader 5
- Ansichten:
- 939
- Rating:
- Veröffentlicht:
- 2016.06.13 10:58
- Aktualisiert:
- 2017.05.02 10:02
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
CFastFile macht das sofortige Schreiben von Daten in physische Plattendateien überflüssig. Das bietet eine signifikante Beschleunigung bei der Arbeit mit Daten.
Die Klasse hat Funktionen, die ähnlich wie die FileWriteXXX/FileReadXXX Funktionen sind. Das heißt, dass Sie einfach von physischen Dateien zu schnellen, virtuellen Dateien im Arbeitsspeicher migrieren können. Die Datenspeicherung und das Lesen/Schreiben basiert auf einem uchar-Array anstatt einer physischen Datei.
Liste der Funktionen:
CFastFile(uchar &data[]); // Konstruktor mit Initialisierung der Datendatei von einem Array void Clear(); // Datei löschen //--- Funktionen für die Arbeit mit Dateieigenschaften void Delim(uchar delim=';'); // Trennzeichen (Spaltentrenner) für CSV-Modus int Size(); // hole Dateigröße int Tell(); // hole aktuelle Position void Seek(int offset, int origin); // Suche bool IsEnding(); // Prüfung auf Ende der Datei (EOF) bool IsLineEnding(); // Prüfung auf Ende der Zeile //--- Funktionen zum Schreiben der Daten in die Datei uint WriteArray(uchar &src[], uint src_start=0, int src_cnt=WHOLE_ARRAY); // schreibe uchar Array uint WriteDouble(double v); // schreibe Double uint WriteFloat(float v); uint WriteLong(long v); uint WriteInt(int v); uint WriteShort(short v); uint WriteChar(char v); uint WriteInteger(int v, int sz=INT_VALUE); // schreibe Ganzzahl - für Kompatibilität mit Standard FileWriteInteger uint WriteString(string v, int cnt); // schreibe String cnt=-1 bedeutet CSV Modus mit Erweiterung von \r\n //--- Funktionen zum Lesen von der Datei uint ReadArray(uchar &dst[], uint dst_start=0, int cnt=WHOLE_ARRAY); // lies Array double ReadDouble(); // lies double float ReadFloat(); long ReadLong(); int ReadInt(); short ReadShort(); char ReadChar(); int ReadInteger(int sz=INT_VALUE); // lies Ganzzahl - für Kompatibilität mit Standard FileReadInteger double ReadNumber(); // string ReadString(int cnt); // lies String. cnt=-1 bedeutet CSV-Modus - lesen bis Trennzeichen (Spaltentrennzeichen) //--- Funktionen zum Speichern von Daten uint Save(uchar &v[]); // Speichere Datei in uchar Array uint Save(int h); // Speichere Datei in echte Datei auf Platte. h - Datei handle (die Datei muss geöffnet werden) uint Save(string file); // speichere Datei in echte Datei auf Platte. file - Dateiname //--- Funktionen zum Laden von Daten uint Load(uchar &v[]); // lade Datei von uchar Array uint Load(int h); // lade Daten von echter Datei auf Platte. h - Datei handle (die Datei muss geöffnet werden) uint Load(string file); // lade Daten von echter Datei auf Platte. file - Dateiname
Wie man sieht wurden die Funktionen ähnlich zu den Standard Datei Operationen benannt.
Die Migration von echten Dateien zu CFastFile ist sehr einfach. Statt ein Datei zu öffnen und sich einen Datei-Handle zu holen (zum Beispiel int h) müssen Sie eine CFastFile Klassen-Instanz erzeugen:
CFastFile f;
Als nächstes müssen Sie die konventionellen Dateifunktionen nach folgender Regel anpassen:
FileWriteDouble(h, 10) -> f.WriteDouble(10)
Zur Bequemlichkeit wurden die Save/Load Funktionen hinzugefügt - das erlaubt Ihnen, die "virtuellen" Dateidaten auf eine echte Datei auf der Platte zu schreiben/lesen.
Es ist ein Demobeispiel für die Verwendung der CFastFile Klasse enthalten.
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/845

Handelssignalmodul für den MQL5 Assistenten. Die farbigen Pfeile des WPRSIsignal Indikators dienen als Markteinstiegssignale.

Handelssignalmodul für den MQL5 Assistenten. Farbige Punkte des SuperTrend Indikators zeigen Markteinstiege an.

Der Indikator zeichnet (in einem separaten Fenster) die Bollinger Bänder relativ zum gleitenden Durchschnitt und eine Projektion der Preisbalken.

Diese Bibliothek ermöglicht ein einfaches Interface zu MySQL.