convert tradingview code to amibroker

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #205249 quote
    chess5
    Participant
    New
    // 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 quote
    robertogozzi
    Moderator
    Master

    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)
  • You must be logged in to reply to this topic.

convert tradingview code to amibroker


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
chess5 @chess5 Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by robertogozzi
3 years, 2 months ago.

Topic Details
Forum: ProBuilder: Indicators & Custom Tools
Language: English
Started: 12/04/2022
Status: Active
Attachments: No files
Logo Logo
Loading...