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
Uma ideia: um Emulador de Ticks
Criei uma nova versão do Tick Count, visando aumentar ainda mais sua velocidade e verificar se realmente para WINZ13 não acontecem perdas de leitura na OnTick().
Se esse não é o limite, agora diria que está muito próximo.
Com isso foram feitas as seguintes melhorias:
1) É feita uma emulação dos ticks (mesmo que eles não cheguem através do OnTick()) através de um loop de leitura de preços em SymbolInfoTick(). Esse algoritmo inteligente detecta a variação de preço dentro da OnTick(), verificando se não ocorreu uma mudança antes da saída dela e atualizando os cálculos caso positivo. O valor de retentativa é hardcoded e definido como 100 nessa primeira versão.
2) Foi removida a TimeCurrent() e inserido um Timer() de 1 minuto, eliminando o atraso dessa rotina. Na prática, o único atraso possível agora é na exibição das mensagens a cada minuto.
Fiz testes com EUR/USD em MetaQuotes-Demo dessa versão e, como planejado, em 10 minutos ela já leu 4 ticks a mais que a versão anterior.
Será que essa versão vai resolver a questão de ticks que chegam juntos ??? Só com mais testes, mas estou otimista de ter encontrado um algoritmo para isso.
Obs 1: amanhã vou testar ela com o WINZ13 e PETR4, o código fonte está abaixo (além do novo arquivo abaixo, que estou chamando de tick_count_2.mq5).
Obs 2: na nova Tick Count 2 (com Emulador de Ticks) não existem parâmetros de entrada, é só largar no gráfico.
Ola Rogério, qual período(TF) devo usar para essa leitura?
Qualquer TF... entretanto, qualquer que seja o TF escolhido, o ideal é que você não modifique o tempo gráfico de nenhum gráfico com o ativo que está sendo testado, pois essa mudança pode resetar alguns scripts e expert advisors (confesso que ainda não testei no EA do Figurelli... mas ainda assim é bom evitar...)
Abraços,
Malacarne
Uma ideia: um Emulador de Ticks
Criei uma nova versão do Tick Count, visando aumentar ainda mais sua velocidade e verificar se realmente para WINZ13 não acontecem perdas de leitura na OnTick().
Se esse não é o limite, agora diria que está muito próximo.
Com isso foram feitas as seguintes melhorias:
1) É feita uma emulação dos ticks (mesmo que eles não cheguem através do OnTick()) através de um loop de leitura de preços em SymbolInfoTick(). Esse algoritmo inteligente detecta a variação de preço dentro da OnTick(), verificando se não ocorreu uma mudança antes da saída dela e atualizando os cálculos caso positivo. O valor de retentativa é hardcoded e definido como 100 nessa primeira versão.
2) Foi removida a TimeCurrent() e inserido um Timer() de 1 minuto, eliminando o atraso dessa rotina. Na prática, o único atraso possível agora é na exibição das mensagens a cada minuto.
Fiz testes com EUR/USD em MetaQuotes-Demo dessa versão e, como planejado, em 10 minutos ela já leu 4 ticks a mais que a versão anterior.
Será que essa versão vai resolver a questão de ticks que chegam juntos ??? Só com mais testes, mas estou otimista de ter encontrado um algoritmo para isso.
Obs 1: amanhã vou testar ela com o WINZ13 e PETR4, o código fonte está abaixo (além do novo arquivo abaixo, que estou chamando de tick_count_2.mq5).
Obs 2: na nova Tick Count 2 (com Emulador de Ticks) não existem parâmetros de entrada, é só largar no gráfico.
Figurelli,
confesso que eu também já havia pensado em fazer a coisa no "hard mode"... em um dos indicadores que eu uso, implementei uma espécie de "filtro de tick" dentro de OnCalculate( ) para tentar evitar a perda dos mesmos... A estrutura era basicamente assim:
Entretanto, mesmo com essa lógica de fazer a coisa no "hard mode", o indicador continuava perdendo ticks de maneira assustadora...
Confesso que não cheguei a implementar essa lógica em um Expert Advisor baseado em OnTick( ).
Vamos torcer pra dar certo! Vou rodar seu novo EA e te digo meus resultados amanhã.
Abraços,
Malacarne
Correção: tinha um Print de debug no meu código (na versão 2.00), agora removi e atualizei o post para a versão 2.01, favor utilizar essa nova versão do Tick Emulator Tabajara!
Segue abaixo o resultado do code profiler dessa versão:
Note-se que como a SymbolInfoTick() está dentro da OnTick(), ela praticamente é a única executando e encarregada de não perder um tick sequer (seja real ou virtual).
Figurelli,
confesso que eu também já havia pensado em fazer a coisa no "hard mode"... em um dos indicadores que eu uso, implementei uma espécie de "filtro de tick" dentro de OnCalculate( ) para tentar evitar a perda dos mesmos... A estrutura era basicamente assim:
Entretanto, mesmo com essa lógica de fazer a coisa no "hard mode", o indicador continuava perdendo ticks de maneira assustadora...
Confesso que não cheguei a implementar essa lógica em um Expert Advisor baseado em OnTick( ).
Vamos torcer pra dar certo! Vou rodar seu novo EA e te digo meus resultados amanhã.
Abraços,
Malacarne
Malacarne, muito bem, mas a diferença da minha ideia está no loop contínuo, que irá priorizar a SymbolInfoTick() em relação a qualquer outro processamento do EA. Comecei com um loop de 100, mas aumentando esse valor mais intensivo será o processamento de ticks virtuais.
Vamos ver amanhã o que acontece.
Malacarne, muito bem, mas a diferença da minha ideia está no loop contínuo, que irá priorizar a SymbolInfoTick() em relação a qualquer outro processamento do EA. Comecei com um loop de 100, mas aumentando esse valor mais intensivo será o processamento de ticks virtuais.
Vamos ver amanhã o que acontece.
A idéia é boa, mas a sua implementação não lhe dará melhores resultados como anteriormente para PETR "ou WINZ13. Por quê? Porque quando Depth of Market está ativo para um símbolo, uma marca não é apenas uma mudança na compra / venda. Você pode verificar essa última afirmação, olhando no log do Malacarne , por exemplo.
Infelizmente eu não tenho a hora de trabalhar sobre este assunto, por enquanto.
A idéia é boa, mas a sua implementação não lhe dará melhores resultados como anteriormente para PETR "ou WINZ13. Por quê? Porque quando Depth of Market está ativo para um símbolo, uma marca não é apenas uma mudança na compra / venda. Você pode verificar essa última afirmação, olhando no log do Malacarne , por exemplo.
Infelizmente eu não tenho a hora de trabalhar sobre este assunto, por enquanto.
Alain, interessante, podemos ter ticks sem alterações de preço (ask/bid), mas apenas por mudanças no DOM?
Quando tiveres mais tempo para trabalhares no assunto por favor manda mais informações sobre o relacionamento com o DOM porque podemos colocar ele nos testes.
Obrigado.
Malacarne e Alain, os valores não mudaram muito com a versão 2.0 do EA, realmente o problema parece que não está no processamento dos ticks.
Mas me chamou a atenção que PETR4 teve mais que WINZ13 hoje, ver totais nesse momento (17h50).
PETR4 16.575 Ticks
WINZ13 12.530 Ticks
Vamos ver os números de vocês, mas minha conclusão é que o servidor não está mandando realmente todos Ticks.
E a meu ver chegamos em um ponto em a que causa do problema só a Corretora/MQ pode identificar.
Da minha parte, agora temos que parar os testes e aguardar alguma melhoria futura, não vejo porque continuar testando sem haver uma correção antes.
Seja como for, espero que de alguma forma esses testes contribuam para a melhoria de qualidade da operação do MT5 no Brasil. Abs.
Malacarne e Alain, os valores não mudaram muito com a versão 2.0 do EA, realmente o problema parece que não está no processamento dos ticks.
Mas me chamou a atenção que PETR4 teve mais que WINZ13 hoje, ver totais nesse momento (17h50).
PETR4 16.575 Ticks
WINZ13 12.530 Ticks
Vamos ver os números de vocês, mas minha conclusão é que o servidor não está mandando realmente todos Ticks.
E a meu ver chegamos em um ponto em a que causa do problema só a Corretora/MQ pode identificar.
Da minha parte, agora temos que parar os testes e aguardar alguma melhoria futura, não vejo porque continuar testando sem haver uma correção antes.
Seja como for, espero que de alguma forma esses testes contribuam para a melhoria de qualidade da operação do MT5 no Brasil. Abs.
Prezado Figurelli,
hoje foi vencimento de contratos futuros de índice... por isso a liquidez em WINZ13 secou tanto... mas por favor dê uma olhada em WING14... 67.150 negócios no dia!!!
Abraços,
Malacarne