Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 821
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
Por favor, preste atenção à minha pergunta. Estou escrevendo um indicador que faz alguns cálculos e os salva em uma matriz (não uma série temporal) do mesmo tamanho que o número de castiçais no gráfico. Originalmente, eu pensava que se eu tivesse 2000 castiçais no gráfico nos parâmetros terminais, então ao aparecer um novo castiçal, o primeiro será o segundo, o segundo - o terceiro, etc. Portanto, ao ser pré_calculado igual a zero, eu recalculo todo o conjunto, ou apenas a última barra. Mas descobri que a cada nova vela o valor das taxas_total aumenta e se torna maior que o limite de 2000.
Portanto, não há sentido em recalcular a matriz.
Mas por que isso acontece porque o terminal fixa exatamente 2000 candelabros?
Quando o terminal fecha, o número de barras torna-se novamente 2000 e começa a aumentar novamente quando novas velas aparecem.
Tarde . Você poderia me dar uma dica? Como seria o código para a condição: Se o saldo da conta tiver aumentado ou diminuído, então execute a função
//Declararar uma variável fora das funções:
balanço duplo=ContaBalanço();
//Add to the tick/calculation function:
se (Balance!=AccountBalance())
{
Saldo=ContaBalanço();
MyFunction(); // <-- Sua função
}
Eu tenho dinheiro em minha conta real, mas diz aqui que você só pode retirar salários ?
Conta real onde você a tem?
porque é assim que o terminal funciona
Então este é um comportamento normal e não um erro? Porque alguns indicadores básicos personalizados são escritos sem levar este fator em conta e fazem um recálculo completo a cada pré_cálculo==0.
esta solução é apenas para o testador, o que acontece se eu sobrecarregar o terminal? e se eu executar uma segunda EA nesta conta?
você precisa trabalhar com o histórico de pedidos, não há pedidos em aberto com nosso mágico - verifique o lucro do último pedido na história
Recarregar? Ou recarregar? Se for este último, o comportamento da EA não mudará. Se você lançar um segundo EA, o algoritmo será executado de forma semelhante, sem erros.
O que o autor precisa para trabalhar, depende da tarefa que ele se propôs. A forma como ele fez a pergunta, eu a respondi. Não fui mais específico em minha pergunta.
Por favor, preste atenção à minha pergunta. Estou escrevendo um indicador que faz alguns cálculos e os salva em uma matriz (não uma série temporal) do mesmo tamanho que o número de castiçais no gráfico. Originalmente, eu pensava que se eu tivesse 2000 castiçais no gráfico nos parâmetros terminais, então ao aparecer um novo castiçal, o primeiro será o segundo, o segundo - o terceiro, etc. Portanto, ao ser pré_calculado igual a zero, eu recalculo todo o conjunto, ou apenas a última barra. Mas descobri que a cada nova vela o valor das taxas_total aumenta e se torna maior que o limite de 2000.
Portanto, não há sentido em recalcular a matriz.
Mas por que isso acontece quando o terminal fixa exatamente 2000 castiçais?
Quando o terminal fecha, o número de barras torna-se novamente 2000 e começa a aumentar novamente quando novas velas aparecem.
//Declararar uma variável fora das funções:
balanço duplo=ContaBalanço();
//Add to the tick/calculation function:
se (Balance!=AccountBalance())
{
Saldo=ContaBalanço();
MyFunction(); // <-- Sua função
}
Muito obrigado, funcionou!
Aplicação do Metatreder 4
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Qualquer pergunta para iniciantes sobre MQL4, ajuda e discussão sobre algoritmos e códigos
Artyom Trishkin, 2019.04.28 16:55
Conta real onde você a tem?E por que tentar descobrir como funciona internamente? Bem, se você quiser escrever sua própria função, é provavelmente mais conveniente classificar e tomar o valor de um dos índices mais externos. Mas dificilmente funcionará mais rápido do que a função embutida. Além disso, a função integrada permite a busca de um valor dentro dos limites de índice designados. Portanto, a triagem simples não vai funcionar. Portanto, teremos que copiar parte da matriz em uma matriz intermediária e classificá-la já e tirar o valor necessário dela, mas a cópia da matriz não é uma função muito "barata".
Você precisa entender para que seu cérebro possa se desenvolver. Ontem fiquei sentado por muito tempo e fiz esboços, parece que é possível fazer sem ordenação pelo princípio da enumeração, mas ainda precisamos de variáveis que armazenem valores, e ainda mais podemos devolver o valor de uma só vez, não o índice, o que simplifica o trabalho. Você pode fazer melhor suas próprias funções na gama e diferentes modificações para salvar os cálculos. As funções embutidas carecem de muitos detalhes. Mas as funções incorporadas são muito rápidas, não entendo com o que está relacionado, talvez elas estejam escritas em C++, pois escrevo minhas funções com muito cuidado, levando em conta todos os detalhes: velocidade, qualidade, economia de código, implementar modificações que reduzem o número de verificações e passes dentro das funções, mas por alguma razão as funções incorporadas ainda contornam a velocidade, não a qualidade, mas estou me dirigindo à comunidade do fórum com esta pergunta há muito tempo.