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
OK, estou a ver.TheXpert fez uma onda e o problema começou.
É um verdadeiro aborrecimento para si. É culpa minha que não consiga comunicar com as pessoas?
O Expert Advisor tem um consumo fixo de memória, se
(1) sem emulação tampão
(2) nenhum desenho de objectos sobre a história.
(3) sem bugs de alocação de memória. Mas isto é normalmente visto com o deinit.
(4) não há insectos a trabalhar com os índices. Se um indicador tiver um tampão de tamanho completo, é um bug.
Se houver (1) ou (2) queima é fácil de rastrear com tester + despachante. É tratado por controlo de tamanho.
Os eventos por si só não comem memória de todo (em ordem ascendente). Portanto, se não houver problema no Consultor Especialista, o problema está definitivamente no indicador.
Num EA, o consumo de memória é fixo se
(1) não há emulação tampão
(2) não há desenho de objectos sobre a história.
(3) sem bugs de alocação de memória. Mas isto é normalmente visto com a desiniteração.
(4) sem bugs de trabalhar com índices. Se um indicador tiver um tampão de tamanho completo, é um bug.
Se tiver (1) ou (2), é fácil rastrear a sobrecarga com o provador e o despachante. Pode ser tratado com controlo de tamanho.
Os eventos em si não consomem de todo a memória (ascendente). Portanto, se o Consultor Especialista não tiver qualquer problema, o problema está definitivamente no Isolador.
Muito obrigado por uma resposta tão detalhada. Vou pensar bem. (1) - (3) não é definitivamente.
Sobre (4) explicar: o que significa "se o indicador leva o tampão ao tamanho total", para não se perder em conjecturas.
Sobre "Se houver (1) ou (2) queima é fácil de rastrear pelo testador + gestor" peço para especificar: isto é, sugere que se utilize o testador não só para medir a velocidade do programa, mas também para medir o volume consumido? Sim; uma solução tão simples, nunca me ocorreu sequer!
Além disso. Acontece que se um Expert Advisor é construído usando objectos dinâmicos, não pode ter memória fixa. Por outro lado, não há relatórios de funcionamento incorrecto com objectos dinâmicos; quantas vezes apaguei e lancei o Expert Advisor...
De qualquer modo, o meu brainstorming sugeriu uma ideia trivial: se não consigo separar os volumes de programas a correr em conjunto, tenho de os executar separadamente e ver como o seu consumo aumenta. O Expert Advisor deve ser lançado não a partir do seu indicador personalizado, mas, suponhamos, a partir de carraças no seu próprio gráfico. Considerando a sua dica relativa ao testador que mede o volume, tudo parece estar bem. Talvez seja isso que Roche quis dizer ao referir-se ao artigo...? Mas mesmo assim, ao reler o artigo, tal pensamento não me ocorreu. Não sem uma pista!
Deixas-me louco. Sou também culpado pela sua incapacidade de comunicar com as pessoas?
Culpa é culpa, a onda é culpa :)
E já compreendi o vosso ponto de vista sobre a minha extrema mal-educação e pedi desculpa antecipadamente :) Mesmo assim, a minha mal-educação diz-me que é mais produtivo falar por mim, do que pelas pessoas :) Não estamos na Duma do Estado :)
Sobre (4) explicar: o que significa "se o indicador tiver um tampão de tamanho completo" para não se perder em palpites.
O que quero dizer aqui é que se o gráfico tiver, digamos, 100000 barras e o Expert Advisor estiver a puxar um tampão para todas as 100000 barras - isso não é correcto.
Sobre "Se houver (1) ou (2) é fácil rastrear a queima por provador + expedidor" peço para especificar: ou seja, propõe-se utilizar o provador não só para medir a velocidade do programa, mas também para medir o volume consumido? Sim; uma solução tão simples, nunca me ocorreu sequer!
Bem... Pretende-se executar o testador e algures (no Gestor de Tarefas do Windows, por exemplo) monitorizar a alocação de memória. Não é uma forma muito fiável, mas se o problema estiver na EA, é muito provável que a queima de memória seja muito elevada.
Assim, o brainstorming resultou numa ideia aparentemente trivial: se não conseguirmos dividir volumes de programas a correr em conjunto, temos de os executar separadamente e ver quem tem maior consumo.
...
Isto é, por exemplo, quando clica no objecto - o evento CHARTEVENT_OBJECT_CLICK não virá imediatamente, mas apenas após a retirada de todos os eventos anteriores da fila.
E, como compreende, a fila está cheia com o EventChartCustom.
...
Alex, tenho agora um problema ligeiramente semelhante. Ou seja, imediatamente após a inicialização da EA, tudo funciona bem. Durante algum tempo não entro de todo no terminal, tento mudar de um painel de informação do utilizador para outro e o programa "bancas". Pode até congelar durante alguns segundos até que o interruptor aconteça. É o mesmo caso?
Ainda não experimentei a sua solução, ocupado com outro assunto, mas vou definitivamente experimentá-la, pois ainda não encontrei a solução pessoalmente. Há uma questão até agora.
No seu exemplo há cinco parâmetros na função OnChartEvent (). O que é aiview?
Alex, tenho agora um problema ligeiramente semelhante. Ou seja, logo após a inicialização da EA, tudo funciona bem. Durante algum tempo não entro de todo no terminal, tento mudar de um painel de informação do utilizador para outro e o programa "bancas". Pode até congelar durante alguns segundos até que o interruptor aconteça. É o mesmo caso?
Sim, é esse mesmo. Tem mais do que um EventChart enviado entre chamadas OnChartEvent. Faça esse complemento que sugeri para analisar o número do evento que chegou e o problema desaparece.
O seu exemplo tem cinco parâmetros na função OnChartEvent (). O que éiview?
Acidentalmente, foi colocado no cabeçalho da função. Ignorem-no.
tol64:
...
Assim, por exemplo, ao clicar num objecto, o evento CHARTEVENT_OBJECT_CLICK não virá de imediato, mas apenas depois de todos os eventos anteriores terem sido retirados da fila.
E, como compreende, a fila de eventos está entupida com EventChartCustom.
Pessoal, vamos lá, leiam o ponto 1.1 deste post. A informação aí discutida foi apresentada hoje, podemos considerá-la oficial. Bem, agora não pode haver (neste caso) fenómenos tais como eventos "anteriores" e "bloqueio surdo" de fila por função EventChartCustom. ...Ou precisamos de uma refutação oficial de novas informações do Manual.
TheXpert, obrigado pelo esclarecimento.
Pessoal, vamos lá, leiam o ponto 1.1 deste post. A informação aí discutida foi apresentada hoje, podemos considerá-la oficial. Bem, não pode (neste caso) haver agora (neste caso) na fila de espera fenómenos como os eventos de eventos "anteriores" e o "bloqueio surdo" da fila pela função EventChartCustom. ...Ou é necessária uma refutação oficial da nova informação do Manual.
Isto é algum tipo de circo?
Se o vir como um circo, sinta-se à vontade para o apagar, ou tente responder-lhe com base nos seus próprios méritos.