Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1898

 
Vitaly Muzichenko #:

Pourquoi enregistrez-vous d'abord les données et les déplacez-vous ensuite ?

  Buffer1[0]=b;
  Buffer2[0]=a;
  for(int j=H; j>0; j--) {
    Buffer1[j]=Buffer1[j-1];
    Buffer2[j]=Buffer2[j-1];
  }

Cela ne correspond pas au graphique en tic-tac réel !

C'est la bonne façon de faire.

  for(int j=H; j>0; j--) {
    Buffer1[j]=Buffer1[j-1];
    Buffer2[j]=Buffer2[j-1];
  }
  Buffer1[0]=b;
  Buffer2[0]=a;
 
Vitaly Muzichenko #:

Encore une fois, il y a une boucle dans ArrayCopy() et probablement plus d'une. Le code ne deviendra donc guère plus simple et rapide grâce à ce remplacement.

Je l'ai déjà dit plusieurs fois plus haut : vous ne pouvez pas vous passer d'une boucle !

 
Mihail Matkovskij #:

Pourquoi enregistrez-vous d'abord les données et les déplacez-vous ensuite ?

Cela ne correspond pas au graphique en tic-tac réel !

C'est la bonne façon de faire.

kasher bien sûr, mais la même chose).

Oui, et un cycle court allant jusqu'à 1000 itérations avec quelques comparaisons d'affectations est facile. Cela ne devrait donc pas être décourageant.

 
EVGENII SHELIPOV #:

Une fractale est formée s'il n'y a pas de nouvel extremum et après trois mesures celles de 0, 1, 2.

Rien n'a changé.

Ou quelque chose ne va pas encore

Lancez l'indicateur de fractale sur D1 et voyez si la fractale est là ou pas.
 
Valeriy Yastremskiy #:

kasher bien sûr, mais la même chose).

Pas la même chose. Si nous écrivons d'abord un tick puis déplaçons le tableau, il est déplacé d'une barre vers la gauche, avec le reste des ticks que nous avons déplacés. Mais si nous déplaçons d'abord le tableau et que nous écrivons ensuite la valeur du tick à l'indice zéro, nous faisons d'abord de la place pour le tick et l'écrivons ensuite à cet endroit. Et, par conséquent, il n'est déplacé nulle part.

 
Mihail Matkovskij #:

Je l'ai déjà dit à plusieurs reprises : on ne peut pas se passer d'un cycle !

Je crois que j'y arrive.


En essayant d'échanger les garnitures, j'obtiens une erreur


 
Vitaly Muzichenko #:

J'ai essayé d'échanger le remplissage, j'obtiens une erreur


C'est étrange, pourquoi c'est comme ça... ? Il semble que tout devrait fonctionner, seuls les ticks seront à leur place, et non décalés vers la gauche.

P.S. Le tableau supplémentaire aurait quand même dû être ajouté (comme je l'ai dit au début). Sinon, lorsqu'une nouvelle barre apparaît, tous les ticks se déplacent automatiquement vers la gauche, car ce sont des tampons indicateurs ! Ou bien nous pouvons repérer le moment où une nouvelle barre apparaît et décaler les tampons, mais déjà vers la droite.
 
Et si vous ne déplaciez pas le tableau, mais l'utilisiez comme un tampon circulaire, en vous souvenant de l'emplacement actuel du premier élément ?
 
Mihail Matkovskij #:

Pas la même chose. Si nous écrivons d'abord un tick puis déplaçons le tableau, il est déplacé d'une barre vers la gauche, avec le reste des ticks que nous avons déplacés. Mais si nous déplaçons d'abord le tableau et que nous écrivons ensuite la valeur du tick à l'index zéro, nous faisons d'abord de la place pour le tick et l'écrivons ensuite à cet endroit. Et, par conséquent, il n'est déplacé nulle part.

Oui, dans mon cas, nous devrions commencer par le premier, pas le zéro.) Bon point.

SZY, bien que oui. vous devez d'abord déplacer et ensuite assigner null. peu importe la façon.

SZZY En écrasant la valeur de zéro avant le décalage, on perd la valeur de l'indice zéro.

 
JRandomTrader tampon circulaire, en vous souvenant de l'emplacement actuel du premier élément ?

Quel est le tampon d'anneau en µl