HOLA a todos,
publiqué en el sitio francés un codigo tradingwiew para transformarlo en prorealtime
” Momentum Bias Index”
// 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)
Traducido por jeangermain y le agradezco. ci dessous le code prorealtime
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"
Hay diferencias entre tradig wiew y PRT (ver archivos)
gracias por su ayuda