Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //playing with new Pinecoders 'visible chart' library
- //Fib box for OTE on visible chart only (61.8% - 78.6%)
- //Thanks to Pinecoder's for the example code in their 'VisibleChart' library, Which this is based on.
- //@twingall
- import PineCoders/VisibleChart/4
- //@version=5
- indicator("OTE visible chart", overlay = true)
- showFibBox = input.bool(true, "show Fib Box", group = "OTE box", inline = "2")
- boxColor = input.color(color.new(color.yellow, 82), "", group = "OTE box", inline = "2")
- showText = input.bool(false, "show Text",group = "OTE box", inline = "2")
- showHighLowLines=input.bool(true, "show high/low lines", group = "fib retracements",inline = "3")
- showMidline =input.bool(true, "show Midline", group = "fib retracements",inline = "4")
- show61eight=input.bool(false, "show 61.8 line", group = "fib retracements",inline = "5")
- show78six=input.bool(false, "show 78.6 line", group = "fib retracements",inline = "6")
- show88six=input.bool(false, "show 88.6 line", group = "fib retracements",inline = "7")
- showfibExt1=input.bool(false,"show Fib Ext 1", group ="fib extensions",inline="8")
- showfibExt2=input.bool(false,"show Fib Ext 2", group ="fib extensions",inline="9")
- lineColor = input.color(color.rgb(217, 76, 217), "", group = "fib retracements",inline = "3")
- _88sixColor = input.color(color.green, "", group = "fib retracements",inline = "7")
- midlineColor = input.color(color.gray,"", group = "fib retracements",inline = "4")
- _61eightColor = input.color(color.green, "", group = "fib retracements",inline = "5")
- _78sixColor = input.color(color.green, "", group = "fib retracements",inline = "6")
- fibExt1Color=input.color(color.red,"", group ="fib extensions",inline="8")
- fibExt2Color=input.color(color.red,"", group ="fib extensions",inline="9")
- fibExt1=input.float(1.618, "", group ="fib extensions",inline="8")
- fibExt2=input.float(2.0, "", group ="fib extensions",inline="9")
- showExtLabels=input.bool(false,"show extension labels", group ="fib extensions",inline="10")
- // Chart's high and low values and their time x-coordinate.
- float chartHigh = VisibleChart.high()
- float chartLow = VisibleChart.low()
- int highTime = VisibleChart.highBarTime()
- int lowTime = VisibleChart.lowBarTime()
- int leftTime = math.min(highTime, lowTime)
- int rightTime = math.max(highTime, lowTime)
- bool isBull = lowTime < highTime
- colorNone = color.new(color.white,100)
- // Function to manage fib lines. It declares fib lines and label the first time it is called, then sets their properties on subsequent calls.
- fibLine(series color fibColor, series float fibLevel) =>
- float fibRatio = fibLevel / 100
- float fibPrice = isBull ? chartLow + ((chartHigh - chartLow) * fibRatio) :
- chartHigh - ((chartHigh - chartLow) * fibRatio)
- var line fibLine = line.new(na, na, na, na, xloc.bar_time, extend.right, fibColor, line.style_dotted, 2)
- line.set_xy1(fibLine, leftTime, fibPrice)
- line.set_xy2(fibLine, rightTime, fibPrice)
- //Function for Fib Extension lines..
- fibExt(series color fibColor, series float fibLevel, bool _showExt) =>
- float fibRatio = fibLevel / 100
- float fibPrice = isBull ? chartLow - ((chartHigh - chartLow) * fibRatio) :
- chartHigh + ((chartHigh - chartLow) * fibRatio)
- float fibLabel = (fibLevel /100)+1
- var line fibLine = line.new(na, na, na, na, xloc.bar_time, extend.right, fibColor, line.style_dotted, 2)
- line.set_xy1(fibLine, leftTime, fibPrice)
- line.set_xy2(fibLine, rightTime, fibPrice)
- var label fibExtLabel = label.new(na, na, "", xloc.bar_time, yloc.price, color(na), label.style_label_up, _showExt? fibColor:colorNone)
- label.set_xy(fibExtLabel, int(math.avg(leftTime, rightTime)), fibPrice)
- label.set_text(fibExtLabel, str.format("{0, number, #.###} ({1})", fibLabel , str.tostring(fibPrice, format.mintick)))
- //Fib Box function; similar to the above but highlighting the area between 2 fib levels
- fibBox(series color fibColor, series float fibLevel_1, series float fibLevel_2) =>
- float fibRatio_1 = fibLevel_1 / 100
- float fibPrice_1 = isBull ? chartLow + ((chartHigh - chartLow) * fibRatio_1) : chartHigh - ((chartHigh - chartLow) * fibRatio_1)
- float fibRatio_2 = fibLevel_2 / 100
- float fibPrice_2 = isBull ? chartLow + ((chartHigh - chartLow) * fibRatio_2) : chartHigh - ((chartHigh - chartLow) * fibRatio_2)
- var b = box.new(na, na, na, na, xloc=xloc.bar_time, border_style=line.style_dashed, extend = extend.right, border_color=colorNone, text_color=color.new(color.gray,70), text_halign=text.align_right)
- box.set_lefttop(b, leftTime, fibPrice_1)
- box.set_rightbottom(b, rightTime,fibPrice_2)
- box.set_bgcolor(b, fibColor)
- box.set_text(b, text = showText? "OTE":"")
- // Display code that only runs on the last bar but displays visuals on visible bars, wherever they might be in the dataset.
- if barstate.islast
- //declare/define Fib lines and decalare/define Fib Box
- fibLine(lineColor, 100)
- fibLine(showMidline?midlineColor :colorNone, 50)
- fibLine(lineColor, 0)
- fibBox(showFibBox?boxColor:colorNone, 21.4, 38.2)
- //more fib lines
- fibLine(show88six?_88sixColor:colorNone, 11.4)
- fibLine(show61eight?_61eightColor:colorNone, 38.2)
- fibLine(show78six?_78sixColor:colorNone, 21.2)
- //fibLine(show88six?_88sixColor:colorNone, 88.6)
- //fibLine(show61eight?_61eightColor:colorNone, 61.8)
- //fibLine(show78six?_78sixColor:colorNone, 78.6)
- //extensions
- if barstate.islast and showfibExt1
- fibExt(fibExt1Color, (fibExt1*100)-100, showExtLabels)
- if barstate.islast and showfibExt2
- fibExt(fibExt2Color, (fibExt2*100)-100, showExtLabels)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement