Outras Constantes

A constante CLR_NONE é usada para indicar a ausência de cor, ela significa que o objeto gráfico ou a série gráfica de um indicador não serão plotados. Esta constante não foi incluída na lista de constantes Web-color, mas ela pode ser aplicada em todo lugar onde os argumentos de cor forem requeridos.

A constante INVALID_HANDLE pode ser usada para verificar handles de arquivo (veja FileOpen() e FileFindFirst()).

Constante

Descrição

Valor

CHARTS_MAX

O número possível máximo de gráficos abertos simultaneamente em um terminal

100

clrNONE

Ausência de cor

-1

EMPTY_VALUE

Valor vazio em um buffer de indicador

DBL_MAX

INVALID_HANDLE

Manipulador incorreto

-1

IS_DEBUG_MODE

Flag que indica que um programa MQL5 opera em modo de depuração

não-zero para modo de depuração, zero caso contrário

IS_PROFILE_MODE

Flag que indica que um programa MQL5 opera em modo de profiling

não-zero para modo de profiling, zero caso contrário

NULL

Zero para quaisquer tipos

0

WHOLE_ARRAY

Significa o número de itens restantes até o final do array, isto é, o array inteiro será processado

-1

WRONG_VALUE

A constante pode ser implicitamente convertido para qualquer tipo de enumeração

-1

A constante EMPTY_VALUE geralmente corresponde aos valores de indicadores que não são exibidos no gráfico. Por exemplo, para o indicador incorporado Desvio Padrão (Standard Deviation) com um período de 20, a linha para as primeiras 19 barras no histórico não é exibida no gráfico. Se você criar um handle deste indicador com a função iStdDev() e copiar os valores do indicador destas barras para um array através de CopyBuffer(), então estes valores serão iguais a EMPTY_VALUE.

Você pode escolher especificar em um indicador customizado seus próprios valores vazios, indicando quando o indicador não deve ser desenhado no gráfico. Use a função PlotIndexSetDouble() com a modificador PLOT_EMPTY_VALUE.

A constante NULL pode ser atribuído a uma variável de qualquer tipo simples ou a um objeto, estrutura ou ponteiro de classe. A atribuição NULL a uma variável string significa a completa desinicialização desta variável.

A constante WRONG_VALUE é destinada para casos em que é necessário retornar valor de uma enumeração, e ela deve ser um valor errado. Por exemplo, quando nós precisamos informar que um valor de retorno é um valor proveniente desta enumeração. Vamos considerar como um exemplo a função CheckLineStyle(), que retorna o estilo de linha para um objeto, especificado seu nome. Se na verificação de estilo por ObjectGetInteger() o resultado for true, um valor proveniente de ENUM_LINE_STYLE é retornado; caso contrário WRONG_VALUE é retornado.

void OnStart()
  {
   if(CheckLineStyle("MyChartObject")==WRONG_VALUE)
      printf("Erro ao obter estilo de linha.");
  }
//+------------------------------------------------------------------+
//| retorna o estilo de linha para um obj. espec. atráves de seu 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);
  }

 

A constante WHOLE_ARRAY é destinada para funções que requerem especificar o número de elementos nos arrays processados:

Se você quiser especificar que todos os valores do array a partir de uma posição especificada até o final devem ser processados, você deve especificar apenas o valor WHOLE_ARRAY.

A constante IS_PROFILE_MODE permite alterar uma operação de programa para correta coleta de dados no modo de profiling. Profiling permite medir o tempo de execução de fragmentos individuais do programa (geralmente abrangendo funções), bem como calcular o número de tais chamadas. Chamadas a função Sleep() podem ser desabilitadas para determinar o tempo de execução no modo de profiling, como neste exemplo:

//--- Sleep pode afetar (alterar) enormemente o resultado do profiling
if(!IS_PROFILE_MODESleep(100); // desabilita a chamada Sleep() no modo de profiling

O valor da constante IS_PROFILE_MODE é definida pelo compilador durante a compilação, enquanto que ela é definida para zero no modo convencional. Ao iniciar um programa no modo de profiling, uma compilação especial é realizada e IS_PROFILE_MODE é substituída com um valor não-zero.

A constante IS_DEBUG_MODE pode ser útil quando se precisar alterar levemente a operação de um programa MQL5 no modo de depuração. Por exemplo, no modo de depuração você pode precisar exibir informações de depuração adicionais no log do terminal ou criar objetos gráficos adicionais em um gráfico.

O seguinte exemplo cria um objeto Label e define sua descrição e cor dependendo do modo de execução do script. A fim de executar um script em modo de depuração a partir do MetaEditor, pressione F5. Se você executar um script a partir da janela de navegação do terminal, então a cor e o texto do objeto Label serão diferentes.

Exemplo:

//+------------------------------------------------------------------+
//|                                             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"
//+------------------------------------------------------------------+
//| Programa Script da função start (iniciar)                        |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string label_name="invisible_label";
   if(ObjectFind(0,label_name)<0)
     {
      Print("Objeto",label_name,"não encontrado. Código de erro = ",GetLastError());
      //--- cria um Rótulo (Label)
      ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);
      //--- define coordenada X
      ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
      //--- define coordenada Y
      ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
      ResetLastError();
      if(IS_DEBUG_MODE// modo de depuração
        {
         //--- exibe mensagem sobre o modo de execução do script
         ObjectSetString(0,label_name,OBJPROP_TEXT,"DEBUG MODE");
         //--- defini a cor de texto para vermelho
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrRed))
            Print("Não é possível definir a cor. Error",GetLastError());
        }
      else              // modo de operação
        {
         ObjectSetString(0,label_name,OBJPROP_TEXT,"RELEASE MODE");
         //--- defini a cor de texto para vermelho
         if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,CLR_NONE))
            Print("Não é possível definir a cor. Error ",GetLastError());
        }
      ChartRedraw();
      DebugBreak();    // aqui finalização ocorrerá, se nós estivermos em modo de depuração
     }
  }

Crypt Methods

A enumeração ENUM_CRYPT_METHOD é usada para especificar o método de transformação de dados, usado nas funções CryptEncode() e CryptDecode().

ENUM_CRYPT_METHOD

Constant

Descrição

CRYPT_BASE64

BASE64

CRYPT_AES128

Criptografia AES com chave de 128 bits (16 bytes)

CRYPT_AES256

Criptografia AES com chave de 256 bits (32 bytes)

CRYPT_DES

Criptografia DES com chave de 56 bits (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

Também Veja

DebugBreak, Propriedades de programas MQL5 executados, CryptEncode(), CryptDecode()