Translation of “Trendline Breakouts With Targets” from TV

Forums ProRealTime English forum ProBuilder support Translation of “Trendline Breakouts With Targets” from TV

Viewing 1 post (of 1 total)
  • #240695

    Hello Ivan

    I see in Trading View and indicator that I think it is very useful on the low time frame, it indicates you the trendline and the brekout. I would like use this strategy with also your Indicator on Support / Demand. So whne the price arrive on a Support ( for example) timeframe 15m, and I see a brekout of tredinline 1 minute the bias is very High!

    I post here the TV code of “Trendline Breakouts With Targets”, please could you translate it in PRT?

    Thank you in advance! 🙂

    Franco

     

    // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © ChartPrime
    //@version=5
    indicator(“Trendline Breakouts With Targets [ Chartprime ]”,shorttitle = “TBT [ Chartprime ]”,overlay = true,max_bars_back = 500,max_lines_count = 500)
    bool ChartTime              = time > chart.left_visible_bar_time and time < chart.right_visible_bar_time
    string CORE                 =  “➞ Core Settings 🔸”
    var bool TradeisON          = false
    var bool LongTrade          = false
    var bool ShortTrade         = false
    var float TP                = 0.0
    var float SL                = 0.0
    int BarTIME                 = time – time[1]
    var line tpLine             = na
    var label LAB               = na
    var int UpdatedX            = 0
    var float UpdatedY          = 0.0
    var float UpdatedSLP        = 0.0
    var int UpdatedXLow         = 0
    var float UpdatedYLow       = 0.0
    var float UpdatedSLPLow     = 0.0
    int Period          = input.int(10, title=’     Period     ➞’,
         group = CORE,
         inline = “001”)
    bool Trendtype      = input.string(title = “     Type        ➞”,
          defval=’Wicks’,
          options=[‘Wicks’, ‘Body’],
          group = CORE,
          inline = “001”)
           == ‘Wicks’
    stringExtensions   =input.string(title=’     Extend    ➞’,
         defval=’  25′,
         options=[‘  25’, ‘  50’, ‘  75’],
         group = CORE,
         inline = “001”)
    color LineCol1 = input.color(color.rgb(109, 111, 111, 19),””,group = CORE,inline = “001”)
    bool ShowTargets = input.bool(true,”Show Targets”,group = CORE,inline = “002”)
    ExtenSwitcher(ex) =>
        switchex
            ‘  25’ => 1 ,
            ‘  50’ => 2 ,
            => 3
    WidthSwitcher(ex) =>
        switchex
            ‘1’ => 1 ,
            ‘2’ => 2 ,
            =>3
    StyleSwitcher(style) =>
        switchstyle
            ‘Dashed’ => line.style_dashed ,
            ‘Dotted’ => line.style_dotted ,
            =>line.style_solid
    method volAdj(int len)=>
        math.min(ta.atr(len) * 0.3, close * (0.3/100)) [20] /2
    Zband = volAdj(30)
    method Trendlines(float src, int timeIndex,bool dir) =>
        var int Start = 1 , var int End = 0 , var int TIME = 1
        var float YEnd = 0, var float YStart = 0 , var float Slope = 0
        var line Line1 = line.new(na,na,na,na)
        var line Line2 = line.new(na,na,na,na)
        var line Line3 = line.new(na,na,na,na)
        SCR = fixnan(src)
        if ta.change(SCR) != 0
            TIME := time[timeIndex]
            YStart := SCR[1]
            Start := TIME[1]
            Slope := (SCR – YStart) / (TIME – Start)
            Slope
        EXTime = ExtenSwitcher(Extensions) * BarTIME * 25
        End := TIME + EXTime
        YEnd := SCR + EXTime * Slope
        if ta.change(SCR) != 0 and not TradeisON[1]
            LineCond = Slope * time < 0 ? dir ? na : color.rgb(11, 139, 7, 53) : dir ?  color.rgb(212, 46, 0, 54) : na
            if not na(LineCond) //and ChartTime
                Line1 := line.new(Start,
                     YStart,
                     End,
                     YEnd,
                     xloc.bar_time,
                     extend.none,
                     color=color.new(color.white,100)
                     )
                Line2:=line.new(Start,
                     YStart – (Zband * 2),
                     End,
                     YEnd – (Zband * 2),
                     xloc.bar_time,
                     extend.none,
                     color=color.new(color.black,100)
                     )
                Line3:=line.new(Start,
                     YStart – (Zband * 1),
                     End,
                     YEnd – (Zband * 1),
                     xloc.bar_time,
                     extend.none,
                     color=color.new(color.black,100)
                     )
                linefill.new(Line3,Line2,color= LineCol1)
                linefill.new(Line3,Line1,color= LineCond)
                // linefill.new(Line,Line2,color= color.rgb(28, 15, 2, 76))
        [Start, YStart, Slope]
    PH = ta.pivothigh(Trendtype ? high : close > open ? close : open, Period, Period / 2)
    PL = ta.pivotlow(Trendtype ? low : close > open ? open : close, Period, Period / 2)
    method GetlinePrice(int TIME, float Price, float SLOP, int LookB) =>
        var float Current = 0.0
        EsTime = time – TIME
        Current := Price + (EsTime – LookB * BarTIME) * SLOP
        Current
    method CheckCross(float Price, int StartTime, float StartPrice, float SLP) =>
        var float Current = 0.0
        var float Previous = 0.0
        if StartPrice[Period] != StartPrice
            Current := GetlinePrice(StartTime, StartPrice, SLP, 0)
            Previous := GetlinePrice(StartTime, StartPrice, SLP, 1)
            Crossover =  Price[1] < Previous and Price > Current ? 1 : Price[1] > Previous – (Zband*0.1) and Price < Current – (Zband*0.1) ? -1 : 0
            Crossover
    [Xx, XZ, SLPXZ] = Trendlines(PH, Period / 2,false)
    [XxL, XZL, SLPXZL] = Trendlines(PL, Period / 2, true)
    if ta.change(fixnan(PH)) != 0
        UpdatedX := Xx
        UpdatedY := XZ
        UpdatedSLP := SLPXZ
        UpdatedSLP
    if ta.change(fixnan(PL)) != 0
        UpdatedXLow := XxL
        UpdatedYLow := XZL
        UpdatedSLPLow := SLPXZL
        UpdatedSLPLow
    Long = not (UpdatedSLP * time > 0)
         and CheckCross(close, UpdatedX, UpdatedY, UpdatedSLP)== 1
         and not TradeisON
    Short = not (UpdatedSLPLow * time < 0)
         and CheckCross(close, UpdatedXLow, UpdatedYLow, UpdatedSLPLow)==-1
         and not TradeisON
    TradeFire = Long or Short
    if Long and not TradeisON
        LongTrade:= true
        ShortTrade:= false
    if Short and not TradeisON
        LongTrade:= false
        ShortTrade:= true
    iftrue
        if TradeFire and not TradeisON
            TP := switch
                Long  => high + (Zband *20)
                Short => low – (Zband *20)
            SL := switch
                Long  => low – (Zband *20)
                Short => high + (Zband *20)
            TradeisON:= true
            if ShowTargets
                line.new(bar_index,
                     Long ? high : low,
                     bar_index,
                     TP,
                     width=2,
                     color = color.rgb(154, 103, 20),
                     style= line.style_dashed)
                tpLine:= line.new(bar_index,
                     TP,
                     bar_index+2,
                     TP,
                     style= line.style_dashed,
                     color = color.rgb(154, 103, 20)
                     )
                LAB:=label.new(bar_index,
                     TP,
                     “Target”,
                     color = color.rgb(154, 103, 20),
                     style= label.style_label_left,
                     size=size.small,
                     textcolor = color.white
                     )
        if TradeisON
            line.set_x2(tpLine,bar_index)
            label.set_x(LAB,bar_index+1)
        if LongTrade and TradeisON
            if high >= TP
                label.set_color(LAB,color.rgb(6, 128, 10, 37))
                TradeisON:=false
            if close <= SL
                label.set_color(LAB,color.new(color.rgb(246, 7, 7),70))
                TradeisON:=false
        else if ShortTrade and TradeisON
            iflow<=TP
                label.set_color(LAB,color.rgb(6, 128, 10, 37))
                TradeisON:=false
            ifclose>=SL
                label.set_color(LAB,color.new(color.rgb(246, 7, 7),70))
                TradeisON:=false
    plotshape(Long and not TradeisON[1],
         size = size.small,
         color = color.rgb(46, 192, 6, 11),
         location = location.belowbar,
         style = shape.labelup ,
         text = “”,
         textcolor = color.white)
    plotshape(Short and not TradeisON[1],
         size = size.small,
         color = color.rgb(241, 2, 2, 11),
         location = location.abovebar,
         style = shape.labeldown ,
         text = “”,
         textcolor = color.white)
    // — END — .
Viewing 1 post (of 1 total)

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