Question sur l'indicateur - page 6

 

for(i=0 ; val1==val3 ; i++)

Ce code laisse la possibilité d'une boucle sans fin OMI.

 
Je dois réfléchir encore un peu, mes yeux sont encore flous en lisant.

Je reviendrai demain.
 
ubzen:

for(i=0 ; val1==val3 ; i++)

Ce code laisse la possibilité d'une boucle sans fin OMI.

Vraiment, il semble qu'il devrait effectuer un cycle jusqu'à ce que val1 ne soit pas val3

Si val3 = 0 et val1 = 0, il devrait effectuer un cycle jusqu'à ce qu'il obtienne une valeur

ii val3 = iFractal(momentanément) alors val1 devrait effectuer un cycle jusqu'à ce que val1=0 (et c'est là que se situe mon problème)

c'est vraiment une sorte de boucle sans fin ou de point de blocage, bien que j'obtienne une instruction print pour renvoyer la valeur iFractal pour val1, je ne sais pas vraiment où elle se trouve
je vais devoir expérimenter un peu plus avec ce que d'autres ont posté pour tester cela, mais je pense que vous avez raison

peut-être que ce n'est pas exactement comme prévu, mais c'est le concept que je veux atteindre pour juste incrémenter à la valeur fractale précédente

je vais continuer à travailler dessus
 
diostar:

Honnêtement, c'est la première fois que je vois ça, pour la condition de fin de boucle. C'est une question délicate...

Il semble que cela fonctionne partiellement, ce qui me trompe parce que mon instruction print renvoie une valeur, mais je pense que le problème est que dès que val3 est effectivement >0 alors val1 va s'incrémenter jusqu'à une valeur qui est 0 et pas vraiment la valeur fractale précédente

Donc il semblerait qu'en théorie cela ne fonctionnera qu'une fois tant que val3 == 0 et alors et seulement alors i++ va s'incrémenter jusqu'à ce que val1 ne soit plus == val3 ce qui est ce que je veux faire, cependant si val3 == une valeur alors val1 va s'incrémenter jusqu'à une valeur de 0 où il n'est plus == à val3 et alors la boucle se terminera.
Ce n'est pas exactement ce que je voulais après tout, donc retour à la planche à dessin LOL

Merci à tous

 
RaptorUK:

Lorsque vous obtenez un iFractal, la valeur est > 0, oui ?

Donc, par exemple, si vous voulez savoir où se trouvaient les derniers iFractals UPPER et LOWER, faites quelque chose comme ceci . . .

Je pense que je vois, maintenant si je peux trouver comment produire la valeur de ces emplacements précédents...

Je pense que je peux trouver une solution, j'espère. Hé hé.

Merci
 

La bougie 0 ne peut pas être un Fractal, donc val3 sera toujours 0, alors pourquoi ne pas utiliser . . .

for(i=0; val1==0; i++)

. . . et se débarrasser de val3.

Je préfère cependant un while dans ce cas, cela semble mieux correspondre à ce que vous essayez de faire . . .

 
RaptorUK:

Lorsque vous obtenez un iFractal, la valeur est > 0, oui ?

Donc, par exemple, si vous voulez savoir où se trouvaient les derniers iFractals UPPER et LOWER, faites quelque chose comme ceci . . .

Cela semble me dire où se trouve la dernière iFractale, mais pas les deux iFractales précédentes

Par exemple :

2011.10.07 09:05:36 sup_res EURUSD,M5 : Last UPPER Fractal at 6 Last LOWER Fractal at 0

Donc, cela montrera la fractale haute UPPER actuelle et imprimera l'emplacement, ce qui est bien
Je peux aussi changer val1=i en val1=iFractal(NULL, 0, MODE_UPPER,i) et cela me donnera la valeur de la dernière iFractal
Je fais donc des progrès dans la compréhension de tout cela mais je dois encore recoder pour revenir à l'iFractal précédente

Une fois qu'une iFractal s'est formée, l'instruction while continuera d'imprimer la dernière iFractal formée, ce qui est cool. ce qui est cool
Donc, si une nouvelle iFractal se forme, je veux faire référence à cette fractale actuelle à partir de l'instruction while qui est en fait la précédente 1 et non l'actuelle
Donc, si une iFractal LOWER_MODE se forme maintenant, je veux faire référence à la précédente iFractal UPPER_MODE et comparer ces valeurs.

Mais d'après vos conseils, je pense que je pourrais y arriver. Ce sont toutes de bonnes idées qui m'aident beaucoup.
Comme je me familiarise de plus en plus avec le fonctionnement du code, je commence vraiment à aimer utiliser ce que je sais pour mes idées de trading.

Merci
 
Agent86:
Cela semble me dire où se trouve le dernier iFractal, mais pas les deux iFractals précédents.

Il y a une erreur dans mon code . . .

while( val1==0 && val2==0)

should be . . .

while( val1==0 || val2==0)
 
RaptorUK:

La bougie 0 ne peut pas être un Fractal, donc val3 sera toujours 0, alors pourquoi ne pas utiliser . . .

. . . et se débarrasser de val3.

Je préfère cependant un while dans ce cas, cela semble mieux correspondre à ce que vous essayez de faire . . .

OK j'ai changé val3 shift en 3, mais je n'aime pas vraiment ça non plus je vais faire quelques changements, merci
 
if(val1 > 0 && faster > slower)
      {
       Print (val1, " val1");
       for(i=0; val1 || val2==0; i++)
         {
         if(iFractals(NULL, 0, MODE_LOWER, i) > 0 && val2 == 0)
         val2 = iFractals(NULL, 0, MODE_LOWER, i);
         Print (" Last LOWER Fractal at ", val2);
        
         }

Lorsque l'on ajoute un for(statement) à l'intérieur d'un if(statement), peut-on ajouter des if(statements) supplémentaires et faire référence aux valeurs dans la boucle ?

Et ces instructions if(additional) doivent-elles se trouver à l'intérieur de la boucle ou peut-on être à l'extérieur de la boucle et toujours faire référence aux valeurs de la boucle comme val2 ?

Veuillez indiquer ce qui est considéré comme normal pour des boucles à l'intérieur d'autres blocs de code ? Et comment extraire les valeurs des boucles ?

Merci
Raison: