Traduction ADR Zones

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #254775 quote
    Med5
    Participant
    Junior

    Bonjour,

    SVP, est-ce que l’un d’entre vous pourrait me traduire ce code Pine Script pour ProRealTime ?

    C’est un indicateur d’ADR qui trace des zones sur le prix. J’ai essayé de mon côté mais j’ai des erreurs de syntaxe que je n’arrive pas à régler.

    Un grand merci d’avance pour votre aide ! 🙂

    //CD
    //Average Daily Range Levels - 10 day
    
    study(title="CD_Average Daily Range Zones", shorttitle="CD_Daily High/Low Zones V01", overlay=true) 
    
    
    //dayHigh=security(tickerid, 'D', high[1]) 
    OPEN=security(tickerid, 'D', open) 
    
    //ADR L
    dayrange=(high - low)
    
    r1 = security(tickerid, 'D', dayrange[1]) 
    r2 = security(tickerid, 'D', dayrange[2]) 
    r3 = security(tickerid, 'D', dayrange[3]) 
    r4= security(tickerid, 'D', dayrange[4])
    r5= security(tickerid, 'D', dayrange[5])
    r6 = security(tickerid, 'D', dayrange[6]) 
    r7 = security(tickerid, 'D', dayrange[7]) 
    r8 = security(tickerid, 'D', dayrange[8]) 
    r9= security(tickerid, 'D', dayrange[9])
    r10= security(tickerid, 'D', dayrange[10])
    
    
    
    
    
    adr_10 = (r1+r2+r3+r4+r5+r6+r7+r8+r9+r10) /10
    adr_9 = (r1+r2+r3+r4+r5+r6+r7+r8+r9) /9
    adr_8 = (r1+r2+r3+r4+r5+r6+r7+r8) /8
    adr_7 = (r1+r2+r3+r4+r5+r6+r7) /7
    adr_6 = (r1+r2+r3+r4+r5+r6) /6
    adr_5 = (r1+r2+r3+r4+r5) /5
    adr_4 = (r1+r2+r3+r4) /4
    adr_3 = (r1+r2+r3) /3
    adr_2= (r1+r2)/2
    adr_1 = r1
    
    
    
    
    //plot 
    adrhigh10=plot((OPEN+(adr_10/2)) , title="ADR High10",style=circles,color=red,linewidth=2) 
    adrlow10=plot((OPEN-(adr_10/2)), title="ADR LOW10",style=circles, color=green,linewidth=2)
    //adrhigh9=plot((OPEN+(adr_9/2)) , title="ADR High9",style=circles,color=red,linewidth=2) 
    //adrlow9=plot((OPEN-(adr_9/2)), title="ADR LOW9",style=circles, color=green,linewidth=2)
    //adrhigh8=plot((OPEN+(adr_8/2)) , title="ADR High8",style=circles,color=red,linewidth=2) 
    //adrlow8=plot((OPEN-(adr_8/2)), title="ADR LOW8",style=circles, color=green,linewidth=2)
    //adrhigh7=plot((OPEN+(adr_7/2)) , title="ADR High7",style=circles,color=red,linewidth=2) 
    //adrlow7=plot((OPEN-(adr_7/2)), title="ADR LOW7",style=circles, color=green,linewidth=2)
    //adrhigh6=plot((OPEN+(adr_6/2)) , title="ADR High6",style=circles,color=red,linewidth=2) 
    //adrlow6=plot((OPEN-(adr_6/2)), title="ADR LOW6",style=circles, color=green,linewidth=2)
    adrhigh5=plot((OPEN+(adr_5/2)) , title="ADR High5",style=circles,color=red,linewidth=2) 
    adrlow5=plot((OPEN-(adr_5/2)), title="ADR LOW5",style=circles, color=green,linewidth=2)
    //adrhigh4=plot((OPEN+(adr_4/2)) , title="ADR High4",style=circles,color=red,linewidth=2) 
    //adrlow4=plot((OPEN-(adr_4/2)), title="ADR LOW4",style=circles, color=green,linewidth=2)
    //adrhigh3=plot((OPEN+(adr_3/2)) , title="ADR High3",style=circles,color=red,linewidth=2) 
    //adrlow3=plot((OPEN-(adr_3/2)), title="ADR LOW3",style=circles, color=green,linewidth=2)
    //adrhigh2=plot((OPEN+(adr_2/2)) , title="ADR High2",style=circles,color=red,linewidth=2) 
    //adrlow2=plot((OPEN-(adr_2/2)), title="ADR LOW2",style=circles, color=green,linewidth=2)
    //adrhigh1=plot((OPEN+(adr_1/2)) , title="ADR High1",style=circles,color=red,linewidth=2) 
    //adrlow1=plot((OPEN-(adr_1/2)), title="ADR LOW1",style=circles, color=green,linewidth=2)
    
    
    
    fill(adrlow10,adrlow5,color=lime)
    fill(adrhigh10,adrhigh5,color=maroon)
    //fill(adrlow2,adrlow9,color=lime)
    //fill(adrhigh2,adrhigh9,color=maroon)
    //fill(adrlow3,adrlow8,color=lime)
    //fill(adrhigh3,adrhigh8,color=maroon)
    //fill(adrlow4,adrlow7,color=lime)
    //fill(adrhigh4,adrhigh7,color=maroon)
    //fill(adrlow6,adrlow2,color=lime)
    //fill(adrhigh6,adrhigh2,color=maroon)
    
    #254776 quote
    Med5
    Participant
    Junior
    #254780 quote
    jacquesgermain
    Participant
    Senior
    Bonjour le voici (testé sur 15 minutes)
    DEFPARAM DRAWONLASTBARONLY = false
    
    // ===============================
    // Détection nouveau jour
    // ===============================
    newDay = DOpen(0) <> DOpen(1)
    
    // ===============================
    // Variables persistantes
    // ===============================
    ONCE buyDone  = 0
    ONCE sellDone = 0
    ONCE buyTouched  = 0
    ONCE sellTouched = 0
    
    IF newDay THEN
    buyDone = 0
    sellDone = 0
    buyTouched = 0
    sellTouched = 0
    ENDIF
    
    // ===============================
    // Calcul ADR
    // ===============================
    dailyOpen = DOpen(0)
    
    range1  = DHigh(1)  - DLow(1)
    range2  = DHigh(2)  - DLow(2)
    range3  = DHigh(3)  - DLow(3)
    range4  = DHigh(4)  - DLow(4)
    range5  = DHigh(5)  - DLow(5)
    range6  = DHigh(6)  - DLow(6)
    range7  = DHigh(7)  - DLow(7)
    range8  = DHigh(8)  - DLow(8)
    range9  = DHigh(9)  - DLow(9)
    range10 = DHigh(10) - DLow(10)
    
    adr10 = (range1+range2+range3+range4+range5+range6+range7+range8+range9+range10)/10
    adr5  = (range1+range2+range3+range4+range5)/5
    
    adrHigh10 = dailyOpen + adr10/2
    adrLow10  = dailyOpen - adr10/2
    adrHigh5  = dailyOpen + adr5/2
    adrLow5   = dailyOpen - adr5/2
    
    // ===============================
    // Tracé des zones (1 fois / jour)
    // ===============================
    IF newDay THEN
    lefta  = barindex
    righta = barindex + 1
    DRAWSEGMENT(lefta, adrHigh10, righta, adrHigh10) coloured("red")   STYLE(dottedline,2)
    DRAWSEGMENT(lefta, adrHigh5,  righta, adrHigh5 ) coloured("red")   STYLE(dottedline,2)
    DRAWRECTANGLE(lefta, adrHigh5,righta, adrHigh10)coloured(155,0,0,50)   FILLCOLOR(155,0,0,50)
    DRAWSEGMENT(lefta, adrLow10, righta, adrLow10) coloured("green") STYLE(dottedline,2)
    DRAWSEGMENT(lefta, adrLow5,  righta, adrLow5 ) coloured("green") STYLE(dottedline,2)
    DRAWRECTANGLE(lefta, adrLow5,righta, adrLow10)coloured(0,155,0,50)   FILLCOLOR(0,155,0,50)
    ENDIF
    
    // ===============================
    // LOGIQUE ACHAT (2 étapes)
    // ===============================
    IF buyTouched = 0 AND low <= adrLow10 THEN
    buyTouched = 1
    ENDIF
    
    buySignal = 0
    E=buyDone = 0 AND buyTouched = 1 AND close > adrLow5
    IF E  and not E[1] THEN
    buySignal = 1
    buyDone = 1
    DRAWARROWUP(barindex, low)coloured("green")
    ENDIF
    
    // ===============================
    // LOGIQUE VENTE (2 étapes)
    // ===============================
    IF sellTouched = 0 AND high >= adrHigh10 THEN
    sellTouched = 1
    ENDIF
    
    sellSignal = 0
    F=sellDone = 0 AND sellTouched = 1 AND close < adrHigh5
    IF F and not F[1] THEN
    sellSignal = 1
    sellDone = 1
    DRAWARROWDOWN(barindex,high)coloured("red")
    ENDIF
    
    RETURN
    
    robertogozzi, Med5, Iván González and Nicolas thanked this post
    #254793 quote
    Med5
    Participant
    Junior
    Merci beaucoup. C’est super d’avoir aussi ajouté la logique des signaux buy/sell Est-ce que tu l’utilises personnellement ?
    #254839 quote
    Med5
    Participant
    Junior
    Actuellement, ça trace plein de traits verticaux qui cachent les bougies. SVP Je voudrais juste avoir le cadre rectangle vide à l’intérieur pour que l’écran reste propre. Merci d’avance
    DEFPARAM DRAWONLASTBARONLY = false
    
    
    
    // ===============================
    
    // Détection nouveau jour
    
    // ===============================
    
    newDay = DOpen(0) <> DOpen(1)
    
    
    
    // ===============================
    
    // Variables persistantes
    
    // ===============================
    
    ONCE buyDone  = 0
    
    ONCE sellDone = 0
    
    ONCE buyTouched  = 0
    
    ONCE sellTouched = 0
    
    
    
    IF newDay THEN
    
    buyDone = 0
    
    sellDone = 0
    
    buyTouched = 0
    
    sellTouched = 0
    
    ENDIF
    
    
    
    // ===============================
    
    // Calcul ADR
    
    // ===============================
    
    dailyOpen = DOpen(0)
    
    
    
    range1  = DHigh(1)  - DLow(1)
    
    range2  = DHigh(2)  - DLow(2)
    
    range3  = DHigh(3)  - DLow(3)
    
    range4  = DHigh(4)  - DLow(4)
    
    range5  = DHigh(5)  - DLow(5)
    
    range6  = DHigh(6)  - DLow(6)
    
    range7  = DHigh(7)  - DLow(7)
    
    range8  = DHigh(8)  - DLow(8)
    
    range9  = DHigh(9)  - DLow(9)
    
    range10 = DHigh(10) - DLow(10)
    
    
    
    adr10 = (range1+range2+range3+range4+range5+range6+range7+range8+range9+range10)/10
    
    adr5  = (range1+range2+range3+range4+range5)/5
    
    
    
    adrHigh10 = dailyOpen + adr10/2
    
    adrLow10  = dailyOpen - adr10/2
    
    adrHigh5  = dailyOpen + adr5/2
    
    adrLow5   = dailyOpen - adr5/2
    
    
    
    // ===============================
    
    // Tracé des zones (1 fois / jour)
    
    // ===============================
    
    IF newDay THEN
    
    lefta  = barindex
    
    righta = barindex + 1
    
    
    
    // ZONE HAUTE : AUBERGINE (112, 41, 99)
    
    DRAWSEGMENT(lefta, adrHigh10, righta, adrHigh10) COLOURED(112, 41, 99, 150) STYLE(dottedline, 2)
    
    DRAWSEGMENT(lefta, adrHigh5, righta, adrHigh5) COLOURED(112, 41, 99, 150) STYLE(dottedline, 2)
    
    DRAWRECTANGLE(lefta, adrHigh5, righta, adrHigh10) COLOURED(112, 41, 99, 120) FILLCOLOR(112, 41, 99, 25)
    
    
    
    // ZONE BASSE : TURQUOISE (64, 224, 208)
    
    DRAWSEGMENT(lefta, adrLow10, righta, adrLow10) COLOURED(64, 224, 208, 150) STYLE(dottedline, 2)
    
    DRAWSEGMENT(lefta, adrLow5, righta, adrLow5) COLOURED(64, 224, 208, 150) STYLE(dottedline, 2)
    
    DRAWRECTANGLE(lefta, adrLow5, righta, adrLow10) COLOURED(64, 224, 208, 120) FILLCOLOR(64, 224, 208, 25)
    
    
    
    ENDIF
    
    
    
    // ===============================
    
    // LOGIQUE ACHAT (2 étapes)
    
    // ===============================
    
    IF buyTouched = 0 AND low <= adrLow10 THEN
    
    buyTouched = 1
    
    ENDIF
    
    
    
    buySignal = 0
    
    E = buyDone = 0 AND buyTouched = 1 AND close > adrLow5
    
    IF E AND NOT E[1] THEN
    
    buySignal = 1
    
    buyDone = 1
    
    DRAWARROWUP(barindex, low) COLOURED("green")
    
    ENDIF
    
    
    
    // ===============================
    
    // LOGIQUE VENTE (2 étapes)
    
    // ===============================
    
    IF sellTouched = 0 AND high >= adrHigh10 THEN
    
    sellTouched = 1
    
    ENDIF
    
    
    
    sellSignal = 0
    
    F = sellDone = 0 AND sellTouched = 1 AND close < adrHigh5
    
    IF F AND NOT F[1] THEN
    
    sellSignal = 1
    
    sellDone = 1
    
    DRAWARROWDOWN(barindex, high) COLOURED("red")
    
    ENDIF
    
    
    
    RETURN
    
    #254849 quote
    jacquesgermain
    Participant
    Senior
    Hello  si par exemple fond de graphe blanc remplacer
    DRAWRECTANGLE(lefta, adrHigh5, righta, adrHigh10) COLOURED(112, 41, 99, 120) FILLCOLOR(112, 41, 99, 25)
    
    par
    
    DRAWRECTANGLE(lefta, adrHigh5, righta, adrHigh10) COLOURED(255, 255, 255, 1) FILLCOLOR(112, 41, 99, 50)
    
    et
    
    DRAWRECTANGLE(lefta, adrLow5, righta, adrLow10) COLOURED(64, 224, 208, 120) FILLCOLOR(64, 224, 208, 25)
    
    par
    
    DRAWRECTANGLE(lefta, adrLow5, righta, adrLow10)COLOURED (255, 255, 255, 1)FILLCOLOR(64, 224, 208, 5)
      vous obtiendrez des traits verticaux plus discrets si fond d’une autre couleur adapter COLOURED(255, 255, 255, 1) sinon supprimer les 2 lignes drawrectangle et vous conserverez les segments hauts et bas…
    Iván González and Med5 thanked this post
    #254879 quote
    LaMaille
    Participant
    Junior
    Pour éviter d’avoir les hachures (plusieurs rectangles qui se superposent au fur et à mesure que les bougies s’additionnent au cours de la même journée), on peut faire cela (en ne gardant l’affichage que de la dernière journée) ; et si l’on veut afficher toutes les journée antérieures, il faut utiliser des tableaux…
    DEFPARAM DRAWONLASTBARONLY = true
    
    // ===============================
    // Détection nouveau jour
    // ===============================
    newDay = opentime = 010000
    
    // ===============================
    // Variables persistantes
    // ===============================
    ONCE buyDone  = 0
    ONCE sellDone = 0
    ONCE buyTouched  = 0
    ONCE sellTouched = 0
    
    IF newDay THEN
    lefta  = barindex
    buyDone = 0
    sellDone = 0
    buyTouched = 0
    sellTouched = 0
    ENDIF
    
    // ===============================
    // Calcul ADR
    // ===============================
    dailyOpen = DOpen(0)
    
    range1  = DHigh(1)  - DLow(1)
    range2  = DHigh(2)  - DLow(2)
    range3  = DHigh(3)  - DLow(3)
    range4  = DHigh(4)  - DLow(4)
    range5  = DHigh(5)  - DLow(5)
    range6  = DHigh(6)  - DLow(6)
    range7  = DHigh(7)  - DLow(7)
    range8  = DHigh(8)  - DLow(8)
    range9  = DHigh(9)  - DLow(9)
    range10 = DHigh(10) - DLow(10)
    
    adr10 = (range1+range2+range3+range4+range5+range6+range7+range8+range9+range10)/10
    adr5  = (range1+range2+range3+range4+range5)/5
    
    adrHigh10 = dailyOpen + adr10/2
    adrLow10  = dailyOpen - adr10/2
    adrHigh5  = dailyOpen + adr5/2
    adrLow5   = dailyOpen - adr5/2
    
    // ===============================
    // Tracé des zones (1 fois / jour)
    // ===============================
    
    righta = barindex + 1
    DRAWSEGMENT(lefta, adrHigh10, righta, adrHigh10) coloured("red")   STYLE(dottedline,2)
    DRAWSEGMENT(lefta, adrHigh5,  righta, adrHigh5 ) coloured("red")   STYLE(dottedline,2)
    DRAWRECTANGLE(lefta, adrHigh5,righta, adrHigh10)coloured(155,0,0,50)   FILLCOLOR(155,0,0,50)
    DRAWSEGMENT(lefta, adrLow10, righta, adrLow10) coloured("green") STYLE(dottedline,2)
    DRAWSEGMENT(lefta, adrLow5,  righta, adrLow5 ) coloured("green") STYLE(dottedline,2)
    DRAWRECTANGLE(lefta, adrLow5,righta, adrLow10)coloured(0,155,0,50)   FILLCOLOR(0,155,0,50)
    
    
    // ===============================
    // LOGIQUE ACHAT (2 étapes)
    // ===============================
    IF buyTouched = 0 AND low <= adrLow10 THEN
    buyTouched = 1
    ENDIF
    
    buySignal = 0
    E=buyDone = 0 AND buyTouched = 1 AND close > adrLow5
    IF E  and not E[1] THEN
    buySignal = 1
    buyDone = 1
    DRAWARROWUP(barindex, low)coloured("green")
    ENDIF
    
    // ===============================
    // LOGIQUE VENTE (2 étapes)
    // ===============================
    IF sellTouched = 0 AND high >= adrHigh10 THEN
    sellTouched = 1
    ENDIF
    
    sellSignal = 0
    F=sellDone = 0 AND sellTouched = 1 AND close < adrHigh5
    IF F and not F[1] THEN
    sellSignal = 1
    sellDone = 1
    DRAWARROWDOWN(barindex,high)coloured("red")
    ENDIF
    
    RETURN
    
    Med5 thanked this post
Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.

TradingView to ProRealTime Translation Center

New Reply
Author
author-avatar
Med5 @adilmed10 Participant
Summary

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

Topic Details
Forum: TradingView to ProRealTime Translation Center Forum
Started: 12/26/2025
Status: Active
Attachments: 1 files
Logo Logo
Loading...