Erros, bugs, perguntas - página 2490

 
Slava:

Já leu atentamente a minha citação no post abaixo?

Este comportamento tem estado sempre presente desde a introdução da definição do " número máximo de barras por gráfico", ou seja, desde o início do MT4. E já explicámos muitas vezes ao longo desses 15 anos porque não reduzimos sempre o número de barras de acordo com essa configuração. E agora não cortamos sempre.

Ninguém lê a documentação. Mas há um paradoxo. Eles ainda nos pedem para escrever algo mais na documentação que não lêem.

Slava, não tenho queixas. Li atentamente e não apenas a sua citação e esta

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

Insectos, insectos, perguntas

Slava, 2019.06.29 18:25

rates_total mostra sempre o número de barras disponíveis no gráfico actual.

Não compreendo o significado da sua declaração

e isto

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Insectos, insectos, perguntas

Slava, 2019.06.29 18:42

Não tenho o terminal do cliente em mãos neste momento para citar a ajuda. A partir de dispositivo móvel em dois cliqueshttps://www.metatrader5.com/ru/terminal/help/startworking/settings#max_bars

Parágrafo especialmente destacado.

Para um cálculo mais económico, os indicadores podem ter mais barras disponíveis do que as especificadas no parâmetro "Max barras na janela". À medida que novas barras chegam, as barras mais antigas não são imediatamente removidas do cache de dados. Isto permite que o indicador não seja recalculado completamente em cada nova barra, mas apenas para calcular adicionalmente os seus valores para novas barras.

Já li a documentação mais de uma vez. Mas eu fiz fotografias no terminal recentemente iniciado. Havia apenas 5000 barras na janela, as novas ainda não tiveram tempo de ser carregadas.

É claro que não compreendo algo, é por isso que pergunto novamente e tento compreender. Acho que não haverá quaisquer alterações. Por favor, não tome as minhas declarações como uma queixa.

 
Igor Makanu:

A referência não é correcta, é enganadora, escrevihttps://www.mql5.com/ru/forum/304239/page57#comment_11519307

Na MQL5 os amortecedores em geral funcionam como matrizes habituais, no MT4 o terminal tratava de amortecedores - redefinia-os para EMPTY_VALUE, depois ... Não me lembro onde escrevi sobre a diferença entre os indicadores MT5 e MT4

É necessário desobstruir os amortecedores - desobstruí-los como uma matriz habitual, o terminal apenas define o tamanho do próprio amortecedor de arrays.

Igor, pode explicar em russo simples: se cada buraco do tampão indicador será preenchido com alguns valores, que irão substituir o lixo aí contido, qual é a finalidade de forçar esses buracos antes de os preencher com os valores certos? Por perda de velocidade de execução?

 
Alexey Viktorov:

Igor, pode explicar em russo simples: se cada buraco do tampão indicador será preenchido com alguns valores que substituirão o lixo aí contido, qual é o objectivo de limpar à força esses buracos antes de os preencher com os valores necessários? Por perda de velocidade de execução?

o preenchimento de "buracos" é crítico apenas num indicador com "setas", em MT4 durante a inicialização do indicador estes "buracos" serão preenchidos automaticamente pelo valor EMPTY_VALUE

em MT5 deve ser feito pelo programador

ou em MT5 o programador deve preencher os buffers indicadores através do if() construir mais

ou seja, isto funcionará em MT4:

if(...) Buf[i] = high[i];

em MT5 tem de escrever:

if(...) Buf[i] = high[i]; else Buf[i] = EMPTY_VALUE;

ou em MT5 é necessário limpar os amortecedores indicadores, caso contrário o indicador irá retirar "lixo" da matriz, que está ligada pelo amortecedor indicador ...., quando se muda a TF. é uma questão de gosto como escrever e o que ter em conta


SZY: velocidade? Bem, mede a velocidade, em 99% dos casos as funções integradas são mais rápidas, mas não há diferença no desempenho entre o preenchimento de cada barra no laço EMPTY_VALUE e uma inicialização com ArrayInitialize(Buf,EMPTY_VALUE)

 
Igor Makanu:

o preenchimento de "buracos" é crítico apenas num indicador com "setas", em MT4 durante a inicialização do indicador estes "buracos" serão preenchidos automaticamente pelo valor EMPTY_VALUE

em MT5 deve ser feito pelo programador

ou em MT5 o programador deve preencher os buffers indicadores através do if() construir mais

ou seja, isto funcionará em MT4:

em MT5 deve necessariamente escrever:

ou em MT5 é necessário limpar os amortecedores indicadores, caso contrário o indicador irá retirar "lixo" da matriz, que está ligada pelo amortecedor indicador ...., quando se muda a TF. é uma questão de gosto como escrever e o que ter em conta


Bem, medir a velocidade, em 99% dos casos as funções incorporadas funcionam mais rapidamente, mas não há diferença no desempenho entre preencher cada barra no laço EMPTY_VALUE e inicializá-lo uma vez com ArrayInitialize(Buf,EMPTY_VALUE).

Tudo isto é apenas um incómodo. É assim que era, é assim que eu quero, é difícil mudar os meus hábitos e outras razões.

A construção pode ser facilmente substituída por

Buf[i] = условие ? high[i] : EMPTY_VALUE;
 
Alexey Viktorov:

É tudo uma chatice. Foi assim que foi, é assim que eu quero, é difícil mudar os meus hábitos e outras razões.

A construção é facilmente substituída por

Se estou a ser exigente, as dicas para aumentar o desempenho em C++ ou C# recomendam não usar "operador condicional? : " Penso ter lido uma vez um artigo sobre Habra (não o testei, escrevo o mais conveniente possível)

;)

 
Igor Makanu:

Se estou a ser exigente, o conselho sobre como melhorar o desempenho em C++ ou C# é não usar "operador condicional? : " Penso ter lido uma vez um artigo sobre Habra (ainda não o testei, eu próprio escrevo o mais convenientemente possível)

;)

O compilador não é um idiota e optimiza melhor do que um guru em Habra.
 
Artyom Trishkin:
Bem, o compilador aqui não é um idiota, e optimiza melhor do que os "gurus" no hubr

Em tais ocasiões, repito sempre: "O sol nasce de manhã e põe-se à noite..." - Vê alguma lógica aqui? - Sim, é lógico, mas será que há informação na minha frase? - Não está lá.

não o vou testar ? : , máquina de compilação.... Hubr, bom...

 
Igor Makanu:

Não o vou testar ? :

Testado MT5:

2019.06.30 13:37:04.230 tst (EURUSD,H1) Testar se() ciclos=999999999999999999 tempo=10859 ms

2019.06.30 13:37:15.116 tst (EURUSD,H1) Teste ? ciclos=99999999999999 tempo=10891 ms

2019.06.30 13:38:05.348 tst (EURUSD,H1) Testar se() ciclos=999999999999999999 tempo=10843 ms

2019.06.30 13:38:16.190 tst (EURUSD,H1) Teste ? ciclos=99999999999999 tempo=10844 ms

2019.06.30 13:38:32.111 tst (EURUSD,H1) Testar se() ciclos=999999999999999999 tempo=10860 ms

2019.06.30 13:38:42.955 tst (EURUSD,H1) Teste ? ciclos=99999999999999 tempo=10843 ms

Testado o MT4:

2019.06.30 13:46:09.087 tst EURUSD,H1: Testes ? ciclos=99999999999999 tempo=33234 ms

2019.06.30 13:45:35.854 tst EURUSD,H1: Testando se() ciclos=999999999999999999 tempo=32953 ms

2019.06.30 13:44:43.421 tst EURUSD,H1: Testes ? ciclos=99999999999999 tempo=333298 ms

2019.06.30 13:44:10.094 tst EURUSD,H1: Testando se() ciclos=999999999999999999 tempo=33016 ms

2019.06.30 13:42:56.925 tst EURUSD,H1: Testes ? ciclos=99999999999999 tempo=33344 ms

2019.06.30 13:42:23.584 tst EURUSD,H1: Testando se() ciclos=999999999999999999 tempo=32953 ms

Desenvolvedores de MT, como sempre no topo do jogo!
 
Reparei durante muito tempo que destacar nomes de macro personalizados num grande projecto nem sempre funciona. Muitas macros definidas noutros ficheiros não são destacadas por alguma razão. Ainda não consigo perceber o padrão. Tudo o que vejo é que todas as macros definidas num determinado ficheiro após uma determinada linha deixam de ser destacadas noutros ficheiros. Mais alguém vê isto em si mesmo?
 
Alexey Navoykov:
Há muito tempo que reparo que o destaque de nomes de macro definidos pelo utilizador num grande projecto nem sempre funciona. Muitas macros definidas noutros ficheiros não são destacadas por alguma razão. Ainda não consigo encontrar um padrão. Tudo o que vejo é que todas as macros definidas num determinado ficheiro deixam de ser destacadas noutros ficheiros após uma determinada linha. Mais alguém vê isto a acontecer a si próprio?

Notei que se escrever como parâmetro de qualquer função, não se acende. Penso que não é um tipo de correspondência completa. Ou como lhe chamar mais precisamente, não sei.