Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
- // © danielx888
- //@version=5
- indicator("Tomo's Flat Fibs", overlay=true)
- i_pivotLen = input.int(20, 'Pivot Length/Lookback', 1,3999,1)
- i_colorNeg = input.color(color.green, 'Color for Buy Lines')
- i_colorPos = input.color(color.red, 'Color for Sell Lines')
- show_num = input.bool(true, 'Show Numbers')
- show_pivots = input.bool(true, 'Show Pivots')
- show1 = input.bool(true, '', inline='g1', group='The Magic Numbers')
- num1 = input.int(600,'', minval=0, inline='g1', group='The Magic Numbers')
- show2 = input.bool(true, '', inline='g1', group='The Magic Numbers')
- num2 = input.int(1000,'', minval=0, inline='g1', group='The Magic Numbers')
- show3 = input.bool(true, '', inline='g2', group='The Magic Numbers')
- num3 = input.int(1400,'', minval=0, inline='g2', group='The Magic Numbers')
- show4 = input.bool(true, '', inline='g2', group='The Magic Numbers')
- num4 = input.int(1900,'', minval=0, inline='g2', group='The Magic Numbers')
- show5 = input.bool(true, '', inline='g3', group='The Magic Numbers')
- num5 = input.int(2700,'', minval=0, inline='g3', group='The Magic Numbers')
- show6 = input.bool(true, '', inline='g3', group='The Magic Numbers')
- num6 = input.int(3400,'', minval=0, inline='g3', group='The Magic Numbers')
- show7 = input.bool(true, '', inline='g4', group='The Magic Numbers')
- num7 = input.int(4000,'', minval=0, inline='g4', group='The Magic Numbers')
- show8 = input.bool(true, '', inline='g4', group='The Magic Numbers')
- num8 = input.int(4800,'', minval=0, inline='g4', group='The Magic Numbers')
- LABEL_COLOR = color.new(color.black, 100)
- ph = ta.pivothigh(i_pivotLen, i_pivotLen)
- pl = ta.pivotlow(i_pivotLen, i_pivotLen)
- barsSincePH = ta.barssince(ph)
- barsSincePL = ta.barssince(pl)
- var float ph_val = 0.0
- var float pl_val = 0.0
- if ph
- ph_val := high[i_pivotLen]
- if pl
- pl_val := low[i_pivotLen]
- n1 = ph_val - num1
- n2 = ph_val - num2
- n3 = ph_val - num3
- n4 = ph_val - num4
- n5 = ph_val - num5
- n6 = ph_val - num6
- n7 = ph_val - num7
- n8 = ph_val - num8
- p1 = pl_val + num1
- p2 = pl_val + num2
- p3 = pl_val + num3
- p4 = pl_val + num4
- p5 = pl_val + num5
- p6 = pl_val + num6
- p7 = pl_val + num7
- p8 = pl_val + num8
- h1 = high - num1
- h2 = high - num2
- h3 = high - num3
- h4 = high - num4
- h5 = high - num5
- h6 = high - num6
- h7 = high - num7
- h8 = high - num8
- l1 = low + num1
- l2 = low + num2
- l3 = low + num3
- l4 = low + num4
- l5 = low + num5
- l6 = low + num6
- l7 = low + num7
- l8 = low + num8
- var ln1 = show1 ? line.new(bar_index - i_pivotLen, n1, bar_index + 30, n1, color=i_colorNeg, extend=extend.right) : na
- var ln2 = show2 ? line.new(bar_index - i_pivotLen, n2, bar_index + 30, n2, color=i_colorNeg, extend=extend.right) : na
- var ln3 = show3 ? line.new(bar_index - i_pivotLen, n3, bar_index + 30, n3, color=i_colorNeg, extend=extend.right) : na
- var ln4 = show4 ? line.new(bar_index - i_pivotLen, n4, bar_index + 30, n4, color=i_colorNeg, extend=extend.right) : na
- var ln5 = show5 ? line.new(bar_index - i_pivotLen, n5, bar_index + 30, n5, color=i_colorNeg, extend=extend.right) : na
- var ln6 = show6 ? line.new(bar_index - i_pivotLen, n6, bar_index + 30, n6, color=i_colorNeg, extend=extend.right) : na
- var ln7 = show7 ? line.new(bar_index - i_pivotLen, n7, bar_index + 30, n7, color=i_colorNeg, extend=extend.right) : na
- var ln8 = show8 ? line.new(bar_index - i_pivotLen, n8, bar_index + 30, n8, color=i_colorNeg, extend=extend.right) : na
- var lp1 = show1 ? line.new(bar_index - i_pivotLen, p1, bar_index + 30, p1, color=i_colorPos, extend=extend.right) : na
- var lp2 = show2 ? line.new(bar_index - i_pivotLen, p2, bar_index + 30, p2, color=i_colorPos, extend=extend.right) : na
- var lp3 = show3 ? line.new(bar_index - i_pivotLen, p3, bar_index + 30, p3, color=i_colorPos, extend=extend.right) : na
- var lp4 = show4 ? line.new(bar_index - i_pivotLen, p4, bar_index + 30, p4, color=i_colorPos, extend=extend.right) : na
- var lp5 = show5 ? line.new(bar_index - i_pivotLen, p5, bar_index + 30, p5, color=i_colorPos, extend=extend.right) : na
- var lp6 = show6 ? line.new(bar_index - i_pivotLen, p6, bar_index + 30, p6, color=i_colorPos, extend=extend.right) : na
- var lp7 = show7 ? line.new(bar_index - i_pivotLen, p7, bar_index + 30, p7, color=i_colorPos, extend=extend.right) : na
- var lp8 = show8 ? line.new(bar_index - i_pivotLen, p8, bar_index + 30, p8, color=i_colorPos, extend=extend.right) : na
- var label labelN1 = show1 and show_num ? label.new(bar_index - i_pivotLen, n1, '-' + str.tostring(num1), textcolor=i_colorNeg, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelN2 = show2 and show_num ? label.new(bar_index - i_pivotLen, n2, '-' + str.tostring(num2), textcolor=i_colorNeg, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelN3 = show3 and show_num ? label.new(bar_index - i_pivotLen, n3, '-' + str.tostring(num3), textcolor=i_colorNeg, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelN4 = show4 and show_num ? label.new(bar_index - i_pivotLen, n4, '-' + str.tostring(num4), textcolor=i_colorNeg, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelN5 = show5 and show_num ? label.new(bar_index - i_pivotLen, n5, '-' + str.tostring(num5), textcolor=i_colorNeg, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelN6 = show6 and show_num ? label.new(bar_index - i_pivotLen, n6, '-' + str.tostring(num6), textcolor=i_colorNeg, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelN7 = show7 and show_num ? label.new(bar_index - i_pivotLen, n7, '-' + str.tostring(num7), textcolor=i_colorNeg, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelN8 = show8 and show_num ? label.new(bar_index - i_pivotLen, n8, '-' + str.tostring(num8), textcolor=i_colorNeg, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelP1 = show1 and show_num ? label.new(bar_index - i_pivotLen, p1, '+' + str.tostring(num1), textcolor=i_colorPos, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelP2 = show2 and show_num ? label.new(bar_index - i_pivotLen, p2, '+' + str.tostring(num2), textcolor=i_colorPos, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelP3 = show3 and show_num ? label.new(bar_index - i_pivotLen, p3, '+' + str.tostring(num3), textcolor=i_colorPos, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelP4 = show4 and show_num ? label.new(bar_index - i_pivotLen, p4, '+' + str.tostring(num4), textcolor=i_colorPos, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelP5 = show5 and show_num ? label.new(bar_index - i_pivotLen, p5, '+' + str.tostring(num5), textcolor=i_colorPos, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelP6 = show6 and show_num ? label.new(bar_index - i_pivotLen, p6, '+' + str.tostring(num6), textcolor=i_colorPos, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelP7 = show7 and show_num ? label.new(bar_index - i_pivotLen, p7, '+' + str.tostring(num7), textcolor=i_colorPos, color=LABEL_COLOR, style=label.style_label_right) : na
- var label labelP8 = show8 and show_num ? label.new(bar_index - i_pivotLen, p8, '+' + str.tostring(num8), textcolor=i_colorPos, color=LABEL_COLOR, style=label.style_label_right) : na
- if ph
- line.set_x1(ln1, bar_index - i_pivotLen)
- line.set_x2(ln1, bar_index + 30)
- line.set_y1(ln1, n1)
- line.set_y2(ln1, n1)
- line.set_x1(ln2, bar_index - i_pivotLen)
- line.set_x2(ln2, bar_index + 30)
- line.set_y1(ln2, n2)
- line.set_y2(ln2, n2)
- line.set_x1(ln3, bar_index - i_pivotLen)
- line.set_x2(ln3, bar_index + 30)
- line.set_y1(ln3, n3)
- line.set_y2(ln3, n3)
- line.set_x1(ln4, bar_index - i_pivotLen)
- line.set_x2(ln4, bar_index + 30)
- line.set_y1(ln4, n4)
- line.set_y2(ln4, n4)
- line.set_x1(ln5, bar_index - i_pivotLen)
- line.set_x2(ln5, bar_index + 30)
- line.set_y1(ln5, n5)
- line.set_y2(ln5, n5)
- line.set_x1(ln6, bar_index - i_pivotLen)
- line.set_x2(ln6, bar_index + 30)
- line.set_y1(ln6, n6)
- line.set_y2(ln6, n6)
- line.set_x1(ln7, bar_index - i_pivotLen)
- line.set_x2(ln7, bar_index + 30)
- line.set_y1(ln7, n7)
- line.set_y2(ln7, n7)
- line.set_x1(ln8, bar_index - i_pivotLen)
- line.set_x2(ln8, bar_index + 30)
- line.set_y1(ln8, n8)
- line.set_y2(ln8, n8)
- label.set_xy(labelN1, bar_index - i_pivotLen, n1)
- label.set_xy(labelN2, bar_index - i_pivotLen, n2)
- label.set_xy(labelN3, bar_index - i_pivotLen, n3)
- label.set_xy(labelN4, bar_index - i_pivotLen, n4)
- label.set_xy(labelN5, bar_index - i_pivotLen, n5)
- label.set_xy(labelN6, bar_index - i_pivotLen, n6)
- label.set_xy(labelN7, bar_index - i_pivotLen, n7)
- label.set_xy(labelN8, bar_index - i_pivotLen, n8)
- if pl
- line.set_x1(lp1, bar_index - i_pivotLen)
- line.set_x2(lp1, bar_index + 30)
- line.set_y1(lp1, p1)
- line.set_y2(lp1, p1)
- line.set_x1(lp2, bar_index - i_pivotLen)
- line.set_x2(lp2, bar_index + 30)
- line.set_y1(lp2, p2)
- line.set_y2(lp2, p2)
- line.set_x1(lp3, bar_index - i_pivotLen)
- line.set_x2(lp3, bar_index + 30)
- line.set_y1(lp3, p3)
- line.set_y2(lp3, p3)
- line.set_x1(lp4, bar_index - i_pivotLen)
- line.set_x2(lp4, bar_index + 30)
- line.set_y1(lp4, p4)
- line.set_y2(lp4, p4)
- line.set_x1(lp5, bar_index - i_pivotLen)
- line.set_x2(lp5, bar_index + 30)
- line.set_y1(lp5, p5)
- line.set_y2(lp5, p5)
- line.set_x1(lp6, bar_index - i_pivotLen)
- line.set_x2(lp6, bar_index + 30)
- line.set_y1(lp6, p6)
- line.set_y2(lp6, p6)
- line.set_x1(lp7, bar_index - i_pivotLen)
- line.set_x2(lp7, bar_index + 30)
- line.set_y1(lp7, p7)
- line.set_y2(lp7, p7)
- line.set_x1(lp8, bar_index - i_pivotLen)
- line.set_x2(lp8, bar_index + 30)
- line.set_y1(lp8, p8)
- line.set_y2(lp8, p8)
- label.set_xy(labelP1, bar_index - i_pivotLen, p1)
- label.set_xy(labelP2, bar_index - i_pivotLen, p2)
- label.set_xy(labelP3, bar_index - i_pivotLen, p3)
- label.set_xy(labelP4, bar_index - i_pivotLen, p4)
- label.set_xy(labelP5, bar_index - i_pivotLen, p5)
- label.set_xy(labelP6, bar_index - i_pivotLen, p6)
- label.set_xy(labelP7, bar_index - i_pivotLen, p7)
- label.set_xy(labelP8, bar_index - i_pivotLen, p8)
- if high > ta.highest(high[1], nz(barsSincePH) + i_pivotLen)
- line.set_x1(ln1, bar_index)
- line.set_x2(ln1, bar_index + 30)
- line.set_y1(ln1, h1)
- line.set_y2(ln1, h1)
- line.set_x1(ln2, bar_index)
- line.set_x2(ln2, bar_index + 30)
- line.set_y1(ln2, h2)
- line.set_y2(ln2, h2)
- line.set_x1(ln3, bar_index)
- line.set_x2(ln3, bar_index + 30)
- line.set_y1(ln3, h3)
- line.set_y2(ln3, h3)
- line.set_x1(ln4, bar_index)
- line.set_x2(ln4, bar_index + 30)
- line.set_y1(ln4, h4)
- line.set_y2(ln4, h4)
- line.set_x1(ln5, bar_index)
- line.set_x2(ln5, bar_index + 30)
- line.set_y1(ln5, h5)
- line.set_y2(ln5, h5)
- line.set_x1(ln6, bar_index)
- line.set_x2(ln6, bar_index + 30)
- line.set_y1(ln6, h6)
- line.set_y2(ln6, h6)
- line.set_x1(ln7, bar_index)
- line.set_x2(ln7, bar_index + 30)
- line.set_y1(ln7, h7)
- line.set_y2(ln7, h7)
- line.set_x1(ln8, bar_index)
- line.set_x2(ln8, bar_index + 30)
- line.set_y1(ln8, h8)
- line.set_y2(ln8, h8)
- label.set_xy(labelN1, bar_index, h1)
- label.set_xy(labelN2, bar_index, h2)
- label.set_xy(labelN3, bar_index, h3)
- label.set_xy(labelN4, bar_index, h4)
- label.set_xy(labelN5, bar_index, h5)
- label.set_xy(labelN6, bar_index, h6)
- label.set_xy(labelN7, bar_index, h7)
- label.set_xy(labelN8, bar_index, h8)
- if low < ta.lowest(low[1], nz(barsSincePL) + i_pivotLen)
- line.set_x1(lp1, bar_index)
- line.set_x2(lp1, bar_index + 30)
- line.set_y1(lp1, l1)
- line.set_y2(lp1, l1)
- line.set_x1(lp2, bar_index)
- line.set_x2(lp2, bar_index + 30)
- line.set_y1(lp2, l2)
- line.set_y2(lp2, l2)
- line.set_x1(lp3, bar_index)
- line.set_x2(lp3, bar_index + 30)
- line.set_y1(lp3, l3)
- line.set_y2(lp3, l3)
- line.set_x1(lp4, bar_index)
- line.set_x2(lp4, bar_index + 30)
- line.set_y1(lp4, l4)
- line.set_y2(lp4, l4)
- line.set_x1(lp5, bar_index)
- line.set_x2(lp5, bar_index + 30)
- line.set_y1(lp5, l5)
- line.set_y2(lp5, l5)
- line.set_x1(lp6, bar_index)
- line.set_x2(lp6, bar_index + 30)
- line.set_y1(lp6, l6)
- line.set_y2(lp6, l6)
- line.set_x1(lp7, bar_index)
- line.set_x2(lp7, bar_index + 30)
- line.set_y1(lp7, l7)
- line.set_y2(lp7, l7)
- line.set_x1(lp8, bar_index)
- line.set_x2(lp8, bar_index + 30)
- line.set_y1(lp8, l8)
- line.set_y2(lp8, l8)
- label.set_xy(labelP1, bar_index, l1)
- label.set_xy(labelP2, bar_index, l2)
- label.set_xy(labelP3, bar_index, l3)
- label.set_xy(labelP4, bar_index, l4)
- label.set_xy(labelP5, bar_index, l5)
- label.set_xy(labelP6, bar_index, l6)
- label.set_xy(labelP7, bar_index, l7)
- label.set_xy(labelP8, bar_index, l8)
- plot(show_pivots ? ph : na, linewidth=2, style=plot.style_circles, color=color.red, offset=i_pivotLen*-1)
- plot(show_pivots ? pl : na, linewidth=2, style=plot.style_circles, color=color.green, offset=i_pivotLen*-1)
Advertisement
Add Comment
Please, Sign In to add comment