Bouble dans boucle
Forums › ProRealTime forum Français › Support ProScreener › Bouble dans boucle
- This topic has 4 replies, 2 voices, and was last updated 5 years ago by MrCrous.
-
-
07/07/2019 at 3:03 PM #102090
Bonjour,
Je fais face à un petit problème dans PROSCREENER.
J’aimerai pouvoir comparer LES valeurs d’une condition A avec LES valeurs d’une autre condition B, sous plusieurs timeframe.
Afin de pouvoir comparer une valeur de A avec l’ensemble des valeurs de B je fais une boucle pour A puis dans cette boucle une boucle pour B.
Voici un exemple :
123456789While i <> 20 don = 0while n <> 20 doCond = ConditionAdaily[i] = ConditionBdaily[n] OR ConditionAdaily[i] = ConditionB4h[n] OR ConditionAdaily[i] = ConditionB3h[n] OR ConditionAdaily[i] = ConditionB2h[n] OR ConditionAdaily[i] = ConditionB1h[n] OR ConditionAdaily[i] = ConditionB30m[n] OR ConditionAdaily[i] = ConditionB15m[n] OR ConditionAdaily[i] = ConditionB10m[n] OR ConditionAdaily[i] = ConditionB5m[n]n= n +1wendi= i+1wendLe problème c’est que proscreener me retourne :
Ce ProScreener ne peut pas s’exécuter parce que son code contient une boucle sans fin.
Une boucle sans fin est une séquence d’instructions qui est répétée à l’infini lorsque le code est exécuté. Ceci peut arriver si :
– une boucle n’a pas une condition d’arrêt
– la condition d’arrêt ne peut jamais se réaliser
– l’arrêt provoque le redémarrage de la boucle
Optimisez le code de votre ProScreener.En vous remerciant de votre aide,
07/08/2019 at 7:58 AM #102114Est-ce que tu remets i à 0 quelque-part ? (avant le premier while).
Tu devrais aussi tester tes incréments tant qu’ils sont inférieurs à une valeur et non différent, ça pourrait créer ce genre de problème:
1234567i = 0while i < 20 do// codei=i+1wend07/08/2019 at 6:16 PM #102205Bonjour Nicolas,
Oui j’ai oublié de le mettre sur ce post mais j’initialise bien i=0 avant la boucle.
J’ai tenté de mettre <21 pour i et n, mais même erreur.
Je ne comprends pas car ma boucle n’est pas infinie… Y a t il des limitations liées à proscreener sur l’usage des boucles ?
07/09/2019 at 7:49 AM #102244Malheureusement oui, les boucles ont cet effet assez souvent, surtout lorsqu’elles sont imbriquées. Ton code n’est pas incriminé, le message d’erreur que tu obtiens est générique, il survient quand le moteur commence à caler.. 🙁
J’ai parfois eu de meilleure performances avec une boucle ForNext, à voir..
07/09/2019 at 6:54 PM #102302Bonjour Nicolas,
J’ai testé avec 2 boucles FOR imbriquées … Pas mieux :s
J’ai testé 2 boucles WHILE … KO.
J’ai testé une boucle whie puis FOR et vice versa … KO.
Ya un soucis avec les boucles imbriquées qui demandent un peu trop de calcul.
En tout cas merci pour les idées 🙂
-
AuthorPosts