Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1897

 
Vitaly Muzichenko #:

Novamente, há um loop dentro do ArrayCopy() e provavelmente mais de um. Portanto, o código dificilmente se tornará mais simples e rápido devido a esta substituição.

Já o disse muitas vezes acima: não se pode passar sem um loop!

 
Mihail Matkovskij #:

Por que você primeiro grava os dados e depois os transfere?

Isto não corresponde à tabela de carrapatos real!

Esta é a maneira correta de fazer isso.

kasher, é claro, mas o mesmo).

Sim, e um ciclo curto de até 1000 iterações com um par de comparações de tarefas é fácil, portanto não deve ser assustador.

 
EVGENII SHELIPOV #:

Um fractal é formado se não houver um novo extremo e depois de três barras aquelas 0, 1, 2.

Nada mudou.

Ou algo está errado novamente

Execute o indicador fractal em D1 e veja se o fractal está lá ou não.
 
Valeriy Yastremskiy #:

kasher, é claro, mas o mesmo).

Não é a mesma coisa. Se primeiro escrevemos um tique e depois deslocamos a matriz, ela é deslocada 1 barra para a esquerda, junto com o resto dos tiquetaques que deslocamos. Mas se mudarmos a matriz primeiro e depois escrevermos o valor do tick no índice zero, primeiro abrimos espaço para o tick e depois escrevemos lá. E, como resultado, não é deslocada para nenhum lugar.

 
Mihail Matkovskij #:

Já o disse muitas vezes: não se pode passar sem um ciclo!

Acho que estou entendendo bem.


Ao tentar trocar os recheios, recebo um erro


 
Vitaly Muzichenko #:

Tentei trocar o preenchimento, recebi um erro


Estranho, por que é assim...? Parece que tudo deve funcionar, apenas os carrapatos estarão em seus lugares, não serão deslocados para a esquerda.

P.S. A matriz extra ainda deveria ter sido acrescentada (como eu disse no início). Caso contrário, quando uma nova barra aparece, todos os carrapatos mudam automaticamente para a esquerda, porque são amortecedores indicadores! Ou podemos rastrear o momento em que uma nova barra aparece e deslocar os amortecedores, mas já para a direita.
 
E se você não mover a matriz, mas usá-la como um buffer circular, lembrando-se da localização atual do primeiro elemento?
 
Mihail Matkovskij #:

Não é a mesma coisa. Se primeiro escrevemos um tique e depois deslocamos a matriz, ela é deslocada 1 barra para a esquerda, junto com o resto dos tiquetaques que deslocamos. Mas se mudarmos a matriz primeiro e depois escrevermos o valor do tick no índice zero, primeiro abrimos espaço para o tick e depois escrevemos lá. E, como resultado, não é deslocada para nenhum lugar.

Sim, no meu caso devemos começar com o primeiro, não com o zero.) Bem visto.

SZY, embora sim. primeiro você tem que mudar e depois atribuir nulo. não importa para que lado.

SZZY Ao sobrescrever o valor de zero antes do turno, perdemos o valor do índice zero.

 
JRandomTrader buffer circular, lembrando-se da localização atual do primeiro elemento?

O que é um buffer de anel em µl

 
Valeriy Yastremskiy #:

Sim, no meu caso você tem que começar com a primeira, não com a barra zero) é um bom ponto.

Por quê? A barra zero é deslocada junto com todas as outras barras para a esquerda. E se mudarmos todas as barras com exceção de zero, obteremos dois valores iguais pelo primeiro e segundo índices.

P.S. Se mudarmos os dados, uma célula livre deve ser sempre sobregravada. Caso contrário, haverá dois valores idênticos seguidos.

Razão: