- Substituição de Macro (#define)
- Propriedades de Programa (#property)
- Incluindo Arquivos (#include)
- Importando Funções (#import)
- Conditional Compilation (#ifdef, #ifndef, #else, #endif)
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 |
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 |
Link para o website da empresa |
|
copyright |
O nome da empresa |
|
version |
Versão do programa, máximo de 31 caracteres |
|
description |
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 |
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 |
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 |
Altura (height) fixa da sub-janela do indicador em pixels (property INDICATOR_HEIGHT) |
|
indicator_buffers |
Número de buffers para cálculo do indicador |
|
indicator_plots |
Número de séries gráficas no indicador |
|
indicator_minimum |
O limite de escala inferior para uma janela de indicador separada |
|
indicator_maximum |
O limite de escala superior para uma janela de indicador separada |
|
indicator_labelN |
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 |
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 |
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 |
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 |
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 |
Nível horizontal de N em uma janela de indicador separada |
|
indicator_levelcolor |
Cor dos níveis horizontais do indicador |
|
indicator_levelwidth |
Espessura dos níveis horizontais do indicador |
|
indicator_levelstyle |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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:
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
|
Exemplos especificando um rótulo separado para cada buffer do indicador ( "C open; C high; C low; C close")
#property indicator_chart_window
|