Eviter les repetitions

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #199370 quote
    Alex72
    Participant
    New

    Bonjour, c’est un code pour les conditions suivantes:
    1) c1= min 5 clotures au dessus des bollinger bands, le contraire pour short
    2) reperer le swing haut ou bas ca depend si on est long ou short
    3) si C1 attendre la formation du swing high et sa cassure pour tracer une fleche vers le haut
    4) eviter la repetion de la fleche si la cassure avec les conditions requises s’est deja produite
    5) le processus est remis à zéro si on casse sous les BB.

    Dans le code que je joins, jai pu avec l’aide de plusieurs perosnnes rassembler un peu tout ca mais je n’arrive pas à éviter les répetitions.
    Merci si vous pouvez m’aider.

    DEFPARAM CalculateOnLastBars = 1000
    // Conditions pour Close > Bollinger UP
    indicator3 = Average[20](close)+0.382*std[20](close)
    c7 = (close > indicator3)
    // Conditions pour 5 Cloture au dessus de Bollinger Up
    c9=SUMMATION[5](c7)=5
    //Le processus se met à zéro si on cloture à nouveau sous Boll Up
    if close<indicator3 then
    lastsig=0
    endif
    // Conditions pour Close < Bollinger Down
    indicator4 = Average[20](close)-0.382*std[20](close)
    c8 = (close < indicator4)
    // Conditions pour 5 Cloture en dessous de Bollinger down
    c10=SUMMATION[5](c8)=5
    //Le processus se met à zéro si on cloture à nouveau au dessus de Boll Down
    if close>indicator4 then
    lastsig2=0
    endif
    //Ce Code trace tous les Swing High et Low ce qui nous montre des points d'entrée et Stop si toutes les conditions sont reunies, il faut juste que je rafine les traçages
    PivotBAR     = 1                      //1  bars AFTER  pivot
    LookBack     = 1                      //1  bars BEFORE pivot
    BarLookBack  = PivotBAR + 1
    atr=averagetruerange[14]
    IF low[PivotBAR] < lowest[LookBack](low)[BarLookBack] THEN
    IF low[PivotBAR] = lowest[BarLookBack](low) THEN
    MySupport     = BarIndex - PivotBAR
    SupportPrice  = low[PivotBAR]
    ENDIF
    ENDIF
    IF high[PivotBAR] > highest[LookBack](high)[BarLookBack] THEN
    IF high[PivotBAR]  = highest[BarLookBack](high) THEN
    MyResistance    = BarIndex - PivotBAR
    ResistancePrice = high[PivotBAR]//high[BarIndex - MyResistance]
    ENDIF
    ENDIF
    DRAWSEGMENT(MyResistance,ResistancePrice,BarIndex,ResistancePrice) COLOURED(255,0,0,255)
    DRAWSEGMENT(MySupport,SupportPrice,BarIndex,SupportPrice) COLOURED(0,128,0,255)
    //Tracer Flèche vers le haut si le prix croise vers le haut le dernier swing High qui se forme apres  5 clôtures au dessus des BB haut, ca peut être pendant les 5 ou plus bougies, on peut avoir 5 bougies mais sans un swing high donc il faut attendre la formation du swing et sa cassure sans que le processus ne se remet à zéro
    c1 = (high >= ResistancePrice)
    IF c9  then
    if c1 then
    drawarrowup(barindex,low-atr/2) coloured(100,10,200)
    lastsig3=1
    endif
    ENDIF
    //la flèche ne se repete pas si c1 est true, je n'y arrive pas mais j'ai essayé
    if c1 then
    lastsig3=0
    endif
    return
    
    BC188DA8-040C-4F2C-97DC-B9B8EDA683AF.jpeg BC188DA8-040C-4F2C-97DC-B9B8EDA683AF.jpeg
    #199398 quote
    Nicolas
    Keymaster
    Master

    Puisque l’élément qui déclenche le signal c’est la cassure de ta résistance, je teste si la cassure se fait sur la dernière résistance qui a généré un signal (que j’ai stocké dans la variable lastsig3)

    DEFPARAM CalculateOnLastBars = 1000
    // Conditions pour Close > Bollinger UP
    indicator3 = Average[20](close)+0.382*std[20](close)
    c7 = (close > indicator3)
    // Conditions pour 5 Cloture au dessus de Bollinger Up
    c9=SUMMATION[5](c7)=5
    //Le processus se met à zéro si on cloture à nouveau sous Boll Up
    if close<indicator3 then
    lastsig=0
    endif
    // Conditions pour Close < Bollinger Down
    indicator4 = Average[20](close)-0.382*std[20](close)
    c8 = (close < indicator4)
    // Conditions pour 5 Cloture en dessous de Bollinger down
    c10=SUMMATION[5](c8)=5
    //Le processus se met à zéro si on cloture à nouveau au dessus de Boll Down
    if close>indicator4 then
    lastsig2=0
    endif
    //Ce Code trace tous les Swing High et Low ce qui nous montre des points d'entrée et Stop si toutes les conditions sont reunies, il faut juste que je rafine les traçages
    PivotBAR     = 1                      //1  bars AFTER  pivot
    LookBack     = 1                      //1  bars BEFORE pivot
    BarLookBack  = PivotBAR + 1
    atr=averagetruerange[14]
    IF low[PivotBAR] < lowest[LookBack](low)[BarLookBack] THEN
    IF low[PivotBAR] = lowest[BarLookBack](low) THEN
    MySupport     = BarIndex - PivotBAR
    SupportPrice  = low[PivotBAR]
    ENDIF
    ENDIF
    IF high[PivotBAR] > highest[LookBack](high)[BarLookBack] THEN
    IF high[PivotBAR]  = highest[BarLookBack](high) THEN
    MyResistance    = BarIndex - PivotBAR
    ResistancePrice = high[PivotBAR]//high[BarIndex - MyResistance]
    ENDIF
    ENDIF
    DRAWSEGMENT(MyResistance,ResistancePrice,BarIndex,ResistancePrice) COLOURED(255,0,0,255)
    DRAWSEGMENT(MySupport,SupportPrice,BarIndex,SupportPrice) COLOURED(0,128,0,255)
    //Tracer Flèche vers le haut si le prix croise vers le haut le dernier swing High qui se forme apres  5 clôtures au dessus des BB haut, ca peut être pendant les 5 ou plus bougies, on peut avoir 5 bougies mais sans un swing high donc il faut attendre la formation du swing et sa cassure sans que le processus ne se remet à zéro
    c1 = (high >= ResistancePrice)
    IF c9  then
    if c1 and ResistancePrice<>lastsig3 then
    drawarrowup(barindex,low-atr/2) coloured(100,10,200)
    lastsig3=ResistancePrice
    endif
    ENDIF
    return
    #199407 quote
    Alex72
    Participant
    New

    je Vous remercie pour votre réponse rapide, juste si vous pouvez voir la photo jointe avec les info bulles.
    je voudrais juste avoir un signal une fois les conditions reunies et apres avoir un autre une fois le processus est remis à zero et non pas juste 5 clotures au dessus des BB.
    Merci

    2eme-signal.png 2eme-signal.png
    #199412 quote
    Alex72
    Participant
    New

    Je me permets de rajouter cette photo afin de mieux m’expliquer

    Swing-High-Recent.png Swing-High-Recent.png
    #199414 quote
    Alex72
    Participant
    New

    J’ai pu aussi grace à l’aide de Nicolas rajouter les lignes de 50 à 57 pour les SHORT
    Mais il me reste encore du chemin, voici le code

    DEFPARAM CalculateOnLastBars = 1000
    // Conditions pour Close > Bollinger UP
    indicator3 = Average[20](close)+0.382*std[20](close)
    c7 = (close > indicator3)
    // Conditions pour 5 Cloture au dessus de Bollinger Up
    c9=SUMMATION[5](c7)=5
    //Le processus se met à zéro si on cloture à nouveau sous Boll Up
    if close<indicator3 then
    lastsig=0
    endif
    // Conditions pour Close < Bollinger Down
    indicator4 = Average[20](close)-0.382*std[20](close)
    c8 = (close < indicator4)
    // Conditions pour 5 Cloture en dessous de Bollinger down
    c10=SUMMATION[5](c8)=5
    //Le processus se met à zéro si on cloture à nouveau au dessus de Boll Down
    if close>indicator4 then
    lastsig2=0
    endif
    //Ce Code trace tous les Swing High et Low ce qui nous montre des points d'entrée et Stop si toutes les conditions sont reunies, il faut juste que je rafine les traçages
    PivotBAR     = 1                      //1  bars AFTER  pivot
    LookBack     = 1                      //1  bars BEFORE pivot
    BarLookBack  = PivotBAR + 1
    atr=averagetruerange[14]
    IF low[PivotBAR] < lowest[LookBack](low)[BarLookBack] THEN
    IF low[PivotBAR] = lowest[BarLookBack](low) THEN
    MySupport     = BarIndex - PivotBAR
    SupportPrice  = low[PivotBAR]
    ENDIF
    ENDIF
    IF high[PivotBAR] > highest[LookBack](high)[BarLookBack] THEN
    IF high[PivotBAR]  = highest[BarLookBack](high) THEN
    MyResistance    = BarIndex - PivotBAR
    ResistancePrice = high[PivotBAR]//high[BarIndex - MyResistance]
    ENDIF
    ENDIF
    DRAWSEGMENT(MyResistance,ResistancePrice,BarIndex,ResistancePrice) COLOURED(255,0,0,255)
    DRAWSEGMENT(MySupport,SupportPrice,BarIndex,SupportPrice) COLOURED(0,128,0,255)
    //Tracer Flèche vers le haut si le prix croise vers le haut le dernier swing High qui se forme apres  5 clôtures au dessus des BB haut, ca peut être pendant les 5 ou plus bougies, on peut avoir 5 bougies mais sans un swing high donc il faut attendre la formation du swing et sa cassure sans que le processus ne se remet à zéro
    
    //Flèche pour Bullish
    c1 = (high >= ResistancePrice)
    IF c9  then
    if c1 and ResistancePrice<>lastsig3 then
    drawarrowup(barindex,low-atr/2) coloured(100,10,200)
    lastsig3=ResistancePrice
    endif
    ENDIF
    
    //Flèche pour Bearish
    c2 = (low =< SupportPrice)
    IF c10  then
    if c2 and SupportPrice<>lastsig4 then
    drawarrowdown(barindex,high+atr/2) coloured(255,0,0)
    lastsig4=SupportPrice
    endif
    ENDIF
    return
    
Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

Eviter les repetitions


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Alex72 @alex72 Participant
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by Alex72
3 years, 6 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 08/21/2022
Status: Active
Attachments: 3 files
Logo Logo
Loading...