Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Librerie

CFastFile - classe per lavorare con array di byte come file - libreria per MetaTrader 5

Visualizzazioni:
41
Valutazioni:
(40)
Pubblicato:
\MQL5\Include\
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

La classe CFastFile elimina la necessità di scrivere i dati in un file fisico sul disco. Ciò consente di ottenere un'accelerazione significativa nel lavoro con i dati.

Tutte le funzioni di base della famiglia FileWriteXXX/FileReadXXX sono implementate nella classe. In altre parole, senza modificare la logica e il codice del programma, è possibile passare facilmente dall'uso di file fisici al lavoro veloce con le loro immagini in memoria. La memorizzazione e la lettura dei dati avviene con un array di uchar invece che con un vero e proprio file fisico.

Elenco delle funzioni implementate:

    CFastFile(uchar &data[]);          // costruttore con inizializzazione dei dati del file dall'array

    void Clear();                        // cancellare il file
   
    //--- funzioni per lavorare con le proprietà dei file
    void Delim(uchar delim=';');        // impostazione del separatore di dati in modalità CSV
    int Size();                        // ottenere la dimensione del file
    int Tell();                        // ottenere la posizione corrente del puntatore
    void Seek(int offset, int origin);  // spostare la posizione del puntatore
    bool IsEnding();                   // verifica se è stata raggiunta la fine del file
    bool IsLineEnding();                // verifica se è stata raggiunta la fine della stringa

    //--- funzioni per la scrittura su file
    uint WriteArray(uchar &src[], uint src_start=0, int src_cnt=WHOLE_ARRAY); // scrivere un array di byte
    uint WriteDouble(double v);         // registrare un numero
    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); // scrivere un numero - per compatibilità con FileWriteInteger.
    uint WriteString(string v, int cnt);        // scrivere la stringa. cnt=-1 indica la modalità di registrazione CSV con l'aggiunta di \rón.
   
    //--- funzioni per la lettura da file
    uint ReadArray(uchar &dst[], uint dst_start=0, int cnt=WHOLE_ARRAY); // leggere l'array
    double ReadDouble();                // leggere il numero
    float ReadFloat(); 
    long ReadLong();
    int ReadInt();
    short ReadShort();
    char ReadChar();
    int ReadInteger(int sz=INT_VALUE); // lettura di un numero - per compatibilità con la transizione con FileReadInteger
    double ReadNumber(); //
    string ReadString(int cnt);        // lettura di una stringa. cnt=-1 indica la modalità di lettura CSV fino al delimitatore
   
    // funzioni per salvare un file in un'altra sorgente
    uint Save(uchar &v[]);    // salvataggio del file in un array di byte
    uint Save(int h);         // salvataggio del file in un file reale sul disco. h - descrittore pre-aperto
    uint Save(string file);   // salva il file in un file reale sul disco. file - nome del file sul disco

    // funzioni per caricare un file da un'altra fonte
    uint Load(uchar &v[]);   // lettura di un file da un array di byte
    uint Load(int h);        // lettura di un file da un file reale sul disco. h - descrittore pre-aperto
    uint Load(string file);  // lettura di un file da un file reale sul disco. file - nome del file sul disco

Come si può notare, tutte le funzioni sono denominate in analogia con le funzioni standard dei file del terminale.

Il passaggio dall'uso dei file a CFastFile è molto semplice. Invece di aprire e ottenere l'handle di un normale file (ad esempio, int h), è sufficiente creare un'istanza di CFastFile, ad esempio:

CFastFile f; 

Quindi, nel codice, sostituite tutte le funzioni di file regolari corrispondenti secondo questo principio:

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

Sono state aggiunte funzioni di salvataggio/caricamento per facilitare il salvataggio/lettura dei dati in un file regolare.

È incluso uno script con una dimostrazione del funzionamento della classe.


Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/845

Modulo di segnali di trading basato sull'indicatore WPRSIsignal Modulo di segnali di trading basato sull'indicatore WPRSIsignal

Modulo segnali di trading per MQL5 Wizard. Il segnale per l'apertura di posizioni è la comparsa della freccia colorata dell'indicatore WPRSIsignal.

Modulo di segnali di trading basato sull'indicatore NonLagDot Modulo di segnali di trading basato sull'indicatore NonLagDot

Modulo segnali di trading per MQL5 Wizard. Il segnale per l'apertura di posizioni è un cambiamento di colore dell'indicatore NonLagDot.

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

Leggero CVD (Cumulative Volume Delta) per MT5 - basato su M1, mostra la pressione di acquisto/vendita come candele con reset opzionale.

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

Classe che consente di accedere all'ora locale della località specificata, alle informazioni sul fuso orario e agli orari della sessione di trading locale.