Advertisement
xmd79

OTE visible chart

Jan 10th, 2023
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.68 KB | None | 0 0
  1. //playing with new Pinecoders 'visible chart' library
  2. //Fib box for OTE on visible chart only (61.8% - 78.6%)
  3. //Thanks to Pinecoder's for the example code in their 'VisibleChart' library, Which this is based on.
  4. //@twingall
  5.  
  6. import PineCoders/VisibleChart/4
  7.  
  8. //@version=5
  9.  
  10. indicator("OTE visible chart", overlay = true)
  11. showFibBox = input.bool(true, "show Fib Box", group = "OTE box", inline = "2")
  12. boxColor = input.color(color.new(color.yellow, 82), "", group = "OTE box", inline = "2")
  13. showText = input.bool(false, "show Text",group = "OTE box", inline = "2")
  14.  
  15. showHighLowLines=input.bool(true, "show high/low lines", group = "fib retracements",inline = "3")
  16. showMidline =input.bool(true, "show Midline", group = "fib retracements",inline = "4")
  17. show61eight=input.bool(false, "show 61.8 line", group = "fib retracements",inline = "5")
  18. show78six=input.bool(false, "show 78.6 line", group = "fib retracements",inline = "6")
  19. show88six=input.bool(false, "show 88.6 line", group = "fib retracements",inline = "7")
  20.  
  21. showfibExt1=input.bool(false,"show Fib Ext 1", group ="fib extensions",inline="8")
  22. showfibExt2=input.bool(false,"show Fib Ext 2", group ="fib extensions",inline="9")
  23.  
  24. lineColor = input.color(color.rgb(217, 76, 217), "", group = "fib retracements",inline = "3")
  25. _88sixColor = input.color(color.green, "", group = "fib retracements",inline = "7")
  26. midlineColor = input.color(color.gray,"", group = "fib retracements",inline = "4")
  27. _61eightColor = input.color(color.green, "", group = "fib retracements",inline = "5")
  28. _78sixColor = input.color(color.green, "", group = "fib retracements",inline = "6")
  29. fibExt1Color=input.color(color.red,"", group ="fib extensions",inline="8")
  30. fibExt2Color=input.color(color.red,"", group ="fib extensions",inline="9")
  31.  
  32.  
  33. fibExt1=input.float(1.618, "", group ="fib extensions",inline="8")
  34. fibExt2=input.float(2.0, "", group ="fib extensions",inline="9")
  35. showExtLabels=input.bool(false,"show extension labels", group ="fib extensions",inline="10")
  36.  
  37. // Chart's high and low values and their time x-coordinate.
  38. float chartHigh = VisibleChart.high()
  39. float chartLow = VisibleChart.low()
  40. int highTime = VisibleChart.highBarTime()
  41. int lowTime = VisibleChart.lowBarTime()
  42. int leftTime = math.min(highTime, lowTime)
  43. int rightTime = math.max(highTime, lowTime)
  44. bool isBull = lowTime < highTime
  45.  
  46. colorNone = color.new(color.white,100)
  47.  
  48. // Function to manage fib lines. It declares fib lines and label the first time it is called, then sets their properties on subsequent calls.
  49. fibLine(series color fibColor, series float fibLevel) =>
  50. float fibRatio = fibLevel / 100
  51. float fibPrice = isBull ? chartLow + ((chartHigh - chartLow) * fibRatio) :
  52. chartHigh - ((chartHigh - chartLow) * fibRatio)
  53. var line fibLine = line.new(na, na, na, na, xloc.bar_time, extend.right, fibColor, line.style_dotted, 2)
  54. line.set_xy1(fibLine, leftTime, fibPrice)
  55. line.set_xy2(fibLine, rightTime, fibPrice)
  56.  
  57. //Function for Fib Extension lines..
  58. fibExt(series color fibColor, series float fibLevel, bool _showExt) =>
  59. float fibRatio = fibLevel / 100
  60. float fibPrice = isBull ? chartLow - ((chartHigh - chartLow) * fibRatio) :
  61. chartHigh + ((chartHigh - chartLow) * fibRatio)
  62. float fibLabel = (fibLevel /100)+1
  63. var line fibLine = line.new(na, na, na, na, xloc.bar_time, extend.right, fibColor, line.style_dotted, 2)
  64. line.set_xy1(fibLine, leftTime, fibPrice)
  65. line.set_xy2(fibLine, rightTime, fibPrice)
  66. var label fibExtLabel = label.new(na, na, "", xloc.bar_time, yloc.price, color(na), label.style_label_up, _showExt? fibColor:colorNone)
  67. label.set_xy(fibExtLabel, int(math.avg(leftTime, rightTime)), fibPrice)
  68. label.set_text(fibExtLabel, str.format("{0, number, #.###} ({1})", fibLabel , str.tostring(fibPrice, format.mintick)))
  69.  
  70. //Fib Box function; similar to the above but highlighting the area between 2 fib levels
  71. fibBox(series color fibColor, series float fibLevel_1, series float fibLevel_2) =>
  72. float fibRatio_1 = fibLevel_1 / 100
  73. float fibPrice_1 = isBull ? chartLow + ((chartHigh - chartLow) * fibRatio_1) : chartHigh - ((chartHigh - chartLow) * fibRatio_1)
  74. float fibRatio_2 = fibLevel_2 / 100
  75. float fibPrice_2 = isBull ? chartLow + ((chartHigh - chartLow) * fibRatio_2) : chartHigh - ((chartHigh - chartLow) * fibRatio_2)
  76. 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)
  77. box.set_lefttop(b, leftTime, fibPrice_1)
  78. box.set_rightbottom(b, rightTime,fibPrice_2)
  79. box.set_bgcolor(b, fibColor)
  80. box.set_text(b, text = showText? "OTE":"")
  81.  
  82. // Display code that only runs on the last bar but displays visuals on visible bars, wherever they might be in the dataset.
  83. if barstate.islast
  84. //declare/define Fib lines and decalare/define Fib Box
  85. fibLine(lineColor, 100)
  86. fibLine(showMidline?midlineColor :colorNone, 50)
  87. fibLine(lineColor, 0)
  88. fibBox(showFibBox?boxColor:colorNone, 21.4, 38.2)
  89.  
  90. //more fib lines
  91. fibLine(show88six?_88sixColor:colorNone, 11.4)
  92. fibLine(show61eight?_61eightColor:colorNone, 38.2)
  93. fibLine(show78six?_78sixColor:colorNone, 21.2)
  94. //fibLine(show88six?_88sixColor:colorNone, 88.6)
  95. //fibLine(show61eight?_61eightColor:colorNone, 61.8)
  96. //fibLine(show78six?_78sixColor:colorNone, 78.6)
  97.  
  98. //extensions
  99. if barstate.islast and showfibExt1
  100. fibExt(fibExt1Color, (fibExt1*100)-100, showExtLabels)
  101. if barstate.islast and showfibExt2
  102. fibExt(fibExt2Color, (fibExt2*100)-100, showExtLabels)
  103.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement