Bibliothèque permettant de manipuler des fichiers via l'API Windows sans restriction quant à leur emplacement.
Pour l'instant, seule la gestion des fichiers constants (en lecture seule) est implémentée ; la bibliothèque sera mise à jour au fur et à mesure de la correction des bogues et de l'ajout de code.
Les fichiers FileUnlimited.mqh, FileUnlimitedConstants.mqh et StringUtils.mqh doivent être copiés dans le répertoire_de_données_du_terminal\MQL5\Include\TheXpert, la bibliothèque ConstFileUnlimited.mqh doit être copiée dans le répertoire_de_données_du_terminal\MQL5\Libraries\TheXpert, et le script FileUnlimitedTest.mq5 dans le répertoire_de_données_du_terminal\MQL5\Scripts.
J'ai veillé à ce que l'utilisation de cette classe soit aussi simple que possible.
Voici un exemple d'utilisation (je reproduis le script)
#include <TheXpert/FileUnlimited.mqh> #include <TheXpert/StringUtils.mqh> #define CP_UTF16 1200 void OnStart() { string name = "TheXpert\\Test.txt"; string path = TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Files\\" + name; int hFile = FileOpen(name, FILE_WRITE | FILE_TXT, ' ', CP_UTF16); if (hFile == INVALID_HANDLE) { Print("File not opened."); return; } bool writeBool = false, readBool = true; long writeLong = -4369549, readLong = 0; double writeDouble = -4369549.245, readDouble = 0; datetime writeDatetime = 2596824987, readDatetime = 0; color writeColor = Blue, readColor = White; string writeString = "2r4i6bf4wb9tb69vw", readString = ""; FileWrite(hFile, writeBool); FileWrite(hFile, writeLong); FileWrite(hFile, writeDouble); FileWrite(hFile, writeDatetime); FileWrite(hFile, writeColor); FileWrite(hFile, writeString); FileClose(hFile); // --------------------------------------------- // À partir d'ici, on utilise la bibliothèque de lecture. // --------------------------------------------- ConstFile* file = OpenConstFile(path); if (CheckPointer(file) != POINTER_INVALID) { file.Read(readBool); Print("readBool = ", readBool); file.Read(readLong); Print("readLong = ", readLong); file.Read(readDouble); Print("readDouble = ", readDouble); file.Read(readDatetime); Print("readDatetime = ", readDatetime); file.Read(readColor); Print("readColor = ", readColor); file.Read(readString); Print("readString = ", readString); delete file; } else { Print("Failed to open ConstFile at path -- ", path); } }
La bibliothèque ne fonctionne qu'avec des fichiers Unicode, d'où l'introduction de la page de codes CP_UTF16 (qui, pour une raison inconnue, ne figure pas dans les constantes du langage).
Je vous prie vivement de signaler toutes les erreurs détectées dans les commentaires ou dans ce fil de discussion .
Les remarques, suggestions et critiques constructives sont les bienvenues.
Ensemble, créons un outil qui sera utile à tous par la suite !
Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/386
RBCI
Le filtre numérique RBCI (Range Bound Channel Index) élimine la tendance à basse fréquence générée par les composantes à basse fréquence du spectre, ainsi que le bruit à haute fréquence généré par les composantes à haute fréquence du spectre.
Trend Equilibrium Indicator TrendEQ
L'indicateur Trend Equilibrium TrendEQ analyse de manière dynamique les mouvements du marché en combinant le momentum et la volatilité. En mettant à l'échelle le momentum et la volatilité du marché, le TrendEQ fournit une mesure fiable de la force et de la direction de la tendance.
J2JMA
Moyenne mobile avec double lissage adaptatif JMA de la série de cours.
AutoTrendLines Indicator for MQL5
L'indicateur AutoTrendLines dessine automatiquement des lignes de tendance de support et de résistance sur votre graphique MetaTrader 5. Il identifie les niveaux de prix clés en utilisant deux méthodes : Deux Extremum (Type 1) ou Extremum et Delta (Type 2). Les lignes ne sont recalculées que lorsqu'une nouvelle barre se forme, ce qui garantit une performance efficace.