Olá! meu objetivo é transferir o indicador criando uma função para a EA.
O primeiro passo, que é a criação da função, é dado. Mas o próximo - teste - não funciona.
O indicador desenha canais. Tem 4 amortecedores e muitas variáveis. Coloquei tudo isso na função.
Mas ao criar um Expert Advisor de teste para garantir a precisão de seu funcionamento, comparando o indicador e minha função, não posso conseguir a compilação.
Erros constantes de variáveis externas, que não estavam presentes quando eu criei a função, apareceram no EA.
Por favor, me dê alguns conselhos ou um link para um exemplo. Usei os artigos de GODZILLA, mas os exemplos dele são diferentes dos meus.
O esquema é, grosso modo, o seguinte:
transferir tudo que estava no init() do indicador para uma função separada, por exemplo, fInit_Indicator() e escrevê-lo no init() do EA, lembrando ao mesmo tempo de remover do código tudo que diz respeito à inicialização dos buffers de indicador.
copiar todas as variáveis indicadoras globais e colocá-las em variáveis globais da EA. Não se esqueça de definir o tamanho dos amortecedores indicadores quando eles forem declarados na EA. Algo como gd_Buf1[100], gd_Buf2[100] etc. Creio que 100 valores serão suficientes para você.
renomear a função start() do indicador, por exemplo, fMyIndicator() e colocá-lo na função start() da EA antes da abertura do código de ordem (para tomar uma decisão).
Além disso, não esqueça que o buffer indicador é diferente do buffer "não-indicador". Há várias soluções para isso:
quando uma nova barra chega, todos os dados da matriz "não-indicador" são deslocados, liberando o índice 0, onde o novo valor calculado é colocado.
Novamente, quando uma nova barra chegar, recalcule toda a "matriz não indicadora".
Preciso carregar os valores do número de pontos na matriz em cada novo tick.
O tamanho da matriz será diferente a cada vez. O que devo fazer neste caso, usar ArreyResize em cada iteração do laço?
1-Item: sua filosofia de mudar o tamanho da matriz é defeituosa desde o início, em 99 de cada 100 casos você pode usar apenas 10 células para manipular leituras indicadoras;
2-nd: recalcular essas leituras a cada tique é um capricho do cérebro mal informado.
Olá! meu objetivo é transferir o indicador criando uma função para a EA.
O primeiro passo, que é a criação da função, é dado. Mas o próximo - teste - não funciona.
O indicador desenha canais. Tem 4 amortecedores e muitas variáveis. Coloquei tudo isso na função.
Mas ao criar um Expert Advisor de teste para garantir a precisão de seu funcionamento, comparando o indicador e minha função, não posso conseguir a compilação.
Erros constantes de variáveis externas, que não estavam presentes quando eu criei a função, apareceram no EA.
Por favor, me dê alguns conselhos ou um link para um exemplo. Usei os artigos de GODZILLA, mas os exemplos dele são diferentes dos meus.
O esquema é, grosso modo, o seguinte:
Experimente - não é difícil.
Ajude-me a escrever uma condição que fará com que a EA multiplique o lote por duas vezes após abrir n ordens
Boa tarde!
Ainda estou descobrindo as coisas com arrays.
Preciso carregar os valores do número de pontos na matriz em cada novo tick.
Otamanho da matriz será diferente a cada vez. O que devo fazer neste caso, usar ArreyResize em cada iteração do laço?
Boa tarde, sobre o tema das matrizes.
há uma célula deste tipo
12345,p,fgh,2011-01-01,55,66
como posso obter 55 dele?
Obrigado.
Se a matriz for heterogênea, você provavelmente deve converter todos os elementos em tipo string e depois procurar o necessário usando
StringFinde(https://www.mql5.com/ru/forum/138609/page22#613148). Corrija-me se eu estiver errado.
else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;
Substitui-la por um consultor especializado que calcula não o saldo, mas o número de pedidos em aberto.
A resposta seria muito apreciada.
else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;
Substitui-la por um consultor especializado que calcula não o saldo, mas o número de pedidos em aberto.
A resposta seria muito apreciada.
Boa tarde, sobre o tema das matrizes.
há uma célula deste tipo
12345,p,fgh,2011-01-01,55,66
como posso obter 55 dele?
Obrigado.
https://book.mql4.com/ru/variables/arrays
Ajude-me a escrever uma condição que fará com que a EA multiplique o lote por duas vezes após n ordens serem abertas
Boa tarde!
Ainda estou descobrindo as coisas com arrays.
Preciso carregar os valores do número de pontos na matriz em cada novo tick.
O tamanho da matriz será diferente a cada vez. O que devo fazer neste caso, usar ArreyResize em cada iteração do laço?
1-Item: sua filosofia de mudar o tamanho da matriz é defeituosa desde o início, em 99 de cada 100 casos você pode usar apenas 10 células para manipular leituras indicadoras;
2-nd: recalcular essas leituras a cada tique é um capricho do cérebro mal informado.