Propriedades de Programa (#property)

Todo programa mql5 permite especificar parâmetros específicos adicionais denominados #property que ajudam o terminal de cliente a prover adequadamente serviços a programas sem a necessidade de iniciá-los explicitamente. Isso diz respeito a configurações externas de indicadores, em primeiro lugar. Propriedades descritas em arquivos incluídos (included files) são completamente ignoradas. Propriedades devem ser especificadas no arquivo MQL5 principal.

#property identifier value

O compilador escreverá valores declarados na configuração do módulo executado.

Constante

Tipo

Descrição

icon

string

Caminho para o arquivo da imagem que será usada como um ícone do programa EX5. Regras de especificação de caminho são as mesmas para recursos. A propriedade deve ser especificada no módulo principal com o código fonte MQL5. O arquivo de ícone deve estar no formato ICO.

link

string

Link para o website da empresa

copyright

string

O nome da empresa

version

string

Versão do programa, máximo de 31 caracteres

description

string

Breve descrição em texto do programa MQL5. Pode haver vários description, cada um descrevendo uma linha do texto. O comprimento total de todo description não pode exceder 511 caracteres incluindo a quebra de linha.

stacksize

int

Tamanho do stack no programa MQL5. É necessário um stack de tamanho satisfatório ao executar chamadas recursivas da função.

Ao iniciar um script ou um Expert Advisor no gráfico, é alocado um stack de pelo menos 8 MB. No caso de indicadores, o tamanho da pilha é sempre fixo e igual a 1 MB.

Quando um programa é iniciado no testador de estratégia, para ele é sempre alocado um stack de 16 MB.

library

 

Uma biblioteca (library); nenhuma função start é atribuída, funções com o modificador export podem ser importadas em outros programas mql5

indicator_applied_price

int

Especifica o valor padrão para o campo "Aplicar a". Pode-se especificar um dos valores de ENUM_APPLIED_PRICE. Se a propriedade não é especificada, o valor padrão é PRICE_CLOSE

indicator_chart_window

 

Exibe o indicador na janela do gráfico

indicator_separate_window

 

Exibe o indicador em uma janela separada

indicator_height

int

Altura (height) fixa da sub-janela do indicador em pixels (property INDICATOR_HEIGHT)

indicator_buffers

int

Número de buffers para cálculo do indicador

indicator_plots

int

Número de séries gráficas no indicador

indicator_minimum

double

O limite de escala inferior para uma janela de indicador separada

indicator_maximum

double

O limite de escala superior para uma janela de indicador separada

indicator_labelN

string

Define o rótulo para a N-ésima série gráfica exibida na Janela de Dados. Para séries gráficas que requerem múltiplos buffers de indicador (DRAW_CANDLES, DRAW_FILLING e outros), os nomes de rótulos são definidos por meio do separador ';'.

indicator_colorN

color

A cor de exibição da linha N, onde N é o número da série gráfica; numeração começando em 1

indicator_widthN

int

Espessura de linha na série gráfica, onde N - número da série gráfica, numeração começando em 1

indicator_styleN

int

Estilo da linha na série gráfica, especificado a partir dos valores de ENUM_LINE_STYLE. N - número de séries gráficas, numeração começando em 1

indicator_typeN

int

Tipo de plotagem gráfica, especificado a partir de valores de ENUM_DRAW_TYPE. N - número de séries gráficas, numeração começando em 1

indicator_levelN

double

Nível horizontal de N em uma janela de indicador separada

indicator_levelcolor

color

Cor dos níveis horizontais do indicador

indicator_levelwidth

int

Espessura dos níveis horizontais do indicador

indicator_levelstyle

int

Estilo dos níveis horizontais do indicador

script_show_confirm

 

Exibe uma janela de confirmação antes de executar o script

script_show_inputs

 

Exibe uma janela com as propriedades antes de executar o script e desabilita esta janela de confirmação

tester_indicator

string

Nome de um indicador customizado no formato de "nome_indicador.ex5". Indicadores que requeiram teste são definidos automaticamente a partir da função iCustom(), se o correspondente parâmetro é definido através de uma string constante. Para todos os demais casos (uso da função IndicatorCreate() ou uso de uma string não-constante no parâmetro que define o nome do indicador) esta propriedade é requerida

tester_file

string

Nome de arquivo para um testador com a indicação de extensão, entre aspas duplas (como uma string constante). O arquivo especificado será passado para o Testador de Estratégias. Arquivos de entrada para serem testados, se forem necessários, devem sempre ser especificados.

tester_library

string

Nome da biblioteca (library) com a extensão, entre aspas duplas. Uma biblioteca pode ter extensão dll ou ex5. Bibliotecas que requeiram teste são definidas automaticamente. Contudo, se alguma biblioteca for usada por um indicador customizado, esta propriedade é requerida

tester_set

string

Nome de arquivo set com valores e o step dos parâmetros de entrada. O arquivo especificado será transferido para testador antes do teste ou otimização. O nome do arquivo deve ser especificado com a extensão e usando aspas como uma string constante.

 

Se, no nome do arquivo set, você especificar o nome do expert e o número de versão "<expert_name>_<number>.set", ele será automaticamente adicionado ao menu para carregar as versões dos parâmetros de acordo com o número de versão <number>. Por exemplo, o nome "MACD Sample_4.set" indica que se trata de um arquivo set para o expert "MACD Sample.mq5" com um número de versão igual 4.

 

Para estudar formato é recomendado salvar manualmente as configurações de teste/otimização no testador de estratégias, e, em seguida, abrir o arquivo set criado dessa maneira.

tester_no_cache

string

O testador de estratégia, durante a otimização, salva todos os resultados das corridas no cache de otimização em que para cada conjunto de parâmetros de entrada é salvo o resultado do teste. Isso permite, durante uma nova otimização, nos mesmos parâmetros obter os resultados prontos sem recálculo e demora.

 

Mas para algumas tarefas - por exemplo, em cálculos matemáticos - pode ser necessário realizar cálculos, independentemente da disponibilidade de resultados prontos no cache de otimização. Nesse caso, o arquivo deve incluir a propriedade tester_no_cache. Além disso, embora isso, os próprios resultados do teste serão armazenados no cache, para que você possa ver todos os dados nas corridas concluídas no testador de estratégias.

tester_everytick_calculate

string

No testador de estratégias, os indicadores são calculados somente quando são acessados para obter dados, isto é, somente no momento em que são solicitados os valores dos buffers de indicador. Isto dá uma aceleração significativa durante o teste e a otimização, se você não precisar obter os valores do indicador em cada tick.

 

A propriedade tester_everytick_calculate permite - durante o teste - ativar forçosamente o modo de cálculo do indicador em cada tick.

 

Os indicadores no testador de estratégia também são contados forçosamente em cada tick nos seguintes casos:

 

Esta propriedade se aplica apenas ao trabalho no testador de estratégias, no terminal os indicadores são sempre contados em cada tick entrante.

optimization_chart_mode

string

Indica o tipo de gráfico e os nomes de dois parâmetros de entrada que serão usados para visualizar resultados de otimização. Por exemplo, “3d, InpX, InpY” significa que um gráfico 3D com eixos de coordenadas será mostrado com base nos valores dos parâmetros InpX e InpY iterados. Desse modo, com a ajuda desta propriedade, você pode especificar diretamente no código os parâmetros que serão usados para exibir o gráfico de otimização e o tipo do gráfico em si.

Possíveis variantes:

  • "3d, input_parameter_name1, input_parameter_name2" — gráfico de visualização 3D que pode ser girado, ampliado, afastado. É construído de acordo com dois parâmetros de entrada.
  • "2d, input_parameter_name1, input_parameter_name2" — gráfico plano na forma de grade, cujas células são sombreadas em cores, dependendo do resultado. É construído de acordo com dois parâmetros de entrada.
  • "1d, input_parameter_name1, input_parameter_name2" — gráfico linear em que os resultados são classificados pelo parâmetro especificado. Cada corrida é exibida na forma de um ponto, é construída de acordo com o parâmetro de entrada.
  • "0d, input_parameter_name1, input_parameter_name2" — gráfico regular com resultados classificados de acordo com a ordem de chegada do resultado da corrida. Cada corrida é exibida como um ponto. Não requer especificação de parâmetros, mas esses parâmetros serão usados ao alternar manualmente para outro tipo de gráfico.

Você pode especificar apenas o tipo de gráfico e não especificar um ou dois parâmetros de entrada, pois, nesse caso, o próprio terminal selecionará os parâmetros necessários para exibir o gráfico de otimização.

Exemplo de Descrição e Número de Versão

#property version     "3.70"      // Versão atual do Expert Advisor
#property description "ZigZag universal com Pesavento Patterns"
#property description "Atualmente estão inclusos no indicador vários ZigZags com diferentes algorismos"
#property description "É possível embutir um grande número de outros indicadores exibindo os picos e"
#property description "fundos e automaticamente construir a partir destes topos e fundos várias ferramentas gráficas"

Exemplo exibindo descrição e versão na inicialização do programa

 

Exemplos especificando um rótulo separado para cada buffer do indicador ( "C open; C high; C low; C close")

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots   1
#property indicator_type1   DRAW_CANDLES
#property indicator_width1  3
#property indicator_label1  "C open;C high;C low;C close"

Exemplo exibindo um rótulo para cada buffer do indicador