readyset-liqd

Tomo's Flat Fibs

May 14th, 2023 (edited)
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.17 KB | None | 0 0
  1. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
  2. // © danielx888
  3.  
  4. //@version=5
  5. indicator("Tomo's Flat Fibs", overlay=true)
  6. i_pivotLen = input.int(20, 'Pivot Length/Lookback', 1,3999,1)
  7. i_colorNeg = input.color(color.green, 'Color for Buy Lines')
  8. i_colorPos = input.color(color.red, 'Color for Sell Lines')
  9. show_num = input.bool(true, 'Show Numbers')
  10. show_pivots = input.bool(true, 'Show Pivots')
  11. show1 = input.bool(true, '', inline='g1', group='The Magic Numbers')
  12. num1 = input.int(600,'', minval=0, inline='g1', group='The Magic Numbers')
  13. show2 = input.bool(true, '', inline='g1', group='The Magic Numbers')
  14. num2 = input.int(1000,'', minval=0, inline='g1', group='The Magic Numbers')
  15. show3 = input.bool(true, '', inline='g2', group='The Magic Numbers')
  16. num3 = input.int(1400,'', minval=0, inline='g2', group='The Magic Numbers')
  17. show4 = input.bool(true, '', inline='g2', group='The Magic Numbers')
  18. num4 = input.int(1900,'', minval=0, inline='g2', group='The Magic Numbers')
  19. show5 = input.bool(true, '', inline='g3', group='The Magic Numbers')
  20. num5 = input.int(2700,'', minval=0, inline='g3', group='The Magic Numbers')
  21. show6 = input.bool(true, '', inline='g3', group='The Magic Numbers')
  22. num6 = input.int(3400,'', minval=0, inline='g3', group='The Magic Numbers')
  23. show7 = input.bool(true, '', inline='g4', group='The Magic Numbers')
  24. num7 = input.int(4000,'', minval=0, inline='g4', group='The Magic Numbers')
  25. show8 = input.bool(true, '', inline='g4', group='The Magic Numbers')
  26. num8 = input.int(4800,'', minval=0, inline='g4', group='The Magic Numbers')
  27.  
  28.  
  29. LABEL_COLOR = color.new(color.black, 100)
  30.  
  31. ph = ta.pivothigh(i_pivotLen, i_pivotLen)
  32. pl = ta.pivotlow(i_pivotLen, i_pivotLen)
  33.  
  34. barsSincePH = ta.barssince(ph)
  35. barsSincePL = ta.barssince(pl)
  36. var float ph_val = 0.0
  37. var float pl_val = 0.0
  38.  
  39. if ph
  40. ph_val := high[i_pivotLen]
  41. if pl
  42. pl_val := low[i_pivotLen]
  43.  
  44. n1 = ph_val - num1
  45. n2 = ph_val - num2
  46. n3 = ph_val - num3
  47. n4 = ph_val - num4
  48. n5 = ph_val - num5
  49. n6 = ph_val - num6
  50. n7 = ph_val - num7
  51. n8 = ph_val - num8
  52.  
  53. p1 = pl_val + num1
  54. p2 = pl_val + num2
  55. p3 = pl_val + num3
  56. p4 = pl_val + num4
  57. p5 = pl_val + num5
  58. p6 = pl_val + num6
  59. p7 = pl_val + num7
  60. p8 = pl_val + num8
  61.  
  62. h1 = high - num1
  63. h2 = high - num2
  64. h3 = high - num3
  65. h4 = high - num4
  66. h5 = high - num5
  67. h6 = high - num6
  68. h7 = high - num7
  69. h8 = high - num8
  70.  
  71. l1 = low + num1
  72. l2 = low + num2
  73. l3 = low + num3
  74. l4 = low + num4
  75. l5 = low + num5
  76. l6 = low + num6
  77. l7 = low + num7
  78. l8 = low + num8
  79.  
  80. var ln1 = show1 ? line.new(bar_index - i_pivotLen, n1, bar_index + 30, n1, color=i_colorNeg, extend=extend.right) : na
  81. var ln2 = show2 ? line.new(bar_index - i_pivotLen, n2, bar_index + 30, n2, color=i_colorNeg, extend=extend.right) : na
  82. var ln3 = show3 ? line.new(bar_index - i_pivotLen, n3, bar_index + 30, n3, color=i_colorNeg, extend=extend.right) : na
  83. var ln4 = show4 ? line.new(bar_index - i_pivotLen, n4, bar_index + 30, n4, color=i_colorNeg, extend=extend.right) : na
  84. var ln5 = show5 ? line.new(bar_index - i_pivotLen, n5, bar_index + 30, n5, color=i_colorNeg, extend=extend.right) : na
  85. var ln6 = show6 ? line.new(bar_index - i_pivotLen, n6, bar_index + 30, n6, color=i_colorNeg, extend=extend.right) : na
  86. var ln7 = show7 ? line.new(bar_index - i_pivotLen, n7, bar_index + 30, n7, color=i_colorNeg, extend=extend.right) : na
  87. var ln8 = show8 ? line.new(bar_index - i_pivotLen, n8, bar_index + 30, n8, color=i_colorNeg, extend=extend.right) : na
  88.  
  89. var lp1 = show1 ? line.new(bar_index - i_pivotLen, p1, bar_index + 30, p1, color=i_colorPos, extend=extend.right) : na
  90. var lp2 = show2 ? line.new(bar_index - i_pivotLen, p2, bar_index + 30, p2, color=i_colorPos, extend=extend.right) : na
  91. var lp3 = show3 ? line.new(bar_index - i_pivotLen, p3, bar_index + 30, p3, color=i_colorPos, extend=extend.right) : na
  92. var lp4 = show4 ? line.new(bar_index - i_pivotLen, p4, bar_index + 30, p4, color=i_colorPos, extend=extend.right) : na
  93. var lp5 = show5 ? line.new(bar_index - i_pivotLen, p5, bar_index + 30, p5, color=i_colorPos, extend=extend.right) : na
  94. var lp6 = show6 ? line.new(bar_index - i_pivotLen, p6, bar_index + 30, p6, color=i_colorPos, extend=extend.right) : na
  95. var lp7 = show7 ? line.new(bar_index - i_pivotLen, p7, bar_index + 30, p7, color=i_colorPos, extend=extend.right) : na
  96. var lp8 = show8 ? line.new(bar_index - i_pivotLen, p8, bar_index + 30, p8, color=i_colorPos, extend=extend.right) : na
  97.  
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106.  
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115.  
  116. if ph
  117. line.set_x1(ln1, bar_index - i_pivotLen)
  118. line.set_x2(ln1, bar_index + 30)
  119. line.set_y1(ln1, n1)
  120. line.set_y2(ln1, n1)
  121. line.set_x1(ln2, bar_index - i_pivotLen)
  122. line.set_x2(ln2, bar_index + 30)
  123. line.set_y1(ln2, n2)
  124. line.set_y2(ln2, n2)
  125. line.set_x1(ln3, bar_index - i_pivotLen)
  126. line.set_x2(ln3, bar_index + 30)
  127. line.set_y1(ln3, n3)
  128. line.set_y2(ln3, n3)
  129. line.set_x1(ln4, bar_index - i_pivotLen)
  130. line.set_x2(ln4, bar_index + 30)
  131. line.set_y1(ln4, n4)
  132. line.set_y2(ln4, n4)
  133. line.set_x1(ln5, bar_index - i_pivotLen)
  134. line.set_x2(ln5, bar_index + 30)
  135. line.set_y1(ln5, n5)
  136. line.set_y2(ln5, n5)
  137. line.set_x1(ln6, bar_index - i_pivotLen)
  138. line.set_x2(ln6, bar_index + 30)
  139. line.set_y1(ln6, n6)
  140. line.set_y2(ln6, n6)
  141. line.set_x1(ln7, bar_index - i_pivotLen)
  142. line.set_x2(ln7, bar_index + 30)
  143. line.set_y1(ln7, n7)
  144. line.set_y2(ln7, n7)
  145. line.set_x1(ln8, bar_index - i_pivotLen)
  146. line.set_x2(ln8, bar_index + 30)
  147. line.set_y1(ln8, n8)
  148. line.set_y2(ln8, n8)
  149. label.set_xy(labelN1, bar_index - i_pivotLen, n1)
  150. label.set_xy(labelN2, bar_index - i_pivotLen, n2)
  151. label.set_xy(labelN3, bar_index - i_pivotLen, n3)
  152. label.set_xy(labelN4, bar_index - i_pivotLen, n4)
  153. label.set_xy(labelN5, bar_index - i_pivotLen, n5)
  154. label.set_xy(labelN6, bar_index - i_pivotLen, n6)
  155. label.set_xy(labelN7, bar_index - i_pivotLen, n7)
  156. label.set_xy(labelN8, bar_index - i_pivotLen, n8)
  157. if pl
  158. line.set_x1(lp1, bar_index - i_pivotLen)
  159. line.set_x2(lp1, bar_index + 30)
  160. line.set_y1(lp1, p1)
  161. line.set_y2(lp1, p1)
  162. line.set_x1(lp2, bar_index - i_pivotLen)
  163. line.set_x2(lp2, bar_index + 30)
  164. line.set_y1(lp2, p2)
  165. line.set_y2(lp2, p2)
  166. line.set_x1(lp3, bar_index - i_pivotLen)
  167. line.set_x2(lp3, bar_index + 30)
  168. line.set_y1(lp3, p3)
  169. line.set_y2(lp3, p3)
  170. line.set_x1(lp4, bar_index - i_pivotLen)
  171. line.set_x2(lp4, bar_index + 30)
  172. line.set_y1(lp4, p4)
  173. line.set_y2(lp4, p4)
  174. line.set_x1(lp5, bar_index - i_pivotLen)
  175. line.set_x2(lp5, bar_index + 30)
  176. line.set_y1(lp5, p5)
  177. line.set_y2(lp5, p5)
  178. line.set_x1(lp6, bar_index - i_pivotLen)
  179. line.set_x2(lp6, bar_index + 30)
  180. line.set_y1(lp6, p6)
  181. line.set_y2(lp6, p6)
  182. line.set_x1(lp7, bar_index - i_pivotLen)
  183. line.set_x2(lp7, bar_index + 30)
  184. line.set_y1(lp7, p7)
  185. line.set_y2(lp7, p7)
  186. line.set_x1(lp8, bar_index - i_pivotLen)
  187. line.set_x2(lp8, bar_index + 30)
  188. line.set_y1(lp8, p8)
  189. line.set_y2(lp8, p8)
  190. label.set_xy(labelP1, bar_index - i_pivotLen, p1)
  191. label.set_xy(labelP2, bar_index - i_pivotLen, p2)
  192. label.set_xy(labelP3, bar_index - i_pivotLen, p3)
  193. label.set_xy(labelP4, bar_index - i_pivotLen, p4)
  194. label.set_xy(labelP5, bar_index - i_pivotLen, p5)
  195. label.set_xy(labelP6, bar_index - i_pivotLen, p6)
  196. label.set_xy(labelP7, bar_index - i_pivotLen, p7)
  197. label.set_xy(labelP8, bar_index - i_pivotLen, p8)
  198. if high > ta.highest(high[1], nz(barsSincePH) + i_pivotLen)
  199. line.set_x1(ln1, bar_index)
  200. line.set_x2(ln1, bar_index + 30)
  201. line.set_y1(ln1, h1)
  202. line.set_y2(ln1, h1)
  203. line.set_x1(ln2, bar_index)
  204. line.set_x2(ln2, bar_index + 30)
  205. line.set_y1(ln2, h2)
  206. line.set_y2(ln2, h2)
  207. line.set_x1(ln3, bar_index)
  208. line.set_x2(ln3, bar_index + 30)
  209. line.set_y1(ln3, h3)
  210. line.set_y2(ln3, h3)
  211. line.set_x1(ln4, bar_index)
  212. line.set_x2(ln4, bar_index + 30)
  213. line.set_y1(ln4, h4)
  214. line.set_y2(ln4, h4)
  215. line.set_x1(ln5, bar_index)
  216. line.set_x2(ln5, bar_index + 30)
  217. line.set_y1(ln5, h5)
  218. line.set_y2(ln5, h5)
  219. line.set_x1(ln6, bar_index)
  220. line.set_x2(ln6, bar_index + 30)
  221. line.set_y1(ln6, h6)
  222. line.set_y2(ln6, h6)
  223. line.set_x1(ln7, bar_index)
  224. line.set_x2(ln7, bar_index + 30)
  225. line.set_y1(ln7, h7)
  226. line.set_y2(ln7, h7)
  227. line.set_x1(ln8, bar_index)
  228. line.set_x2(ln8, bar_index + 30)
  229. line.set_y1(ln8, h8)
  230. line.set_y2(ln8, h8)
  231. label.set_xy(labelN1, bar_index, h1)
  232. label.set_xy(labelN2, bar_index, h2)
  233. label.set_xy(labelN3, bar_index, h3)
  234. label.set_xy(labelN4, bar_index, h4)
  235. label.set_xy(labelN5, bar_index, h5)
  236. label.set_xy(labelN6, bar_index, h6)
  237. label.set_xy(labelN7, bar_index, h7)
  238. label.set_xy(labelN8, bar_index, h8)
  239. if low < ta.lowest(low[1], nz(barsSincePL) + i_pivotLen)
  240. line.set_x1(lp1, bar_index)
  241. line.set_x2(lp1, bar_index + 30)
  242. line.set_y1(lp1, l1)
  243. line.set_y2(lp1, l1)
  244. line.set_x1(lp2, bar_index)
  245. line.set_x2(lp2, bar_index + 30)
  246. line.set_y1(lp2, l2)
  247. line.set_y2(lp2, l2)
  248. line.set_x1(lp3, bar_index)
  249. line.set_x2(lp3, bar_index + 30)
  250. line.set_y1(lp3, l3)
  251. line.set_y2(lp3, l3)
  252. line.set_x1(lp4, bar_index)
  253. line.set_x2(lp4, bar_index + 30)
  254. line.set_y1(lp4, l4)
  255. line.set_y2(lp4, l4)
  256. line.set_x1(lp5, bar_index)
  257. line.set_x2(lp5, bar_index + 30)
  258. line.set_y1(lp5, l5)
  259. line.set_y2(lp5, l5)
  260. line.set_x1(lp6, bar_index)
  261. line.set_x2(lp6, bar_index + 30)
  262. line.set_y1(lp6, l6)
  263. line.set_y2(lp6, l6)
  264. line.set_x1(lp7, bar_index)
  265. line.set_x2(lp7, bar_index + 30)
  266. line.set_y1(lp7, l7)
  267. line.set_y2(lp7, l7)
  268. line.set_x1(lp8, bar_index)
  269. line.set_x2(lp8, bar_index + 30)
  270. line.set_y1(lp8, l8)
  271. line.set_y2(lp8, l8)
  272. label.set_xy(labelP1, bar_index, l1)
  273. label.set_xy(labelP2, bar_index, l2)
  274. label.set_xy(labelP3, bar_index, l3)
  275. label.set_xy(labelP4, bar_index, l4)
  276. label.set_xy(labelP5, bar_index, l5)
  277. label.set_xy(labelP6, bar_index, l6)
  278. label.set_xy(labelP7, bar_index, l7)
  279. label.set_xy(labelP8, bar_index, l8)
  280.  
  281. plot(show_pivots ? ph : na, linewidth=2, style=plot.style_circles, color=color.red, offset=i_pivotLen*-1)
  282. plot(show_pivots ? pl : na, linewidth=2, style=plot.style_circles, color=color.green, offset=i_pivotLen*-1)
  283.  
  284.  
Advertisement
Add Comment
Please, Sign In to add comment