convert tradingview code to amibroker

Forums ProRealTime English forum ProBuilder support convert tradingview code to amibroker

Viewing 2 posts - 1 through 2 (of 2 total)
  • #205249
    // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © LonesomeTheBlue
    //@version=4
    study(“Trend Lines v2”, overlay=true, max_bars_back = 4000)
    startyear = input(defval = 2020, title = “Start Year”)
    startmonth = input(defval = 1, title = “Start Month”)
    startday = input(defval = 1, title = “Start day”)
    prd = input(defval = 20, title=”Pivot Period”, minval = 10, maxval = 50)
    PPnum = input(defval = 3, title=”Number of Pivot Points to check”, minval = 2, maxval = 6)
    utcol = input(defval = color.lime, title = “Colors”, inline = “tcol”)
    dtcol = input(defval = color.red, title = “”, inline = “tcol”)
    float ph = pivothigh(prd, prd)
    float pl = pivotlow(prd, prd)
    var tval = array.new_float(PPnum)
    var tpos = array.new_int(PPnum)
    var bval = array.new_float(PPnum)
    var bpos = array.new_int(PPnum)
    add_to_array(apointer1, apointer2, val)=>
        array.unshift(apointer1, val)
        array.unshift(apointer2, bar_index)
        array.pop(apointer1)
        array.pop(apointer2)
    if ph
        add_to_array(tval, tpos, ph)
    if pl
        add_to_array(bval, bpos, pl)
    // line definitions
    maxline = 3
    var bln = array.new_line(maxline, na)
    var tln = array.new_line(maxline, na)
    // loop for pivot points to check if there is possible trend line
    countlinelo = 0
    countlinehi = 0
    starttime = timestamp(startyear, startmonth, startday, 0, 0, 0)
    if time >= starttime
        for x = 0 to maxline – 1
            line.delete(array.get(bln, x))
            line.delete(array.get(tln, x))
        forp1=0toPPnum-2
            uv1 = 0.0
            uv2 = 0.0
            up1 = 0
            up2 = 0
            if countlinelo <= maxline
                for p2 = PPnum – 1 to p1 + 1
                    val1 = array.get(bval, p1)
                    val2 = array.get(bval, p2)
                    pos1 = array.get(bpos, p1)
                    pos2 = array.get(bpos, p2)
                    if val1 > val2
                        diff = (val1 – val2) / (pos1 – pos2)
                        hline = val2 + diff
                        lloc = bar_index
                        lval = low
                        valid = true
                        for x = pos2 + 1 – prd to bar_index
                            if close[bar_index – x] < hline
                                valid := false
                                break
                            lloc := x
                            lval := hline
                            hline := hline + diff
                        if valid
                            uv1 := hline – diff
                            uv2 := val2
                            up1 := lloc
                            up2 := pos2
                            break
            dv1 = 0.0
            dv2 = 0.0
            dp1 = 0
            dp2 = 0
            if countlinehi <= maxline
                for p2 = PPnum – 1 to p1 + 1
                    val1 = array.get(tval, p1)
                    val2 = array.get(tval, p2)
                    pos1 = array.get(tpos, p1)
                    pos2 = array.get(tpos, p2)
                    if val1 < val2
                        diff = (val2 – val1) / float(pos1 – pos2)
                        hline = val2 – diff
                        lloc = bar_index
                        lval = high
                        valid = true
                        for x = pos2 + 1 – prd to bar_index
                            if close[bar_index – x] > hline
                                valid := false
                                break
                            lloc := x
                            lval := hline
                            hline := hline – diff
                        if valid
                            dv1 := hline + diff
                            dv2 := val2
                            dp1 := lloc
                            dp2 := pos2
                            break
            // if there is continues uptrend line then draw it
            if up1 != 0 and up2 != 0 and countlinelo < maxline
                countlinelo += 1
                array.set(bln, countlinelo – 1, line.new(up2 – prd, uv2, up1, uv1, color = utcol))
            // if there is continues downtrend line then draw it
            if dp1 != 0 and dp2 != 0 and countlinehi < maxline
                countlinehi += 1
                array.set(tln, countlinehi – 1, line.new(dp2 – prd, dv2, dp1, dv1, color = dtcol))
    #205252

    Free conversions are only available FROM other platforms TO ProRealTime.

    The other way round (or among different platforms) is available only as paid services at https://www.prorealcode.com/trading-programming-services/.

     

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

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