Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 361
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
A questão é se devo calcular o código indicador 900 vezes por um tick (3 prazos com 300 barras, por exemplo), ou 3 vezes. É claro que o icustom é menos incômodo, eu o coloco no loop e está feito. Como opção, vi um endereço da matriz de valores do indicador passado para um EA usando dll, mas não quero pegar o indicador em um conjunto
Mais uma vez, há um erro na declaração do problema. Por que você precisa de 900 barras em seu Expert Advisor? Se você realmente precisa de tantos dados no indicador, 900 barras, então trabalhe com eles no próprio indicador, por que arrastá-los para o Expert Advisor? A tarefa certa é 50% do sucesso
A declaração do problema está errada novamente... Por que você precisa de 900 barras em seu EA? Se você realmente precisa de tantos dados no indicador, 900 deles, então trabalhe com eles no próprio indicador, por que arrastá-los para o Expert Advisor? A tarefa correta é 50% do sucesso
Preciso comparar os picos mínimo e máximo do indicador em 3 períodos de tempo, por exemplo 5min 15min e 30min, para determinar as tendências, não serei capaz de adivinhar os picos, ou seja, ter que revezar toda a história. Tomei 300 barras de história como exemplo.
Ainda consome muitos recursos para usar o icustom.
Preciso comparar o indicador de picos mínimo e máximo por 3 períodos de tempo, por exemplo 5min 15min e 30min, para determinar as tendências, não serei capaz de adivinhar os picos, ou seja, terei que fazer revezamentos ao longo de toda a história. Tomei 300 barras de história como exemplo.
Ainda é muito intensiva em recursos para usar o icustom.
A questão permanece em aberto no ontick, a função IndicatorCounted() no primeiro cálculo dá -1, como ela pode ser substituída em um Expert Advisor?
"Você não precisa mudá-lo" - ou seja, funciona corretamente com o onTick no Expert Advisor assim como com o onCalculate no indicador?
Não, eu quis dizer que não é nada necessário lá.
Não, eu quis dizer que não há nenhuma necessidade disso lá.
Escavado emhttps://www.mql5.com/ru/articles/1456, vou investigar, mas achei que havia uma opção mais fácil.
A questão permanece em aberto na função ontick IndicatorCounted() na primeira verificação de como substituí-la no Expert Advisor?
Você não precisa olhar através dos tops em cada tick, eles não mudam.
No EA, verifique o ciclo na abertura da barra e saia do ciclo assim que a parte superior for encontrada.
A função IndicatorCounted() era utilizada anteriormente nos indicadores com a função start(). Os novos indicadores com OnCalculate( ) utilizam o segundo parâmetro pré-calculado em seu lugar. Eu os analisei especialmente e descobri que eles diferem por 1. A diferença é pequena e eles mostram quantas barras já foram calculadas. Se for 0 (ou -1), então todas as barras precisam ser calculadas. Isto acontece ao iniciar o indicador, quando ele deve traçar toda a linha e salvar o resultado nas matrizes de proteção. Nos próximos tiques, apenas os dados da última barra devem ser recalculados. Portanto, o que é feito com valor zero (ou -1) deve ser colocado no OnInit() da EA. O resto - muito pouco - deve ser colocado em OnTick()
Obrigado. Vou trabalhar nisso. Eu não li nada sobre tipos longos no livro didático por algum motivo.
Você precisa colocar o cursor sobre int longo ou curto (ou qualquer outra palavra em outro idioma) e pressionar F1.
Muito obrigado, mas pelo que entendi da descrição da função, ele executará todo o código do indicador para obter um valor, no local que especifiquei, ou seja, para obter todos os topos que precisarei para calcular o código do indicador pela enésima vez (passar por todas as barras uma a uma), mas preciso comparar a ordem dos topos deste indicador em vários intervalos de tempo.
E então você tem que procurar os tops manualmente
Isto é absolutamente errado! Todas as barras indicadoras, quando chamadas do Expert Advisor usando iCustom(), são recalculadas apenas uma vez! Todas as chamadas seguintes do indicador funcionam com os resultados já calculados, apenas as barras não calculadas da chamada anterior são recalculadas. Por exemplo, ao chamar o indicador do período M15 a partir do gráfico H1 em cada nova barra, verifica-se que 4 barras de 15 minutos não são recalculadas a partir da chamada para o indicador. Portanto, apenas estas 4 barras serão recalculadas.
Mesmo se fizermos um loop através da seqüência de barras de 0 a xxx, o indicador será recalculado apenas uma vez na primeira chamada. Todas as chamadas seguintes não realizarão qualquer recálculo.
Desenterreihttps://www.mql5.com/ru/articles/1456, vou investigar, mas achei que havia uma maneira mais fácil
Este é um mau exemplo. Já tem TEN anos!!! O idioma já mudou para melhor.