Erros, bugs, perguntas - página 2723
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
Pode dizer-me o que está errado e como acelerar a actualização do gráfico? A função ChartRedraw é chamada pelo Conselheiro Especialista, mas ainda há um atraso de alguns minutos.
ChartRedraw é necessário apenas para desenho (actualização) de objectos gráficos, não precisamos de ChartRedraw para um indicador normal que desenha por amortecedores de indicador
acho que se deve procurar o problema no indicador, talvez o cálculo dos amortecedores em cada carrapato não esteja correcto, há "autores" que calculam toda a história em cada carrapato
ZZY: Não posso confirmar, mas talvez o ChartRedraw actualize todo o gráfico com o histórico sincronizado, se assim for, reinicia-se de facto o indicador com um cálculo completo de todo o histórico de cada vez
UPD: tentar limitar o histórico no gráfico a um número menor de barras 10 000 é suficiente, em MT4 houve um caso em que um indicador pesado "devorou" toda a memória e depois procurou porque é que a EA não funcionava correctamente (funcionava então não funcionava). Embora em MT5 seja improvável que toda a memória tenha sido usada.... mas isso acontece
ChartRedraw é necessário apenas para desenho (actualização) de objectos gráficos, não é necessário ChartRedraw para um indicador normal que desenha por buffers indicadores
acho que se deve procurar o problema no indicador, talvez o cálculo dos amortecedores em cada carrapato não esteja correcto, há "autores" que calculam toda a história em cada carrapato
ZZY: Não posso confirmar, mas talvez o ChartRedraw actualize todo o gráfico com o histórico sincronizado, se assim for, reinicia-se de facto o indicador com um cálculo completo de todo o histórico de cada vez
UPD: tentar limitar o histórico no gráfico a um número menor de barras 10 000 é suficiente, em MT4 houve um caso em que um indicador pesado "devorou" toda a memória e depois procurou porque é que a EA não funcionava correctamente (funcionava então não funcionava). Embora em MT5 seja improvável que toda a memória tenha sido utilizada.... mas pode acontecer.
Tentei optimizar o cálculo e testei a versão anterior do indicador. Já calculei cada 1000 barras antes e agora estou à espera que se abra uma nova barra.
Se esta é a razão, ainda assim devo ficar muito surpreendido. 1k de barras de cálculos não muito fortes atrasa o desenho do gráfico durante 2 minutos?
Se essa é a razão, ainda vale a pena uma grande surpresa. 1 barra de cálculos não muito fortes atrasa o desenho do gráfico durante 2 minutos?
não pode ser, na minha opinião, o terminal descarregará tal indicador com uma mensagem que diz " cálculo demasiado longo no indicador xxx".
o tempo de execução do MT (4/5) é muito rápido, claro que pode calcular os mesmos dados várias vezes, mas imho, tem de o tentar arduamente
Penso que o autor do indicador não está familiarizado com o cálculo económico dos amortecedores de indicador, e esquece-se de calcular correctamente as últimas barras... vá a QB para estudar como os indicadores são escritos ;)
Será que estes dois programas estão no mesmo terminal ou em dois terminais diferentes?
O código para reproduzir o problema é afixado aqui. https://www.mql5.com/en/forum/332849
É necessário correr o código pelo menos 2 vezes para o reproduzir.
Não é de todo necessário. Porquê C? E que tal C#? - Está mais próximo do C# em termos de significado.
Provavelmente porque µl c++ é semelhante, e as estruturas vieram de c.
Toda a conversa sobre estruturas passivas é toda noções arcaicas, imho.
Se precisar de construtores, use classes ou vá para Sharp. Porque devemos privar as estruturas desta conotação? Isto só irá tornar os programas mais expressivos. Posso pegar no código de alguém e ver que ele/ela tem uma estrutura em vez de uma classe e obter muita informação a partir de apenas uma palavra. Não obterá nada, estudará diligentemente o código fonte para obter o mesmo resultado, o que obtive num piscar de olhos. Na minha experiência - esta convenção de estruturas é respeitada, bem talvez algum tipo de marginalismo niilista e ventoso.
Acredito que, no mínimo, todos os tipos devem ter um construtor. Os campos não inicializados são maus e devem ser evitados.
Não há aí nenhum mal, parece-vos. Vaughn até arrastado para o padrão: leitura de char não assinado e std::byte não é um comportamento não desprevenido. Pode utilizar a inicialização agregada para a POD. E não se esqueça - toda esta inicialização não é gratuita, é um verdadeiro consumo de recursos (CPU, memória, tamanho de um executável). Se não quer saber disso com o seu crocante de números, no caso de algum microcontrolador pode ser importante. Afinal de contas, C/C++ não é apenas um embaralhamento do Windows como Sharp.
A inicialização de uma única variável aumentou o tamanho da instrução em 30%.Num terminal. O perito escreve os dados, o indicador lê os dados. Pendurado em gráficos diferentes, mas obviamente poderia estar no mesmo (se isso importar). Construir 2380.
O Consultor Especialista que lê o ficheiro deve manter este ficheiro fechado.
A peculiaridade da implementação de ficheiros na MQL5 é que eles mantêm os dados dos ficheiros nos seus próprios buffers ao máximo. Se a quantidade de informação é tão grande que não cabe no buffer, então o seu truque de mover o ponteiro para o início e depois para o fim do ficheiro pode funcionar.
Portanto, neste ponto, abra o ficheiro, verifique o conteúdo e depois feche-o novamente
Um consultor especializado que lê um ficheiro deve manter este ficheiro fechado.
A peculiaridade da implementação de ficheiros na MQL5 é que guardam os dados dos ficheiros nos seus próprios buffers tanto quanto possível. Se a quantidade de informação é tão grande que não cabe no buffer, então o seu truque de mover o ponteiro para o início e depois para o fim do ficheiro pode funcionar.
Assim, neste momento, abra o ficheiro, verifique o seu conteúdo e depois feche-o novamente
Então FileFlush () é inútil?
Não. FileFlush deve ser feito se quiser que outra pessoa possa ler o ficheiro modificado
O problema é que o programa MQL5 lê o ficheiro no seu próprio buffer quando o abre. Não saberá nada sobre alterações no ficheiro até voltar a ler o ficheiro. O ficheiro só pode ser lido de novo fechando e depois abrindo o ficheiro
Não. FileFlush deve ser feito se quiser que outra pessoa possa ler o ficheiro modificado
Mesmo que se feche o ficheiro?
Mesmo que se feche o ficheiro?
É exactamente disso que estou a falar. Fechar, depois reabrir
Ou quer dizer FileFlush antes de fechar o ficheiro?