Unisciti alla nostra fan page
- Visualizzazioni:
- 41
- Valutazioni:
- Pubblicato:
-
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 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 segnali di trading per MQL5 Wizard. Il segnale per l'apertura di posizioni è un cambiamento di colore dell'indicatore NonLagDot.
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
Classe che consente di accedere all'ora locale della località specificata, alle informazioni sul fuso orario e agli orari della sessione di trading locale.