tableau statique ? - page 6

 

Trop de code dans cette description en anglais...

Les fractales sont stockées dans les tampons de l'indicateur, comprenez-vous comment ? Si vous ne comprenez pas, écrivez du code pour vous aider à comprendre...

Vous pouvez lire les tampons de l'indicateur et trouver les numéros de barre des fractales, à partir du numéro de barre vous pouvez obtenir les valeurs des bougies. . .

 
RaptorUK:

Trop de code dans cette description en anglais...

Les fractales sont stockées dans les tampons de l'indicateur, comprenez-vous comment ? Si vous ne comprenez pas, écrivez du code pour vous aider à comprendre...

Vous pouvez lire les tampons de l'indicateur et trouver les numéros de barre des fractales, à partir du numéro de barre vous pouvez obtenir les valeurs des bougies. . .

Je ne comprends pas complètement comment les tampons des indicateurs sont stockés.


Et c'est exactement ce que je voulais faire, trouver le numéro de la barre, à partir des fractales et obtenir les valeurs de la bougie.

Je vais continuer, mais je serais probablement plus clair si je savais comment les indicateurs stockent les valeurs dans le tampon.

Merci

 

Il y a 3 buffers, v1, v2 & v3 et il y a trois autres doubles, val1, val2 & val3, utilisés pour le calcul. v3 et val3 ne semblent pas être utilisés . . .

val1 et val2 contiennent la valeur produite par iFractals, cette valeur est calculée pour chaque barre une par une, la boucle while boucle sur les barres en commençant par Bars et en décrémentant jusqu'à zéro ... .

Ainsi, pour chaque barre, la valeur fractale est calculée et stockée dans v1 pour MODE_UPPER et v2 pour MODE_LOWER.

Pour chaque barre à tour de rôle . ... si val1 est supérieur à 0, la valeur du tampon v1 pour le numéro de la barre est fixée au niveau le plus haut de cette barre, donc imaginez que la boucle est à mi-chemin entre les barres de Bars à 0, imaginons qu'elle soit à la barre 4934, la fractale est calculée pour la barre 4934, si la valeur est supérieure à 0 alors v1[4934] est fixée au niveau le plus haut[4934], en d'autres termes le 4935ème élément du tampon v1 est fixé au niveau le plus haut de la barre 4934 ... n'oubliez pas que les tableaux commencent à 0.

Enfin, il y a une petite complication que vous devez comprendre... Exécutez l'indicateur et vous verrez une ligne de points à partir de chaque haut et bas fractal... jusqu'au suivant... Imaginez que nous sommes maintenant sur la barre numéro 4933 et que la valeur de val1 n'est pas supérieure à 0, ce qui se passe maintenant est que la valeur du tampon pour cette barre n'est pas fixée au haut de cette barre mais est fixée à la même valeur que l'entrée précédente du tampon... précédente dans ce cas signifie i+1 parce que dans la boucle while i compte à rebours.

Lorsque la boucle se termine et que les fractales de toutes les barres ont été calculées, toutes les entrées dans les tampons contiennent des valeurs . ... cela ne vous aide pas beaucoup... ... vous devez modifier un peu le code.

Lisez ce que j'ai écrit ici. . . si vous ne comprenez pas ce qui se passe, vous n'avez rien à faire avec ce code . Une fois que vous avez compris, vous pouvez avancer... Si vous avez des questions, n'hésitez pas à les poser.

 
RaptorUK:

Il y a 3 buffers, v1, v2 & v3 et il y a trois autres doubles, val1, val2 & val3, utilisés pour le calcul. v3 et val3 ne semblent pas être utilisés . . .

val1 et val2 contiennent la valeur produite par iFractals, cette valeur est calculée pour chaque barre une par une, la boucle while boucle sur les barres en commençant par Bars et en décrémentant jusqu'à zéro ... .

Ainsi, pour chaque barre, la valeur fractale est calculée et stockée dans v1 pour MODE_UPPER et v2 pour MODE_LOWER.

Pour chaque barre à tour de rôle . ... si val1 est supérieur à 0, la valeur du tampon v1 pour le numéro de la barre est fixée au niveau le plus haut de cette barre, donc imaginez que la boucle est en train de parcourir les barres de Bars à 0, imaginons qu'elle soit à la barre 4934, la fractale est calculée pour la barre 4923, si la valeur est supérieure à 0 alors v1[4394] est fixée au niveau le plus haut[4394], en d'autres termes le 4395ème élément du tampon v1 est fixé au niveau le plus haut de la barre 4394 ... n'oubliez pas que les tableaux commencent à 0.

Enfin, il y a une petite complication que vous devez comprendre... Exécutez l'indicateur et vous verrez une ligne de points à partir de chaque haut et bas fractal... jusqu'au suivant... Imaginez que nous sommes maintenant sur la barre numéro 4933 et que la valeur de val1 n'est pas supérieure à 0, ce qui se passe maintenant est que la valeur du tampon pour cette barre n'est pas fixée au haut de cette barre mais est fixée à la même valeur que l'entrée précédente pour le tampon... précédente dans ce cas signifie i+1 parce que dans la boucle while i compte à rebours.

Lorsque la boucle se termine et que les fractales de toutes les barres ont été calculées, toutes les entrées dans les tampons contiennent des valeurs . ... cela ne vous aide pas beaucoup... ... vous devez modifier un peu le code.

Lisez ce que j'ai écrit ici. . . si vous ne comprenez pas ce qui se passe, vous n'avez rien à faire avec ce code . Une fois que vous avez compris, vous pouvez avancer... Si vous avez des questions, n'hésitez pas à les poser.

Je comprends que l'indicateur fonctionne exactement comme vous l'avez décrit. Je pensais avoir compris aussi comment le tampon stockait les valeurs, c'est pourquoi j'étais confus parce que lorsque je recode les choses pour imprimer, je n'ai pas obtenu les résultats que je m'attendais à voir.

Cependant, un obstacle majeur a maintenant été surmonté en comprenant comment le tampon est différent et n'a PAS réellement déclaré le nombre d'éléments, ce qui est la raison pour laquelle je ne pouvais pas imprimer à partir du tampon

. Ok pour continuer.
Je suppose qu'il y a des fautes de frappe dans vos références à la mesure 4934, la fractale est calculée pour la mesure 4923 et devrait être 4933.
Et aussi pour une valeur supérieure à 0, alors v1[4394] est réglé sur High[4394] == Je suppose qu'il s'agit de suivre la référence précédente à 4923/33 également, mais je comprends que c'est le numéro de l'élément qui est supérieur au numéro de la barre.

Veuillez me corriger si j'ai tort au sujet des fautes de frappe.

Quoi qu'il en soit, en supposant que ce sont des fautes de frappe et que je comprends ce que cela signifie.

J'ai envisagé de créer la v3, de la déclarer et de l'initialiser de manière similaire afin de pouvoir l'imprimer ou d'en obtenir la valeur.
J'avais initialement pensé que je pourrais imprimer i-1 pour extraire la valeur stockée du High[i] au moment où il était supérieur à 0 et pour cette barre.
Ou même v1[i] = v1[1-1] et imprimer v1[i] à ce moment-là, mais je n'ai pas réussi à résoudre cette partie et je n'ai pas non plus réussi à passer la partie impression puisque le nombre d'éléments n'était pas déclaré.

C'est pourquoi j'ai voulu créer un schéma v3 différent mais en fait le même, juste pour créer un tableau avec un nombre d'éléments déclarés dont je pourrais extraire la valeur des fractales pour ces barres.

C'est là que j'ai des difficultés avec la conception, je vais donc y travailler un peu plus

Merci.

 
Agent86:

Je comprends que l'indicateur fonctionne exactement comme vous l'avez décrit. Je pensais avoir compris aussi comment le tampon stockait les valeurs, c'est pourquoi je me suis embrouillé parce que lorsque j'ai recodé les choses pour les imprimer, je n'ai pas obtenu les résultats escomptés.

Cependant, un obstacle majeur a maintenant été surmonté en comprenant comment le tampon est différent et n'a PAS réellement déclaré le nombre d'éléments, ce qui explique pourquoi je ne pouvais pas imprimer à partir du tampon.

Ok, continuons.
Je suppose qu'il y a des fautes de frappe dans vos références à la mesure 4934, la fractale est calculée pour la mesure 4923 et devrait être 4933.
Et aussi pour une valeur supérieure à 0, alors v1[4394] est réglé sur High[4394] == Je suppose qu'il s'agit de suivre la référence précédente à 4923/33 également, mais je comprends que c'est le numéro de l'élément qui est supérieur au numéro de la barre.

Veuillez me corriger si j'ai tort au sujet des fautes de frappe.

Désolé pour les fautes de frappe. . . J'ai corrigé mon texte avec les valeurs correctes . . . Je ne suis pas très bon le matin ;-)

Voyez-vous la petite modification que vous devez apporter au code pour qu'il vous soit utile ?

 
    for(i=Bars; i >= 0; i--)
     {
     val3=iFractals(NULL, 0, MODE_UPPER,i);
     if(val3>0)
      {
      double v3[1000];
      v3[i]=High[i];
      Print ("v3[", i, "]= ", v3[i], " if");
      }
     else          
         {
         v3[i]=v3[i+1];
         Print ("v3[", i, "]= ", v3[i], " else");
         }
     }
Ok, je fais quelques progrès ici, je pense que le problème principal était que je ne pouvais pas dépasser la déclaration du tampon qui produisait toujours 0 pour mes déclarations d'impression.

Je pense que je pourrais être capable de gérer à partir d'ici.
J'obtiens les valeurs que je cherche maintenant, du moins d'après ce que je peux dire jusqu'à présent, je suis peut-être sur la bonne voie.

2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5 : v3[5]= 1.3361 if
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5 : v3[6]= 1.3343 else
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5 : v3[7]= 1.3343 else
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5 : v3[8]= 1.3343 else
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5 : v3[9]= 1.3343 else
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5 : v3[10]= 1.3343 if
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5 : v3[11]= 1.3399 else


Merci encore
 
Je soupçonne que vous ne voulez pas ou n'avez pas besoin du reste.
 
RaptorUK:
Je soupçonne que vous ne voulez pas ou n'avez pas besoin d'autre chose.

Oui, vous avez raison.