Andere Konstanten

Konstante CLR_NONE wird verwendet, um Farbefehlen anzudeuten, d.h. graphisches Objekt oder graphische Serie des Indikatoren wird nicht dargestellt. Diese Konstante gehört zur Liste der Benennungen von Web-Farben nicht, kann aber überall verwendet werden, wo Farbenargumente angefordert werden.

Konstante INVALID_HANDLE kann bei der Pruefung von Dateihandles (s. die Funktionen FileOpen() und FileFindFirst()) verwendet werden.

Konstante

Beschreibung

Wert

CHARTS_MAX

Maximal mögliche Zahl der gleichzeitig offenen Charts im Terminal

100

clrNONE

Abwesenheit der Farbe

-1

EMPTY_VALUE

Leerwert im Indikatorpuffer

DBL_MAX

INVALID_HANDLE

unkorrektes handle

-1

IS_DEBUG_MODE

Flagge der Arbeit des mq5-Programm in Debugging-Mode

true in Debugging-Mode, anderenfalls false

IS_PROFILE_MODE

Flagge der Arbeit des mq5-Programms im Modus von Code Profiling

im Profiling-Modus ist nicht gleich null, sonst 0

NULL

Null des jeden Typs

0

WHOLE_ARRAY

Bedeutet die Anzahl von Elementen, die  bis zum Feldende bleiben, bis das ganze Feld verarbeitet wird

-1

WRONG_VALUE

Konstante kann implizit reduziert werden zum Typ jeder Enumeration.

-1

Konstante EMPTY_VALUE entspricht gewoehnlich den Werten des Indikators, die auf dem Chart nicht gezeigt werden. ZB. Für den eingebauten Indikator Standard Deviation mit der Periode wird die Linie für die ersten 19 Bars in der Geschichte nicht ausgegeben. Wenn Sie handle dieses Indikators durch die Funktion iStdDev() erzeugen und die Indikatorwerte für diese Bars in Feld durch CopyBuffer() kopieren, werden diese Werte EMPTY_VALUE gleich sein.

Man kann selbsstaendig seinen eigenen Leerwert des Indikators im Benutzerindikator spezifizieren, wobei der Indikator auf dem Chart nicht gezeigt zu werden braucht. Verwenden Sie dafür die Funktion PlotIndexSetDouble() mit dem Modifikator PLOT_EMPTY_VALUE.

Konstante NULL kann einer Variable jedes einfachen Typs oder Anzeiger des Objektes oder der Struktur oder der Klasse zugeordnet werden. Die Zuordnung von NULL einer Zeilenvariable bedeutet die vollstaendige Deinitialisierung dieser Variable.

Konstante WRONG_VALUE ist für die Faellen bestimmt, wenn es erforderlich ist, den Wert der Enumeration rückzugeben und das muss ein unkorrekter Wert sein muss. ZB man muss angeben, dass dieser Wert ein Wert dieser Enumeration ist. Als Beispiel kann man  eine gewisse Funktion CheckLineStyle() nehmen, die Linienstil für Objekt rückgibt, das mit dem Namen angegeben wird. Wenn bei der Stilanforderung durch die Funktion ObjectGetInteger() das Ergebnis true sein wird, kehrt ein Wert der Enumeration ENUM_LINE_STYLE zurück, anderenfalls kehrt  WRONG_VALUE zurück.

void OnStart()
  {
   if(CheckLineStyle("MyChartObject")==WRONG_VALUE)
      printf("Error line style getting.");
  }
//+------------------------------------------------------------------+
//| Kehrt Stil der Linie für Objekt, das mit dem Namen angegeben wird           |
//+------------------------------------------------------------------+
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);
  }

 

Konstante WHOLE_ARRAY ist für die Funktionen bestimmt, die die Andeutung der Anzahl der Elementen in verarbeiteten Felder fordern:

Wenn man spezifizieren muss, dass alle Feldwerte von der angegebenen Position bis zum Ende verarbeitet werden muessen, reicht es, den Wert  WHOLE_ARRAY. anzugeben.

Konstante IS_PROFILE_MODE erlaubt die Arbeit des Programms für die korrekte Datenerfassung im Profiling-Modus zu ändern. Profiling erlaubt die Ausführungszeit von einzelnen Fragmente des Programms (in der Regel eine Funktion) zu messen, und auch die Anzahl solcher Aufrufe zu berechnen. Um die korrekte Information über die Ausführungszeit im Profiling-Modus zu erhalten, kann man die Aufrufe der Funktion Sleep() wie folgt deaktivieren:

//--- Sleep kann das Ergebnis von Profiling 
if(!IS_PROFILE_MODESleep(100) stark beeinflussen(verzerren); // verbieten wir den Aufruf Sleep() im Profiling-Modus

Wert der Konstante IS_PROFILE_MODE wird vom Compiler bei der Compilierung angegeben, und in gewöhnlichen Modus gleich Null gestellt. Beim Programmstart im Profiling-Modu wird eine spezielle Compilierung durchgeführt, und in diesem Fall statt IS_PROFILE_MODE wird einen von null verschiedenen Wert ersetzt.

Das Verwenden der Konstante IS_DEBUG_MODE ist für die leichte Veranderung der Arbeit  mql5-Programms in Debuggin-Mode nuetzlich. ZB. in Debugging-Mode  kann es erforderlich sein, zusaettzliche Debugging Information in Log des Terminals auszugeben oder zusaetzliche graphische Objekte auf dem Chart zu erzeugen.

Das unten angeführte Beispiel erzeugt das Objekt Label und gibt seine Beschreibung und Farbe abhängig vom Mode des Scriptablaufs. Für Ablauf des Scripts in Debugging-Mode von MetaEditor, drücken Sie die Taste F5. Wenn  Sie wollen, Script vom Browserwindow im Terminal ablaufen lassen, wird Farbe und Objekttext von Label anders sein.

Beispiel:

//+------------------------------------------------------------------+
//|                                             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"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string label_name="invisible_label";
   if(ObjectFind(0,label_name)<0)
     {
      Print("Object ",label_name," not found. Error code = ",GetLastError());
      //--- erzeugen wir das Objekt Label
      ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);
      //--- stellen wir die Koordinate X ein
      ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
      //--- stellen wir die Koordinate Y ein
      ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
      ResetLastError();
      if(IS_DEBUG_MODE// Debugging-Mode 
        {
         //--- Nachricht über Mode des Scriptablaufs zeigen 
         ObjectSetString(0,label_name,OBJPROP_TEXT,"DEBUG MODE");
         //--- geben wir rote Farbe des Textes vor 
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrRed))
            Print("Nicht in der Lage, Farbe einzustellen. Fehler ",GetLastError());
        }
      else              // Arbeitmode
         ObjectSetString(0,label_name,OBJPROP_TEXT,"RELEASE MODE");
         //--- stellen wir unsichtbare Textfarbe vor 
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,CLR_NONE))
            Print("Misskungen, Farbe einzustellen. Fehler ",GetLastError());
        }
      ChartRedraw();
      DebugBreak();    // hier wird Unterbrechung erfolgen, wenn wir in Debugging-Mode sind  
     }
  }

 

Methoden der Datenverschlüsselung

Für die Angabe der Methode der Datenumwandlung (Verschlüsselung und Berechnung von Hash-Werten) wird in den CryptEncode() und CryptDecode() Funktionen die ENUM_CRYPT_METHOD Aufzählung verwendet.

ENUM_CRYPT_METHOD

Konstante

Beschreibung

CRYPT_BASE64

BASE64 Verschlüsselung (Umkodierung)

CRYPT_AES128

AES Verschlüsselung mit einem 128-Bit-Schlüssel (16 Byte)

CRYPT_AES256

AES Verschlüsselung mit einem 256-Bit-Schlüssel (32 Byte)

CRYPT_DES

DES Verschlüsselung mit einem 56-Bit-Schlüssel (7 Byte)

CRYPT_HASH_SHA1

Berechnung HASH SHA1

CRYPT_HASH_SHA256

Berechnung HASH SHA256

CRYPT_HASH_MD5

Berechnung HASH MD5

CRYPT_ARCH_ZIP

ZIP-Archivierung

Sehen Sie auch

DebugBreak, Information über das ausgeführte MQL5-Programm, CryptEncode(), CryptDecode()