Altre costanti

La costante CLR_NONE viene utilizzata per delineare l'assenza di colore, significa che l' oggetto grafico o serie grafica di un indicatore non verrà stampata. Questa costante non è stata inclusa nella lista costanti Web-color, ma può essere applicata ovunque dove gli argomenti del colore sono richiesti.

La costante INVALID_HANDLE può essere utilizzata per il controllo degli handles file (vedi FileOpen() e FileFindFirst()).

Constant

Descrizione

Valore

CHARTS_MAX

Il numero massimo possibile di grafici aperti simultaneamente nel terminale

100

clrNONE

Assenza di colore

-1

EMPTY_VALUE

Valore vuoto in un buffer di indicatore

DBL_MAX

INVALID_HANDLE

Incorrect handle

-1

IS_DEBUG_MODE

Flag dove un programma-mq5 opera in modalità di debug

diverso da zero in modalità di debug, altrimenti zero

IS_PROFILE_MODE

Flag dove un programma-mq5 opera in modalità di analisi

diverso da zero in modalità di analisi, altrimenti zero

NULL

Zero per qualsiasi tipo

0

WHOLE_ARRAY

Indica il numero di elementi restanti fino alla fine dell'array, cioè, verrà elabolrato l'intero array

-1

WRONG_VALUE

La costante può essere implicitamente lanciata a qualsiasi tipo di enumerazione

-1

La costante EMPTY_VALUE di solito corrisponde ai valori di indicatori che non sono mostrati nel grafico. Per esempio, per indicatori built-in Deviazione standard con un periodo di 20, la linea per le prime 19 barre nello storico non è mostrata nel grafico. Se si crea un handle di questo indicatore con la funzione iStdDev() e lo si copia in un array di valori degli indicatori per queste barre attraverso CopyBuffer(), allora questi valori saranno uguali ad EMPTY_VALUE.

È possibile scegliere di specificare per un indicatore personalizzato il proprio valore vuoto dell'indicatore, quando l'indicatore non deve essere compilato nel grafico. Utilizzando la funzione PlotIndexSetDouble() con il modificatore PLOT_EMPTY_VALUE.

La costante NULL può essere assegnata ad una variabile di qualsiasi tipo semplice o ad una struttura oggetto o puntatore alla classe. L'assegnazione NULL per una variabile stringa significa la deinizializzazione completa di questa variabile.

La costante WRONG_VALUE è destinata per i casi, dove è necessario restituire un valore di un enumerazione, e questo deve essere un valore errato. Per esempio, quando abbiamo bisogno di informare che il valore di ritorno è un valore da questa enumerazione. Consideriamo a titolo di esempio alcune funzioni CheckLineStyle function(), che restituiscono lo stile di linea di un oggetto, specificato dal suo nome. Se al momento del check stile ObjectGetInteger() il risultato è vero, viene restituito un valore compreso tra ENUM_LINE_STYLE, altrimenti viene restituito WRONG_VALUE.

voidOnStart()
  {
   if(CheckLineStyle("MyChartObject")==WRONG_VALUE)
      printf("Errore di ottenimento stile linea.");
  }
//+--------------------------------------------------------------------------------+
//| restituisce lo stile della linea per un oggetto specificato dal suo nome       |
//+--------------------------------------------------------------------------------+
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 costante WHOLE_ARRAY è destinata a funzioni che richiedono di specificare il numero di elementi di array trasformati:

Se si desidera specificare, che tutti i valori della matrice da una posizione specificata fino alla fine devono essere elaborati, è necessario specificare solo il valore WHOLE_ARRAY.

IS_PROFILE_MODE  (costante) permette di cambiare un'operazione di programma per la raccolta di dati corretti in modalità profiling. Profiling consente di misurare il tempo di esecuzione dei singoli frammenti di programma (di solito comprende le funzioni), nonché il calcolo del numero di tali chiamate. La chiamata della funzione Sleep() può essere disattivata per determinare il tempo di esecuzione in modalità di profiling, come in questo esempio:

//--- Sleep può effettivamente influenzare (cambiare) il risultato del profiling
if(!IS_PROFILE_MODESleep(100); // disabilita la chiamata Sleep() in modalità profiling

Il valore costate IS_PROFILE_MODE è impostato dal compilatore durante la compilazione, mentre è impostato a zero in modo convenzionale. Quando si lancia un programma in modalità profiling, viene eseguita una raccolta speciale e IS_PROFILE_MODE viene sostituito con un valore diverso da zero.

La costante IS_DEBUG_MODE può essere utile quando è necessario modificare un po' il funzionamento di un programma MQL5 in modalità di debug. Ad esempio, in modalità di debug può essere necessario visualizzare ulteriori informazioni di debug nel registro terminale o creare altri oggetti grafici in un grafico.

L'esempio seguente crea un oggetto Label e imposta la sua descrizione e il colore a seconda della modalità script in esecuzione. Per eseguire uno script in modalità di debug da MetaEditor, premere F5. Se si esegue lo script dalla finestra del browser nel terminale, il colore e il testo dell' oggetto Label sarà diverso.

Esempio:

//+--------------------------------------------------------------------------------+
//|                                             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"
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
//---
   string label_name="invisible_label";
   if(ObjectFind(0,label_name)<0)
     {
      Print("Object",label_name,"not found. Error code = ",GetLastError());
      //--- crea Label
      ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);
      //--- imposta coordinate X
      ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
      //--- imposta coordinate Y
      ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
      ResetLastError();
      if(IS_DEBUG_MODE// modalità debug
        {
         //--- mostra il messaggio riguardo la modalità di esecuzione dello script
         ObjectSetString(0,label_name,OBJPROP_TEXT,"DEBUG MODE");
         //--- imposta il colore del testo in rosso
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrRed))
            Print("Impossibile impostare il colore. Error",GetLastError());
        }
      else              // modalità operazione
        {
         ObjectSetString(0,label_name,OBJPROP_TEXT,"RELEASE MODE");
         //--- imposta il colore del testo ad invisibile
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,CLR_NONE))
            Print("Impossibile impostare il colore. Error ",GetLastError());
        }
      ChartRedraw();
      DebugBreak();    // qui avverrà la terminazione, se siamo in modalità debug
     }
  }

Crypt Methods

The ENUM_CRYPT_METHOD enumeration is used to specify the data tranformation method, used in CryptEncode() and CryptDecode() functions.

ENUM_CRYPT_METHOD

Constant

Description

CRYPT_BASE64

BASE64

CRYPT_AES128

AES encryption with 128 bit key (16 bytes)

CRYPT_AES256

AES encryption with 256 bit key (32 bytes)

CRYPT_DES

DES encryption with 56 bit key (7 bytes)

CRYPT_HASH_SHA1

SHA1 HASH caculation

CRYPT_HASH_SHA256

SHA256 HASH caculation

CRYPT_HASH_MD5

MD5 HASH caculation

CRYPT_ARCH_ZIP

ZIP archives

Vedi anche

DebugBreak, Proprietà di esecuzione programma MQL5, CryptEncode(), CryptDecode()