Conversión indicador EMA 9/21 con Precio Objetivo

Forums ProRealTime foro Español Soporte ProBuilder Conversión indicador EMA 9/21 con Precio Objetivo

Viewing 8 posts - 1 through 8 (of 8 total)
  • #226412

    Solicito si es posible, ayuda para intentar convertir el indicador adjunto.

    Dicho indicador procede de Tradingview , utilizando arrays. Esencialmente, solo combina 2  EMA  ( 9 y  21, totalmente configurables lógicamente) con un análisis basado en ATR para calcular el rango promedio que experimenta el precio después de un cruce de EMA 9 / 21 bien al alza o a la baja.

    La longitud del ATR está predeterminada en 500, pero una vez más indico que es personalizable.

    Adjunto gráfico y código:

    // © Steversteves
    //@version=5
    indicator(“EMA 9/21 with Target Price [SS]”, overlay=true)
    arraylookback =     input.float(500, “ATR Lookback Length”)
    showlbls =          input.bool(true, “Show Target Price Labels”)
    ema9=ta.ema(close,9)
    ema21=ta.ema(close,21)
    // determine the crossover points
    ema9_cross_ema21 = ta.crossover(ema9, ema21)
    ema21_cross_ema9 = ta.crossover(ema21, ema9)
    // plot arrows on the chart at the crossover points
    plotshape(ema9_cross_ema21 ? close : na, title=”Up Arrow”, location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green)
    plotshape(ema21_cross_ema9 ? close : na, title=”Down Arrow”, location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red)
    // sentiment
    boolbullish=close>=ema9andclose>=ema21
    boolbearish=close<=ema9andclose<=ema21
    boolneutral=close<ema9andclose>ema21
    // define colours
    bull =          color.new(color.lime, 50)
    bear=          color.new(color.red,50)
    white=         color.white
    neutralcolor=color.new(color.gray,50)
    crossovercolor = color.new(color.purple, 75)
    crossundercolor=color.new(color.orange,75)
    color pallette = bullish ? bull : bearish ? bear : neutralcolor
    coloremacolor=ema9_cross_ema21?crossovercolor:ema21_cross_ema9?crossundercolor:pallette
    filla=plot(ema9,color=emacolor,linewidth=1)
    fillb = plot(ema21, color=emacolor, linewidth=1)
    fill(filla, fillb, color=pallette)
    boolabove_ema=close>=ema9andclose>=ema21
    boolbelow_ema=close<ema9andclose<=ema21
    boolcrossover=ema9_cross_ema21
    boolcrossunder=ema21_cross_ema9
    bull_a=array.new_float()
    open_a=array.new_float()
    crossover_a=array.new_float()
    crossunder_a=array.new_float()
    bear_a=array.new_float()
    fori=0toarraylookback
        ifabove_ema[i]
            array.push(bull_a,close[i])
        ifcrossover[i]
            array.push(crossover_a, close[i])
            array.push(open_a,open[i])
        ifbelow_ema[i]
            array.push(bear_a,close[i])
        ifcrossunder[i]
            array.push(crossunder_a,close[i])
    max_above=array.max(bull_a)
    crossover_avg=array.avg(crossover_a)
    max_below=array.min(bear_a)
    crossunder_avg=array.avg(crossunder_a)
    bull_dif1=(max_above-crossover_avg)/2
    bull_dif2=(max_above-crossover_avg)
    bear_dif1=(crossunder_avg-max_below)/2
    bear_dif2=(crossunder_avg-max_below)
    floatop=0.0
    floatbull_tgt=0.0
    floatbull_tgt_2=0.0
    floatbear_tgt=0.0
    floatbear_tgt_2=0.0
    varlabelbull_tgt_1_lbl=na
    varlabelbull_tgt_2_lbl=na
    varlabelbear_tgt_1_lbl=na
    varlabelbear_tgt_2_lbl=na
    var line bull_tgt_lin = na
    varlinebull_tgt_lin_2=na
    varlinebear_tgt_lin=na
    varlinebear_tgt_lin_2=na
    ifcrossover
        if array.size(open_a) > 0
            op:=array.get(open_a,0)
        bull_tgt := op + bull_dif1
        bull_tgt_2 := op + bull_dif2
    ifcrossunder
        ifarray.size(open_a)>0
            op:=array.get(open_a,0)
        bear_tgt:=op-bear_dif1
        bear_tgt_2:=op-bear_dif2
    if crossover and barstate.isconfirmed
        line.delete(bull_tgt_lin)
        line.delete(bull_tgt_lin_2)
        label.delete(bull_tgt_1_lbl)
        label.delete(bull_tgt_2_lbl)
        bull_tgt_lin := line.new(bar_index[1], y1 = bull_tgt, x2= bar_index, y2 = bull_tgt, extend = extend.right, color = bull, width=3)
        bull_tgt_lin_2 := line.new(bar_index[1], y1 = bull_tgt_2, x2= bar_index, y2 = bull_tgt_2, extend = extend.right, color = bull, width=3)
        ifshowlbls
            bull_tgt_1_lbl := label.new(bar_index[1], y = bull_tgt, text = “Bull Target 1 \n” + str.tostring(math.round(bull_tgt,2)), color = bull, textcolor = white)
            bull_tgt_2_lbl := label.new(bar_index[1], y = bull_tgt_2, text = “Bull Target 2 \n” + str.tostring(math.round(bull_tgt_2,2)), color = bull, textcolor = white)
    if crossunder and barstate.isconfirmed
        line.delete(bear_tgt_lin)
        line.delete(bear_tgt_lin_2)
        label.delete(bear_tgt_1_lbl)
        label.delete(bear_tgt_2_lbl)
        bear_tgt_lin:=line.new(bar_index[1],y1=bear_tgt,x2=bar_index,y2=bear_tgt,extend=extend.right,color=bear,width=3)
        bear_tgt_lin_2 := line.new(bar_index[1], y1 = bear_tgt_2, x2= bar_index, y2 = bear_tgt_2, extend = extend.right, color = bear, width=3)
        if showlbls
            bear_tgt_1_lbl := label.new(bar_index[1], y = bear_tgt, text = “Bear Target 1 \n” + str.tostring(math.round(bear_tgt,2)), color = bear, style=label.style_label_up, textcolor = white)
            bear_tgt_2_lbl := label.new(bar_index[1], y = bear_tgt_2, text = “Bear Target 2 \n” + str.tostring(math.round(bear_tgt_2,2)), color = bear, style=label.style_label_up, textcolor = white)
    alertcondition(crossover,”EMA 9/21 Crossover”,”Bullish Cross”)
    alertcondition(crossunder, “EMA 9/21 Crossunder”, “Bearish Cross”)
    #226415

    No incrustes documentos (imágenes y otros archivos) en tus publicaciones, ya que esto ralentizará la carga de la página.

    Utilice únicamente el botón “select file”.

    Gracias 🙂

    #226421

    Uff, lo siento

    #226732

    Buenas tardes, he intentado convertir yo mismo el indicador, pero dado mi desconocimiento de las arrays me indica lo siguiente: “se espera un campo entero positivo para SRC” y creo que es por algo relacionado con las arrays.

    Podría alguien ayudarme.

    Muchas gracias por anticipado.

     

     

    #228015

    Alguien podría decirme u orientarme por favor, si mi intento de programación del indicador que solicité, tiene algo que ver con el.

    Realmente me da error y no me representa nada.

    Siento ser tan pesado.

    #228024

    Hola
    Le echo un vistazo y te digo.
    Ten en cuenta que hay bastantes solicitudes de traducción de tradingview a Prt.

    #228027

    Muchas gracias Iván, tranquilo, cuando puedas.

     

    #228075
Viewing 8 posts - 1 through 8 (of 8 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login