Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 158
![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
Como desencadear uma actualização forçada dos indicadores a partir do interior, ou seja, o evento OnCalculate?
Portanto, se não forem resolvidos (abaixo estão os problemas que podem surgir).
Ou por temporizador (algo parecido com isto).
Portanto, se não forem resolvidos (abaixo estão os problemas que podem surgir).
Ou num temporizador (o que quer que seja).
Estou a ver. )) Já tentou pedir funcionalidade interna?
Estou a ver. )) Já tentou pedir funcionalidade interna?
Eu não, em geral sim (penso que o MetaDraiver escreveu ao SD), e a questão foi levantada várias vezes no fórum.
Resposta de programadores, se houver, não sei.
O PS pode ser útil.
Desenvolvimento doindicador de volatilidade de múltiplas moedas em MQL5
O desenvolvimento de um indicador multi-moeda para a análise de divergência de preços
Penso que deveria ter sido publicado aqui, não consegui encontrá-lo.
No primeiro, se houver um erro
Linha 40 de tela de CCanvas; erro
variável estática não resolvida 'CCanvas::m_default_colors'
adicionar
uint CCanvas::m_default_colors[9]={0};
Discutido há muito tempo, não o verificou, o que aí mudou.
Bem, vamos tentar obter Metadriver. Talvez ele possa lançar alguma luz sobre o que os criadores responderam. Volodya...
Bem, vamos tentar obter Metadriver. Talvez ele possa lançar alguma luz sobre o que os criadores responderam. Volodya...
Não compreendi bem a pergunta. Não pedi um relógio normal. Como o Silêncio, pelo contrário, ia ..., em suma, esperávamos um pelo outro.
Houve um caso indirecto - já depois de se ter descoberto que o pedido de dados fora de TERMINAL_MAX_BAR provoca uma actualização de todos os indicadores no gráfico.
Voltei a trabalhar o meu botão de recarregamento e enviei-o para o Service Desk com a nova versão. Também perguntei nos comentários se esperava que o chip continuasse a funcionar... Eles não disseram nada... Eu estava bem com isso... Fiz uma reportagem a partir dele.
;)
--
Bem, a rigor, não é na verdade um bug. O terminal não se avaria, nem sequer abranda muito, apenas actualiza os dados no gráfico. Compreendo o que estão lá a fazer. Tipo: pedido fora dos dados existentes -> terminal tenta carregar dados, seguido de actualização do gráfico. Simples e eficiente. Porquê mudar se não há vítimas?
// Sobre "recalcular o indicador por dentro", não compreendo o problema. A questão não é clara. Internamente, o indicador é o seu próprio mestre, recalcula o que quiser. Mas se utiliza um sinal externo, é outra questão. Depois rodamos...
Meu, talvez não devesses)).
Não é bem claro como é que o cálculo prévio afecta especificamente a renderização de indicadores.
No meu caso, a tentativa de actualização ocorre tanto por OnCalculate() como por temporizador. Multi-instrumento.
Na tentativa mal sucedida de obter filas, a função é interrompida até ao próximo tick ou temporizador, não ocorre nenhum desenho, mas os valores não inicializados (como parece) aparecem no gráfico de algum lugar.
Embora em Init() ArrayInitialize(Buffer ,...) esteja presente.
Talvez eu tenha um insecto algures. Acontece muito raramente e é difícil apanhá-lo.
Parece-me que a função normal de fila de espera forçada na OnCalculate() permitiria minimizar o jogo de pandeiro em índices multi-instrumentos para gráficos com carrapatos raros.
A propósito, está escrito na ajuda ;)
Все необходимые расчеты пользовательских индикаторов необходимо размещать в предопределенной функции OnCalculate().
PS. Já percebi sobre o "chip".
PSPS/ Tenho a sensação de que no caso dado é mais fiável utilizar o cálculo de valores sem utilizar um indicador para uma EA. E, separadamente, um indicador para visualização.
Mas então teria de calcular a mesma coisa duas vezes.
Não compreendi bem a pergunta. Não pedi ao chamador habitual para o fazer. Pensei que o Silent ia..., em suma, estávamos a contar um com o outro.
...Refiro-me a isto.
Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais
Erros, Erros, Perguntas
MetaDriver, 2013.08.03 17:55
"Se quiser usar um MetaTrader 5 como terminal de entrada, deve usar a função "MetaTrader 5".
Para os meus propósitos, nem sempre é adequado, mas em geral muitos "problemas de fim-de-semana" seriam eliminados.
ForExperts sobre comércio, sistemas de comércio automatizados, e testes de estratégia comercial.
Insectos, insectos, perguntas
MetaDriver, 2013.08.03 18:02
Concordo.
Um "comando" para reiniciar à força todos os cálculos prévios para o símbolo seleccionado também seria útil. Com a subsequente geração de carraças, seria uma boa combinação.
Durante os testes visuais, no momento em que o indicador é reinicializado no Expert Advisor, o indicador com configurações antigas continua a ser exibido no gráfico no testador (de facto, cada vez durante a reinicialização é adicionada mais uma "linha paralela"). Tentei fazer o IndicatorRelease sempre antes de conseguir uma nova pega - não ajuda.
Obter novas pegas em código.
Introduzi a variável bughelper porque o indicador não se recalcularia a si próprio sem alterar os seus parâmetros de entrada.
É a isso que me refiro.
Resolvi o problema do recálculo solicitando os dados fora de TERMINAL_MAX_BAR.
E como o gráfico é actualizado em geral - não importa se o pedido é feito de dentro do indicador ou de um programa externo. O principal é que o programa (requisitante) solicita dados para este símbolo e prazo.
Na verdade, não encontrei casos em que tenha de actualizar a tabela "na máquina". Estou completamente satisfeito com o meu botão // ver o link acima.
Com a geração do tick (sem actualização do gráfico) o problema não está resolvido, mas não o resolvi muito - pode ser evitado na maioria dos casos de muitas maneiras (principalmente através da utilização de um temporizador).
IndicatorRelease(firstHandle);
ERR_FUNCTION_NOT_ALLOWED
4014
Função do sistema não pode ser chamada
Por favor, informe qual poderia ser a razão para oIndicatorRelease() não ser chamado?