xmd79

AG FX - Pivot Points

Nov 17th, 2021
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.78 KB | None | 0 0
  1. //@version=5
  2. //@AGFX
  3. indicator('AG FX - Pivot Points', overlay=true, scale=scale.right)
  4.  
  5. //Inputs
  6. highBarNext = high
  7. lowBarNext = low
  8. highBarPrevious = high[2]
  9. lowBarPrevious = low[2]
  10. openBarPrevious = open[2]
  11. closeBarPrevious = close[2]
  12. openBarCurrent = open[1]
  13. closeBarCurrent = close[1]
  14. int offset = 2
  15. bar_index_ = bar_index[offset]
  16. showPivotboxes = input.bool(true, title='Show Pivot Boxes', group='Pivot Box')
  17. leftBars = input.int(2, 'Left Bars', group='Pivot Settings')
  18. rightBars = input.int(2, 'Right Bars', group='Pivot Settings')
  19. pivotHighBoxColor = input.color(defval=#978383, title='Pivot High Box', inline='customcolor', group='Pivot Box Customization')
  20. pivotLowBoxColor = input.color(defval=#7d8c9c, title='Pivot Low Box', inline='customcolor', group='Pivot Box Customization')
  21. addTransp = input.int(defval=50, title='Box Transparency', minval=1, maxval=100, group='Pivot Box Customization')
  22. addBoxCount = input.int(defval=100, title='Maximum Box Displayed', minval=1, maxval=200, group='Chart Customization')
  23.  
  24. //Pivot definition
  25. pivotLow = ta.pivotlow(low, leftBars, rightBars)
  26. pivotHigh = ta.pivothigh(high, leftBars, rightBars)
  27.  
  28.  
  29. //Box array
  30. var box[] pivotHighBoxArray = array.new_box()
  31. var box[] pivotLowBoxArray = array.new_box()
  32.  
  33. //Box Color Variables
  34. var color addPivotHighBoxColor = color.new(pivotHighBoxColor, addTransp)
  35. var color addPivotLowBoxColor = color.new(pivotLowBoxColor, addTransp)
  36. var color addPivotHighBorderBoxColor = color.new(pivotHighBoxColor, addTransp)
  37. var color addPivotLowBorderBoxColor = color.new(pivotLowBoxColor, addTransp)
  38.  
  39. //Pivot High Box Calculation
  40. f_choppedoffbear(pivotHighBoxArray) =>
  41. if array.size(pivotHighBoxArray) > 0
  42. for i = array.size(pivotHighBoxArray) - 1 to 0 by 1
  43. cutbox = array.get(pivotHighBoxArray, i)
  44. boxlowzone = box.get_bottom(cutbox)
  45. boxhighzone = box.get_top(cutbox)
  46. boxrightzone = box.get_right(cutbox)
  47. if na or bar_index - 1 == boxrightzone and not(high > boxlowzone and low < boxlowzone or high > boxhighzone and low < boxhighzone)
  48. box.set_right(array.get(pivotHighBoxArray, i), bar_index)
  49.  
  50. //Pivot High Box Plotting
  51. if pivotHigh and showPivotboxes
  52. boxhighzone = high[2] > high[1] ? high[2] : high[1]
  53. boxlowzone = open[2] > close[2] ? open[2] : close[2]
  54. pivotHighbox = box.new(bar_index_, boxhighzone, bar_index, boxlowzone, border_color=addPivotHighBorderBoxColor, border_style=line.style_dashed, bgcolor=addPivotHighBoxColor)
  55. if array.size(pivotHighBoxArray) > addBoxCount
  56. box.delete(array.shift(pivotHighBoxArray))
  57. array.push(pivotHighBoxArray, pivotHighbox)
  58.  
  59. f_choppedoffbear(pivotHighBoxArray)
  60.  
  61. //Pivot Low Box Calculation
  62. f_choppedoffbull(pivotLowBoxArray) =>
  63. if array.size(pivotLowBoxArray) > 0
  64. for i = array.size(pivotLowBoxArray) - 1 to 0 by 1
  65. cutbox = array.get(pivotLowBoxArray, i)
  66. boxlowzone = box.get_bottom(cutbox)
  67. boxhighzone = box.get_top(cutbox)
  68. boxrightzone = box.get_right(cutbox)
  69. if na or bar_index - 1 == boxrightzone and not(high > boxlowzone and low < boxlowzone or high > boxhighzone and low < boxhighzone)
  70. box.set_right(array.get(pivotLowBoxArray, i), bar_index)
  71.  
  72. //Pivot Low Box Plotting
  73. if pivotLow and showPivotboxes
  74. boxlowzone = low[1] < low[2] ? low[1] : low[2]
  75. boxhighzone = open[2] > close[2] ? close[2] : open[2]
  76. pivotLowBox = box.new(bar_index_, boxhighzone, bar_index, boxlowzone, border_color=addPivotLowBorderBoxColor, border_style=line.style_dashed, bgcolor=addPivotLowBoxColor)
  77. if array.size(pivotLowBoxArray) > addBoxCount
  78. box.delete(array.shift(pivotLowBoxArray))
  79. array.push(pivotLowBoxArray, pivotLowBox)
  80.  
  81. f_choppedoffbull(pivotLowBoxArray)
  82.  
  83.  
Advertisement
Add Comment
Please, Sign In to add comment