Boucle While Défectueuse ?

Forums ProRealTime forum Français Support ProOrder Boucle While Défectueuse ?

Viewing 3 posts - 1 through 3 (of 3 total)
  • #225249

    Bonjour

    J’ai une erreur sur la boucle while. Il m’est indiqué qu’elle est inifinie. Pourtant, il existe bien dans le passé un break donc je dois passer par le if . Si la condition est validée, je passe en init =1 pour ne pas reboucler . Ai je bon ?

    Mon but est de rechercher le dernier Break out Daily avant de lancer le code pour avoir le low et les extremes de la bougie qui a breaké

    Merci de votre retour

    #225259

    Bonjour,

    A priori si je comprends ce que tu veux faire, dans cbreak tu as inversé l’ordre chronologique du Dclose avec Dhigh et Dlow (pris le close du jour “avant” celui des high et low au lieu du jour “après” ceux-ci).

    Aussi, pour incrémenter ta boucle tu as écrit (je le mets en lettre pour éviter qu’une lecture rapide ne passe à côté de la distinction entre i et  1): ” i = un + un” mais je suppose que tu voulais ” i = i + un”, si la boucle n’a pas rencontré Cbreak avant i=2, elle va rester scotchée sur i=2

     

    Alternativement, si tu ne tiens pas forcément à la boucle while, à la place tu peux faire:

    if DClose(0)>DHigh(1) or DClose(0)<DLow(1) then
    EcartJOUR = DHigh(0) – DLow(0)
    SupportJOUR = DLow(0)
    endif

    ce qui soit génèrera EcartJour et SupportJour si la condition est réalisée, soit tout simplement les gardera en mémoire si elle ne l’est pas, ce qui en fait le plus récent sans besoin de repartir en arrière le chercher avec une boucle.

    Autre version si jamais tu ne veux pas que le temps réel remplace l’état de la veille:

    if DClose(0)>DHigh(1) or DClose(0)<DLow(1) then
    EcartJOURtemp = DHigh(0) – DLow(0)
    SupportJOURtemp = DLow(0)
    endif
    if openday<>openday[1] then
    EcartJOUR = EcartJOURtemp
    SupportJOUR = SupportJOURtemp
    endif

    1 user thanked author for this post.
    #225271

    Bonjour

    En effet i = 1+1 était mon erreur, ….. le boulet

    Bref, j’ai mis cela dans une fonction et avec un call, j’évite de passer par un while

    Merci

Viewing 3 posts - 1 through 3 (of 3 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login