MetaTrader 5 build 2485: Melhoras em iCustom e otimização geral em MQL5

O que há de novo na MetaTrader 5?

5 junho 2020

Terminal

  1. Otimizada e significativamente acelerada a edição do histórico de barras para instruemntos financeiros personalizados, inclusive com ajuda da função CustomRatesUpdate.
  2. Corrigidos erros ao exportar configurações de instrumentos personalizados para arquivos JSON.
  3. Correções de crash-logs.

MQL5

  1. Alterado o algoritmo para carregar indicadores personalizados com ajuda de iCustom.

    Nome do indicador personalizado. Se antes do nome for indicada uma barra invertida '\', o arquivo EX5 do indicador será procurado em relação à pasta raíz MQL5. Assim, ao chamar iCustom(Symbol(), Period(), "\FirstIndicator"...) o indicador será carregado como MQL5\FirstIndicator.ex5. Se não houver arquivo nesse caminho, ocorrerá o erro 4802 (ERR_INDICATOR_CANNOT_CREATE).

    Se o caminho não começar com '\', o indicador será pesquisado e carregado na seguinte sequência:

    • Primeiro, o arquivo EX5 do indicador é pesquisado na mesma pasta em que localizado o arquivo EX5 do programa de chamada. Por exemplo, o EA CrossMA.EX5 está localizado na pasta MQL5\Experts\MyExperts e contém a chamada iCustom(Symbol(), Period(), "SecondIndicator"...), neste caso, a pesquisa do indicador é realizada com base no caminho MQL5\Experts\MyExperts\SecondIndicator.ex5.
    • Se o indicador não for encontrado no mesmo diretório, a pesquisa será realizada em relação ao diretório raiz dos indicadores MQL5\Indicators. Em outras palavras, é procurado o arquivo MQL5\Indicators\SecondIndicator.ex5. Se o indicador não for encontrado nos dois caminhos, a função retornará INVALID_HANDLE e será gerado o erro 4802 (ERR_INDICATOR_CANNOT_CREATE).

    Se o caminho do indicador estiver definido num subdiretório, por exemplo, como MyIndicators\ThirdIndicator, a pesquisa será realizada pela primeira vez na pasta do programa de chamada (o EA está localizado na pasta MQL5\Experts\MyExperts) com base no caminho MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5 e, em seguida, em caso de falha, é procurado o arquivo MQL5\Indicators\MyIndicators\ThirdIndicator.ex5. Além disso, com ajuda de um separador no caminho é necessário especificar uma barra invertida dupla '\\', por exemplo, iCustom(Symbol(), Period(), "MyIndicators\\ThirdIndicator"...).

    Além disso, se um indicador personalizado for chamado no código do programa via iCustom, o compilador incluirá implicitamente a diretiva "#property tester_indicator XXX", se ela estiver ausente.

  2. Otimizado e significativamente acelerado o trabalho da função HistorySelect, que permite solicitar o histórico de transações e de ordens.
  3. Corrigido erro que acontecia ao solicitar ticks através da função CopyTicksRange. Por esse motivo, como início do intervalo era considerado o início do dia especificado, sem levar em consideração o tempo especificado.
  4. Otimizada e significativamente acelerada exibição de avisos com ajuda da função Alert.
  5. Adicionada a nova propriedade SYMBOL_TIME_MSC — hora do último tick do símbolo em milissegundo. Para obter a propriedade, é usada a função SymbolInfoInteger.