Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Telegram !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Bibliothèque

CFastFile - classe permettant de travailler avec un tableau d'octets en tant que fichier - bibliothèque pour MetaTrader 5

Vues:
44
Note:
(40)
Publié:
\MQL5\Include\
FastFile.mqh (13.95 KB) afficher
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

La classe CFastFile élimine le besoin d'écriture intermédiaire des données dans un fichier physique sur le disque. Cela vous permet d'obtenir une accélération significative lorsque vous travaillez avec des données.

Toutes les fonctions de base de la famille FileWriteXXX/FileReadXXX sont implémentées dans la classe. Ainsi, sans modifier la logique et le code de votre programme, vous pouvez facilement passer de l'utilisation de fichiers physiques à un travail rapide avec leurs images en mémoire. Le stockage et la lecture des données s'effectuent à l'aide d'un tableau de caractères au lieu d'un véritable fichier physique.

Liste des fonctions implémentées :

    CFastFile(uchar &data[]);          // constructeur avec initialisation des données du fichier à partir d'un tableau

    void Clear();                        // effacer le fichier
   
    //--- fonctions pour travailler avec les propriétés des fichiers
    void Delim(uchar delim=';');        // réglage du séparateur de données en mode CSV
    int Size();                        // obtenir la taille du fichier
    int Tell();                        // obtient la position actuelle du pointeur
    void Seek(int offset, int origin);  // déplacer la position du pointeur
    bool IsEnding();                   // vérifier si la fin du fichier a été atteinte
    bool IsLineEnding();                // vérifier si la fin de la chaîne a été atteinte

    //--- fonctions pour écrire dans un fichier
    uint WriteArray(uchar &src[], uint src_start=0, int src_cnt=WHOLE_ARRAY); // écrire un tableau d'octets
    uint WriteDouble(double v);         // enregistrer un nombre
    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); // écrire un nombre - pour des raisons de compatibilité avec FileWriteInteger.
    uint WriteString(string v, int cnt);        // écrire une chaîne de caractères. cnt=-1 indique le mode d'enregistrement CSV avec ajout de \r\n.
   
    //--- fonctions de lecture de fichiers
    uint ReadArray(uchar &dst[], uint dst_start=0, int cnt=WHOLE_ARRAY); // lecture du tableau
    double ReadDouble();                // lire le nombre
    float ReadFloat(); 
    long ReadLong();
    int ReadInt();
    short ReadShort();
    char ReadChar();
    int ReadInteger(int sz=INT_VALUE); // lecture d'un nombre - pour la compatibilité de la transition avec FileReadInteger
    double ReadNumber(); //
    string ReadString(int cnt);        // lecture d'une chaîne de caractères. cnt=-1 indique le mode de lecture CSV jusqu'au délimiteur
   
    // fonctions d'enregistrement d'un fichier vers une autre source
    uint Save(uchar &v[]);    // enregistrement du fichier dans un tableau d'octets
    uint Save(int h);         // enregistrement du fichier dans un vrai fichier sur le disque. h - descripteur pré-ouvert
    uint Save(string file);   // enregistrer le fichier dans un vrai fichier sur le disque. file - nom du fichier sur le disque

    // fonctions de chargement d'un fichier à partir d'une autre source
    uint Load(uchar &v[]);   // lecture d'un fichier à partir d'un tableau d'octets
    uint Load(int h);        // lecture d'un fichier à partir d'un fichier réel sur le disque. h - descripteur pré-ouvert
    uint Load(string file);  // lecture d'un fichier à partir d'un fichier réel sur le disque. file - nom du fichier sur le disque

Comme vous pouvez le constater, toutes les fonctions sont nommées par analogie avec les fonctions de fichier standard du terminal.

La transition entre l'utilisation de fichiers et CFastFile est très simple. Au lieu d'ouvrir et d'obtenir la poignée d'un fichier normal (par exemple int h), il suffit de créer une instance de CFastFile, par exemple :

CFastFile f; 

Ensuite, dans le code, remplacez toutes les fonctions de fichiers ordinaires correspondantes selon ce principe :

FileWriteDouble(h, 10)  ->  f.WriteDouble(10)

Des fonctions Save/Load ont été ajoutées pour faciliter l'enregistrement/la lecture de données dans un fichier normal.

Un script avec une démonstration du travail en classe est inclus.


Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/845

Module de signaux de trading basé sur l'indicateur WPRSIsignal Module de signaux de trading basé sur l'indicateur WPRSIsignal

Module de signaux de trading pour l'assistant MQL5. Le signal d'ouverture des positions est l'apparition de la flèche colorée de l'indicateur WPRSIsignal.

Module de signaux de trading basé sur l'indicateur NonLagDot Module de signaux de trading basé sur l'indicateur NonLagDot

Module de signaux de trading pour l'assistant MQL5. Le signal d'ouverture des positions est un changement de couleur de l'indicateur NonLagDot.

CVD (Cumulative Volume Delta) CVD (Cumulative Volume Delta)

Lightweight CVD (Cumulative Volume Delta) pour MT5 - basé sur M1, montre la pression d'achat/vente sous forme de bougies avec des réinitialisations optionnelles.

Local Timezones and Local Session Hours Local Timezones and Local Session Hours

Classe permettant d'accéder à l'heure locale pour le lieu spécifié, ainsi qu'aux informations relatives au fuseau horaire et aux heures de la séance boursière locale.