boucle qui ne mémorise pas

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #223063 quote
    teshmi9z
    Participant
    New

    bonjour, je veux utiliser le multi time frame
    je détecte les croisements MM20 et MM50 Sur 1H , M15 et defaut (5min) => je met les signaux =1

    je veux que dans la boucle (default en 5 min) de 0 a 30  il détecte si il y a eu les croisement en 5 min et 15 min , si oui qu’il laisse la barre à 1 du début du 1er croisement jusqu’au 2em et la remette à 0 un fois détecter!

    timeframe(1hours,updateonclose)
    
    mm1H20=average[20](close)
    mm1H50=average[50](close)
    if mm1H20 > mm1h50 then
    M1H=1
    else
    M1H=0
    endif
    timeframe(15 minutes,updateonclose)
    
    mm20=average[20](close)
    mm50=average[50](close)
    
    if mm20 CROSSES OVER mm50 then
    
    M15=1
    else
    m15=0
    endif
    
    timeframe(default) 
    mmD20=average[20](close)
    mmD50=average[50](close)
    
    topp=0
    for x= 1 to 30 DO
    topp=m15[x]+MD[x]
    if topp=1 then
    break
    endif
    if topp=1 then
    continue
    endif
    if topp<1 then
    signal=1
    else
    signal=0
    endif
    next
    
    if mmD20 CROSSES OVER mmD50 then
    MD=1
    else
    MD=0
    endif
    
    return 0 as"0",-( M1H) as"1H", m15 as "m15" coloured(255,0,0),MD as "TimeDefault" coloured(0,0,250),-(topp) as "topp", signal as "signal"

    j’obtiens le résultat la (en image), je pense qui a un problème dans la détection et la fermeture de boucle.

    Ma barre noir s’affiche en début de boucle si elle détecte un croisement 5min, mais je ne veux pas de signal si croisement seul.

    Des avis ?

    bleu =5min  rouge=15min   noir= signal de la boucle    zone foncé = -(1H) pour negatif

    signal-cross.png signal-cross.png
    #223071 quote
    JC_Bywan
    Moderator
    Master

    J’aimerais bien aider, mais je ne comprends précisément ni le texte de la question, ni dans le code le but du test des topp:

    Texte:

    “si oui qu’il laisse la barre à 1 du début du 1er croisement jusqu’au 2em et la remette à 0 un fois détecter!”

    ==> Quelle barre? Aucune barre dans le graphe (style histogram), que des valeurs retournées par lignes, donc on suppose soit une erreur dans la dénomination barre (et la question deviendrait: quelle ligne?) ou bien une erreur dans l’image jointe (copie écran pré-transformation d’une variable de ligne en barre, mais laquelle?) ou bien c’est la requête de vouloir rajouter une variable en barre non encore présente dans le code?

    ==> “Juqu’au 2e” signifiant: on s’arrête à n’importe quel 2e croisement de n’importe quelle ut (sinon à préciser), et surtout ce 2e inclus ou pas?

    Code:

    double test identique de topp=1 en lignes 29 et 32 est bizarre, d’autant plus que si on break en ligne 30 on n’ira pas tester une 2e fois si topp=1 en ligne 32 (et même si on visitait les lignes 32-34, elles ne font rien d’autre que de passer à la suite). On imagine que l’un des 2 serait plutôt topp>1 ou topp=2, soit ça contribue à résoudre le problème au moins en partie, soit si rien à changer ça n’aide pas à comprendre le but du code car si topp=1 alors à la fois break et continue mais je ne vois pas le but de lui demander les 2 si le 2e n’est pas visité. Ceci dans le cas où il y ait besoin de la boucle, mais sans certitude au vu du texte de la requête.

    #223084 quote
    teshmi9z
    Participant
    New

    En gros je veux détecter dans les 30 dernières bougie si il y a eu un croisement de la MM20 et MM50 en ut 5min et 15 min et arrêter la boucle ( comme sur limage joint), le signal sera sur l’histogramme à 1 durant la période des 2 détections. je ne sais pas si j’explique bien.

    Je m’entraine surtout a coder les boucles car j’ai de grosse difficultés, je veux faire comme l’exemple de la boucle dans la formation avancé (avec le résultat à 30  https://www.prorealcode.com/chapter/boucle-de-decrementation/  a 13min), dans mon code j’ai mis le signal en négatif pour une lecture plus simple.

    signal-cross-1.png signal-cross-1.png mm-CROSS.jpg mm-CROSS.jpg
    #223088 quote
    teshmi9z
    Participant
    New

    un autre exemple la ( image)

    cross-exemple.png cross-exemple.png
    #223130 quote
    teshmi9z
    Participant
    New

    le but est de créer un signal qui identifie Dans les 5 dernières bougie si la MM7 crois la MM20 et  la MM50, SI OUI je veux une seule flèche

     

    ci joint une photo ( mm7 en vert, mm20 violet, mm50 bleu ) d’un exemple, je voudrais programmé que la deuxième flèche dessiné a la main.

    merci de votre aide

    fleche-double-croisement.png fleche-double-croisement.png
    #223147 quote
    JC_Bywan
    Moderator
    Master

    Ok, plusieurs façons de faire sans se compliquer avec une boucle, par exemple:

    mm7=average[7](close)
    mm20=average[20](close)
    mm50=average[50](close)
    cross7sur20recent= summation[5](mm7 crosses over mm20)=1
    cross7sur50recent= summation[5](mm7 crosses over mm50)=1
    les2cross= cross7sur20recent and cross7sur50recent
    
    if les2cross and not les2cross[1] then
    DRAWARROWUP(barindex, low-2*pipsize) coloured(0,255,0)//fleche sur prix
    DRAWARROWUP(barindex, -0.5) coloured(0,255,0)//fleche sur histo
    endif
    
    return cross7sur20recent, -cross7sur50recent, les2cross style(histogram)
Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.

boucle qui ne mémorise pas


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
teshmi9z @teshmi9z Participant
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by JC_Bywan
2 years, 4 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 10/31/2023
Status: Active
Attachments: 5 files
Logo Logo
Loading...