LNEAS DE TENDENCIA CON BREAKOUTS EN RSI ****************************************

Forums ProRealTime foro Español Soporte ProBuilder LNEAS DE TENDENCIA CON BREAKOUTS EN RSI ****************************************

Viewing 7 posts - 1 through 7 (of 7 total)
  • #227597

    Hola a todos,

    he estado buscando un indicador que dibuje las lineas de tendencia y marque los breakouts en un RSI, pero no he encontrado nada en el foro. Conocéis alguno o similar a éste de Tradingview. Podéis transcribirlo a ProRealcode?, porque con mis conocimientos no he podido transcribirlo.

    Gracias

    ————————————————————————–

    // © HoanGhetti
    //@version=5
    indicator(“RSI Trendlines with Breakouts [HG]”, precision = 2, max_labels_count = 500, max_lines_count = 500)
    import HoanGhetti/SimpleTrendlines/3 as tl
    g_trendlines    = ‘Trendline Settings’, g_conditions = ‘Conditions’,  g_styling = ‘Styling’, g_timeframe = ‘Timeframe’
    input_timeframe = input.timeframe(defval = ”, title = ‘Timeframe’, group = g_timeframe)
    input_pLen      = input.int(defval = 4, title = ‘Lookback Range’, minval = 1, group = g_trendlines, tooltip = ‘How many bars to determine when a swing high/low is detected.’)
    input_rLen      = input.int(defval = 14, title = ‘RSI Length’ , minval = 1, group = g_trendlines)
    input_rSrc      = input.source(defval = close, title = ‘RSI Source’, group = g_trendlines)
    input_repaint   = input.string(defval = ‘On’, title = ‘Repainting’, group = g_conditions, options = [‘On’, ‘Off: Bar Confirmation’], tooltip = ‘Bar Confirmation: Generates alerts when candle closes. (1 Candle Later)’)
    input_rsiDiff   = input.int(defval = 3, title = ‘RSI Difference’, group = g_conditions, tooltip = ‘The difference between the current RSI value and the breakout value.\n\nHow much higher in value should the current RSI be compared to the breakout value in order to detect a breakout?’)
    input_rsiCol    = input.color(defval = color.blue, title = ‘RSI Color’, group = g_styling)
    input_width     = input.int(defval = 2, title = ‘Line Width’, minval = 1, group = g_styling)
    input_lblType   = input.string(defval = ‘Simple’, title = ‘Label Type’, group = g_styling, options = [‘Full’, ‘Simple’])
    input_lblSize   = input.string(defval = size.small, title = ‘Label Size’, group = g_styling, options = [size.huge, size.large, size.normal, size.small, size.tiny])
    input_pLowCol   = input.color(defval = color.red, title = ‘Pivot Low’, inline = ‘col’, group = g_styling)
    input_pHighCol  = input.color(defval = #089981, title = ‘Pivot High’, inline = ‘col’, group = g_styling)
    input_override  = input.bool(defval = false, title = ‘Override Text Color’, group = g_styling, inline = ‘override’)
    input_overCol   = input.color(defval = color.white, title = ‘ ‘, group = g_styling, inline = ‘override’)
    lblText = switch input_lblType
        ‘Simple’ => ‘Br’
        ‘Full’   => ‘Break’
    repaint = switch input_repaint
        ‘On’ => true
        ‘Off: Bar Confirmation’ => false
    rsi_v = ta.rsi(input_rSrc, input_rLen)
    rsi = input_timeframe == ” ? rsi_v : request.security(syminfo.tickerid, input_timeframe, rsi_v, lookahead = barmerge.lookahead_on)
    pl = fixnan(ta.pivotlow(rsi, 1, input_pLen))
    ph = fixnan(ta.pivothigh(rsi, 1, input_pLen))
    pivot(float pType) =>
        pivot = pType == pl ? pl : ph
        xAxis = ta.valuewhen(ta.change(pivot), bar_index, 0) – ta.valuewhen(ta.change(pivot), bar_index, 1)
        prevPivot = ta.valuewhen(ta.change(pivot), pivot, 1)
        pivotCond = ta.change(pivot) and (pType == pl ? pivot > prevPivot : pivot < prevPivot)
        pData = tl.new(x_axis = xAxis, offset = input_pLen, strictMode = true, strictType = pType == pl ? 0 : 1)
        pData.drawLine(pivotCond, prevPivot, pivot, rsi)
        pData
    breakout(tl.Trendline this, float pType) =>
        var bool hasCrossed = false
        if ta.change(this.lines.startline.get_y1())
            hasCrossed := false
        this.drawTrendline(not hasCrossed)
        condType = (pType == pl ? rsi < this.lines.trendline.get_y2() – input_rsiDiff : rsi > this.lines.trendline.get_y2() + input_rsiDiff) and not hasCrossed
        condition = repaint ? condType : condType and barstate.isconfirmed
        if condition
            hasCrossed := true
            this.lines.startline.set_xy2(this.lines.trendline.get_x2(), this.lines.trendline.get_y2())
            this.lines.trendline.set_xy2(na, na)
            this.lines.startline.copy()
            label.new(
                 bar_index,
                 this.lines.startline.get_y2(),
                 text=lblText,color=pType==pl?color.new(input_pLowCol,50) :color.new(input_pHighCol,50),
                 size=input_lblSize,style=pType==pl?label.style_label_lower_left:label.style_label_upper_left,
                 textcolor = pType == pl ? (input_override ? input_overCol : input_pLowCol) : input_override ? input_overCol : input_pHighCol)
        hasCrossed
    method style(tl.Trendline this, color col) =>
        this.lines.startline.set_color(col)
        this.lines.startline.set_width(input_width)
        this.lines.trendline.set_color(col)
        this.lines.trendline.set_width(input_width)
        this.lines.trendline.set_style(line.style_dashed)
    plData = pivot(pl)
    phData = pivot(ph)
    plData.style(input_pLowCol)
    phData.style(input_pHighCol)
    cu = breakout(plData, pl)
    co = breakout(phData, ph)
    hline(70, title = ‘Overbought’, color = input_pHighCol, linestyle = hline.style_dotted)
    hline(30, title = ‘Oversold’, color = input_pLowCol, linestyle = hline.style_dotted)
    plot(rsi, title = ‘Relative Strength Index’, linewidth = 2, color = input_rsiCol)
    alertcondition(ta.change(plData.lines.startline.get_y1()), ‘New Pivot Low Trendline’)
    alertcondition(ta.change(cu) and cu, ‘Pivot Low Breakout’)
    alertcondition(ta.change(phData.lines.startline.get_y1()), ‘New Pivot High Trendline’)
    alertcondition(ta.change(co) and co, ‘Pivot High Breakout’)
    #227686

    holà
    aqui esta el codigo utilizado para cualquier discrepancia en obv rsi macd

    1 user thanked author for this post.
    #227910

    Hola larouedegann, muchísimas gracias por responder, pero tu indicador muestra las divergencias no los breakouts tal y cómo muestra la imagen que adjunté.

    Muchas gracias de todos modos

    #228409

    Buenas tardes
    Aquí tienes el indicador mostrando los breakouts del RSI.

    1 user thanked author for this post.
    #228410

    Muchas gracias Iván, tremendo trabajo. Magnífico. Esto es lo que buscaba. Mil gracias.

    #228701

    Agregué dos opciones del código original (repintar y rsiDiff) y simplifiqué el anidamiento de condiciones.

    1 user thanked author for this post.
    #228708

    Muchas gracias Lucas. Muy buena y práctica la mejora. Saludos.

Viewing 7 posts - 1 through 7 (of 7 total)

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