Advertisement
xmd79

S&R • Yata

Jan 13th, 2023
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.09 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. //@version=5
  3.  
  4. indicator("S&R • Yata",
  5. overlay = true,
  6. max_bars_back = 5000)
  7.  
  8. // ---------------------
  9. groupPP = "Pivot Points"
  10. groupPL = "Pivot Labels & Lines"
  11. groupSR = "Support & Resistance"
  12. groupFR = "Fibonacci Retracement"
  13. groupFE = "Fibonacci Extension"
  14. // ---------------------
  15.  
  16. length = input (21 , title="Length" , inline="PP1", group=groupPP)
  17. //max_h_pivot_points = input.float (5, minval=2, title="Lookback: High" , inline="PP2", group=groupPP)
  18. //max_l_pivot_points = input.float (5, minval=2, title="Low" , inline="PP2", group=groupPP)
  19. max_pivot_points = input.float (5, minval=2, title="Pivot Points Lookback" , inline="PP2", group=groupPP)
  20. max_h_pivot_points = max_pivot_points
  21. max_l_pivot_points = max_pivot_points
  22. //min_difference = input.float (0.0 , title="" , inline="", group=groupPP)
  23. min_difference = 0.0
  24. channel_ext_length = input (14 , title="Lines Extension" , inline="EXT", group=groupPP)
  25. source = input (close , title="Source" , inline="PP1", group=groupPP)
  26.  
  27. // ---------------------
  28.  
  29. show_plabels = input.bool(true, title="Show Pivot Labels", inline="PP4", group=groupPL)
  30.  
  31. //d_lbl_pivh = input.bool(true, title="Draw Pivot High Labels", inline="", group=groupPL)
  32. //d_lbl_pivl = input.bool(true, title="Draw Pivot Low Labels", inline="", group=groupPL)
  33.  
  34. d_lbl_pivh = show_plabels ? true : false
  35. d_lbl_pivl = show_plabels ? true : false
  36.  
  37. ALB1 = input.color(color.new(#99D31B, 25), title="Active" , inline="PP4A", group=groupPL) // Active Pivot High Labels
  38. ALB2 = input.color(color.new(#FA5032, 25), title="" , inline="PP4A", group=groupPL) // Active Pivot Low Labels
  39. ILB1 = input.color(color.new(#99D31B, 75), title="| Inactive",inline="PP4A", group=groupPL) // Inactive Pivot High Labels
  40. ILB2 = input.color(color.new(#FF4500, 75), title="" , inline="PP4A", group=groupPL) // Inactive Pivot Low Labels
  41.  
  42. // ---------------------
  43.  
  44. show_plines = input.bool(true, title="Show Pivot Lines" , inline="PP5", group=groupPL)
  45.  
  46. //d_pivh = input.bool(true, title="Draw Pivot High Lines", inline="", group=groupPL)
  47. //d_pivl = input.bool(true, title="Draw Pivot Low Lines" , inline="", group=groupPL)
  48.  
  49. d_pivh = show_plines ? true : false
  50. d_pivl = show_plines ? true : false
  51.  
  52. ALN1 = input.color(color.new(#99D31B, 50), title="Active" , inline="PP5A", group=groupPL) // Active Pivot High Lines
  53. ALN2 = input.color(color.new(#FA5032, 50), title="" , inline="PP5A", group=groupPL) // Active Pivot Low Lines
  54. ILN1 = input.color(color.new(#99D31B, 50), title="Inactive" , inline="PP5B", group=groupPL) // Inactive Pivot High Lines
  55. ILN2 = input.color(color.new(#FF4500, 50), title="" , inline="PP5B", group=groupPL) // Inactive Pivot Low Lines
  56.  
  57. // ---------------------
  58.  
  59. show_chan = input.bool(true, title="Show Channel Lines" , inline="CH1", group=groupSR)
  60.  
  61. //d_chanh = input.bool(true, title="Draw Channel High" , inline="", group=groupSR)
  62. //d_chanl = input.bool(true, title="Draw Channel Low" , inline="", group=groupSR)
  63.  
  64. d_chanh = show_chan ? true : false
  65. d_chanl = show_chan ? true : false
  66.  
  67. show_extendL = input.bool(false, title="Extend Channel Lines" , inline="CH1B", group=groupSR)
  68. extendL = show_extendL ? extend.left : extend.none
  69.  
  70. RLN = input.color(color.new(#99D31B, 25), title="High" , inline="CH1A", group=groupSR) // Resistance Line
  71. SLN = input.color(color.new(#FA5032, 25), title="Low" , inline="CH1A", group=groupSR) // Support Line
  72.  
  73. // ---------------------
  74.  
  75. d_fib = input.bool(true, title="Draw Fib. Retr. Lines", inline="CH2", group=groupFR)
  76.  
  77. FRH = input.color(color.new(#99D31B, 25), title="High" , inline="CH2A", group=groupFR) // Fibonacci Retracement High
  78. FRL = input.color(color.new(#FA5032, 25), title="Low" , inline="CH2A", group=groupFR) // Fibonacci Retracement Low
  79.  
  80. sfib_R01 = input.bool(true , title="01" , inline="CH21", group=groupFR)
  81. sfib_R02 = input.bool(true , title="02" , inline="CH22", group=groupFR)
  82. sfib_R03 = input.bool(true , title="03" , inline="CH23", group=groupFR)
  83. sfib_R04 = input.bool(true , title="04" , inline="CH24", group=groupFR)
  84. sfib_R05 = input.bool(true , title="05" , inline="CH25", group=groupFR)
  85.  
  86. fib_R01 = sfib_R01 ? input.float(0.236 , title="" , inline="CH21", group=groupFR) : na
  87. fib_R02 = sfib_R02 ? input.float(0.382 , title="" , inline="CH22", group=groupFR) : na
  88. fib_R03 = sfib_R03 ? input.float(0.5 , title="" , inline="CH23", group=groupFR) : na
  89. fib_R04 = sfib_R04 ? input.float(0.618 , title="" , inline="CH24", group=groupFR) : na
  90. fib_R05 = sfib_R05 ? input.float(0.786 , title="" , inline="CH25", group=groupFR) : na
  91.  
  92. sfib_R06 = input.bool(false , title="06" , inline="CH21", group=groupFR)
  93. sfib_R07 = input.bool(false , title="07" , inline="CH22", group=groupFR)
  94. sfib_R08 = input.bool(false , title="08" , inline="CH23", group=groupFR)
  95. sfib_R09 = input.bool(false , title="09" , inline="CH24", group=groupFR)
  96. sfib_R10 = input.bool(false , title="10" , inline="CH25", group=groupFR)
  97.  
  98. fib_R06 = sfib_R06 ? input.float(0.09 , title="" , inline="CH21", group=groupFR) : na
  99. fib_R07 = sfib_R07 ? input.float(0.146 , title="" , inline="CH22", group=groupFR) : na
  100. fib_R08 = sfib_R08 ? input.float(0.35 , title="" , inline="CH23", group=groupFR) : na
  101. fib_R09 = sfib_R09 ? input.float(0.65 , title="" , inline="CH24", group=groupFR) : na
  102. fib_R10 = sfib_R10 ? input.float(0.886 , title="" , inline="CH25", group=groupFR) : na
  103.  
  104. // ---------------------
  105.  
  106. d_fib2 = input.bool(true, title="Draw Fib. Ext. Lines", inline="CH3", group=groupFE)
  107.  
  108. FEH = input.color(color.new(#99D31B, 25), title="High" , inline="CH3A", group=groupFE) // Fibonacci Extension High
  109. FEL = input.color(color.new(#FA5032, 25), title="Low" , inline="CH3A", group=groupFE) // Fibonacci Extension Low
  110.  
  111. sfib_E01 = input.bool(true , title="01" , inline="CH31", group=groupFE)
  112. sfib_E02 = input.bool(false , title="02" , inline="CH32", group=groupFE)
  113. sfib_E03 = input.bool(true , title="03" , inline="CH33", group=groupFE)
  114. sfib_E04 = input.bool(false , title="04" , inline="CH34", group=groupFE)
  115.  
  116. fib_E01 = sfib_E01 ? input.float(1.618 , title="" , inline="CH31", group=groupFE) : na
  117. fib_E02 = sfib_E02 ? input.float(2 , title="" , inline="CH32", group=groupFE) : na
  118. fib_E03 = sfib_E03 ? input.float(-0.618 , title="" , inline="CH33", group=groupFE) : na
  119. fib_E04 = sfib_E04 ? input.float(-1 , title="" , inline="CH34", group=groupFE) : na
  120.  
  121. sfib_E05 = input.bool(false , title="05" , inline="CH31", group=groupFE)
  122. sfib_E06 = input.bool(false , title="06" , inline="CH32", group=groupFE)
  123. sfib_E07 = input.bool(false , title="07" , inline="CH33", group=groupFE)
  124. sfib_E08 = input.bool(false , title="08" , inline="CH34", group=groupFE)
  125.  
  126. fib_E05 = sfib_E05 ? input.float(1.13 , title="" , inline="CH31", group=groupFE) : na
  127. fib_E06 = sfib_E06 ? input.float(1.272 , title="" , inline="CH32", group=groupFE) : na
  128. fib_E07 = sfib_E07 ? input.float(1.41 , title="" , inline="CH33", group=groupFE) : na
  129. fib_E08 = sfib_E08 ? input.float(1.786 , title="" , inline="CH34", group=groupFE) : na
  130.  
  131. // ---------------------
  132.  
  133. f_bg = input.bool(true, title="Fill Channel Background" , inline="CH4", group=groupSR)
  134.  
  135. GF2 = input.color(color.new(#99D31B, 0) , title="Rising" , inline="CH4A", group=groupSR) // Falling Fill
  136. GF1 = input.color(color.new(#FF4500, 0) , title="Falling" , inline="CH4A", group=groupSR) // Rising Fill
  137.  
  138. f_transp = input.float(97 , title="| Tra." , inline="CH4A", group=groupSR)
  139.  
  140. // ---------------------
  141.  
  142. lwidth_piv = input.int(1, minval=0, title="| Width", inline="PP5", group=groupPL)
  143. lwidth_chan = input.int(2, minval=0, title="| Width", inline="CH1", group=groupSR)
  144. lwidth_FR = input.int(1, minval=0, title="| Width", inline="CH2", group=groupFR)
  145. lwidth_FE = input.int(1, minval=0, title="| Width", inline="CH3", group=groupFE)
  146.  
  147. i_line0 = "Solid"
  148. i_line1 = "Dotted"
  149. i_line2 = "Dashed"
  150.  
  151. ppstyleAHL_input = input.string(i_line2, title="|", options=[i_line0, i_line1, i_line2], inline="PP5A", group=groupPL) // Active Pivot Lines
  152. ppstyleIHL_input = input.string(i_line1, title="|", options=[i_line0, i_line1, i_line2], inline="PP5B", group=groupPL) // Inactive Pivot Lines
  153. ppstyleSRL_input = input.string(i_line0, title="|", options=[i_line0, i_line1, i_line2], inline="CH1A", group=groupSR) // Support and Resistance Lines
  154. ppstyleFRL_input = input.string(i_line1, title="|", options=[i_line0, i_line1, i_line2], inline="CH2A", group=groupFR) // Fibonacci Retracement Lines
  155. ppstyleFEL_input = input.string(i_line1, title="|", options=[i_line0, i_line1, i_line2], inline="CH3A", group=groupFE) // Fibonacci Extension Lines
  156.  
  157. f_getLineStyle(_inputStyle) =>
  158. _return = _inputStyle == i_line1 ? line.style_dotted : _inputStyle == i_line2 ? line.style_dashed : line.style_solid
  159. _return
  160.  
  161. // ---------------------
  162.  
  163. var ph_index = array.new_int()
  164. var pl_index = array.new_int()
  165. var ph_value = array.new_float()
  166. var pl_value = array.new_float()
  167.  
  168. interp(l, h, s) => l + (h - l) * s
  169.  
  170. // ---------------------
  171.  
  172. ph = ta.pivothigh(source, length, length)
  173. if ph
  174. ok = true
  175.  
  176. ph := high[length]
  177.  
  178. if array.size(ph_index) > 0
  179. if array.size(ph_index) >= max_h_pivot_points
  180. array.shift(ph_index)
  181. array.shift(ph_value)
  182.  
  183. for i = 0 to array.size(ph_value) - 1
  184. if math.abs(ph - array.get(ph_value, i)) < min_difference
  185. ok := false
  186. if ph > array.get(ph_value, i)
  187. array.set(ph_value, i , ph)
  188. array.set(ph_index, i , bar_index[length])
  189.  
  190. if ok
  191. array.push(ph_index, bar_index[length])
  192. array.push(ph_value, ph)
  193.  
  194. // ---------------------
  195.  
  196. pl = ta.pivotlow(source, length, length)
  197. if pl
  198. ok = true
  199.  
  200. pl := low[length]
  201.  
  202. if array.size(pl_index) > 0
  203. if array.size(pl_index) >= max_l_pivot_points
  204. array.shift(pl_index)
  205. array.shift(pl_value)
  206.  
  207. for i = 0 to array.size(pl_value) - 1
  208. if math.abs(pl - array.get(pl_value, i)) < min_difference
  209. ok := false
  210. if pl < array.get(pl_value, i)
  211. array.set(pl_value, i , pl)
  212. array.set(pl_index, i , bar_index[length])
  213. if ok
  214. array.push(pl_index, bar_index[length])
  215. array.push(pl_value, pl)
  216.  
  217. // ---------------------
  218.  
  219. var lines = array.new_line()
  220. var labels = array.new_label()
  221. var fibs = array.new_line()
  222.  
  223. var line line_fc_up = line(na)
  224. var line line_fc_down = line(na)
  225. var linefill fill_fc = linefill(na)
  226.  
  227. // ---------------------
  228.  
  229. if barstate.isconfirmed
  230. ph_count = array.size(ph_index)
  231. pl_count = array.size(pl_index)
  232.  
  233. for i = 0 to array.size(lines)
  234. if array.size(lines) > 0
  235. line.delete(array.shift(lines))
  236.  
  237. for i = 0 to array.size(labels)
  238. if array.size(labels) > 0
  239. label.delete(array.shift(labels))
  240.  
  241. if ph_count > 0
  242. for i = 0 to ph_count - 1
  243. // alpha = 80//math.min(100 - int((i / (ph_count - 1)) * 100), 80)
  244. // clr = color.from_gradient(100 - alpha, 0, 100, #E8E965, #99D31B)
  245. if d_lbl_pivh
  246. array.push(labels, label.new(array.get(ph_index, i), array.get(ph_value, i), "", style=label.style_label_down, color=ILB1, size=size.tiny))
  247. if d_pivh
  248. array.push(lines, line.new(array.get(ph_index, i), array.get(ph_value, i), bar_index + channel_ext_length, array.get(ph_value, i), color=ILN1, width=lwidth_piv, style=f_getLineStyle(ppstyleIHL_input), extend=extend.none))
  249. if pl_count > 0
  250. for i = 0 to pl_count - 1
  251. // alpha = 80//math.min(100 - int((i / (pl_count - 1)) * 100), 80)
  252. // clr = color.from_gradient(100 - alpha, 0, 100, #64C5C7, #FA5032)
  253. if d_lbl_pivl
  254. array.push(labels, label.new(array.get(pl_index, i), array.get(pl_value, i), "", style=label.style_label_up, color=ILB2, size=size.tiny))
  255. if d_pivl
  256. array.push(lines, line.new(array.get(pl_index, i), array.get(pl_value, i), bar_index + channel_ext_length, array.get(pl_value, i), color=ILN2, width=lwidth_piv, style=f_getLineStyle(ppstyleIHL_input), extend=extend.none))
  257.  
  258. // ---------------------
  259.  
  260. if d_chanh
  261. if ph_count > 1
  262. tmp_arr = array.new_line()
  263. for i = 0 to ph_count - 1
  264. for j = 0 to ph_count - 1
  265. h0 = array.get(ph_value, i)
  266. h1 = array.get(ph_value, j)
  267. h0i = array.get(ph_index, i) //array.indexof(ph_value, h0))
  268. h1i = array.get(ph_index, j) //array.indexof(ph_value, h1))
  269. if h0i < h1i
  270. array.push(tmp_arr, line.new(h0i, h0, h1i, h1, color=RLN, width=lwidth_chan, extend=extend.none, style=f_getLineStyle(ppstyleSRL_input)))
  271. if h0i > h1i
  272. array.push(tmp_arr, line.new(h1i, h1, h0i, h0, color=RLN, width=lwidth_chan, extend=extend.none, style=f_getLineStyle(ppstyleSRL_input)))
  273.  
  274. int min_ind = na
  275. float min_val = 100000.0
  276. for i = 0 to array.size(tmp_arr) - 1
  277. lp = line.get_price(array.get(tmp_arr, i), bar_index)
  278. if lp > high
  279. if min_val > math.abs(lp - close)
  280. min_val := math.abs(lp - close)
  281. min_ind := i
  282.  
  283. if not na(min_ind)
  284. line.delete(line_fc_up[1])
  285. best_line = array.get(tmp_arr, min_ind)
  286. line_fc_up := line.new(line.get_x1(best_line), line.get_y1(best_line), line.get_x2(best_line), line.get_y2(best_line), color=RLN, width=lwidth_chan, extend=extendL, style=f_getLineStyle(ppstyleSRL_input))
  287.  
  288. for i = 0 to array.size(tmp_arr) - 1
  289. if array.size(tmp_arr) > 0
  290. line.delete(array.shift(tmp_arr))
  291.  
  292. for l in labels
  293. if label.get_x(l) == line.get_x1(line_fc_up) or label.get_x(l) == line.get_x2(line_fc_up)
  294. label.set_color(l, ALB1)
  295.  
  296. for l in lines
  297. if line.get_x1(l) == line.get_x1(line_fc_up) or line.get_x1(l) == line.get_x2(line_fc_up)
  298. line.set_color(l, ALN1)
  299. line.set_style(l, f_getLineStyle(ppstyleAHL_input))
  300. line.set_width(l, lwidth_piv)
  301.  
  302. line.set_y2(line_fc_up, line.get_price(line_fc_up, bar_index + channel_ext_length))
  303. line.set_x2(line_fc_up, bar_index + channel_ext_length)
  304.  
  305. // ---------------------
  306.  
  307. if d_chanl
  308. if pl_count > 1
  309. tmp_arr = array.new_line()
  310. for i = 0 to pl_count - 1
  311. for j = 0 to pl_count - 1
  312. l0 = array.get(pl_value, i)
  313. l1 = array.get(pl_value, j)
  314. l0i = array.get(pl_index, i) //array.indexof(pl_value, l0))
  315. l1i = array.get(pl_index, j) //array.indexof(pl_value, l1))
  316. if l0i < l1i
  317. array.push(tmp_arr, line.new(l0i, l0, l1i, l1, color=SLN, width=lwidth_chan, extend=extend.none, style=f_getLineStyle(ppstyleSRL_input)))
  318. if l0i > l1i
  319. array.push(tmp_arr, line.new(l1i, l1, l0i, l0, color=SLN, width=lwidth_chan, extend=extend.none, style=f_getLineStyle(ppstyleSRL_input)))
  320.  
  321. int min_ind = na
  322. float min_val = 100000.0
  323. for i = 0 to array.size(tmp_arr) - 1
  324. lp = line.get_price(array.get(tmp_arr, i), bar_index)
  325. if lp < low
  326. if min_val > math.abs(lp - close)
  327. min_val := math.abs(lp - close)
  328. min_ind := i
  329.  
  330. if not na(min_ind)
  331. line.delete(line_fc_down[1])
  332. best_line = array.get(tmp_arr, min_ind)
  333. line_fc_down := line.new(line.get_x1(best_line), line.get_y1(best_line), line.get_x2(best_line), line.get_y2(best_line), color=SLN, width=lwidth_chan, extend=extendL, style=f_getLineStyle(ppstyleSRL_input))
  334.  
  335. for i = 0 to array.size(tmp_arr) - 1
  336. if array.size(tmp_arr) > 0
  337. line.delete(array.shift(tmp_arr))
  338.  
  339. for l in labels
  340. if label.get_x(l) == line.get_x1(line_fc_down) or label.get_x(l) == line.get_x2(line_fc_down)
  341. label.set_color(l, ALB2)
  342.  
  343. for l in lines
  344. if line.get_x1(l) == line.get_x1(line_fc_down) or line.get_x1(l) == line.get_x2(line_fc_down)
  345. line.set_color(l, ALN2)
  346. line.set_style(l, f_getLineStyle(ppstyleAHL_input))
  347. line.set_width(l, lwidth_piv)
  348.  
  349. line.set_y2(line_fc_down, line.get_price(line_fc_down, bar_index + channel_ext_length))
  350. line.set_x2(line_fc_down, bar_index + channel_ext_length)
  351.  
  352. // ---------------------
  353.  
  354. if not na(line_fc_up) and not na(line_fc_down) and f_bg
  355. linefill.delete(fill_fc[1])
  356. fill_color = color.new(color.from_gradient(ta.rsi(close, 14), 30, 70, GF1, GF2), f_transp)
  357. fill_fc := linefill.new(line_fc_up, line_fc_down, fill_color)
  358.  
  359. if not na(line_fc_up) and not na(line_fc_down) and d_fib
  360. for i = 0 to array.size(fibs) - 1
  361. if array.size(fibs) > 0
  362. line.delete(array.shift(fibs))
  363.  
  364. left = math.min(line.get_x1(line_fc_up), line.get_x1(line_fc_down))
  365. right = bar_index + channel_ext_length
  366. left_val = interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R01)
  367. right_val = interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R01)
  368. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  369. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R02)
  370. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R02)
  371. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  372. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R03)
  373. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R03)
  374. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  375. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R04)
  376. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R04)
  377. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  378. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R05)
  379. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R05)
  380. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  381.  
  382. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R06)
  383. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R06)
  384. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  385. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R07)
  386. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R07)
  387. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  388. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R08)
  389. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R08)
  390. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  391. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R09)
  392. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R09)
  393. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  394. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_R10)
  395. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_R10)
  396. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFRL_input), width=lwidth_FR, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FRL, FRH)))
  397.  
  398. if d_fib2
  399. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_E01)
  400. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_E01)
  401. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFEL_input), width=lwidth_FE, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FEL, FEH)))
  402. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_E02)
  403. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_E02)
  404. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFEL_input), width=lwidth_FE, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FEL, FEH)))
  405. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_E03)
  406. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_E03)
  407. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFEL_input), width=lwidth_FE, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FEL, FEH)))
  408. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_E04)
  409. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_E04)
  410. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFEL_input), width=lwidth_FE, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FEL, FEH)))
  411.  
  412. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_E05)
  413. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_E05)
  414. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFEL_input), width=lwidth_FE, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FEL, FEH)))
  415. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_E06)
  416. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_E06)
  417. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFEL_input), width=lwidth_FE, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FEL, FEH)))
  418. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_E07)
  419. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_E07)
  420. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFEL_input), width=lwidth_FE, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FEL, FEH)))
  421. left_val := interp(line.get_price(line_fc_down, left), line.get_price(line_fc_up, left) , fib_E08)
  422. right_val := interp(line.get_price(line_fc_down, right), line.get_price(line_fc_up, right) , fib_E08)
  423. array.push(fibs, line.new(left, left_val, right, right_val, style=f_getLineStyle(ppstyleFEL_input), width=lwidth_FE, color=color.from_gradient(right_val, line.get_price(line_fc_down, right), line.get_price(line_fc_up, right), FEL, FEH)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement