xmd79

TICK Grid (TheMas7er)

Dec 20th, 2022
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 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. // © TheMas7er and bmistiaen
  3.  
  4. //@version=5
  5. indicator('TICK Grid (TheMas7er)', 'TICK Grid')
  6.  
  7.  
  8. // Constants
  9. var string c_0_em_5 = ' ' // 0.5 em space
  10. var string c_1_em = ' ' // 1 em space
  11. var string c_5_em = c_1_em + c_1_em + c_1_em + c_1_em + c_1_em // 5 em spaces
  12. var string c_15_em = c_5_em + c_5_em + c_5_em // 15 em spaces
  13. var string c_18_em_5 = c_15_em + c_1_em + c_1_em + c_1_em + c_0_em_5 // 18.5 em spaces
  14.  
  15.  
  16. // Defaults
  17. var int d_L1 = 600
  18. var int d_L2 = 800
  19. var string d_ticker = 'USI:TICK'
  20. var color d_colorHi = color.green
  21. var color d_colorLo = color.red
  22. var color d_colorDown = color.black
  23. var color d_colorUp = color.green
  24. var color d_colorZero = color.black
  25. var color d_colorWick = color.black
  26. var color d_colorBorder = color.black
  27.  
  28.  
  29. // Inputs
  30. var bool i_showTickHi = input.bool(true, 'Positive' + c_0_em_5, group='levels', inline='hi')
  31. var int i_tickHi = input.int(d_L1, '', minval=0, group='levels', inline='hi')
  32. var int i_tickHi1 = input.int(d_L2, '', minval=0, group='levels', inline='hi')
  33. var color i_colorHi = input.color(d_colorHi, '', group='levels', inline='hi')
  34. var bool i_showTickLo = input.bool(true, 'Negative', group='levels', inline='lo')
  35. var int i_tickLo = input.int(-d_L1, '', maxval=0, group='levels', inline='lo')
  36. var int i_tickLo1 = input.int(-d_L2, '', maxval=0, group='levels', inline='lo')
  37. var color i_colorLo = input.color(d_colorLo, '', group='levels', inline='lo')
  38. var bool i_showZero = input.bool(true, 'Zero' + c_18_em_5, group='levels', inline='ze')
  39. var color i_colorZero = input.color(d_colorZero, '', group='levels', inline='ze')
  40.  
  41. var color i_colorUp = input.color(d_colorUp, 'Up', group='bar colors', inline='ba')
  42. var color i_colorDown = input.color(d_colorDown, 'Down', group='bar colors', inline='ba')
  43. var color i_colorWick = input.color(d_colorWick, 'Wick', group='bar colors', inline='ba')
  44. var color i_colorBorder = input.color(d_colorBorder, 'Border', group='bar colors', inline='ba')
  45.  
  46. var string i_ticker = input.symbol(d_ticker, 'Ticker', group='symbol', inline='ti')
  47.  
  48.  
  49. // Functions
  50. f_showLevel(_show, _level) => _show ? _level ? _level : na : na // Hide level when value is zero.
  51.  
  52.  
  53. // Levels
  54. var int tickhi = f_showLevel(i_showTickHi, i_tickHi)
  55. var int tickhi1 = f_showLevel(i_showTickHi, i_tickHi1)
  56. var int zero = i_showZero ? 0 : na
  57. var int ticklo = f_showLevel(i_showTickLo, i_tickLo)
  58. var int ticklo1 = f_showLevel(i_showTickLo, i_tickLo1)
  59.  
  60.  
  61. // Other variables
  62. var bool canPlot = na
  63.  
  64.  
  65. // Data Retrieval
  66. [ticko, tickh, tickl, tickc, tickfb, ticklb] = request.security('USI:Tick', timeframe.period, [open, high, low, close, session.isfirstbar, session.islastbar])
  67.  
  68.  
  69. // Only plot candles when there is tick data available
  70. canPlot := tickfb ? true : ticklb[1] ? false : canPlot
  71. if not canPlot
  72. ticko := na
  73. tickh := na
  74. tickl := na
  75. tickc := na
  76.  
  77.  
  78. // Plot Candles
  79. candleColor = ticko < tickc ? i_colorUp : i_colorDown
  80. plotcandle(ticko, tickh, tickl, tickc, 'Tick', candleColor, i_colorWick, bordercolor = i_colorBorder)
  81.  
  82.  
  83. // Plot levels
  84. hline(tickhi, 'High', i_colorHi)
  85. hline(tickhi1, 'High1', i_colorHi)
  86. hline(zero, 'Zero', i_colorZero)
  87. hline(ticklo, 'Low', i_colorLo)
  88. hline(ticklo1, 'Low1', i_colorLo)
  89.  
Advertisement
Add Comment
Please, Sign In to add comment