Limiter le nombre de signaux dans un indicateur

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #92818 quote
    Sofitech
    Participant
    Master

    Je souhaite savoir s’il est possible, dans un indicateur, de limiter le nombre de signaux. Soit n’autoriser l’indicateur à donner un signal achat que si le dernier signal était en sens inverse… Donc alterner systématiquement le sens des signaux…
    Soit limiter le nombre de signaux consécutifs dans un même sens (Maximum 3 signaux dans le même sens).

    Je poste un code exemple. Les signaux sont données par un +1 à l’achat et un -1 à la vente.

    // HORAIRES DE TRADING
    signal=0
    IF time < 080000 or time > 200000 THEN
    backgroundcolor(210,210,210)
    ENDIF
    
    // Affichage des EMA 8 & 21
    EMA8 = ExponentialAverage[8](close)
    EMA21 = ExponentialAverage[21](close)
    
    // Affichage des FLECHES (TIMEFRAME M1)
    CondLong = Close > Close[1] And Close[1] > Close[2] And (Close > High[2] And Close[1] > High[2]) and EMA8>EMA21
    CondShort= Close < Close[1] And Close[1] < Close[2] And (Close < Low[2] And Close[1] <Low[2])and EMA8<EMA21
    If CondLong THEN
    signal=1
    ELSIF CondShort THEN
    signal=-1
    ENDIF
    RETURN signal
    
    
    #92820 quote
    Nicolas
    Keymaster
    Master

    Pourquoi penses-tu que cela ne soit pas possible ? 🙂

    1/ Exemple: quand ton signal est haussier, enregistre cette information dans une variable, à la prochaine détection d’un signal, ajoute un test pour savoir si le signal est le même que cette variable ou pas .. basique !

    2/ Exemple : quand ton signal est haussier, incrémente une variable (mavariable = mavariable + 1), et ajoute un test pour savoir quelle est cette quantité au prochain signal .. simple !

    😉

    #92821 quote
    Sofitech
    Participant
    Master

    Je me doutais bien que c’était possible, voire basique. Je crains juste la mise en oeuvre avec mes connaissances limitées… même si c’est “Simple!” 😉

    Je vais essayer.

    #92823 quote
    Sofitech
    Participant
    Master

    Alors voici une première tentative qui ne marche pas sur la base de la deuxième proposition que tu formules.
    je précise au début mavariable=0
    Puis quand il y a signal achat, If….. : mavariable = mavariable + 1
    et signal de vente, if….. : mavariable = mavariable -1

    Et pour compter, je mets dans ma condition achat et vente “if mavariable <3 ou >-3″….

    // HORAIRES DE TRADING
    signal=0
    mavariable=0
    IF time < 080000 or time > 200000 THEN
    backgroundcolor(210,210,210)
    ENDIF
    
    // Affichage des EMA 8 & 21
    EMA8 = ExponentialAverage[8](close)
    EMA21 = ExponentialAverage[21](close)
    
    // Affichage des FLECHES (TIMEFRAME M1)
    CondLong = Close > Close[1] And Close[1] > Close[2] And (Close > High[2] And Close[1] > High[2]) and EMA8>EMA21
    CondShort= Close < Close[1] And Close[1] < Close[2] And (Close < Low[2] And Close[1] <Low[2])and EMA8<EMA21
    If CondLong and mavariable<3 THEN
    signal=1
    mavariable = mavariable + 1
    ELSIF CondShort and mavariable>-3 THEN
    signal=-1
    mavariable = mavariable -1
    ENDIF
    RETURN signal
    #92824 quote
    Nicolas
    Keymaster
    Master

    Bien tenté, mais puisque tu remets “mavariable” à 0 à chaque lecture de ton code, alors tu n’auras jamais aucun compte ! Par ailleurs 3 – (-3) = 6, et donc tu pourras avoir jusqu’à 6 fois le même signal ici.

    Non testé :

    // HORAIRES DE TRADING
    signal=0
    
    IF time < 080000 or time > 200000 THEN
     backgroundcolor(210,210,210)
    ENDIF
    
    // Affichage des EMA 8 & 21
    EMA8 = ExponentialAverage[8](close)
    EMA21 = ExponentialAverage[21](close)
    
    // Affichage des FLECHES (TIMEFRAME M1)
    CondLong = Close > Close[1] And Close[1] > Close[2] And (Close > High[2] And Close[1] > High[2]) and EMA8>EMA21
    CondShort= Close < Close[1] And Close[1] < Close[2] And (Close < Low[2] And Close[1] <Low[2])and EMA8<EMA21
    If CondLong and upvariable<3 THEN
     signal=1
     upvariable = upvariable + 1
     dnvariable = 0
    ELSIF CondShort and dnvariable<3 THEN
     signal=-1
     dnvariable = dnvariable + 1
     upvariable = 0
    ENDIF
    
    RETURN signal

    J’ai scindé les signaux haussiers et baissiers (upvariable et dnvariable).

    #92843 quote
    Sofitech
    Participant
    Master

    Merci beaucoup c’est très clair.

    #92900 quote
    Sofitech
    Participant
    Master

    Une demande complémentaire. L’indicateur fonctionne bien mais j’aimerais qu’il soit remis à 0 en fin de session.
    Je m’explique : si je prévois de faire fonctionner les signaux de 9h à 17h par exemple… si ledernier signal est acheteur… il faut qu’à 17h00 tout soit remis à 0 et que le premier signal puisse être acheteur aussi le lendemain.

    Actuellement, si un signal acheteur survient à 16h… et que le lendemain toutes les conditions sont réunies pour un achat à 9h00 mais que le nombre de signaux dans le même sens mentionné et atteind, le signal n’apparaît pas.

    Je sais pas si je suis bien clair. Enfin j’espère Nicolas.

    #92904 quote
    Nicolas
    Keymaster
    Master

    Dans ce cas la, tu fais une condition pour tester la fin de la session et si cette condition est vrai, alors tu remets les variables à zéro.

    #92912 quote
    Sofitech
    Participant
    Master

    J’ai tenté le code suivant qui semble ne pas donner le résultat souhaité.

    if time = 1200000 then
    dnvariable=0 and upvariable=0

    Si fin de session à 12h00 remise à 0 des variables

    #92931 quote
    Nicolas
    Keymaster
    Master

    Je pense que tu as mis un 0 de trop à 12:00:00 (4 zéros et non 5).

    Si Time ne fonctionne pas, essai OpenTime qui l’heure de l’ouverture de la bougie.

Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.

Limiter le nombre de signaux dans un indicateur


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Sofitech @sofitech Participant
Summary

This topic contains 9 replies,
has 2 voices, and was last updated by Nicolas
7 years ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 03/04/2019
Status: Active
Attachments: No files
Logo Logo
Loading...