Bugs e sugestões para melhorar CopyTicks() e CopyTicksRange() após a construção de 1485. - página 3
![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
Obrigado pela mensagem, o bug foi corrigido - agora funcionará também em indicadores. Uma atualização será lançada em breve.
Acho que vim ao lugar certo. Caros membros do fórum, eu tenho lutado com este problema sozinho por muito tempo, mas parece que não consigo resolvê-lo. Espero que você possa ajudar.
A situação é a seguinte: corretor Finam (Whotrades), conta MMA. Trabalho com 26 títulos russos, ou seja, tenho 26 janelas abertas e tenho uma cópia do meu consultor especializado pendurada em cada janela. Eles estão usando a biblioteca C++ comum, que tem uma janela comum para gerenciar e exibir informações de depuração.
Alguns parâmetros estratégicos dependem diretamente da fita adesiva, por isso é muito importante que todos os carrapatos passem pelo algoritmo. Claro, foi uma surpresa saber que OnTick() não funciona em cada tic, e nem sempre, mesmo em um tic. Como resultado, cheguei à necessidade de usar as funções CopyTicks e CopyTicksRange por timer. Devido a grandes esforços (e não está escrito em nenhum lugar), descobri que a data/hora*1000 é exatamente o número de milissegundos desde 1970, mas não é essa a questão.
O resultado final do que temos agora é um bloco de código, que, no Timer, desde as 10 da manhã, começa a solicitar os últimos dados do tick.
O problema é que, por alguma razão, é importante que, no primeiro dia após o reinício da metatrader, para alguns títulos, os dados do tick cheguem apenas às 11 horas da manhã (mais ou menos), no dia seguinte - tudo é normal, começa às 10 horas da manhã. A lista desses títulos não é fixa de forma alguma, em alguns primeiros dias os carrapatos podem não vir para alguns títulos, em alguns dias - para outros.
Pensei que o problema era o caching dos carrapatos. Pensei que era um problema com o timing incorreto, mas isso acabou não sendo o caso. Além disso, parece que se CopyTicks(Range) não pudesse retornar os dados, eles poderiam retornar um erro (-1) e tudo faria sentido. Mas retorna 0, a matriz também é zero e GetLastError retorna ERR_SUCCESS. Ou seja, é como se esses carrapatos não existissem, o que é estranho, pois eles estão presentes na fita na janela.
Estou perdido. Espero que você possa me dizer o que fazer, ou pelo menos a direção na qual se mover.
Se você precisar fornecer o código, eu vou, com o próximo comentário, limpá-lo a partir dos comandos "extras" e postá-lo.
Obrigado!
Sim, um código é desejável. É uma conta real ou de demonstração? Qual é a construção do terminal?
Honestamente, não sei se alguém aqui trabalha com seu corretor. Se ninguém aqui reagir ao seu posto - escreva para o ServiceDesk, você pode se conectar diretamente ao seu posto. Eles também precisarão fornecer um código.
Sim, um código é desejável. É uma conta real ou de demonstração? Qual é a construção do terminal?
Honestamente, não sei se alguém aqui trabalha com seu corretor. Se ninguém aqui reagir ao seu posto - escreva para o ServiceDesk, você pode se conectar diretamente ao seu posto. Eles também precisarão fornecer um código.
A conta é real, última construção, 1525. Acho que aqui está o que fazer. Crie o código de tomada de carrapatos nus sem o algoritmo de estratégia. Execute-o. Se não funcionar, você deve ligar para a central de serviço. Se funcionar, talvez se deva procurar os erros em seu próprio código.
Obrigado por mencionar o balcão de atendimento, eu não sabia que era possível. Procurei no site das metaquotas, todos os contatos são números de telefone em chipre e porcelana, nem um único e-mail.
É melhor ir direto ao balcão de atendimento com o código para reproduzi-lo.
A conta é real, a construção é a mais recente, 1525. Acho que isto é o que devemos fazer. Fazer um código de tomada de carrapato nu sem o algoritmo de estratégia. Execute-o. Se não funcionar, então leve-o para o balcão de serviço. Se funcionar, talvez se deva procurar os erros em seu próprio código.
Obrigado por mencionar o balcão de atendimento, eu não sabia que era possível. Procurei no site das metaquotas, todos os contatos são números de telefone em chipre e porcelana, nem um único e-mail.
Acho que vim ao lugar certo. Caros membros do fórum, eu tenho lutado com este problema sozinho por muito tempo, mas parece que não consigo resolvê-lo. Espero que você possa ajudar.
A situação é a seguinte: corretor Finam (Whotrades), conta MMA. Trabalho com 26 títulos russos, ou seja, tenho 26 janelas abertas e tenho uma cópia do meu consultor especializado pendurada em cada janela. Eles estão usando a biblioteca C++ comum, que tem uma janela comum para gerenciar e exibir informações de depuração.
Alguns parâmetros estratégicos dependem diretamente da fita adesiva, por isso é muito importante que todos os carrapatos passem pelo algoritmo. Claro, foi uma surpresa saber que OnTick() não funciona em cada tic, e nem sempre, mesmo em um tic. Como resultado, cheguei à necessidade de usar as funções CopyTicks e CopyTicksRange por timer. Devido a grandes esforços (e não está escrito em nenhum lugar), descobri que a data/hora*1000 é exatamente o número de milissegundos desde 1970, mas não é essa a questão.
O resultado final do que temos agora é um bloco de código, que, no Timer, desde as 10 da manhã, começa a solicitar os últimos dados do tick.
O problema é que, por alguma razão, é importante que, no primeiro dia após o reinício da metatrader, para alguns títulos, os dados do tick cheguem apenas às 11 horas da manhã (mais ou menos), no dia seguinte - tudo é normal, começa às 10 horas da manhã. A lista desses títulos não é fixa de forma alguma, em alguns primeiros dias os tiquetaques podem não vir para alguns títulos, em outros dias - para outros.
Pensei que o problema era o caching dos carrapatos. Pensei que era um problema com o timing incorreto, mas isso acabou não sendo o caso. Além disso, parece que se CopyTicks(Range) não pudesse retornar os dados, eles poderiam retornar um erro (-1) e tudo faria sentido. Mas retorna 0, a matriz também é zero e GetLastError retorna ERR_SUCCESS. Ou seja, é como se esses carrapatos não existissem, o que é estranho, pois eles estão presentes na fita na janela.
Estou perdido. Espero que você possa me dizer o que fazer, ou pelo menos a direção na qual se mover.
Se você precisar fornecer o código, eu vou, com o próximo comentário, limpá-lo a partir dos comandos "extras" e postá-lo.
Obrigado!