ChartApplyTemplate

Aplica-se um modelo específico de um arquivo especificado para o gráfico. O comando é adicionado para plotar uma fila de mensagens de gráfico e será executado após o processamento de todos os comandos anteriores.

bool  ChartApplyTemplate(
   long          chart_id,     // ID Gráfico
   const string  filename      // Nome Arquivo Modelo (Template)
   );

Parâmetros

chart_id

[in]  ID Gráfico. Significa o gráfico atual.

filename

[in]  O nome do arquivo contendo o modelo.

Valor do Retorno

Retorna verdadeiro se o comando foi adicionado à fila do gráfico, caso contrário será falso. Para obter uma informação sobre o erro, chamar a função GetLastError().

Observação

O Assessor Especialista (Expert Advisor) será descarregado e não poderá ser capaz de continuar operando em caso de carregamento bem sucedido de um novo modelo de gráfico que estiver anexado.

Ao aplicar o modelo ao gráfico, permissões de negociação podem ser limitadas devido a razões de segurança:

A permissão de negociação ao vivo não pode ser estendida para os Expert Advisors lançados aplicando o modelo usando a função ChartApplyTemplate().

Se o programa mql5 chamar a função ChartApplyTemplate() não possuir permissão para negociar, o Expert Advisor lançado através do modelo também não será capaz de negociar, independentemente das configurações do modelo.

Se o programa mql5 chamar a função ChartApplyTemplate() possuir permissão para negociar, enquanto não há tal permissão nas configurações do modelo, o Expert Advisor lançado através do modelo não será capaz de negociar.

Usando Modelos (Templates)

Os recursos da linguagem MQL5 permitem a configuração de propriedades de múltiplos gráficos, incluindo cores usando a função ChartSetInteger():

  • Cor do fundo do gráfico;
  • Cor dos eixos, escala e da linha OHLC;
  • Cor da grade;
  • Cor de volumes e níveis de posições abertas;
  • Cor da barra de alta, sombra e borda da barra de alta (também denominado como castiçal ou vela de alta);
  • Cor da barra de baixa, sombra e borda da barra de baixa (também denominado como castiçal ou vela de baixa);
  • Cor da linha do gráfico e barra Doji (também denominado como castiçal ou vela Doji);
  • Cor do corpo da barra de alta (também denominado como castiçal ou vela de alta);
  • Cor do corpo da barra de baixa (também denominado como castiçal ou vela de baixa);
  • Cor da linha do preço de compra;
  • Cor da linha do preço de venda;
  • Cor da linha do último acordo de preço (Last);
  • Cor dos níveis das ordens de paradas, Parar Perda e Tomar Lucro (Stop Loss e Take Profit).

Além disso, pode haver múltiplos objetos gráficos e indicadores sobre um gráfico. Você pode configurar um gráfico com todos os indicadores necessários uma única vez e salvar como um modelo (template). Este modelo salvo poderá ser aplicado em qualquer gráfico.

A função ChartApplyTemplate() é destinada ao uso de um modelo (template) salvo previamente, e pode ser usada em qualquer programa MQL5. O caminho para o arquivo que armazena o modelo (template) é passado como o segundo parâmetro para o ChartApplyTemplate(). O arquivo do modelo (template) é procurado de acordo com as seguintes regras:

  • se a barra invertida "\" separador (escrito como "\\") é colocada no início do percurso, o modelo (template) é procurado em relação ao caminho _terminal_dados_diretório\ MQL5 (path _terminal_data_directory\MQL5);
  • se não existir uma barra invertida, o modelo é procurado em relação ao arquivo executável EX5, em que é chamado o ChartApplyTemplate();
  • se um modelo não é encontrado nas duas primeiras variantes, a pesquisa é executada na pasta terminal_diretorio\Profiles\Templates\.

Aqui o terminal_directory é a pasta onde o Terminal do Cliente MetaTrader 5 está sendo executado, e o terminal_dados_diretório (terminal_data_directory) é a pasta em que os arquivos editáveis são armazenados, a sua localização depende do sistema operacional,nome do usuário e as configurações de segurança do computador. Normalmente, eles são pastas diferentes, mas em alguns casos, eles podem coincidir.

A localização das pastas terminal_data_directory e terminal_directory pode ser obtida utilizando a função TerminalInfoString().

//--- diretório de onde o terminal é iniciado
   string terminal_path=TerminalInfoString(TERMINAL_PATH);
   Print("Terminal diretório:",terminal_path);
//--- terminal dados diretório, em que a pasta MQL5 com os EAs e indicadores estão localizados
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
   Print("Terminal dados diretório:",terminal_data_path);

Por exemplo:

//--- busca de um modelo (template) no terminal_dados_diretório\MQL5\
ChartApplyTemplate(0,"\\primeiro_modelo.tpl"))
//--- busca de um modelo em diretório_de_EX5_arquivo\, em seguida a pasta terminal_dados_diretório\Profiles\Templates\
ChartApplyTemplate(0,"segundo_modelo.tpl"))
//--- busca de um modelo em diretório_de_EX5_arquivo\My_templates\, em seguida a pasta terminal_diretório\Profiles\Templates\My_templates\
ChartApplyTemplate(0,"My_templates\\terceiro_modelo.tpl"))

Os modelos não são recursos, eles não podem ser incluídos em um arquivo executável EX5.

Exemplo:

//+------------------------------------------------------------------+
//| Função de início do programa script                              |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Exemplo de aplicação do modelo, localizado em \MQL5\Files
   if(FileIsExist("my_template.tpl"))
     {
      Print("O arquivo my_template.tpl foi encontrado em \Files'");
      //--- Aplicar modelo
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
        {
         Print("O modelo 'my_template.tpl' foi aplicado com sucesso");
         //--- redesenhar gráfico
         ChartRedraw();
        }
      else
         Print("Falha ao aplicar'my_template.tpl', código de erro ",GetLastError());
     }
   else
     {
      Print("Arquivo 'my_template.tpl' não encontrado em"
            +TerminalInfoString(TERMINAL_PATH)+"\\MQL5\\Files");
     }
  }

Também Veja

Recursos