![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
Por exemplo, se atualmente são 8 da manhã, qualquer coisa no código que pressupõe que (a) a barra para 7 da manhã é 60 barras atrás, ou mesmo (b) que uma barra para 7 da manhã existe de todo.
Bem visto, eu não tinha percebido que os gráficos eram M1 quando os olhei pela primeira vez ... é bastante comum que as barras M1 estejam ausentes em momentos de silêncio, durante a noite, por exemplo.
Neste caso, acho mais provável que seja uma perda temporária da conexão com o corretor, mas o princípio e as implicações são os mesmos.
Hmm, "novos dados históricos são adicionados ao gráfico", como? O indicador é iniciado e não é perturbado. Temos um lookback fixo de 1000 barras. O indicador não está carregando nenhum dado histórico.
Alguém da equipe de desenvolvimento pode dar uma olhada nisso?
Jic, obrigado pelas observações.
Os testes estão sendo feitos em um servidor VPS CNS com conexão confiável e a conta Demo utilizada para os testes são com corretores IBFX e VantageFX
Eu faço um RefreshRates() a cada tick e uso funções de timeseries normais para acessar os dados da barra. O código usado para atualizar os indicadores é dado em meu post anterior ver função DrawMoveEx. Acredito que a série TimeSeries não tem barras ausentes de 0 a 'Bars -1'. Informe-me se esta suposição estiver incorreta.
Uma outra fotografia, com escala de tempo correta, e sem rolagem para a direita (com os dados atuais do IBFX).
Você teve a oportunidade de ver o arquivo excel incluído no post 2011.10.07 15:30
AnkaSoftware:
I believe the TimeSeries does not have missing bars from 0 to 'Bars -1'. Let me know if this assumption is incorrect.
Essa suposição certamente parece estar incorreta porque sua captura de tela original "Move Error" tem 16 barras entre cada marcador do eixo X - você pode contá-las para si mesmo - mas um dos períodos abrange 21 em vez de 16 minutos. E, como diz o RaptorUK, não é uma suposição que você pode fazer com segurança em seu código. Não haverá necessariamente uma troca a cada minuto do dia - embora eu ficaria surpreso se não houvesse em GBPUSD fora dos feriados principais - e, portanto, não haverá necessariamente uma barra M1 para cada minuto.
Se você acredita que não faltam barras - quando é comprovado que faltam barras em uma de suas telas - então você provavelmente está codificando com base nessa suposição/crença. Eu não consideraria sua última captura de tela como uma contraprova, porque poderia haver (a) dados faltando antes do período mostrado na captura de tela que (b) de alguma forma está afetando os cálculos para as barras que são mostradas na captura de tela.
A coisa mais suspeita é que as linhas roxas param na captura de tela original durante o período em que há claramente uma barra em falta. Eu não poderia comentar mais, ou fazer análise de suas planilhas, sem ver o código completo.
Jic, obrigado pelas observações.
Os testes estão sendo feitos em um servidor VPS CNS com conexão confiável e a conta Demo utilizada para os testes são com corretores IBFX e VantageFX
Eu faço um RefreshRates() a cada tick e uso funções de timeseries normais para acessar os dados da barra.
Essa suposição certamente parece estar incorreta porque sua captura de tela original "Move Error" tem 16 barras entre cada marcador do eixo X - você pode contá-las para si mesmo - mas um dos períodos abrange 21 em vez de 16 minutos. E, como diz o RaptorUK, não é uma suposição que você pode fazer com segurança em seu código. Não haverá necessariamente uma troca a cada minuto do dia - embora eu ficaria surpreso se não houvesse em GBPUSD fora dos feriados principais - e, portanto, não haverá necessariamente uma barra M1 para cada minuto.
Se você acredita que não faltam barras - quando é comprovado que faltam barras em uma de suas telas - então você provavelmente está codificando com base nessa suposição/crença. Eu não consideraria sua última captura de tela como uma contraprova, porque poderia haver (a) dados ausentes antes do período mostrado na captura de tela que (b) de alguma forma está afetando os cálculos para as barras que são mostradas na captura de tela.
A coisa mais suspeita é que as linhas roxas param na captura de tela original durante o período em que há claramente uma barra em falta. Eu não poderia comentar mais, ou fazer análise de suas planilhas, sem ver o código completo.
Raptor, vai verificar "o que acontece se você reduzir seu lookback para 500 barras, você terá problemas após 8 hrs?" e reverter.
JIC, Por favor, note que o problema não ocorre em plataformas de 32 bits. Eu forneci algum código em um dos posts anteriores.
Acredito que a série TimeSeries não tem barras ausentes de 0 a 'Bars -1'. Informe-me se esta suposição estiver incorreta.
Claro que não, há velas de Barras numeradas de 0 a Barras-1. ArraySize(Close) == Barras sempre.
Entretanto, há sempre barras ignoradas. a partir de sex 21:59z, a próxima barra é Sun 22:00z. Fins de semana e feriados e minutos sem atividade.
Você não pode assumir que o Tempo[x] == Tempo[x+1] + 60*Período() não estará em uma barra pulada.
Se você quiser ajuda com o SEU indicador, poste o SEU código - não se preocupe com os leitores aqui.
Algumas informações adicionais -
a) A corrupção de indicadores ocorre apenas na plataforma Windows 64 bit
b) Fiz uma descarga da matriz de indicadores antes e depois da corrupção - os mesmos estão disponíveis no arquivo xls anexo com comentários.