Création signal avec conditions qui peuvent ne pas se déclencher au même instant

Viewing 8 posts - 16 through 23 (of 23 total)
  • Author
    Posts
  • #38464 quote
    ghary
    Participant
    Veteran

    Ah ok je vais tester cela et vérifier la viabilité mais ca a l’air d’être un bon début.

     

    Merci.

    #38557 quote
    ghary
    Participant
    Veteran

    Bonjour

    cela me donne une erreur car il me demande la fonction buy stop mais je ne désire pas créer un système automatique mais juste un signal en histogramme afin de choisir d’entrer manuellement.

    la c’est le début du code pour un système automatique ?

    #117950 quote
    flo34
    Participant
    Junior

    Bonsoir,

    Je déterre ce sujet (Je précise que je débute et que j’ai bien effectué la formation avancée… plusieurs fois même… mais apparemment ce n’est pas suffisant !).

    Voici ce que je souhaite faire :

    Lorsque mes 2 MM sont orientées et que le RSI consolide, j’aimerai que mon indicateur se mette en veille, c’est le SIGNAL (= Flèche verte sur la PJ)

    Si 10 bougies plus tard (10 bougies après ce signal), les cours cassent la clôture de la bougie de SIGNAL alors c’est la CONFIRMATION (= Flèche bleu sur la PJ)

    Si 10 bougies après le signal il ne se passe rien… alors j’aimerai que mon indicateur se remette à 0.

    Je pense que je ne suis pas loin mais que je me mélange les pinceaux… (Cf Photo 2)

    MM1 = exponentialaverage[50](close)
    MM2 = exponentialaverage[20](close)
    MyRSI = RSI[8](close)
    
    //SIGNAL 1 Enregistrement des variables
    if MM2>MM1 and MyRSI crosses under 35 then
    CA1 = 1
    CA1open = open
    Drawarrowup(barindex,low-5*pointsize)coloured(0,255,0)
    //Drawsegment(CA1,CA1open,barindex,close)
    ENDIF
    
    //CONFIRMATION DU SIGNAL
    For a=0 to a=10 do
    If CA1=1 and close crosses over CA1open then
    Drawarrowup(barindex,low-5*pointsize)coloured(0,0,255)
    endif
    next
    
    return
    

    Idéalement j’aimerai tracer un segment depuis le close du SIGNAL jusqu’à 10 bougies (Un segment qui reste fixe)

    Merci de votre aide, car cela me bloque je pourrai ensuite me débrouiller (Changer le SIGNAL,  la durée de CONFIRMATION, rajouter une troisième CONFIRMATION… etc… etc…)

    #118004 quote
    Nicolas
    Keymaster
    Master

    Pas besoin de faire une boucle, tu peux faire une différence entre le BARINDEX courant et celui qui a vu le moment de la consolidation et si c’est inférieure à 10 bougies, alors tu autorises à la fois le traçage du segment et le signal de breakout potentiel.

    Si tu n’es pas encore en V11, il faudra supprimer le STYLE du segment, ça ne fonctionne pas en version inférieure.

    MM1 = exponentialaverage[50](close)
    MM2 = exponentialaverage[20](close)
    MyRSI = RSI[8](close)
    
    //SIGNAL 1 Enregistrement des variables
    if MM2>MM1 and MyRSI crosses under 35 then
    CA1open = open
    Drawarrowup(barindex,low-5*pointsize)coloured(0,255,0)
    startbar = barindex
    ENDIF
    
    //tracage du segment 
    if barindex-startbar<=10 then 
    drawsegment(startbar,CA1open,barindex,CA1open) style(dottedline,3) //segment 
    //CONFIRMATION DU SIGNAL
    If  close crosses over CA1open then
    Drawarrowup(barindex,low-5*pointsize)coloured(0,0,255)
    endif
    endif
    
    
    return
    #118242 quote
    jeanguy
    Participant
    Senior

    Nicolas je te remercie de ta réponse, par contre je ne comprends pas la priorité des signaux.

    Mon signal est un croisement (Cf ci-dessous) … mais en fait peu importe le signal.

    Ce que j’aimerai c’est que mon indicateur affiche 1 SIGNAL VERT (1 seul) puis 1 SIGNAL ROUGE (1 seul) cad qu’1 signal haussier soit systématiquement suivi par 1 signal baissier.

    Autrement dit que mon indicateur alterne VERT / ROUGE exclusivement.

    J’ai effectué ce que tu m’as dit mais cela ne fonctionne pas.

    MM1 = average[200](close)
    
    IF summation[100](close<MM1)>95 and close crosses over MM1 THEN
    CA1=1
    Drawarrowup(barindex,low)coloured(0,255,0)
    Drawarrowup(barindex,low-1*pipsize)coloured(0,255,0)
    Drawarrowup(barindex,low-2*pipsize)coloured(0,255,0)
    Indicateur = 1
    ENDIF
    
    IF CA1=1 and summation[100](close>MM1)>95 and close crosses under MM1 THEN
    Drawarrowdown(barindex,high)coloured(255,0,0)
    Drawarrowdown(barindex,high+1*pipsize)coloured(255,0,0)
    Drawarrowdown(barindex,high+2*pipsize)coloured(255,0,0)
    Indicateur = -1
    endif
    
    return indicateur

    Merci de ta réponse

    #118252 quote
    Nicolas
    Keymaster
    Master

    Dans ton code, tu utilises la variable CA1 pour indiquer l’état du signal actuel, mais tu t’en sers uniquement pour les flèches rouges, pourquoi pas pour les vertes ?

    En gros, si c’est rouge CA1=-1, alors on fait vert, et si c’est vert CA1=1, alors on fait rouge.

    Donc:

    MM1 = average[200](close)
    
    IF CA1=-1 and summation[100](close<MM1)>95 and close crosses over MM1 THEN
     CA1=1
     Drawarrowup(barindex,low)coloured(0,255,0)
     Drawarrowup(barindex,low-1*pipsize)coloured(0,255,0)
     Drawarrowup(barindex,low-2*pipsize)coloured(0,255,0)
     Indicateur = 1
    ENDIF
    
    IF CA1=1 and summation[100](close>MM1)>95 and close crosses under MM1 THEN
     CA1=-1
     Drawarrowdown(barindex,high)coloured(255,0,0)
     Drawarrowdown(barindex,high+1*pipsize)coloured(255,0,0)
     Drawarrowdown(barindex,high+2*pipsize)coloured(255,0,0)
     Indicateur = -1
    endif
    
    return indicateur

    (non testé). On aurait aussi pu utiliser la variable ‘indicateur’, m’en rends compte après édition 🙄

    #118282 quote
    jeanguy
    Participant
    Senior

    Cela ne fonctionne pas, le graphique est vierge… sans doute parce que la première fois, aucune condition n’est valable. L’indicateur attend soit un CA1=1 soit un CA1=-1

    C’est le serpent qui se mort la queue.

    #118285 quote
    Nicolas
    Keymaster
    Master

    En effet, donc tu pourrais changer le code en intégrant cette remarque ? 😉

    Sinon tu peux recopier :

    MM1 = average[200](close)
    
    IF CA1<=0 and summation[100](close<MM1)>95 and close crosses over MM1 THEN
     CA1=1
     Drawarrowup(barindex,low)coloured(0,255,0)
     Drawarrowup(barindex,low-1*pipsize)coloured(0,255,0)
     Drawarrowup(barindex,low-2*pipsize)coloured(0,255,0)
     Indicateur = 1
    ENDIF
    
    IF CA1>=0 and summation[100](close>MM1)>95 and close crosses under MM1 THEN
     CA1=-1
     Drawarrowdown(barindex,high)coloured(255,0,0)
     Drawarrowdown(barindex,high+1*pipsize)coloured(255,0,0)
     Drawarrowdown(barindex,high+2*pipsize)coloured(255,0,0)
     Indicateur = -1
    endif
    
    return indicateur
Viewing 8 posts - 16 through 23 (of 23 total)
  • You must be logged in to reply to this topic.

Création signal avec conditions qui peuvent ne pas se déclencher au même instant


Support ProBuilder

New Reply
Author
author-avatar
ghary @ghary Participant
Summary

This topic contains 22 replies,
has 5 voices, and was last updated by Nicolas
6 years ago.

Topic Details
Forum: Support ProBuilder
Language: French
Started: 06/12/2017
Status: Active
Attachments: 7 files
Logo Logo
Loading...