Modificación de codigo

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

    Buenos días,

    Tengo este código Mensual en grafico de 15 minutos y necesito resolver dos cosas:

    1-no consigo que me coja como inicio horario las 01:00

    2- como saco la variable de volatilidad = 4 fuera del codigo como un parametro que pueda modificar??

    // Variables de configuración
    OpeningHour = 010010 // Hora de apertura          SI AQUI PONGO 010000 SE VA AL MES DE OCTUBRE EN LUGAR DE DICIEMBRE
    volatilidad = 4
    startDayOfMonth = 2 // Día del mes para empezar a dibujar la línea de apertura, ESTO LOTENGO ASÍ POR SI EL MES INICIA EN DIA FESTIVO
    openDayOfMonth = 2 // Día del mes para dibujar la línea de apertura

    TargetPercentage1 = 0.50 // Porcentaje objetivo 1
    TargetPercentage2 = -0.50 // Porcentaje objetivo 2
    TargetPercentage3 = 1 // Porcentaje objetivo 3
    TargetPercentage4 = -1 // Porcentaje objetivo 4

    AdjustedTargetPercentage1 = TargetPercentage1 * volatilidad
    AdjustedTargetPercentage2 = TargetPercentage2 * volatilidad
    AdjustedTargetPercentage3 = TargetPercentage3 * volatilidad
    AdjustedTargetPercentage4 = TargetPercentage4 * volatilidad

    // Variables internas
    // Definir dayofmonth correctamente para obtener el día del mes
    dayofmonth = day
    isFirstTradingDay = 0

    // Verificar el primer día hábil del mes a partir del día especificado

    IF dayofmonth = openDayOfMonth AND opentime >= OpeningHour AND opentime[1] < OpeningHour THEN
    LastMonthlyOpen = MonthlyOpen
    LastMonthlyIdx = MonthlyIdx
    LastTargetLevel1 = TargetLevel1
    LastTargetLevel2 = TargetLevel2
    LastTargetLevel3 = TargetLevel3
    LastTargetLevel4 = TargetLevel4

    MonthlyOpen = Open // Guardar el precio de apertura semanal
    MonthlyIdx = barindex
    TargetLevel1 = MonthlyOpen + (MonthlyOpen * AdjustedTargetPercentage1 / 100) // Calcular el nivel objetivo 1
    TargetLevel2 = MonthlyOpen + (MonthlyOpen * AdjustedTargetPercentage2 / 100) // Calcular el nivel objetivo 2
    TargetLevel3 = MonthlyOpen + (MonthlyOpen * AdjustedTargetPercentage3 / 100) // Calcular el nivel objetivo 3
    TargetLevel4 = MonthlyOpen + (MonthlyOpen * AdjustedTargetPercentage4 / 100) // Calcular el nivel objetivo 4

    ENDIF

    // Dibujar la línea del precio de apertura semanal en color naranja
    DRAWSEGMENT(LastMonthlyIdx, LastMonthlyOpen, MonthlyIdx, LastMonthlyOpen) COLOURED(127, 255, 0) style(dottedline)

    // Dibujar las líneas de los niveles objetivos
    DRAWSEGMENT(LastMonthlyIdx, LastTargetLevel1, MonthlyIdx, LastTargetLevel1) COLOURED(255, 165, 0) style(dottedline)
    DRAWSEGMENT(LastMonthlyIdx, LastTargetLevel2, MonthlyIdx, LastTargetLevel2) COLOURED(255, 165, 0) style(dottedline)
    DRAWSEGMENT(LastMonthlyIdx, LastTargetLevel3, MonthlyIdx, LastTargetLevel3) COLOURED(255, 165, 0) style(dottedline)
    DRAWSEGMENT(LastMonthlyIdx, LastTargetLevel4, MonthlyIdx, LastTargetLevel4) COLOURED(255, 165, 0) style(dottedline)

    IF islastbarupdate THEN
    // Dibujar la línea del precio de apertura semanal extendida en color naranja
    DRAWSEGMENT(MonthlyIdx, MonthlyOpen, barindex + 10, MonthlyOpen) COLOURED(127, 255, 0) style(line)

    // Dibujar las líneas de los niveles objetivos extendidas
    DRAWSEGMENT(MonthlyIdx, TargetLevel1, barindex + 10, TargetLevel1) COLOURED(255, 165, 0) style(line)
    DRAWSEGMENT(MonthlyIdx, TargetLevel2, barindex + 10, TargetLevel2) COLOURED(255, 165, 0) style(line)
    DRAWSEGMENT(MonthlyIdx, TargetLevel3, barindex + 10, TargetLevel3) COLOURED(255, 165, 0) style(line)
    DRAWSEGMENT(MonthlyIdx, TargetLevel4, barindex + 10, TargetLevel4) COLOURED(255, 165, 0) style(line)

    ENDIF

    RETURN

     

    Muchas Gracias y Felices fiestas

    #241726 quote
    Iván González
    Moderator
    Master

    Buenos días. Veo que ya habías generado un post relacionado con esto y te han contestado.

    Dibujar linea de apertura y dlinea a un porcentaje objetivo

    #241727 quote
    Amanav
    Participant
    New

    Disculpa es que lo había colocado en un sitio incorrecto.

    Y lo que me genera dudas, al ser un tema diferente, lo he puesto aquí.

    Puedo continuar por aquí o lo hago en el otro sitio??

    Gracias Iván.

    #241732 quote
    Iván González
    Moderator
    Master

    Como estamos hablando del mismo código y hay usuarios que ya han participado te recomiendo que sigas en el otro hilo.

    Amanav thanked this post
    #242007 quote
    larouedegann
    Participant
    Master

    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

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

Modificación de codigo


ProBuilder: Indicadores y Herramientas

New Reply
Author
author-avatar
Amanav @amanav Participant
Summary

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

Topic Details
Forum: ProBuilder: Indicadores y Herramientas
Language: Spanish
Started: 12/23/2024
Status: Active
Attachments: 2 files
Logo Logo
Loading...