Traduction Code pine tradingwiew

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

    bonjour,

    est ce quelqu’un pourrait m’aider à traduire ce code pine tradinwiew

    merci

    // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © AlgoAlpha
    
    //@version=5
    indicator(title="Momentum Bias Index [AlgoAlpha]", timeframe="", timeframe_gaps=false)
    source = input(close, title="Source")
    momentumLength = input.int(10, minval=1, title="Momentum Length")
    biasLength = input.int(5, minval=1, title="Bias Length")
    smoothLength = input.int(10, minval=1, title="Smooth Length")
    impulseBoundaryLength = input.int(30, minval=1, title="Impulse Boundary Length")
    stdDevMultiplier = input.float(3.0, minval=1, title="Standard Deviation Multiplier")
    smoothIndicator = input.bool(true, "Smooth Indicator")
    overlayMode = input.bool(false, "Overlay Mode")
    colorUp = input.color(#00ffbb, "Up Color")
    colorSecondaryUp = input.color(#008461, "Secondary Up Color")
    colorDown = input.color(#ff1100, "Down Color")
    colorSecondaryDown = input.color(#840900, "Secondary Down Color")
    
    momentum = source - source[momentumLength]
    stdDev = momentum / (ta.ema(high - low, momentumLength)) * 100
    momentumUp = math.max(stdDev, 0)
    momentumDown = math.min(stdDev, 0)
    momentumUpBias = smoothIndicator ? math.max(ta.hma(math.sum(momentumUp, biasLength), smoothLength), 0) : math.sum(momentumUp, biasLength) 
    momentumDownBias = smoothIndicator ? math.max(ta.hma(-math.sum(momentumDown, biasLength), smoothLength), 0) : -math.sum(momentumDown, biasLength) 
    averageBias = math.avg(momentumDownBias, momentumUpBias)
    
    chg1 = momentumUpBias*0.80
    chg2 = momentumUpBias*0.60
    chg3 = momentumUpBias*0.40
    chg4 = momentumUpBias*0.20
    chg1a = momentumDownBias*0.80
    chg2a = momentumDownBias*0.60
    chg3a = momentumDownBias*0.40
    chg4a = momentumDownBias*0.20
    boundary = ta.ema(averageBias, impulseBoundaryLength) + ta.stdev(averageBias, impulseBoundaryLength) * stdDevMultiplier
    
    bullishSignal = ta.crossunder(momentumDownBias, momentumDownBias[1]) and momentumDownBias > boundary and momentumDownBias > momentumUpBias
    bearishSignal = ta.crossunder(momentumUpBias, momentumUpBias[1]) and momentumUpBias > boundary and momentumUpBias > momentumDownBias
    
    candleColor = overlayMode ? (momentumUpBias > momentumDownBias ? colorUp : momentumUpBias < momentumDownBias ? colorDown : color.gray) : na
    transp = 20
    
    plot(momentumUpBias > momentumUpBias[1] ? momentumUpBias : na, color = momentumUpBias > momentumUpBias[1] ? colorUp : colorSecondaryUp, style = plot.style_columns, display = not overlayMode ? display.all : display.none)
    plot(momentumDownBias > momentumDownBias[1] ? momentumDownBias : na, color = momentumDownBias > momentumDownBias[1] ? colorDown : colorSecondaryDown, style = plot.style_columns, display = not overlayMode ? display.all : display.none)
    
    plot(momentumUpBias < momentumUpBias[1] ? momentumUpBias : na, color = color.new(colorSecondaryUp, transp+60), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumUpBias < momentumUpBias[1] ? chg1 : na, color = color.new(colorSecondaryUp, transp+55), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumUpBias < momentumUpBias[1] ? chg2 : na, color = color.new(colorSecondaryUp, transp+45), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumUpBias < momentumUpBias[1] ? chg3 : na, color = color.new(colorSecondaryUp, transp+30), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumUpBias < momentumUpBias[1] ? chg4 : na, color = color.new(colorSecondaryUp, transp+25), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumUpBias < momentumUpBias[1] ? momentumUpBias : na, color = color.new(colorUp, transp), style = plot.style_linebr, display = not overlayMode ? display.all : display.none)
    
    plot(momentumDownBias < momentumDownBias[1] ? momentumDownBias : na, color = color.new(colorSecondaryDown, transp+60), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumDownBias < momentumDownBias[1] ? chg1a : na, color = color.new(colorSecondaryDown, transp+55), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumDownBias < momentumDownBias[1] ? chg2a : na, color = color.new(colorSecondaryDown, transp+45), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumDownBias < momentumDownBias[1] ? chg3a : na, color = color.new(colorSecondaryDown, transp+30), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumDownBias < momentumDownBias[1] ? chg4a : na, color = color.new(colorSecondaryDown, transp+25), style = plot.style_columns, linewidth = 4, display = not overlayMode ? display.all : display.none)
    plot(momentumDownBias < momentumDownBias[1] ? momentumDownBias : na, color = color.new(colorDown, transp), style = plot.style_linebr, display = not overlayMode ? display.all : display.none)
    
    plot(boundary, style = plot.style_circles, color = color.gray, display = not overlayMode ? display.all : display.none)
    
    plotshape(bullishSignal ? momentumDownBias * 1.2 : na, title = "Bullish TP Signal", color = color.new(colorUp, 30), textcolor = color.rgb(255, 255, 255), text = "TP", style = shape.labelup, location = location.belowbar, size = size.tiny, display = overlayMode ? display.all : display.none)
    plotshape(bearishSignal ? momentumUpBias * 1.2 : na, title = "Bearish TP Signal", color = color.new(colorDown, 30), textcolor = color.rgb(255, 255, 255), text = "TP", style = shape.labeldown, location = location.abovebar, size = size.tiny, display = overlayMode ? display.all : display.none)
    plotchar(bullishSignal ? momentumDownBias * 1.2 : na, "Bullish TP Signal", "X", location.absolute, color = color.new(colorUp, 30), size = size.tiny, display = not overlayMode ? display.all : display.none)
    plotchar(bearishSignal ? momentumUpBias * 1.2 : na, "Bearish TP Signal", "X", location.absolute, color = color.new(colorDown, 30), size = size.tiny, display = not overlayMode ? display.all : display.none)
    
    plotcandle(open, high, low, close, "Candle Color", candleColor, candleColor, bordercolor = candleColor, display = overlayMode ? display.all : display.none)
    
    #241901 quote
    jacquesgermain
    Participant
    Senior

    Bonjour

    par exemple :

    momentumLength = 10
    biasLength = 5
    smoothLength = 10
    impulseBoundaryLength = 30
    stdDevMultiplier = 3.0
    smoothIndicator =1
    // Calcul de Momentum et Déviation Standard
    moment = close – close[momentumLength]
    stdDev = moment / ExponentialAverage[momentumLength](high – low) * 100
    momentumUp = max(stdDev, 0)
    momentumDown = min(stdDev, 0)

    // Calcul des sommes avec une boucle
    sumMomentumUp = 0
    sumMomentumDown = 0
    FOR i = 0 TO biasLength – 1 DO
    sumMomentumUp = sumMomentumUp + momentumUp[i]
    sumMomentumDown = sumMomentumDown + momentumDown[i]
    NEXT
    // Lissage et calcul des biais
    IF smoothIndicator=1 THEN
    smoothedMomentumUp = HullAverage[smoothLength](momentumUp)
    smoothedMomentumDown = HullAverage[smoothLength](momentumDown)
    momentumUpBias = max(smoothedMomentumUp, 0)
    momentumDownBias = max(-smoothedMomentumDown, 0)
    ELSE
    momentumUpBias = max(sumMomentumUp, 0)
    momentumDownBias = max(-sumMomentumDown, 0)
    ENDIF
    // Moyenne des biais
    averageBias = (momentumDownBias + momentumUpBias) / 2
    // Calcul de la limite (boundary)
    boundary = ExponentialAverage[impulseBoundaryLength](averageBias) + STD[impulseBoundaryLength](averageBias) * stdDevMultiplier
    // Affichage des signaux
    bullishSignal = momentumDownBias < momentumDownBias[1] AND momentumDownBias > boundary AND momentumDownBias > momentumUpBias
    bearishSignal = momentumUpBias < momentumUpBias[1] AND momentumUpBias > boundary AND momentumUpBias > momentumDownBias
    IF bullishSignal and not bullishSignal[1] THEN
    DRAWTEXT(“X”, barindex, momentumDownBias + 0.2 * momentumDownBias, dialog, bold, 14) coloured(0, 175, 0)
    ENDIF
    IF bearishSignal and not bearishSignal[1] THEN
    DRAWTEXT(“X”, barindex, momentumUpBias + 0.2 * momentumUpBias, dialog, bold, 14) coloured(150, 0, 0)
    ENDIF
    if momentumUpBias > momentumUpBias[1] then
    r = 0
    g = 150
    b = 0
    endif
    if momentumUpBias < momentumUpBias[1] then
    r =0
    g =255
    b =0
    endif
    if momentumDownBias > momentumDownBias[1] then
    r =150
    g = 0
    b = 0
    endif
    if momentumDownBias < momentumDownBias[1] then
    r =255
    g = 0
    b =0
    endif
    RETURN boundary as “boundary”, momentumUpBias coloured(r, g, b) style(histogram, 1) as “momentumUp”, momentumDownBias coloured(r,g,b) style(histogram, 1) as “momentumDown”

    #241977 quote
    larouedegann
    Participant
    Master

    bravo et merci pour ton travail que j’aurai été incapable de faire.

    Toujours dans l’esprit de faire bien il y a quelques discordances dans les couleurs.

    ci-joint 2 mêmes graphiques PRT et tradingview ou l’on s’aperçoit

    • si les barres plus foncés pourraient etre en premier puis les barres plus claires (vert ou rouge)
    • il y a des barres rouges qui n’ont rien à faire dans le trend haussier (voir graphique)

    Peut etre avec le boudary mais je ne sais pas ?

    merci

    #241980 quote
    jacquesgermain
    Participant
    Senior

    bonjour

    ok pour les couleurs claires en 1er  :

    momentumLength = 10
    biasLength = 5
    smoothLength = 10
    impulseBoundaryLength = 30
    stdDevMultiplier = 3.0
    smoothIndicator =1
    // Calcul de Momentum et Déviation Standard
    moment = close – close[momentumLength]
    stdDev = moment / ExponentialAverage[momentumLength](high – low) * 100
    momentumUp = max(stdDev, 0)
    momentumDown = min(stdDev, 0)

    // Calcul des sommes avec une boucle
    sumMomentumUp = 0
    sumMomentumDown = 0
    FOR i = 0 TO biasLength – 1 DO
    sumMomentumUp = sumMomentumUp + momentumUp[i]
    sumMomentumDown = sumMomentumDown + momentumDown[i]
    NEXT
    // Lissage et calcul des biais
    IF smoothIndicator=1 THEN
    smoothedMomentumUp = HullAverage[smoothLength](momentumUp)
    smoothedMomentumDown = HullAverage[smoothLength](momentumDown)
    momentumUpBias = max(smoothedMomentumUp, 0)
    momentumDownBias = max(-smoothedMomentumDown, 0)
    ELSE
    momentumUpBias = max(sumMomentumUp, 0)
    momentumDownBias = max(-sumMomentumDown, 0)
    ENDIF
    // Moyenne des biais
    averageBias = (momentumDownBias + momentumUpBias) / 2
    // Calcul de la limite (boundary)
    boundary = ExponentialAverage[impulseBoundaryLength](averageBias) + STD[impulseBoundaryLength](averageBias) * stdDevMultiplier
    // Affichage des signaux
    bullishSignal = momentumDownBias < momentumDownBias[1] AND momentumDownBias > boundary AND momentumDownBias > momentumUpBias
    bearishSignal = momentumUpBias < momentumUpBias[1] AND momentumUpBias > boundary AND momentumUpBias > momentumDownBias
    IF bullishSignal and not bullishSignal[1] THEN
    DRAWTEXT(“X”, barindex, momentumDownBias + 0.2 * momentumDownBias, dialog, bold, 14) coloured(0, 175, 0)
    ENDIF
    IF bearishSignal and not bearishSignal[1] THEN
    DRAWTEXT(“X”, barindex, momentumUpBias + 0.2 * momentumUpBias, dialog, bold, 14) coloured(150, 0, 0)
    ENDIF
    if momentumUpBias > momentumUpBias[1] then
    r = 0
    g = 255
    b = 0
    endif
    if momentumUpBias < momentumUpBias[1] then
    r =0
    g =150
    b =0
    endif
    if momentumDownBias > momentumDownBias[1] then
    r =255
    g = 0
    b = 0
    endif
    if momentumDownBias < momentumDownBias[1] then
    r =150
    g = 0
    b =0
    endif
    RETURN boundary as “boundary”, momentumUpBias coloured(r, g, b) style(histogram, 1) as “momentumUp”, momentumDownBias coloured(r,g,b) style(histogram, 1) as “momentumDown”

    #241981 quote
    jacquesgermain
    Participant
    Senior

    pour le deuxième problème ( barres rouges qui n’ont rien à faire dans le trend haussier ) indicateur à tester avec ajout de la suppression des conflits de couleurs dans les tendances :

    momentumLength = 10
    biasLength = 5
    smoothLength = 10
    impulseBoundaryLength = 30
    stdDevMultiplier = 3.0
    smoothIndicator =1
    // Calcul de Momentum et Déviation Standard
    moment = close – close[momentumLength]
    stdDev = moment / ExponentialAverage[momentumLength](high – low) * 100
    momentumUp = max(stdDev, 0)
    momentumDown = min(stdDev, 0)
    // Calcul des sommes avec une boucle
    sumMomentumUp = 0
    sumMomentumDown = 0
    FOR i = 0 TO biasLength – 1 DO
    sumMomentumUp = sumMomentumUp + momentumUp[i]
    sumMomentumDown = sumMomentumDown + momentumDown[i]
    NEXT
    // Lissage et calcul des biais
    IF smoothIndicator=1 THEN
    smoothedMomentumUp = HullAverage[smoothLength](momentumUp)
    smoothedMomentumDown = HullAverage[smoothLength](momentumDown)
    momentumUpBias = max(smoothedMomentumUp, 0)
    momentumDownBias = max(-smoothedMomentumDown, 0)
    ELSE
    momentumUpBias = max(sumMomentumUp, 0)
    momentumDownBias = max(-sumMomentumDown, 0)
    ENDIF
    // Moyenne des biais
    averageBias = (momentumDownBias + momentumUpBias) / 2
    // Calcul de la limite (boundary)
    boundary = ExponentialAverage[impulseBoundaryLength](averageBias) + STD[impulseBoundaryLength](averageBias) * stdDevMultiplier
    // Affichage des signaux
    bullishSignal = momentumDownBias < momentumDownBias[1] AND momentumDownBias > boundary AND momentumDownBias > momentumUpBias
    bearishSignal = momentumUpBias < momentumUpBias[1] AND momentumUpBias > boundary AND momentumUpBias > momentumDownBias
    IF bullishSignal and not bullishSignal[1] THEN
    DRAWTEXT(“X”, barindex, momentumDownBias + 0.2 * momentumDownBias, dialog, bold, 14) coloured(0, 175, 0)
    ENDIF
    IF bearishSignal and not bearishSignal[1] THEN
    DRAWTEXT(“X”, barindex, momentumUpBias + 0.2 * momentumUpBias, dialog, bold, 14) coloured(150, 0, 0)
    ENDIF
    if momentumUpBias > momentumUpBias[1] then
    r = 0
    g = 255
    b = 0
    elsif momentumUpBias < momentumUpBias[1] then
    r = 0
    g = 150
    b = 0
    endif
    if momentumDownBias > momentumDownBias[1] then
    r = 255
    g = 0
    b = 0
    elsif momentumDownBias < momentumDownBias[1] then
    r = 150
    g = 0
    b = 0
    endif

    // Suppression des conflits de couleurs dans les tendances :
    if trend = 1 then
    // État haussier – bars rouges interdites
    r = 0
    g = max(g, 150) // Force le vert
    elsif trend = -1 then
    // État baissier – bars vertes interdites
    r = max(r, 150)
    g = 0
    endif

    RETURN boundary as “boundary”, momentumUpBias coloured(r, g, b) style(histogram, 1) as “momentumUp”, momentumDownBias coloured(r,g,b) style(histogram, 1) as “momentumDown”

    #241983 quote
    larouedegann
    Participant
    Master

    Merci pour les couleurs

    par contre le deuxième probleme doit etre plus complexe

    car il peut exister des barres vertes dans un trend baissier et inversement .

    #242037 quote
    jacquesgermain
    Participant
    Senior

    Bonjour   voir fichier attaché on est à l’identique avec tradingview à tester …

    #242076 quote
    larouedegann
    Participant
    Master
    // Suppression des conflits de couleurs dans les tendances :
    if trend = 1 then
    // État haussier – bars rouges interdites
    r = 0
    g = max(g, 150) // Force le vert
    elsif trend = -1 then
    // État baissier – bars vertes interdites
    r = max(r, 150)
    g = 0
    endif

    excuse moi , mais je n’ai pas de “trend” dans le code…..
    J’ai essayé avec “bullishsignal” et “bearish signal” mais ça ne fonctionne pas.
    tu peux me le réécrire svp
    merci

    #242084 quote
    jacquesgermain
    Participant
    Senior

    peux tu préciser ce que tu demandes car dans ma dernière version qui donne le même résultat que celui de tradingview la variable trend ne sert plus à rien …

    momentumLength = 10
    biasLength = 5
    smoothLength = 10
    impulseBoundaryLength = 30
    stdDevMultiplier = 3
    smoothIndicator =smoothIndicator
    // Calcul de Momentum et Déviation Standard
    moment = close – close[momentumLength]
    stdDev = moment / ExponentialAverage[momentumLength](high – low) * 100
    momentumUp = max(stdDev, 0)
    momentumDown = min(stdDev, 0)
    // Calcul des sommes avec une boucle
    sumMomentumUp = 0
    sumMomentumDown = 0
    FOR i = 0 TO biasLength – 1 DO
    sumMomentumUp = sumMomentumUp + momentumUp[i]
    sumMomentumDown = sumMomentumDown + momentumDown[i]
    NEXT
    // Lissage et calcul des biais avec HMA intégrée
    IF smoothIndicator=1 THEN
    // Calcul de la Hull Moving Average (HMA) pour momentumUp
    wmaHalfUp = WeightedAverage[ROUND(smoothLength / 2)](momentumUp)
    wmaFullUp = WeightedAverage[smoothLength](momentumUp)
    hullIntermediateUp = 2 * wmaHalfUp – wmaFullUp
    smoothedMomentumUp = WeightedAverage[ROUND(SQRT(smoothLength))](hullIntermediateUp)
    // Calcul de la Hull Moving Average (HMA) pour momentumDown
    wmaHalfDown = WeightedAverage[ROUND(smoothLength / 2)](momentumDown)
    wmaFullDown = WeightedAverage[smoothLength](momentumDown)
    hullIntermediateDown = 2 * wmaHalfDown – wmaFullDown
    smoothedMomentumDown = WeightedAverage[ROUND(SQRT(smoothLength))](hullIntermediateDown)
    momentumUpBias = max(smoothedMomentumUp, 0)
    momentumDownBias = max(-smoothedMomentumDown, 0)
    ELSE
    IF smoothIndicator=0 THEN
    momentumUpBias = max(sumMomentumUp, 0)
    momentumDownBias = max(-sumMomentumDown, 0)
    ENDIF
    ENDIF
    // Moyenne des biais
    averageBias = (momentumDownBias + momentumUpBias) / 2
    // Calcul de la limite (boundary)
    boundary = ExponentialAverage[impulseBoundaryLength](averageBias) + STD[impulseBoundaryLength](averageBias) * stdDevMultiplier
    // Affichage des signaux
    bullishSignal = momentumDownBias < momentumDownBias[1] AND momentumDownBias > boundary AND momentumDownBias > momentumUpBias
    bearishSignal = momentumUpBias < momentumUpBias[1] AND momentumUpBias > boundary AND momentumUpBias > momentumDownBias
    IF bullishSignal AND NOT bullishSignal[1] THEN
    DRAWTEXT(“X”, barindex, momentumDownBias + 0.2 * momentumDownBias, dialog, bold, 14) COLOURED(0, 175, 0)
    ENDIF
    IF bearishSignal AND NOT bearishSignal[1] THEN
    DRAWTEXT(“X”, barindex, momentumUpBias + 0.2 * momentumUpBias, dialog, bold, 14) COLOURED(150, 0, 0)
    ENDIF
    // Initialisation de la variable trend
    //trend = 0
    //IF bullishSignal THEN
    //trend = 1
    //ELSIF bearishSignal THEN
    //trend = -1
    //ENDIF
    // Gestion des couleurs pour momentumUpBias et momentumDownBias
    IF momentumUpBias > momentumUpBias[1] AND NOT (momentumDownBias > momentumDownBias[1]) THEN
    // Couleur verte vive
    r = 0
    g = 255
    b = 0
    ELSIF momentumUpBias < momentumUpBias[1] AND NOT (momentumDownBias < momentumDownBias[1]) THEN
    // Couleur verte atténuée
    r = 0
    g = 150
    b = 0
    ELSIF momentumDownBias > momentumDownBias[1] AND NOT (momentumUpBias > momentumUpBias[1]) THEN
    // Couleur rouge vive
    r = 255
    g = 0
    b = 0
    ELSIF momentumDownBias < momentumDownBias[1] AND NOT (momentumUpBias < momentumUpBias[1]) THEN
    // Couleur rouge atténuée
    r = 150
    g = 0
    b = 0
    ENDIF

    // Suppression des conflits de couleurs dans les tendances
    //IF trend = 1 THEN
    // État haussier – force le vert
    //r = 0
    //g = max(g, 150)
    //ELSIF trend = -1 THEN
    // État baissier – force le rouge
    //r = max(r, 150)
    //g = 0
    //ENDIF
    // Application des couleurs aux histogrammes
    RETURN boundary COLOURED(0, 0, 150) STYLE(DOTTEDLINE2) AS “boundary”,momentumUpBias COLOURED(r, g, b) STYLE(histogram, 1) AS “momentumUp”,momentumDownBias COLOURED(r, g, b) STYLE(histogram, 1) AS “momentumDown”,momentumUpBias COLOURED(r, g, b) STYLE(line, 1) AS “lmomentumUp”,momentumDownBias COLOURED(r, g, b) STYLE(line, 1) AS “lmomentumDown”

    Iván González thanked this post
    #242154 quote
    larouedegann
    Participant
    Master

    Désolé je n’avais pas vu le fichier itf sous les graphiques.
    Tout est OK . Merci à toi
    Ce serait bien de le mettre en librairie

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

Traduction Code pine tradingwiew


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
Summary

This topic contains 9 replies,
has 2 voices, and was last updated by larouedegann
1 year, 1 month ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 12/29/2024
Status: Active
Attachments: 8 files
Logo Logo
Loading...