Explicação detalhada do iCustom - página 5

 
William Roeder:
Continuando a partir do nº 23 e encapsulando em uma função nº 26, agora mostro uma estrutura que funciona tanto no MT4 quanto no MT5. (Para pós-construção 600, mudei os pontos inválidos(#29) em nomes variáveis, e aprovo ints para enumerações padrão)
Não compilado, não testado. Não compilado, não testado.

Olá William & Co.

Se você ligar para iCustom várias vezes para um determinado indicador com o mesmo símbolo e cronograma, o código do indicador completo é executado repetidamente ou a MQL4 faz algo inteligente nos bastidores para armazenar os buffers resultantes? Espero que seja este último especialmente para indicadores mais pesados. Meu entendimento é que a MQL5 melhora esta situação usando alças, tratando os indicadores de forma semelhante à de abrir/fechar arquivos.

Além disso, ao programar EAs estou interessado em usar as classes derivadas CIndicator da Biblioteca Padrão que provavelmente oferece maior controle (e extensibilidade) quando comparado com as funções embutidas (iCustom, iMACD, iBands, etc), sem mencionar que teoricamente deveria oferecer semântica de programação similar em ambas as plataformas, MT4 e MT5. Entretanto, eu mesmo ainda não experimentei e ainda estou intrigado com as diferenças significativas no código fonteentre MQL4 e MQL5(Include/Indicators/*.mqh). Seria tão amável em oferecer seus conhecimentos sobre os prós e contras de sua compreensão e experiência com estas funções/libris?

 
Dima Diall: Se você chamar o iCustom várias vezes para um determinado indicador com o mesmo símbolo e cronograma, o código do indicador completo é executado repetidamente ou a MQL4 faz algo inteligente nos bastidores para armazenar os buffers resultantes?
  1. Se o símbolo específico / tabela TF não existe, ele é criado de forma invisível.
  2. Se a combinação de indicador/parâmetro(s) específico(s) não estiver no gráfico de símbolo/TF, ele é invisivelmente adicionado.
  3. Então, ele lê a partir do buffer[índice] solicitado.
 
William Roeder:
  1. Se o símbolo específico / tabela TF não existe, ele é criado de forma invisível.
  2. Se a combinação de indicador/parâmetro(s) específico(s) não estiver no gráfico de símbolo/TF, ele é invisivelmente adicionado.
  3. Então, ele lê a partir do buffer[índice] solicitado.

Muito obrigado pela resposta rápida, William -- é realmente uma abordagem interessante... Esses indicadores criados invisivelmente são destruídos automaticamente quando a EA é encerrada? Eu assumiria que sim, pelo menos na MQL4; talvez na MQL5 talvez seja necessário chamar explicitamente IndicatorRelease() para os manipuladores de indicadores em uso pela EA.

PS: Por acaso você tem alguma experiência com classes CIndicator na Biblioteca Padrão? Tenho pesquisado online por amostras de código e não consegui encontrar muita coisa, além do magro material de referência em http://www.mql5.com/en/docs/standardlibrary/technicalindicators/CIndicators/CIndicator (ou sistema de ajuda embutido).

PPS: Há alguma forma de habilitar notificações por e-mail neste fórum? Procurei nas configurações de minha conta e não consegui encontrar nada.

Documentation on MQL5: Standard Library
Documentation on MQL5: Standard Library
  • www.mql5.com
MQL5 Standard Library is written in MQL5 and is designed to facilitate writing programs (indicators, scripts, experts) for end users. Library provides convenient access to the most of the internal MQL5 functions.
 
  1. Como os gráficos não utilizados são purgados após dez minutos, presumo que os indicadores não utilizados também o são.
  2. Eu não estudei o MT5. Olhe o código na classe.
  3. Não que eu esteja ciente. Eu só uso Firefox e o Update Scanner add on.