BREAKOUT CANAL RSI AVEC FILTRE

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • #93539 quote
    Martin35
    Participant
    Average

    Bonjour Nicolas,

    De la même manière qu’avec le Canal de Donchian avec filtre, on adapte cela au Canal RSI. Les niveaux sont plus rares et donnent de bonnes zones de prix.

    //////////////////////////////////////////////////
    //_RSI_LEVELS_
    
    ONCE RSI70 = UNDEFINED
    ONCE RSI30 = UNDEFINED
    
    RSIORI = RSI[14](CLOSE)
    UPORI = MAX(0,CLOSE-CLOSE[1])
    DOWNORI = MAX(0,CLOSE[1]-CLOSE)
    UPMAORI = WILDERAVERAGE[14](UPORI)
    DOWNMAORI = WILDERAVERAGE[14](DOWNORI)
    
    RSREV = (100/((-1*70)+100)) - 1
    
    IF 70 < RSIORI THEN
    UPMAREV = UPMAORI * (1-(1/14))
    DOWNMAREV = UPMAREV / RSREV
    DOWNREV = (DOWNMAREV-(DOWNMAORI*(1-(1/14))))/(1/14)
    RSI70 = CLOSE - DOWNREV
    ELSIF 70 > RSIORI THEN
    DOWNMAREV = DOWNMAORI * (1-(1/14))
    UPMAREV = DOWNMAREV * RSREV
    UPREV = (UPMAREV-(UPMAORI*(1-(1/14))))/(1/14)
    RSI70 = CLOSE + UPREV
    ENDIF
    
    RSI50 = WILDERAVERAGE[14](CLOSE)
    
    RSIORI2 = RSI[14](CLOSE)
    UPORI2 = MAX(0,CLOSE-CLOSE[1])
    DOWNORI2 = MAX(0,CLOSE[1]-CLOSE)
    UPMAORI2 = WILDERAVERAGE[14](UPORI2)
    DOWNMAORI2 = WILDERAVERAGE[14](DOWNORI2)
    
    RSREV2 = (100/((-1*30)+100)) - 1
    
    IF 30 < RSIORI2 THEN
    UPMAREV2 = UPMAORI2 * (1-(1/14))
    DOWNMAREV2 = UPMAREV2 / RSREV2
    DOWNREV2 = (DOWNMAREV2-(DOWNMAORI2*(1-(1/14))))/(1/14)
    RSI30 = CLOSE - DOWNREV2
    ELSIF 30 > RSIORI2 THEN
    DOWNMAREV2 = DOWNMAORI2 * (1-(1/14))
    UPMAREV2 = DOWNMAREV2 * RSREV2
    UPREV2 = (UPMAREV2-(UPMAORI2*(1-(1/14))))/(1/14)
    RSI30 = CLOSE + UPREV2
    ENDIF
    
    if high crosses over RSI50 then
    hhstart=barindex
    lllevel=0
    endif
    if low crosses under RSI50 then
    llstart=barindex
    hhlevel=0
    endif
    if high crosses over RSI70[1] and barindex>hhstart and hhlevel=0 then
    hhlevel=RSI70[1]
    endif
    if low crosses under RSI30[1] and barindex>llstart and lllevel=0 then
    lllevel=RSI30[1]
    endif
    
    RETURN RSI70 COLOURED (0,0,0) STYLE (LINE,3) AS "_DAILY_RSI_70%_", RSI50 COLOURED (153,0,153) STYLE (LINE,3) AS "_DAILY_RSI_50%_", RSI30 COLOURED (0,0,0) STYLE (LINE,3) AS "_DAILY_RSI_30%_", hhlevel coloured(0,200,0) style(point,4),lllevel coloured(200,50,0) style(point,4)

    Mais j’ai deux questions, déjà évoquées dans le précédent indicateur :

    • Lors d’une cassure sur la même bougie du canal RSI et du filtre avec un GAP d’ouverture (voire capture, je n’ai pas trouvé d’exemple sur le Canal RSI), est-il possible de coder cette exception afin de prendre en compte ce GAP et tracer le niveau malgré tout ?
    • Est-ce possible de prolonger les niveaux jusqu’au prochain niveau comme sur la capture (je suppose qu’en code c’est peu évident à faire) ?

    Merci pour ces précisions. 🙂

    Capture-3.png Capture-3.png Capture-Copie.png Capture-Copie.png GAP-1.png GAP-1.png
    #93544 quote
    Nicolas
    Keymaster
    Master

    Tout est possible si on le souhaite très fort. Évitons les dédoublement de topic svp, ça n’est pas parcque je ne réponds pas le jour même que je ne répondrai pas 😉

    Martin35 thanked this post
    #93546 quote
    Martin35
    Participant
    Average

    Je le souhaite très très fort oui !

     

    Oui je sais bien, mais tu as tellement de demandes de codages qu’il doit être difficile de s’y retrouver. 😮

     

    Merci ! 😉

    #93585 quote
    Nicolas
    Keymaster
    Master

    Je pense avoir réglé le problème des gaps avec cette version et est également créé une nouvelle variable “iline” permettant la continuité de la ligne de breakout :

    //////////////////////////////////////////////////
    //_RSI_LEVELS_
    
    ONCE RSI70 = UNDEFINED
    ONCE RSI30 = UNDEFINED
    
    RSIORI = RSI[14](CLOSE)
    UPORI = MAX(0,CLOSE-CLOSE[1])
    DOWNORI = MAX(0,CLOSE[1]-CLOSE)
    UPMAORI = WILDERAVERAGE[14](UPORI)
    DOWNMAORI = WILDERAVERAGE[14](DOWNORI)
    
    RSREV = (100/((-1*70)+100)) - 1
    
    IF 70 < RSIORI THEN
    UPMAREV = UPMAORI * (1-(1/14))
    DOWNMAREV = UPMAREV / RSREV
    DOWNREV = (DOWNMAREV-(DOWNMAORI*(1-(1/14))))/(1/14)
    RSI70 = CLOSE - DOWNREV
    ELSIF 70 > RSIORI THEN
    DOWNMAREV = DOWNMAORI * (1-(1/14))
    UPMAREV = DOWNMAREV * RSREV
    UPREV = (UPMAREV-(UPMAORI*(1-(1/14))))/(1/14)
    RSI70 = CLOSE + UPREV
    ENDIF
    
    RSI50 = WILDERAVERAGE[14](CLOSE)
    
    RSIORI2 = RSI[14](CLOSE)
    UPORI2 = MAX(0,CLOSE-CLOSE[1])
    DOWNORI2 = MAX(0,CLOSE[1]-CLOSE)
    UPMAORI2 = WILDERAVERAGE[14](UPORI2)
    DOWNMAORI2 = WILDERAVERAGE[14](DOWNORI2)
    
    RSREV2 = (100/((-1*30)+100)) - 1
    
    IF 30 < RSIORI2 THEN
    UPMAREV2 = UPMAORI2 * (1-(1/14))
    DOWNMAREV2 = UPMAREV2 / RSREV2
    DOWNREV2 = (DOWNMAREV2-(DOWNMAORI2*(1-(1/14))))/(1/14)
    RSI30 = CLOSE - DOWNREV2
    ELSIF 30 > RSIORI2 THEN
    DOWNMAREV2 = DOWNMAORI2 * (1-(1/14))
    UPMAREV2 = DOWNMAREV2 * RSREV2
    UPREV2 = (UPMAREV2-(UPMAORI2*(1-(1/14))))/(1/14)
    RSI30 = CLOSE + UPREV2
    ENDIF
    
    if high crosses over RSI50 then
    hhstart=barindex
    lllevel=0
    endif
    if low crosses under RSI50 then
    //if low<rsi50 and low[1]>rsi50[1] then 
    llstart=barindex
    hhlevel=0
    endif
    if high crosses over RSI70[1] and barindex>=hhstart and hhlevel=0 then
    hhlevel=RSI70[1]
    endif
    if low crosses under RSI30[1] and barindex>=llstart and lllevel=0 then
    //if low < RSI30[1] and low[1]>RSI30[2] and barindex>llstart and lllevel=0 then
    lllevel=RSI30[1]
    endif
    
    if (hhlevel>0 and hhlevel[1]=0) or (lllevel>0 and lllevel[1]=0) then
    iline=max(hhlevel,lllevel)
    endif 
    
    RETURN iline, RSI70 COLOURED (0,0,0) STYLE (LINE,3) AS "_DAILY_RSI_70%_", RSI50 COLOURED (153,0,153) STYLE (LINE,3) AS "_DAILY_RSI_50%_", RSI30 COLOURED (0,0,0) STYLE (LINE,3) AS "_DAILY_RSI_30%_", hhlevel coloured(0,200,0) style(point,4),lllevel coloured(200,50,0) style(point,4)
    Martin35 thanked this post
    breakout-line-rsi-channel.png breakout-line-rsi-channel.png
    #93593 quote
    Martin35
    Participant
    Average

    Salut Nicolas,

     

    C’est vraiment génial, je ne pensais pas que ça serait possible, merci !

     

    Cette variable “iline” c’est nouveau ? Sinon pour les Gaps ça ne marche pas.

     

    Merci encore Nicolas.

    Capture-4.png Capture-4.png
    #93595 quote
    Nicolas
    Keymaster
    Master

    Merci de m’indiquer date, heure et nom de l’instrument de ton exemple, sur mes graphiques les gaps sont détectés, sauf erreur de ma part.

    #93596 quote
    Martin35
    Participant
    Average

    Yep,

     

    Donc c’est Allemange 30, du 23 au 24 juin en daily.

     

    (Pour iline, j’ai pris ça pour une nouvelle fonction alors que c’est simplement un bout de code)

    #93598 quote
    Martin35
    Participant
    Average

    23 au 24 de l’année 2016, désolé.

    #93602 quote
    Nicolas
    Keymaster
    Master

    Donc c’est Allemange 30

    Index, Futures ou cfd ? Une copie d’écran complète ça m’aiderait beaucoup, merci.

    #93604 quote
    Martin35
    Participant
    Average

    Oui en effet. CFD’s. Année 2016.

    Capture-6.png Capture-6.png
    #93609 quote
    Nicolas
    Keymaster
    Master

    Tu sembles ne pas avoir les données du week-end affichées, il faudrait les activer.

    Egalement as-tu changé la timezone et/ou définit des horaires personnalisés ?

    Martin35 thanked this post
    #93610 quote
    Martin35
    Participant
    Average

    Non en fait pas de données week-end, j’utilise les données CFD’s avec les horaires du FDAX, donc 8h/22h du lundi au vendredi, horaires personnalisés en effet.

    Je vais essayer avec les données du week-end.

    #93612 quote
    Martin35
    Participant
    Average

    Si je mets les données en continue, je suppose que j’aurais bien la cassure puisque le prix franchira nécessairement le filtre, sauf en cas de GAP intraday lors d’un flash crack ou problème de cotations divers, mais le problème c’est que tous mes indicateurs à côté auront de mauvaises données basées sur le FDAX 8h/22h…

    #93614 quote
    Martin35
    Participant
    Average

    Il y a bien cassure étant donné les horaires sont à présent 24h/24, donc plus de gap.

    Mais il y a quand même le soucy de la non prise en compte de la cassure du filtre quand il y a sur la même bougie cassure filtre et cassure donchian. Mais ça à part descendre en UT, il n’y a peut-être pas de solutions ?

    #93615 quote
    Martin35
    Participant
    Average

    Ma capture n’a pas été prise en compte dans mon précédent post, voici :

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

BREAKOUT CANAL RSI AVEC FILTRE


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Martin35 @martin35 Participant
Summary

This topic contains 14 replies,
has 2 voices, and was last updated by Martin35
6 years, 11 months ago.

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