Autres Constantes

La constante CLR_NONE est utilisée pour signifier l'absence de couleur, cela signifie que l'objet graphique ou les séries graphiques d'un indicateur ne seront pas dessinés. Cette constante n'est pas inclue dans la liste des constantes des couleurs Web, mais elle peut être appliquée pour n'importe quel arguement de type color.

La constante INVALID_HANDLE peut être utilisée pour vérifier les handles des fichiers (voir FileOpen() et FileFindFirst()).

Constante

Description

Valeur

CHARTS_MAX

Le nombre maximum possible de graphiques ouverts en même temps dans le terminal

100

clrNONE

Absence de couleur

-1

EMPTY_VALUE

Valeur vide dans le buffer d'un indicateur

DBL_MAX

INVALID_HANDLE

Handle incorrect

-1

IS_DEBUG_MODE

Flag signifiant que le programme mq5 opère en mode debug

différent de zéro en mode debug, sinon zéro

IS_PROFILE_MODE

Flag signifiant que le programme mq5 opère en mode profilage

différent de zéro en mode profilage, sinon zéro

NULL

Zéro pour n'importe quel type

0

WHOLE_ARRAY

Signifie le nombre d'éléments restants jusqu'à la fin du tableau, c'est à dire que le tableau sera traité en entier

-1

WRONG_VALUE

La constante peut être castée implicitement dans n'importe quel type d'énumeration type

-1

La constante EMPTY_VALUE correspond habituellement aux valeurs des indicateurs qui ne sont pas affichés dans le graphique. Par exemple, pour l'indicateur intégré Standard Deviation (Ecart type) avec une période de 20, la ligne des 19 premières barres de l'historique ne sont pas affichées sur le graphique. Si vous créez un handle sur cet indicateur avec la fonction iStdDev() et que vous le copiez vers un tableau des valeurs de l'indicateur pour ces barres avec CopyBuffer(), ces valeurs seront ensuite égales à EMPTY_VALUE.

Vous pouvez choisir de spécifier pour un indicateur personnalisé votre propre valeur vide, lorsque l'indicateur ne devrait pas être dessiné sur le graphique. Utilisez la fonction PlotIndexSetDouble() avec le modificateur PLOT_EMPTY_VALUE.

La constante NULL peut être assignée à une variable de n'importe quel type simple ou à un pointeur vers une structure d'objet ou une classe. L'assignation de NULL à une chaîne de caractères signifie la déinitialisation complète de cette variable.

La constante WRONG_VALUE est prévue pour ces cas, lorsqu'il est nécessaire de retourner la valeur d'une énumeration, et ce doit être une valeur incorrecte. Par exemple, lorsque nous avons besoin d'informer qu'une valeur de retour est une valeur de cette énumération. Considérons comme exemple une fonction CheckLineStyle(), qui retourne le style de ligne d'un objet spécifié par son nom. Si le résultat au moment de la vérification du style par ObjectGetInteger() est true, une valeur de ENUM_LINE_STYLE est retournée ; sinon WRONG_VALUE est retourné.

void OnStart()
  {
   if(CheckLineStyle("MyChartObject")==WRONG_VALUE)
      printf("Erreur de récupération du style de ligne.");
  }
//+----------------------------------------------------------------------------------------------------+
//| Retourne le style de ligne d'un objet spécifié par son nom                                         |
//+----------------------------------------------------------------------------------------------------+
ENUM_LINE_STYLE CheckLineStyle(string name)
  {
   long style;
//---
   if(ObjectGetInteger(0,name,OBJPROP_STYLE,0,style))
      return((ENUM_LINE_STYLE)style);
   else
      return(WRONG_VALUE);
  }

 

La constante WHOLE_ARRAY est prévue pour les fonctions nécessitant de spécifier le nombre d'éléments dans les tableaux traités :

Si vous souhaitez spécifier que toutes les valeurs du tableau, à partir d'une position spécifiée jusqu'à la fin, doivent être traitées, vous devez spécifier la valeur WHOLE_ARRAY.

La constante IS_PROFILE_MODE permet de changer l'opération d'un programme pour la collection de données correcte dans le mode profilage. Le profilage permet de mesurer l'heure d'exécution des fragments individuels d'un programme (comprenant habituellement les fonctions), mais également de mesurer le nombre de ces appels. Les appels à la fonction Sleep() peuvent être désactivé pour déterminer l'heure d'exécution en mode profilage, comme dans cet exemple :

//--- Sleep peut grandement affecter les résultat du profilage
if(!IS_PROFILE_MODESleep(100); // désactive l'appel à Sleep() dans le mode profilage

La valeur de la constante IS_PROFILE_MODE est définie par le compilateur pendant la compilation, alors qu'elle vaut zéro dans le mode normal. Lors du lancement d'un programme en mode profilage, une compilation spéciale est effectuée et IS_PROFILE_MODE est remplacée avec une valeur différente de zéro.

La constante IS_DEBUG_MODE peut être utile lorsque vous avez besoin de modifier légèrement l'exécution d'un programme mql5 en mode debug. Par exemple, en mode debug vous pouvez avoir besoin d'afficher des informations de déboguage supplémentaires dans le journal du terminal ou de créer des objets graphiques supplémentaires sur le graphique.

L'exemple suivant crée un objet Etiquette et définit sa description et sa couleur suivant le mode d'exécution du script. Afin d'exécuter un script en mode debug depuis MetaEditor, appuyez sur la touche F5. Si vous exécutez le script depuis la fenêtre du navigateur du terminal, alors la couleur et le texte de l'étiquette seront différents.

Exemple :

//+----------------------------------------------------------------------------------------------------+
//|                                             Check_DEBUG_MODE.mq5                                   |
//|                      Copyright © 2009, MetaQuotes Software Corp.                                   |
//|                                        https://www.metaquotes.net                                   |
//+----------------------------------------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net"
//+----------------------------------------------------------------------------------------------------+
//| Fonction de démarrage du script                                                                    |
//+----------------------------------------------------------------------------------------------------+
void OnStart()
  {
//---
   string label_name="invisible_label";
   if(ObjectFind(0,label_name)<0)
     {
      Print("Objet ",label_name," non trouvé. Code d'erreur = ",GetLastError());
      //--- création de l'étiquette
      ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);
      //--- définit la coordonnée X
      ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
      //--- définit la coordonnée Y
      ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
      ResetLastError();
      if(IS_DEBUG_MODE// mode debug
        {
         //--- affiche le message à propos du mode d'exécution du script
         ObjectSetString(0,label_name,OBJPROP_TEXT,"DEBUG MODE");
         //--- définit la couleur du texte à rouge
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrRed))
            Print("Impossible de définir la couleur. Erreur",GetLastError());
        }
      else              // mode opérationnel
        {
         ObjectSetString(0,label_name,OBJPROP_TEXT,"RELEASE MODE");
         //--- définit la couleur du texte à invisible
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,CLR_NONE))
            Print("Impossible de définir la couleur. Erreur ",GetLastError());
        }
      ChartRedraw();
      DebugBreak();    // le programme s'arrête ici en mode debug
     }
  }

Méthodes de Cryptage

L'énumération ENUM_CRYPT_METHOD est utilisée pour spécifier la méthode de transformation des données, utilisée dans les fonctions CryptEncode() et CryptDecode().

ENUM_CRYPT_METHOD

Constante

Description

CRYPT_BASE64

BASE64

CRYPT_AES128

Cryptage AES avec une clé 128 bits (16 octets)

CRYPT_AES256

Cryptage AES avec une clé 256 bits (32 octets)

CRYPT_DES

Cryptage DES avec une clé 56 bits (7 octets)

CRYPT_HASH_SHA1

Calcul HASH SHA1

CRYPT_HASH_SHA256

Calcul HASH SHA56

CRYPT_HASH_MD5

Calcul HASH MD5

CRYPT_ARCH_ZIP

Archives ZIP

Voir aussi

DebugBreak, Propriétés d'un Programme MQL5 en Cours d'Exécution, CryptEncode(), CryptDecode()