14 octobre 2016
14 octobre 2016
Ajout d'infobulles pour les boutons Buy, Sell et Close dans les boîtes de dialogue de trading. Les infobulles contiennent des informations sur l'instrument sur le point d'être acheté ou vendu, pour aider les débutants à comprendre le processus de trading.
Une version MQL5 de la bibliothèque d'analyse numérique ALGLIB a été inclue dans la Bibliothèque Standard.
Fonctions de la Bibliothèque
Comment l'Utiliser
Les fichiers de ALGLIB sont situés dans \MQL5\Include\Math\Alglib. Pour utiliser les fonctions, incluez le fichier principal de la bibliothèques dans votre programme :
#include <Math\Alglib\alglib.mqh>
Des fonctions de statistiques mathématiques ont été inclues dans la Bibliothèque Standard. MQL5 fournit maintenant la fonctionnalité du langage R, qui est l'un des meilleurs outils pour le traitement et l'analyse de données statistiques.
Fonctions de la Bibliothèque
La bilbliothèque statistique contient des fonctions de calcul des caractéristiques statistiques des données, mais aussi des fonctions d'opérations avec les distributions statistiques :
Comment l'Utiliser
Les fichiers de la bilbiothèque statistique sont situés dans \MQL5\Include\Math\Stat. Pour utiliser cette bibliothèque, incluez dans votre programme les fichiers des fonctions désirées, par exemple :
#include <Math\Stat\Binomal.mqh> #include <Math\Stat\Cauchy.mqh>
La description détaillée des fonctions de la bibliothèque est disponible dans l'article Distributions Statistiques en MQL5 - Profiter du Meilleur de R.
La version MQL5 de la bibliothèque Fuzzy a été inclue dans la Bibliothèque Standard. La bibliothèque Fuzzy implémente les systèmes d'inférence floue Mamdani et Sugeno.
Fonctions de la Bibliothèque
Comment l'Utiliser
Les fichiers de la bibliothèque Fuzzy sont situés dans \MQL5\Include\Math\Fuzzy. Pour utiliser cette bibliothèque, incluez dans votre programme les fichiers des fonctions désirées, par exemple :
#include <Math\Fuzzy\mamdanifuzzysystem.mqh> #include <Math\Fuzzy\sugenofuzzysystem.mqh>
Une description détaillée des fonctions de la bibliothèque est disponible dans Code Base : Fuzzy - bibliothèque de développement des modèles flous
long FileLoad( const string filename, // [in] Nom du fichier void &buffer[], // [out] Un tableau qui sera rempli par le fichier lu uint common_flag=0 // [in] 0 - recherche du fichier dans le répertoire Files du terminal, FILE_COMMON - recherche dans le répertoire commun des terminaux ); bool FileSave( const string filename, // [in] Nom du fichier const void &buffer[], // [in] Le tableau à sauvegarder dans un fichier uint common_flag=0 // [in] 0 - crée un fichier dans le répertoire Files du terminal, FILE_COMMON - crée le fichier dans le répertoire commun des terminaux );Exemple d'écriture des ticks dans un fichier et de relecture du fichier :
//--- paramètres d'entrée input int ticks_to_save=1000; // Nombre de ticks //+------------------------------------------------------------------+ //| Fonction de démarrage du programme | //+------------------------------------------------------------------+ void OnStart() { string filename=_Symbol+"_ticks.bin"; MqlTick ticks[]; //--- int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save); if(copied!=-1) { PrintFormat(" CopyTicks(%s) a copié %d ticks",_Symbol,copied); //--- Si l'historique des ticks est synchronisé, le code d'erreur est égal à zéro if(!GetLastError()==0) PrintFormat("%s : les ticks ne sont pas synchronisés. Erreur=",_Symbol,copied,_LastError); //--- Ecriture des ticks dans un fichier if(!FileSave(filename,ticks,FILE_COMMON)) PrintFormat("FileSave() a échoué, erreur=%d",GetLastError()); } else PrintFormat("Echec de CopyTicks(%s), Erreur=",_Symbol,GetLastError()); //--- Relecture des ticks depuis le fichier ArrayFree(ticks); long count=FileLoad(filename,ticks,FILE_COMMON); if(count!=-1) { Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags"); for(int i=0;i<count;i++) { PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x", TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000, ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags); } } }
//--- Bougies dessinées avec la même couleur #property indicator_label1 "Bougies à une couleur" #property indicator_type1 DRAW_CANDLES //--- Une seule couleur est spécifiée, donc toutes les bougies ont la même couleur #property indicator_color1 clrGreenSi deux couleurs sont spécifiées, une couleur est utilisée pour les contours de la bougie, l'autre pour son corps.
//--- La couleur des bougies diffère de la couleur des ombres #property indicator_label1 "Bougies à deux couleurs" #property indicator_type1 DRAW_CANDLES //--- Les contours des bougies et les ombres sont verts, le corps est blanc #property indicator_color1 clrGreen,clrWhiteSi trois couleurs sont spécifiées, une couleur est utilisée pour les contours de la bougie, les deux autres couleurs sont utilisées pour le corps des bougies montantes et descendantes.
//--- La couleur des bougies diffère de la couleur des ombres #property indicator_label1 "Bougies à une couleur" #property indicator_type1 DRAW_CANDLES //--- Les contours des bougies et les ombres sont verts, le corps d'une bougie haussière est blanc, celui d'une bougie baissière est rouge #property indicator_color1 clrGreen,clrWhite,clrRedLe style DRAW_CANDLES permet de définir des couleurs personnalisées pour la bougie. Toutes les couleurs peuvent également être changées dynamiquement lorsque l'indicateur est en cours d'exécution, en utilisant la fonction PlotIndexSetInteger(drawing_index_DRAW_CANDLES, PLOT_LINE_COLOR, modifier_number, couleur) où modifier_number peut avoir les valeurs suivantes :
//--- Définition de la couleur des bordures et des ombres PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,clrBlue); //--- Définition de la couleur du corps d'une bougie haussière PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,clrGreen); //--- Définition de la couleur du corps d'une bougie baissière PlotIndexSetInteger(0,PLOT_LINE_COLOR,2,clrRed);
Documentation mise à jour.