Erros, bugs, perguntas - página 1088
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
Após recompilar o indicador, o erro "array out of range" começou a ocorrer quando se trabalhava com matrizes dinâmicas.
Não ocorreu antes. O que fazer?
Se tiver linhas semelhantes no início do ficheiro
#include <File.mqh> , estes incluem ficheiros que muito provavelmente foram alterados desde a sua compilação anterior, por si ou por outra pessoa
Se tiver linhas semelhantes no início do seu ficheiro
#include <File.mqh>, é provável que estes incluam ficheiros alterados desde a sua última compilação, por si ou por outra pessoa.
Não há ficheiros incluídos.
Não existem ficheiros plug-in.
Porque ocorreria um erro de"matriz fora de alcance" mesmo quando se tenta colocar algo numa matriz dinâmica? É uma matriz dinâmica.
Array B1[] Definido como o tampão indicador correspondente
SetIndexBuffer(0,B1,INDICATOR_DATA); ArraySetAsSeries(B1,true);
O tamanho da matriz não é claramente controlado pelo utilizador aqui.
Porque ocorreria um erro de"matriz fora de alcance" mesmo quando se tenta colocar algo numa matriz dinâmica? É uma matriz dinâmica.
Porque ocorreria um erro de"matriz fora de alcance" mesmo quando se tenta colocar algo numa matriz dinâmica? É dinâmico.
(fcplm)
Quem o vai prender? Ele é um monumento!
Erro de plataforma.
Se ao preencher a matriz B1 do buffer indicador o procedimento SetIndexBuffer(0,B1,INDICATOR_DATA) for chamado repetidamente,
Por exemplo, ao inicializar o indicador, a próxima tentativa de escrever algo na matriz B1 causa o erro"matriz fora de intervalo".
Ao chamar uma vez o procedimento SetIndexBuffer(0,B1,INDICATOR_DATA), tudo funciona bem.
Antes não existia tal coisa.
Erro de plataforma.
Se ao preencher a matriz B1 do buffer indicador o procedimento SetIndexBuffer(0,B1,INDICATOR_DATA) for chamado repetidamente,
por exemplo, ao inicializar o indicador, a próxima tentativa de escrever algo na matriz B1 causa o erro"matriz fora de intervalo".
Quando ocorre uma única chamada do procedimento SetIndexBuffer(0,B1,INDICATOR_DATA), tudo funciona bem.
Isso não acontecia antes.
Mas porque o fazes repetidamente?
Ligar um amortecedor significa limpá-lo e prepará-lo para uma ligação dinâmica para cálculos subsequentes. Se lhe chamar uma segunda vez, o buffer anterior será limpo e só será preenchido na próxima chamada do novo cálculo do indicador.
Porque é que está a fazer isto repetidamente?
A ligação do tampão significa a sua limpeza e preparação para a ligação dinâmica para os próximos cálculos. Se lhe chamar uma segunda vez, o buffer anterior será limpo e só será preenchido na próxima chamada do novo cálculo do indicador.
Esta foi a inicialização completa padrão do indicador, que tem lugar quando o indicador é iniciado e é feita através de Oninit().
Por vezes, quando se actualiza a história, etc., também é necessário fazê-lo.
Nunca ninguém pensou que a inicialização repetida do indicador através de Oninit() faria com que as matrizes parassem de responder.