xmd79

Ultimate DR/iDR + VIBs, FVGs, Auto FIB, rDR Projection, & Session Labels

Jan 2nd, 2023
412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 74.90 KB | None | 0 0
  1. // Main Indicator : DR/IDR V1
  2. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
  3. // © TheMas7er and bmistiaen
  4.  
  5. // Imported Indicator: TheMas7er Scalp (US equity)5min [promuckaj]
  6. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
  7. // © promuckaj
  8.  
  9. //////////////////////////////////////
  10. // Script Compiled by @CEOInvesting //
  11. //////////////////////////////////////
  12.  
  13. //================================================================================================================================\\
  14. //================================================================================================================================\\
  15.  
  16. //@version=5
  17. indicator('Ultimate DR/iDR + VIBs, FVGs, Auto FIB, rDR Projection, & Session Labels',shorttitle = 'Ultimate DR/iDR', overlay=true, max_lines_count=500, max_boxes_count=500)
  18. import PineCoders/VisibleChart/4 as PCchart
  19.  
  20. Plot_intraday_Seperator = input(defval=true, title='Display Intra-Day DR Seperator [UTC-5 | 19:30]', group="Intra-Day Sessions")
  21.  
  22. //Show FVG (imbalance) and VIB (Volume Imbalance)
  23. ShowImbalance = input(defval=false, title='Display Fair Value Gaps (FVG)', group="FVGImbalance")
  24. color_fvg_imbalance = input.color(color.new(color.fuchsia,30),title="FVG:", inline="i_1",group="FVGImbalance")
  25. ExtendFVG = input(defval=false, title='Extend Recent FVG', group="FVGImbalance")
  26. display_vol_imbalance = input(false, title='Display Volume Imbalance (VIB)', group="VOLImbalance")
  27. color_vol_imbalance = input.color(color.new(color.orange,30),title="VIB:", inline="i_1",group="VOLImbalance")
  28. ExtendVIB = input(defval=false, title='Extend Recent VIB', group="VOLImbalance")
  29.  
  30. // Display Expansion Target
  31. //show_oDR_expansion_target = input(false, title='Show Daily oDR Expansion Target?', tooltip='Show the estimated daily expansion targets for the oDR session [Based on Nindos Findings]', group="Expansion")
  32. show_rDR_expansion_target = input(false, title='Show Daily rDR Expansion Target?', tooltip='Show the estimated daily expansion target for the rDR session high/low [Based on Nindos Findings] (oDR high/low + oDR range x 2) ** Requires oDR range to be complete before showing projection **', group="Expansion Estimate")
  33. color_rDR_expansion_target = input.color(color.rgb(158, 55, 255, 60),title="rDR Expansion Target Color:", inline="i_1",group="Expansion Estimate")
  34. color_rDR_expansion_target_text = input.color(color.rgb(158, 55, 255, 60),title="rDR Expansion Target Text Color:", inline="i_1",group="Expansion Estimate")
  35.  
  36. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  37. ///////////////////////////////// MAIN DR / iDR Model ////////////////////////////////////////////////////////////////////////////
  38.  
  39. // Input options
  40. // {
  41. LS0='Solid', LS1='Dashed', LS2='Dotted'
  42. BX0='DR', BX1='IDR'
  43. XL0='Follow Time', XL1='Session End', XL2='ADR End', XL3='ODR End', XL4='RDR End'
  44. STDLT0='Dynamic',STDLT1='Static'
  45. // } Input options
  46.  
  47. TIMEZONE = 'America/New_York'
  48. ONE_HOUR = 3600*1000
  49. ONE_DAY = 24*ONE_HOUR
  50.  
  51. // Inputs
  52. // {
  53. var GRP1 = "Time Settings"
  54. //timings
  55. exchangeOffset = input.int(0,"Exchange Offset (hours)", group=GRP1)
  56. regularTime = input.session('0930-1030', 'RDR Time', group=GRP1)
  57. regularExtend = input.session('1030-1600', 'RDR Lines Time', group=GRP1)
  58. afterTime = input.session('1930-2030', 'ADR Time', group=GRP1)
  59. afterExtend = input.session('2030-0200', 'ADR Lines Time', group=GRP1)
  60. overnightTime = input.session('0300-0400', 'ODR Time', group=GRP1)
  61. overnightExtend = input.session('0400-0830', 'ODR Lines Time', group=GRP1)
  62.  
  63. var GRP2 = "General Settings"
  64. //lines
  65. showRegular = input.bool(true, 'Regular', group=GRP2, inline='session', tooltip='Show Regular and/or After and/or Overnight session')
  66. showAfter = input.bool(true, 'After', group=GRP2, inline='session')
  67. showOvernight = input.bool(true, 'Overnight', group=GRP2, inline='session')
  68. drlines = input.bool(true, 'Show DR Lines ?', group=GRP2)
  69. idrlines = input.bool(true, 'Show IDR Lines ?', group=GRP2)
  70. middledrline = input.bool(false, 'Show Middle DR Line ?', group=GRP2)
  71. middleidrline = input.bool(true, 'Show Middle IDR Line ?', group=GRP2)
  72. openline = input.bool(true, 'Show Opening Line ?', group=GRP2, inline='openline', tooltip='Shows the Opening line of the Defining Range.\n- Extend: Extends the drawing of the Opening line into the RDR/ODR Lines Time.')
  73. extendopLines = input.bool(true, 'Extend', group=GRP2, inline='openline') // Extend, follow price
  74. extendopLinesType = input.string(XL1, '', options=[XL0,XL1,XL2,XL3,XL4], group=GRP2, inline='openline')
  75. showBackground = input.bool(true, 'Show DR/IDR Box ?', group=GRP2)
  76. boxType = input.string(BX1, 'Box DR or IDR ?', options=[BX0,BX1], group=GRP2)
  77. extenddrLines = input.bool(true, 'Extend DR Lines ?', group=GRP2)
  78. extendidrLines = input.bool(true, 'Extend IDR Lines ?', group=GRP2)
  79. showAllHistory = input.bool(false, 'Show complete history ?', 'Might cause a slight drawing delay when panning/moving/zooming the chart.', group=GRP2)
  80. useBoxColors = input.bool(false, 'Box color based on open and close', 'If unchecked, it will default to the selected Box Background Color', group=GRP2)
  81. extendToEndOfRDR = input.bool(false, 'Extend lines of all ranges to end of most recent Regular session?', group=GRP2)
  82. showStdLines = input.bool(true, 'Show STD Lines ?', group=GRP2, inline='stdlines', tooltip='Shows the Standard Deviation lines in 0.5 IDR range increments.\n- All = Shows all the STD lines on previous sessions.\n- Labels = Show STD level labels.\n- Dropdown = Choose between Dynamic or Static STD lines.')
  83. showStdLinesAll = input.bool(true, 'All', group=GRP2, inline='stdlines')
  84. showStdLineLabels = input.bool(true, 'Labels', group=GRP2, inline='stdlines')
  85. stdLineType = input.string(STDLT1, '', [STDLT0,STDLT1], group=GRP2, inline='stdlines')
  86. stdLineDynamicExtraPos = input.int(0, 'Dynamic (+)', minval=0, group=GRP2, inline='stdlinedynamic', tooltip='Dynamic STD Lines.\nDynamically draw STD lines around price action. Progresses with price.\n- (+) = Number of positive extra levels to draw in addition to the lines that are automatically drawn around price action.\n- (-) = Number of negative extra levels to draw in addition to the lines that are automatically drawn around price action.\n- Auto = Automatically determine number of STD lines that need to be drawn. Follows price action.')
  87. stdLineDynamicExtraNeg = input.int(0, '(-)', minval=0, group=GRP2, inline='stdlinedynamic')
  88. stdLineDynamicExtraAuto = input.bool(false, 'Auto', group=GRP2, inline='stdlinedynamic')
  89. stdLineStaticExtraPos = input.int(10, 'Static (+)', minval=0, group=GRP2, inline='stdlinestatic', tooltip='Static STD Lines.\nDraws a fixed number of STD lines.\n- (+) = Number of positive levels to draw.\n- (-) = Number of negative levels to draw.')
  90. stdLineStaticExtraNeg = input.int(10, '(-)', minval=0, group=GRP2, inline='stdlinestatic')
  91.  
  92.  
  93. var GRP3 = "Styles"
  94. linesWidth = input.int(1, 'Box And Lines Width ?', minval=1, maxval=4, group=GRP3)
  95. drLineColor = input.color(color.gray, 'DR Line Color', group=GRP3, inline='drline')
  96. drLineStyle = input.string(LS0, 'Style', options=[LS0,LS1,LS2], group=GRP3, inline='drline')
  97. idrLineColor = input.color(color.red, 'IDR Line Color', group=GRP3, inline='idrline')
  98. idrLineStyle = input.string(LS1, 'Style', options=[LS0,LS1,LS2], group=GRP3, inline='idrline')
  99. middleLineColor = input.color(color.gray, 'Middle Line Color', group=GRP3, inline='midline')
  100. middleLineStyle = input.string(LS2, 'Style', options=[LS0,LS1,LS2], group=GRP3, inline='midline')
  101. opLineColor = input.color(color.green, 'Opening Line', group=GRP3, inline='openline', tooltip='Opening line:\n- Color\n- Style\n- Width')
  102. opLineStyle = input.string(LS2, '', options=[LS0,LS1,LS2], group=GRP3, inline='openline')
  103. stdLineColor = input.color(color.gray, 'STD Lines', group=GRP3, inline='stdline', tooltip='Standard deviation lines:\n- Color\n- Style\n- Width')
  104. stdLineStyle = input.string(LS2, '', options=[LS0,LS1,LS2], group=GRP3, inline='stdline')
  105. backgroundColor = input.color(color.new(color.gray, 75), 'Box Background Color', group=GRP3)
  106. boxBorderSize = input.int(0, title="Box border size", minval=0, group=GRP3)
  107. upBoxColor = input.color(color.new(color.green, 85), 'Up box', group=GRP3, inline='upbox')
  108. upBorderColor = input.color(color.green, 'border', group=GRP3, inline='upbox')
  109. downBoxColor = input.color(color.new(color.red, 85), 'Down box', group=GRP3, inline='downbox')
  110. downBorderColor = input.color(color.red, 'border', group=GRP3, inline='downbox')
  111. // } Inputs
  112.  
  113.  
  114. // Constants
  115. // {
  116. exchangeOffsetMS = exchangeOffset * 3600000
  117. // } Constants
  118.  
  119.  
  120. // Variables {
  121. var int startTime = na
  122. var int endTime = na
  123. var string currentSession = na
  124.  
  125. var line lowrdrl = na
  126. var line highrdrl = na
  127. var line lowridrl = na
  128. var line highridrl = na
  129. var line leftrdrl = na
  130. var line rightrdrl = na
  131. var line middlerdrl = na
  132. var line middleridrl = na
  133. var line drLineOpen = na
  134. var box bgBox = na
  135.  
  136. var line[] stdLines = array.new<line>()
  137. var float[] stdLevels = array.new<float>()
  138. var label[] stdLabels = array.new<label>()
  139.  
  140. var float rdrlow = na
  141. var float rdrhigh = na
  142. var float ridrlow = na
  143. var float ridrhigh = na
  144. var float rdrmiddle = na
  145. var float ridrmiddle = na
  146. var float sessionOpen = na
  147.  
  148. var float regidrlow = na
  149. var float regidrhigh = na
  150. var float sessionHigh = na
  151. var float sessionLow = na
  152. var int stdLinesStartTime = na
  153. var int stdLinesStopTime = na
  154.  
  155. var bool use_m5 = false
  156. // } Variables
  157.  
  158.  
  159. // Functions {
  160. f_insession(_session) =>
  161. not na(time(timeframe.period, _session, TIMEZONE))
  162.  
  163. f_timestrToHM(_timeStr) =>
  164. var int hourInt = na
  165. var int minuteInt = na
  166. if str.length(_timeStr) == 4
  167. hourInt := int(str.tonumber(str.substring(_timeStr, 0, 2)))
  168. minuteInt := int(str.tonumber(str.substring(_timeStr, 2, 4)))
  169. [hourInt, minuteInt]
  170.  
  171. f_sessionTime(_session, _timezone=syminfo.timezone, _part) =>
  172. var int ts = na
  173. if str.length(_session) == 9 and (_part == 0 or _part == 1)
  174. arraySessionSplit = str.split(_session, '-')
  175. timeStrTo = array.get(arraySessionSplit, _part)
  176. [hourTo, minuteTo] = f_timestrToHM(timeStrTo)
  177. ts := timestamp(_timezone, year, month, dayofmonth, hourTo, minuteTo)
  178. ts
  179.  
  180. f_sessionStartTime(_session, _timezone=syminfo.timezone) => f_sessionTime(_session, _timezone, 0)
  181. f_sessionStopTime(_session, _timezone=syminfo.timezone) => f_sessionTime(_session, _timezone, 1)
  182. f_timestamp_to_date(int _ts = na, string _tz = na) => timestamp(_tz, year(_ts, _tz), month(_ts, _tz), dayofmonth(_ts, _tz))
  183.  
  184. f_lineStyle(_inputOption) =>
  185. switch(_inputOption)
  186. LS0 => line.style_solid
  187. LS1 => line.style_dashed
  188. LS2 => line.style_dotted
  189. => line.style_solid
  190.  
  191. f_newline(_color, _style) => line.new(na, na, na, na, xloc=xloc.bar_time, color=_color, style=_style, width=linesWidth)
  192. f_newdrline() => f_newline(drLineColor, f_lineStyle(drLineStyle))
  193. f_newidrline() => f_newline(idrLineColor, f_lineStyle(idrLineStyle))
  194. f_newmdline() => f_newline(middleLineColor, f_lineStyle(middleLineStyle))
  195. f_newopline() => f_newline(opLineColor, f_lineStyle(opLineStyle))
  196. f_newstdine() => f_newline(stdLineColor, f_lineStyle(stdLineStyle))
  197.  
  198.  
  199. f_newbox() => box.new(na, na, na, na, xloc=xloc.bar_time, bgcolor=backgroundColor, border_width=boxBorderSize)
  200.  
  201. f_moveLine(_line, _x1, _y, _x2) => line.set_xy1(_line, _x1 + exchangeOffsetMS, _y), line.set_xy2(_line, _x2 + exchangeOffsetMS, _y), _line
  202.  
  203. f_movebox(_box, _left, _top, _right, _bottom, _bordercolor, _bgcolor) => box.set_lefttop(_box, _left + exchangeOffsetMS, _top), box.set_rightbottom(_box, _right + exchangeOffsetMS, _bottom), box.set_border_color(_box, _bordercolor), box.set_bgcolor(_box, _bgcolor)
  204.  
  205. f_newLabel() => label.new(na, na, '', xloc = xloc.bar_time, yloc=yloc.price, style=label.style_label_left, color=color(na), textcolor=stdLineColor)
  206. f_moveLabel(_label, _x, _y, _text) =>
  207. label.set_xy(_label, _x, _y)
  208. label.set_text(_label, _text)
  209. _label
  210.  
  211. f_drawStdLine(_fromTime, _toTime, _level, float _stdLabelValue=na) =>
  212. if not na(_level)
  213. if not array.includes(stdLevels, _level)
  214. array.push(stdLevels, _level)
  215. array.push(stdLines, f_moveLine(f_newstdine(), _fromTime, _level, _toTime))
  216. if showStdLineLabels
  217. array.push(stdLabels, f_moveLabel(f_newLabel(), _toTime, _level, str.format('{0}',_stdLabelValue)))
  218.  
  219.  
  220. f_drawStdLines(_fromTime, _toTime, bool _clear = false) =>
  221. var float stdStepFactor = 0.5
  222. var float stdStep = na
  223. var float stdLevel = na
  224. var float stdLabelValue = na
  225. var int nrLevels = na
  226. var int nrLevelsPos = na
  227. var int nrLevelsNeg = na
  228.  
  229. if _clear and not showStdLinesAll and array.size(stdLevels) > 0
  230. // If we don't need to show all the lines, delete them each time we clear. If we do need to show all the previous lines, don't delete them.
  231. for tmpIndex = 0 to array.size(stdLines)-1
  232. line.delete(array.get(stdLines, tmpIndex))
  233. if showStdLineLabels
  234. label.delete(array.get(stdLabels, tmpIndex))
  235.  
  236. if _clear
  237. array.clear(stdLevels)
  238. array.clear(stdLines)
  239. if showStdLineLabels
  240. array.clear(stdLabels)
  241.  
  242. stdStep := math.abs(regidrhigh-regidrlow) * stdStepFactor
  243.  
  244. if stdStep != 0
  245.  
  246. switch stdLineType
  247. STDLT0 =>
  248. nrLevelsPos := math.ceil(math.max(sessionHigh - regidrhigh, 0) / stdStep) + (stdLineDynamicExtraAuto ? 0 : stdLineDynamicExtraPos)
  249. nrLevelsNeg := math.ceil(math.max(regidrlow - sessionLow, 0) / stdStep) + (stdLineDynamicExtraAuto ? 0 : stdLineDynamicExtraNeg)
  250. STDLT1 =>
  251. nrLevelsPos := stdLineStaticExtraPos
  252. nrLevelsNeg := stdLineStaticExtraNeg
  253.  
  254. // Positive lines
  255. if nrLevelsPos >= 1
  256. for cnt = 1 to nrLevelsPos
  257. stdLevel := regidrhigh + (cnt * stdStep)
  258. stdLabelValue := cnt * stdStepFactor
  259. f_drawStdLine(_fromTime, _toTime, stdLevel, stdLabelValue)
  260.  
  261. // Negative lines
  262. if nrLevelsNeg >= 1
  263. for cnt = 1 to nrLevelsNeg
  264. stdLevel := regidrlow - (cnt * stdStep)
  265. stdLabelValue := cnt * (-stdStepFactor)
  266. f_drawStdLine(_fromTime, _toTime, stdLevel, stdLabelValue)
  267.  
  268. // } Functions
  269.  
  270. // Use the 5 minute timeframe if the chart timeframe is lower than 5m
  271. if barstate.isfirst
  272. use_m5 := timeframe.in_seconds() < 300
  273.  
  274. [m5_open, m5_high, m5_low, m5_close] = request.security(syminfo.tickerid, '5', [open, high, low, close], lookahead = barmerge.lookahead_on)
  275.  
  276. open_value = use_m5 ? m5_open : open
  277. high_value = use_m5 ? m5_high : high
  278. low_value = use_m5 ? m5_low : low
  279. close_value = use_m5 ? m5_close : close
  280.  
  281. inRegularSession = f_insession(regularTime) and showRegular
  282. inRegularExtend = f_insession(regularExtend) and showRegular
  283. inAfterSession = f_insession(afterTime) and showAfter
  284. inAfterExtend = f_insession(afterExtend) and showAfter
  285. inOvernightSession = f_insession(overnightTime) and showOvernight
  286. inOvernightExtend = f_insession(overnightExtend) and showOvernight
  287.  
  288. inSession = inRegularSession or inOvernightSession or inAfterSession
  289. inExtend = inRegularExtend or inOvernightExtend or inAfterExtend
  290.  
  291. enterSession = inSession and not inSession[1]
  292. enterExtend = inExtend and not inExtend[1]
  293.  
  294. leaveRegularSession = not inRegularSession and inRegularSession[1]
  295. enterRegularExtend = inRegularExtend and not inRegularExtend[1]
  296.  
  297.  
  298. if timeframe.isintraday and (PCchart.barIsVisible() or not showAllHistory)
  299. if enterSession
  300. currentSession := inRegularSession ? regularTime : inOvernightSession ? overnightTime : inAfterSession ? afterTime : na
  301. else if enterExtend
  302. currentSession := inRegularExtend ? regularExtend : inOvernightExtend ? overnightExtend : inAfterExtend ? afterExtend : na
  303.  
  304. if inSession
  305.  
  306. // Initialize levels
  307. if not inSession[1]
  308. startTime := time
  309. sessionOpen := open_value
  310. rdrhigh := high_value
  311. rdrlow := low_value
  312. ridrlow := math.min(open_value, close_value)
  313. ridrhigh := math.max(open_value, close_value)
  314.  
  315. // Initialize drawing objects
  316. if showBackground
  317. bgBox := f_newbox()
  318.  
  319. if drlines
  320. highrdrl := f_newdrline()
  321. lowrdrl := f_newdrline()
  322.  
  323. if idrlines
  324. highridrl := f_newidrline()
  325. lowridrl := f_newidrline()
  326.  
  327. if middledrline
  328. middlerdrl := f_newmdline()
  329.  
  330. if middleidrline
  331. middleridrl := f_newmdline()
  332.  
  333. if openline
  334. drLineOpen := f_newopline()
  335.  
  336. // Calculate levels
  337. rdrhigh := math.max(high_value, rdrhigh)
  338. rdrlow := math.min(low_value, rdrlow)
  339. ridrhigh := math.max(open_value, close_value, ridrhigh)
  340. ridrlow := math.min(open_value, close_value, ridrlow)
  341. rdrmiddle := math.avg(rdrhigh, rdrlow)
  342. ridrmiddle := math.avg(ridrhigh, ridrlow)
  343.  
  344. if leaveRegularSession
  345. regidrhigh := ridrhigh
  346. regidrlow := ridrlow
  347. if inRegularExtend
  348. stdLinesStartTime := f_sessionStartTime(regularExtend, TIMEZONE)
  349. stdLinesStopTime := f_sessionStopTime(overnightExtend, TIMEZONE) + ONE_DAY * (dayofweek == dayofweek.friday and syminfo.type != 'crypto' ? 3 : 1)
  350.  
  351. if enterRegularExtend
  352. // Initialize session high/low.
  353. sessionHigh := high_value
  354. sessionLow := low_value
  355.  
  356. // Remember high/low since session started. Needed for drawing STD levels. Also keep high low beyond Extend.
  357. sessionHigh := math.max(sessionHigh, high_value)
  358. sessionLow := math.min(sessionLow, low_value)
  359.  
  360. // Draw objects
  361. if showBackground and inSession
  362. boxUp = close_value > sessionOpen
  363. boxBorderColor = useBoxColors ? (boxUp ? upBorderColor : downBorderColor) : backgroundColor
  364. boxBackgroundColor = useBoxColors ? (boxUp ? upBoxColor : downBoxColor) : backgroundColor
  365. boxHigh = boxType==BX0 ? rdrhigh : ridrhigh
  366. boxLow = boxType==BX0 ? rdrlow : ridrlow
  367. f_movebox(bgBox, startTime, boxHigh, time, boxLow, boxBorderColor, boxBackgroundColor)
  368.  
  369. if extendToEndOfRDR
  370. if syminfo.type == 'warrant' or syminfo.type == 'structured' or syminfo.type == 'right'
  371. endTime := time
  372. else if time > (timenow - 2 * ONE_DAY) // no need to call functions every bar. Only start checking 2 days ago.
  373. if f_timestamp_to_date(f_sessionStopTime(currentSession, TIMEZONE), TIMEZONE) == f_timestamp_to_date(timenow, TIMEZONE) //timenow_date
  374. endTime := f_sessionStopTime(regularExtend, TIMEZONE)
  375. else
  376. endTime := time
  377. else
  378. endTime := time
  379. else
  380. endTime := time
  381.  
  382. if drlines and (inSession or (extenddrLines and inExtend))
  383. f_moveLine(highrdrl, startTime, rdrhigh, endTime)
  384. f_moveLine(lowrdrl, startTime, rdrlow, endTime)
  385. if middledrline
  386. f_moveLine(middlerdrl, startTime, rdrmiddle, endTime)
  387.  
  388. if idrlines and (inSession or (extendidrLines and inExtend))
  389. f_moveLine(highridrl, startTime, ridrhigh, endTime)
  390. f_moveLine(lowridrl, startTime, ridrlow, endTime)
  391. if middleidrline
  392. f_moveLine(middleridrl, startTime, ridrmiddle, endTime)
  393.  
  394. if openline and (inSession or (extendopLines and inExtend))
  395. f_moveLine(drLineOpen, startTime, sessionOpen, endTime)
  396.  
  397. if showStdLines
  398. f_drawStdLines(stdLinesStartTime, stdLinesStopTime, enterRegularExtend)
  399.  
  400. //////////////////////////////////////////////////////////////////////////////////////////////////////
  401. ///////////////////////////// TheMas7er Scalp Indicator //////////////////////////////////////////////
  402.  
  403. res = "D"
  404.  
  405. //Main
  406. showMain = input(true,"Show main DR/iDR", group = "********* main New York Session (default 09:30-10:30am) *********")
  407. TimeMain = input.session("0930-1025", "Time range:",tooltip = "By default it is set to be used on 5min chart, so it means it is set to obtain last candle on 10:25. Consider this if you change time frame.")
  408. ny = TimeMain + ":1234567"
  409.  
  410. showExtLines = input(true,"Show extended lines on session", tooltip = "Extended lines to the right will be visible till next DR sesion")
  411. mainColor = input.color(color.rgb(76, 175, 79, 100),"High DR Color:", inline = "Main lines:", group = "Customize colors and lines")
  412. mainLebelTextCol = input.color(color.red,"Label Text color:", inline = "Main lines:", group = "Customize colors and lines")
  413. mainExtLinesStyle = input.string("Dashed","Ext. Style:", options=["Solid", "Dashed", "Dotted"],inline = "exMain lines:")
  414. mainExtLinesWidth = input.int(1,"Width:",inline = "exMain lines:")
  415. lmainColor = input.color(color.rgb(255, 82, 82, 100),"Low DR Color:", inline = "lMain lines:")
  416. lmainLebelTextCol = input.color(color.red,"Label Text color:", inline = "lMain lines:")
  417. lmainExtLinesStyle = input.string("Dashed","Ext. Style:", options=["Solid", "Dashed", "Dotted"],inline = "lexMain lines:")
  418. lmainExtLinesWidth = input.int(1,"Width:",inline = "lexMain lines:")
  419. showFibo = input(true,"Show fibo levels according to DR (0.5 step)", tooltip = "It will be visible till next DR session",group = "Fibonacci levels")
  420. FiboColor = input(color.rgb(196, 196, 196),"Fibo lines Color:",inline = "Fibo lines:")
  421. FiboLineStyle = input.string("Solid","Style:", options=["Solid", "Dashed", "Dotted"],inline = "Fibo lines:")
  422. FiboLineWidth = input.int(1,"Width:",inline = "Fibo lines:")
  423.  
  424. //Early
  425. showEarly = input(true,"Show early eDR/eiDR", group = "********* early New York Session (default 03:00-04:00am) *********")
  426. TimeEarly = input.session("0300-0355", "Time range:",tooltip = "By default it is set to be used on 5min chart, so it means it is set to obtain last candle on 03:55. Consider this if you change time frame.")
  427. nye = TimeEarly + ":1234567"
  428.  
  429. showEarlyExtLines = input(true,"Show extended lines on session", tooltip = "Extended lines to the right will be visible till next DR session")
  430. emainColor = input.color(color.rgb(76, 175, 79, 100),"High DR Color:", inline = "eMain lines:", group = "Customize colors and lines ")
  431. emainLebelTextCol = input.color(color.red,"Label Text color:", inline = "eMain lines:", group = "Customize colors and lines ")
  432. emainExtLinesStyle = input.string("Dashed","Ext. Style:", options=["Solid", "Dashed", "Dotted"],inline = "eexMain lines:")
  433. emainExtLinesWidth = input.int(1,"Width:",inline = "eexMain lines:")
  434. elmainColor = input.color(color.rgb(255, 82, 82, 100),"Low DR Color:", inline = "elMain lines:")
  435. elmainLebelTextCol = input.color(color.red,"Label Text color:", inline = "elMain lines:")
  436. elmainExtLinesStyle = input.string("Dashed","Ext. Style:", options=["Solid", "Dashed", "Dotted"],inline = "elexMain lines:")
  437. elmainExtLinesWidth = input.int(1,"Width:",inline = "elexMain lines:")
  438. showeFibo = input(true,"Show fibo levels according to eDR (0.5 step)", tooltip = "It will be visible till next DR session",group = "Fibonacci levels ")
  439. eFiboColor = input(color.rgb(196, 196, 196),"Fibo lines Color:",inline = "eFibo lines:")
  440. eFiboLineStyle = input.string("Solid","Style:", options=["Solid", "Dashed", "Dotted"],inline = "eFibo lines:")
  441. eFiboLineWidth = input.int(1,"Width:",inline = "eFibo lines:")
  442.  
  443. //ADR
  444. showADR = input(true,"Show ADR", group = "********* ADR New York Session (default 07:30-08:30pm) *********")
  445. TimeADR = input.session("1930-2025", "Time range:",tooltip = "By default it is set to be used on 5min chart, so it means it is set to obtain last candle on 08:25 pm. Consider this if you change time frame.")
  446. nya = TimeADR + ":1234567"
  447.  
  448. showADRExtLines = input(true,"Show extended lines on session", tooltip = "Extended lines to the right will be visible till next DR session")
  449. adrmainColor = input.color(color.rgb(76, 175, 79, 100),"High DR Color:", inline = "aMain lines:", group = "Customize colors and lines ")
  450. adrmainLebelTextCol = input.color(color.red,"Label Text color:", inline = "aMain lines:", group = "Customize colors and lines ")
  451. adrmainExtLinesStyle = input.string("Dashed","Ext. Style:", options=["Solid", "Dashed", "Dotted"],inline = "aexMain lines:")
  452. adrmainExtLinesWidth = input.int(1,"Width:",inline = "aexMain lines:")
  453. adrlmainColor = input.color(color.rgb(255, 82, 82, 100),"Low DR Color:", inline = "alMain lines:")
  454. adrlmainLebelTextCol = input.color(color.red,"Label Text color:", inline = "alMain lines:")
  455. adrlmainExtLinesStyle = input.string("Dashed","Ext. Style:", options=["Solid", "Dashed", "Dotted"],inline = "alexMain lines:")
  456. adrlmainExtLinesWidth = input.int(1,"Width:",inline = "alexMain lines:")
  457. showadrFibo = input(true,"Show fibo levels according to eDR (0.5 step)", tooltip = "It will be visible till next DR session",group = "Fibonacci levels ")
  458. adrFiboColor = input(color.rgb(196, 196, 196),"Fibo lines Color:",inline = "aFibo lines:")
  459. adrFiboLineStyle = input.string("Solid","Style:", options=["Solid", "Dashed", "Dotted"],inline = "aFibo lines:")
  460. adrFiboLineWidth = input.int(1,"Width:",inline = "aFibo lines:")
  461.  
  462.  
  463. mainLineS = line.style_solid
  464. if mainExtLinesStyle == "Solid"
  465. mainLineS := line.style_solid
  466. if mainExtLinesStyle == "Dashed"
  467. mainLineS := line.style_dashed
  468. if mainExtLinesStyle == "Dotted"
  469. mainLineS := line.style_dotted
  470. lmainLineS = line.style_solid
  471. if lmainExtLinesStyle == "Solid"
  472. lmainLineS := line.style_solid
  473. if lmainExtLinesStyle == "Dashed"
  474. lmainLineS := line.style_dashed
  475. if lmainExtLinesStyle == "Dotted"
  476. lmainLineS := line.style_dotted
  477.  
  478. emainLineS = line.style_solid
  479. if emainExtLinesStyle == "Solid"
  480. emainLineS := line.style_solid
  481. if emainExtLinesStyle == "Dashed"
  482. emainLineS := line.style_dashed
  483. if emainExtLinesStyle == "Dotted"
  484. emainLineS := line.style_dotted
  485. elmainLineS = line.style_solid
  486. if elmainExtLinesStyle == "Solid"
  487. elmainLineS := line.style_solid
  488. if elmainExtLinesStyle == "Dashed"
  489. elmainLineS := line.style_dashed
  490. if elmainExtLinesStyle == "Dotted"
  491. elmainLineS := line.style_dotted
  492.  
  493. adrmainLineS = line.style_solid
  494. if adrmainExtLinesStyle == "Solid"
  495. adrmainLineS := line.style_solid
  496. if adrmainExtLinesStyle == "Dashed"
  497. adrmainLineS := line.style_dashed
  498. if adrmainExtLinesStyle == "Dotted"
  499. adrmainLineS := line.style_dotted
  500. adrlmainLineS = line.style_solid
  501. if adrlmainExtLinesStyle == "Solid"
  502. adrlmainLineS := line.style_solid
  503. if adrlmainExtLinesStyle == "Dashed"
  504. adrlmainLineS := line.style_dashed
  505. if adrlmainExtLinesStyle == "Dotted"
  506. adrlmainLineS := line.style_dotted
  507.  
  508. fibLineS = line.style_solid
  509. if FiboLineStyle == "Solid"
  510. fibLineS := line.style_solid
  511. if FiboLineStyle == "Dashed"
  512. fibLineS := line.style_dashed
  513. if FiboLineStyle == "Dotted"
  514. fibLineS := line.style_dotted
  515.  
  516. efibLineS = line.style_solid
  517. if eFiboLineStyle == "Solid"
  518. efibLineS := line.style_solid
  519. if eFiboLineStyle == "Dashed"
  520. efibLineS := line.style_dashed
  521. if eFiboLineStyle == "Dotted"
  522. efibLineS := line.style_dotted
  523.  
  524. adrfibLineS = line.style_solid
  525. if adrFiboLineStyle == "Solid"
  526. adrfibLineS := line.style_solid
  527. if adrFiboLineStyle == "Dashed"
  528. adrfibLineS := line.style_dashed
  529. if adrFiboLineStyle == "Dotted"
  530. adrfibLineS := line.style_dotted
  531.  
  532. is_newbar(sess) =>
  533. t = time(res, sess, "America/New_York")
  534. na(t[1]) and not na(t) or t[1] < t
  535.  
  536. is_session(sess) =>
  537. not na(time(timeframe.period, sess, "America/New_York"))
  538.  
  539.  
  540. nyNewbar = is_newbar(ny)
  541. nySession = is_session(ny)
  542. nyeSession = is_session(nye)
  543. nyaSession = is_session(nya)
  544.  
  545. //TheMas7er calc
  546. //barcolor(nySession ? color.white : na)
  547.  
  548. var line DRhighE = na
  549. var line DRlowE = na
  550. var line IDRhighE = na
  551. var line IDRlowE = na
  552.  
  553. var line eDRhighE = na
  554. var line eDRlowE = na
  555. var line eIDRhighE = na
  556. var line eIDRlowE = na
  557.  
  558. var line aDRhighE = na
  559. var line aDRlowE = na
  560. var line aIDRhighE = na
  561. var line aIDRlowE = na
  562.  
  563. var float aDR_high = na
  564. var float aDR_low = na
  565.  
  566. var line rDR_Downside_low_target = na //rDR DownSide Expansion Target
  567. var line rDR_Upside_high_target = na //rDR UpSide Expansion Target
  568. var label rDR_Downside_low_target_label = na
  569. var label rDR_Upside_high_target_label = na
  570.  
  571. var line Fibo05 = na
  572. var line Fibo15 = na
  573. var line Fibo2 = na
  574. var line Fibo25 = na
  575. var line Fibo3 = na
  576. var line Fibo35 = na
  577. var line Fibo4 = na
  578. var line Fibo45 = na
  579. var line Fibo5 = na
  580. var line Fibo55 = na
  581. var line Fibo6 = na
  582. var line FiboM05 = na
  583. var line FiboM1 = na
  584. var line FiboM15 = na
  585. var line FiboM2 = na
  586. var line FiboM25 = na
  587. var line FiboM3 = na
  588. var line FiboM35 = na
  589. var line FiboM4 = na
  590. var line FiboM45 = na
  591. var line FiboM5 = na
  592. var line FiboM55 = na
  593. var line FiboM6 = na
  594. var label Fibo05T = na
  595. var label Fibo15T = na
  596. var label Fibo2T = na
  597. var label Fibo25T = na
  598. var label Fibo3T = na
  599. var label Fibo35T = na
  600. var label Fibo4T = na
  601. var label Fibo45T = na
  602. var label Fibo5T = na
  603. var label Fibo55T = na
  604. var label Fibo6T = na
  605. var label FiboM05T = na
  606. var label FiboM1T = na
  607. var label FiboM15T = na
  608. var label FiboM2T = na
  609. var label FiboM25T = na
  610. var label FiboM3T = na
  611. var label FiboM35T = na
  612. var label FiboM4T = na
  613. var label FiboM45T = na
  614. var label FiboM5T = na
  615. var label FiboM55T = na
  616. var label FiboM6T = na
  617.  
  618. var line eFibo05 = na
  619. var line eFibo15 = na
  620. var line eFibo2 = na
  621. var line eFibo25 = na
  622. var line eFibo3 = na
  623. var line eFibo35 = na
  624. var line eFibo4 = na
  625. var line eFibo45 = na
  626. var line eFibo5 = na
  627. var line eFibo55 = na
  628. var line eFibo6 = na
  629. var line eFiboM05 = na
  630. var line eFiboM1 = na
  631. var line eFiboM15 = na
  632. var line eFiboM2 = na
  633. var line eFiboM25 = na
  634. var line eFiboM3 = na
  635. var line eFiboM35 = na
  636. var line eFiboM4 = na
  637. var line eFiboM45 = na
  638. var line eFiboM5 = na
  639. var line eFiboM55 = na
  640. var line eFiboM6 = na
  641. var label eFibo05T = na
  642. var label eFibo15T = na
  643. var label eFibo2T = na
  644. var label eFibo25T = na
  645. var label eFibo3T = na
  646. var label eFibo35T = na
  647. var label eFibo4T = na
  648. var label eFibo45T = na
  649. var label eFibo5T = na
  650. var label eFibo55T = na
  651. var label eFibo6T = na
  652. var label eFiboM05T = na
  653. var label eFiboM1T = na
  654. var label eFiboM15T = na
  655. var label eFiboM2T = na
  656. var label eFiboM25T = na
  657. var label eFiboM3T = na
  658. var label eFiboM35T = na
  659. var label eFiboM4T = na
  660. var label eFiboM45T = na
  661. var label eFiboM5T = na
  662. var label eFiboM55T = na
  663. var label eFiboM6T = na
  664.  
  665. var line aFibo05 = na
  666. var line aFibo15 = na
  667. var line aFibo2 = na
  668. var line aFibo25 = na
  669. var line aFibo3 = na
  670. var line aFibo35 = na
  671. var line aFibo4 = na
  672. var line aFibo45 = na
  673. var line aFibo5 = na
  674. var line aFibo55 = na
  675. var line aFibo6 = na
  676. var line aFiboM05 = na
  677. var line aFiboM1 = na
  678. var line aFiboM15 = na
  679. var line aFiboM2 = na
  680. var line aFiboM25 = na
  681. var line aFiboM3 = na
  682. var line aFiboM35 = na
  683. var line aFiboM4 = na
  684. var line aFiboM45 = na
  685. var line aFiboM5 = na
  686. var line aFiboM55 = na
  687. var line aFiboM6 = na
  688. var label aFibo05T = na
  689. var label aFibo15T = na
  690. var label aFibo2T = na
  691. var label aFibo25T = na
  692. var label aFibo3T = na
  693. var label aFibo35T = na
  694. var label aFibo4T = na
  695. var label aFibo45T = na
  696. var label aFibo5T = na
  697. var label aFibo55T = na
  698. var label aFibo6T = na
  699. var label aFiboM05T = na
  700. var label aFiboM1T = na
  701. var label aFiboM15T = na
  702. var label aFiboM2T = na
  703. var label aFiboM25T = na
  704. var label aFiboM3T = na
  705. var label aFiboM35T = na
  706. var label aFiboM4T = na
  707. var label aFiboM45T = na
  708. var label aFiboM5T = na
  709. var label aFiboM55T = na
  710. var label aFiboM6T = na
  711.  
  712.  
  713. startBar = false
  714. endBar = false
  715. starteBar = false
  716. endeBar = false
  717. startaBar = false
  718. endaBar = false
  719. if barstate.isconfirmed
  720. if nyeSession
  721. starteBar := nyeSession[1] == false and nyeSession
  722. else
  723. endeBar := nyeSession == false and nyeSession[1]
  724. if nySession
  725. startBar := nySession[1] == false and nySession
  726. else
  727. endBar := nySession == false and nySession[1]
  728. if nyaSession
  729. startaBar := nyaSession[1] == false and nyaSession
  730. else
  731. endaBar := nyaSession == false and nyaSession[1]
  732.  
  733.  
  734.  
  735. FirsteBar = ta.barssince(starteBar)
  736. LasteBar = ta.barssince(endeBar)+1
  737. FirstBar = ta.barssince(startBar)
  738. LastBar = ta.barssince(endBar)+1
  739. FirstaBar = ta.barssince(startaBar)
  740. LastaBar = ta.barssince(endaBar)+1
  741.  
  742. afTextPos = bar_index[1]
  743. afTextXloc = xloc.bar_index
  744. //NY early eDR/eIDR
  745. if barstate.isconfirmed and endeBar and showEarly
  746. HHe = high
  747. LLe = low
  748. HHidre = close
  749. LLidre = open
  750. if close > open
  751. HHidre := close
  752. LLidre := open
  753. else
  754. HHidre := open
  755. LLidre := close
  756.  
  757. for i = 1 to FirsteBar
  758. if high[i] > HHe
  759. HHe := high[i]
  760. if low[i] < LLe
  761. LLe := low[i]
  762. if close[i] > open[i] and close[i] > HHidre
  763. HHidre := close[i]
  764. if close[i] < open[i] and open[i] > HHidre
  765. HHidre := open[i]
  766. if close[i] > open[i] and open[i] < LLidre
  767. LLidre := open[i]
  768. if close[i] < open[i] and close[i] < LLidre
  769. LLidre := close[i]
  770.  
  771. eDRhigh = line.new(bar_index[FirsteBar], HHe,bar_index,HHe,color=emainColor,style=line.style_solid,width=emainExtLinesWidth)
  772. eDRhighLabel = label.new(bar_index[FirsteBar],HHe,text="oDR high",size=size.small,color=emainColor,style=label.style_label_right,textcolor=emainLebelTextCol)
  773. eDRlow = line.new(bar_index[FirsteBar], LLe,bar_index,LLe,color=elmainColor,style=line.style_solid,width=elmainExtLinesWidth)
  774. eDRlowLabel = label.new(bar_index[FirsteBar],LLe,text="oDR low",size=size.small,color=elmainColor,style=label.style_label_right,textcolor=elmainLebelTextCol)
  775. eIDRhigh = line.new(bar_index[FirsteBar], HHidre,bar_index,HHidre,color=emainColor,style=line.style_dotted,width=emainExtLinesWidth)
  776. eIDRhighLabel = label.new(bar_index[FirsteBar+3],HHidre,text="oiDR high",size=size.small,color=color.rgb(61, 61, 61),style=label.style_none,textcolor=emainColor)
  777. eIDRlow = line.new(bar_index[FirsteBar], LLidre,bar_index,LLidre,color=elmainColor,style=line.style_dotted,width=elmainExtLinesWidth)
  778. eIDRlowLabel = label.new(bar_index[FirsteBar+3],LLidre,text="oiDR low",size=size.small,color=color.rgb(61, 61, 61),style=label.style_none,textcolor=elmainColor)
  779.  
  780. if show_rDR_expansion_target
  781. // aDR DownSide Expansion
  782. rDR_Downside_low_target := line.new(bar_index[1],LLe-((HHe-LLe)*2),bar_index,LLe-((HHe-LLe)*2),extend=extend.right,color=color_rDR_expansion_target,style=line.style_solid,width=1) //oDR (low) - oDR's range * 2 = rDR estimated low
  783. rDR_Downside_low_target_label := label.new(afTextPos, LLe-((HHe-LLe)*2), "Projected Minimum rDR Target (low)", xloc = afTextXloc, size=size.small, style = label.style_none,textcolor=color_rDR_expansion_target_text)
  784. // aDR UpSide Expansion
  785. rDR_Upside_high_target := line.new(bar_index[1],HHe+((HHe-LLe)*2),bar_index,HHe+((HHe-LLe)*2),extend=extend.right,color=color_rDR_expansion_target,style=line.style_solid,width=1) //oDR (high) + oDR's range * 2 = rDR estimated high
  786. rDR_Upside_high_target_label := label.new(afTextPos, HHe+((HHe-LLe)*2), "Projected Minimum rDR Target (high)", xloc = afTextXloc, size=size.small, style = label.style_none,textcolor=color_rDR_expansion_target_text)
  787.  
  788. if showEarlyExtLines
  789. eDRhighE := line.new(bar_index[1], HHe,bar_index,HHe,extend = extend.right,color=emainColor,style=emainLineS,width=emainExtLinesWidth)
  790. eDRlowE := line.new(bar_index[1], LLe,bar_index,LLe,extend = extend.right,color=elmainColor,style=elmainLineS,width=elmainExtLinesWidth)
  791. eIDRhighE := line.new(bar_index[1], HHidre,bar_index,HHidre,extend = extend.right,color=emainColor,style=line.style_dotted,width=emainExtLinesWidth)
  792. eIDRlowE := line.new(bar_index[1], LLidre,bar_index,LLidre,extend = extend.right,color=elmainColor,style=line.style_dotted,width=elmainExtLinesWidth)
  793. //Fibo early
  794. if showeFibo
  795. eFibo05 := line.new(bar_index[1], (HHidre+LLidre)/2,bar_index,(HHidre+LLidre)/2,extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  796. eFibo15 := line.new(bar_index[1], HHidre + ((HHidre-LLidre)*0.5),bar_index,HHidre + ((HHidre-LLidre)*0.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  797. eFibo2 := line.new(bar_index[1], HHidre + (HHidre-LLidre),bar_index,HHidre + (HHidre-LLidre),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  798. eFibo25 := line.new(bar_index[1], HHidre + ((HHidre-LLidre)*1.5),bar_index,HHidre + ((HHidre-LLidre)*1.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  799. eFibo3 := line.new(bar_index[1], HHidre + ((HHidre-LLidre)*2),bar_index,HHidre + ((HHidre-LLidre)*2),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  800. eFibo35 := line.new(bar_index[1], HHidre + ((HHidre-LLidre)*2.5),bar_index,HHidre + ((HHidre-LLidre)*2.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  801. eFibo4 := line.new(bar_index[1], HHidre + ((HHidre-LLidre)*3),bar_index,HHidre + ((HHidre-LLidre)*3),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  802. eFibo45 := line.new(bar_index[1], HHidre + ((HHidre-LLidre)*3.5),bar_index,HHidre + ((HHidre-LLidre)*3.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  803. eFibo5 := line.new(bar_index[1], HHidre + ((HHidre-LLidre)*4),bar_index,HHidre + ((HHidre-LLidre)*4),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  804. eFibo55 := line.new(bar_index[1], HHidre + ((HHidre-LLidre)*4.5),bar_index,HHidre + ((HHidre-LLidre)*4.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  805. eFibo6 := line.new(bar_index[1], HHidre + ((HHidre-LLidre)*5),bar_index,HHidre + ((HHidre-LLidre)*5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  806.  
  807. eFiboM05 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*0.5),bar_index,LLidre - ((HHidre-LLidre)*0.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  808. eFiboM1 := line.new(bar_index[1], LLidre - (HHidre-LLidre),bar_index,LLidre - (HHidre-LLidre),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  809. eFiboM15 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*1.5),bar_index,LLidre - ((HHidre-LLidre)*1.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  810. eFiboM2 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*2),bar_index,LLidre - ((HHidre-LLidre)*2),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  811. eFiboM25 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*2.5),bar_index,LLidre - ((HHidre-LLidre)*2.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  812. eFiboM3 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*3),bar_index,LLidre - ((HHidre-LLidre)*3),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  813. eFiboM35 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*3.5),bar_index,LLidre - ((HHidre-LLidre)*3.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  814. eFiboM4 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*4),bar_index,LLidre - ((HHidre-LLidre)*4),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  815. eFiboM45 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*4.5),bar_index,LLidre - ((HHidre-LLidre)*4.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  816. eFiboM5 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*5),bar_index,LLidre - ((HHidre-LLidre)*5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  817. eFiboM55 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*5.5),bar_index,LLidre - ((HHidre-LLidre)*5.5),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  818. eFiboM6 := line.new(bar_index[1], LLidre - ((HHidre-LLidre)*6),bar_index,LLidre - ((HHidre-LLidre)*6),extend = extend.right,color=eFiboColor,style=efibLineS,width=eFiboLineWidth)
  819.  
  820. efTextPos = bar_index[1]
  821. efTextXloc = xloc.bar_index
  822. eFibo05T := label.new(efTextPos, (HHidre+LLidre)/2, "0.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  823. eFibo15T := label.new(efTextPos, HHidre + ((HHidre-LLidre)*0.5), "1.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  824. eFibo2T := label.new(efTextPos, HHidre + (HHidre-LLidre), "2", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  825. eFibo25T := label.new(efTextPos, HHidre + ((HHidre-LLidre)*1.5), "2.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  826. eFibo3T := label.new(efTextPos, HHidre + ((HHidre-LLidre)*2), "3", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  827. eFibo35T := label.new(efTextPos, HHidre + ((HHidre-LLidre)*2.5), "3.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  828. eFibo4T := label.new(efTextPos, HHidre + ((HHidre-LLidre)*3), "4", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  829. eFibo45T := label.new(efTextPos, HHidre + ((HHidre-LLidre)*3.5), "4.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  830. eFibo5T := label.new(efTextPos, HHidre + ((HHidre-LLidre)*4), "5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  831. eFibo55T := label.new(efTextPos, HHidre + ((HHidre-LLidre)*4.5), "5.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  832. eFibo6T := label.new(efTextPos, HHidre + ((HHidre-LLidre)*5), "6", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  833.  
  834. eFiboM05T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*0.5), "-0.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  835. eFiboM1T := label.new(efTextPos, LLidre - (HHidre-LLidre), "-1", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  836. eFiboM15T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*1.5), "-1.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  837. eFiboM2T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*2), "-2", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  838. eFiboM25T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*2.5), "-2.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  839. eFiboM3T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*3), "-3", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  840. eFiboM35T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*3.5), "-3.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  841. eFiboM4T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*4), "-4", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  842. eFiboM45T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*4.5), "-4.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  843. eFiboM5T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*5), "-5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  844. eFiboM55T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*5.5), "-5.5", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  845. eFiboM6T := label.new(efTextPos, LLidre - ((HHidre-LLidre)*6), "-6", xloc = efTextXloc, style = label.style_none,textcolor=eFiboColor)
  846.  
  847.  
  848. DeleteOldeLInes = false
  849. if showEarly and showMain and showADR and (nyeSession or nySession or nyaSession)
  850. DeleteOldeLInes := true
  851. if showEarly and showMain == false and showADR == false and nyeSession
  852. DeleteOldeLInes := true
  853. if showEarly == false and showMain and showADR == false and nySession
  854. DeleteOldeLInes := true
  855. if showEarly == false and showMain == false and showADR and nyaSession
  856. DeleteOldeLInes := true
  857. if showEarly == false and showMain and showADR and (nySession or nyaSession)
  858. DeleteOldeLInes := true
  859. if showEarly and showMain == false and showADR and (nyeSession or nyaSession)
  860. DeleteOldeLInes := true
  861. if showEarly and showMain and showADR == false and (nyeSession or nySession)
  862. DeleteOldeLInes := true
  863.  
  864. if DeleteOldeLInes
  865. line.delete(eDRhighE[1])
  866. line.delete(eDRlowE[1])
  867. line.delete(eIDRhighE[1])
  868. line.delete(eIDRlowE[1])
  869.  
  870.  
  871. line.delete(eFibo05[1])
  872. line.delete(eFibo15[1])
  873. line.delete(eFibo2[1])
  874. line.delete(eFibo25[1])
  875. line.delete(eFibo3[1])
  876. line.delete(eFibo35[1])
  877. line.delete(eFibo4[1])
  878. line.delete(eFibo45[1])
  879. line.delete(eFibo5[1])
  880. line.delete(eFibo55[1])
  881. line.delete(eFibo6[1])
  882. line.delete(eFiboM05[1])
  883. line.delete(eFiboM1[1])
  884. line.delete(eFiboM15[1])
  885. line.delete(eFiboM2[1])
  886. line.delete(eFiboM25[1])
  887. line.delete(eFiboM3[1])
  888. line.delete(eFiboM35[1])
  889. line.delete(eFiboM4[1])
  890. line.delete(eFiboM45[1])
  891. line.delete(eFiboM5[1])
  892. line.delete(eFiboM55[1])
  893. line.delete(eFiboM6[1])
  894. label.delete(eFibo05T[1])
  895. label.delete(eFibo15T[1])
  896. label.delete(eFibo2T[1])
  897. label.delete(eFibo25T[1])
  898. label.delete(eFibo3T[1])
  899. label.delete(eFibo35T[1])
  900. label.delete(eFibo4T[1])
  901. label.delete(eFibo45T[1])
  902. label.delete(eFibo5T[1])
  903. label.delete(eFibo55T[1])
  904. label.delete(eFibo6T[1])
  905. label.delete(eFiboM05T[1])
  906. label.delete(eFiboM1T[1])
  907. label.delete(eFiboM15T[1])
  908. label.delete(eFiboM2T[1])
  909. label.delete(eFiboM25T[1])
  910. label.delete(eFiboM3T[1])
  911. label.delete(eFiboM35T[1])
  912. label.delete(eFiboM4T[1])
  913. label.delete(eFiboM45T[1])
  914. label.delete(eFiboM5T[1])
  915. label.delete(eFiboM55T[1])
  916. label.delete(eFiboM6T[1])
  917.  
  918.  
  919. //NY regular DR/iDR
  920. if barstate.isconfirmed and endBar and showMain
  921. HH = high
  922. LL = low
  923. HHidr = close
  924. LLidr = open
  925. if close > open
  926. HHidr := close
  927. LLidr := open
  928. else
  929. HHidr := open
  930. LLidr := close
  931. for i = 1 to FirstBar
  932. if high[i] > HH
  933. HH := high[i]
  934. if low[i] < LL
  935. LL := low[i]
  936. if close[i] > open[i] and close[i] > HHidr
  937. HHidr := close[i]
  938. if close[i] < open[i] and open[i] > HHidr
  939. HHidr := open[i]
  940. if close[i] > open[i] and open[i] < LLidr
  941. LLidr := open[i]
  942. if close[i] < open[i] and close[i] < LLidr
  943. LLidr := close[i]
  944.  
  945. DRhigh = line.new(bar_index[FirstBar], HH,bar_index,HH,color=mainColor,style=line.style_solid,width=mainExtLinesWidth)
  946. DRhighLabel = label.new(bar_index[FirstBar],HH,text="rDR high",size=size.small,color=mainColor,style=label.style_label_right,textcolor=mainLebelTextCol)
  947. DRlow = line.new(bar_index[FirstBar], LL,bar_index,LL,color=lmainColor,style=line.style_solid,width=lmainExtLinesWidth)
  948. DRlowLabel = label.new(bar_index[FirstBar],LL,text="rDR low",size=size.small,color=lmainColor,style=label.style_label_right,textcolor=lmainLebelTextCol)
  949. IDRhigh = line.new(bar_index[FirstBar], HHidr,bar_index,HHidr,color=mainColor,style=line.style_dotted,width=mainExtLinesWidth)
  950. IDRhighLabel = label.new(bar_index[FirstBar+3],HHidr,text="riDR high",size=size.small,color=color.rgb(61, 61, 61),style=label.style_none,textcolor=mainColor)
  951. IDRlow = line.new(bar_index[FirstBar], LLidr,bar_index,LLidr,color=lmainColor,style=line.style_dotted,width=lmainExtLinesWidth)
  952. IDRlowLabel = label.new(bar_index[FirstBar+3],LLidr,text="riDR low",size=size.small,color=color.rgb(61, 61, 61),style=label.style_none,textcolor=lmainColor)
  953.  
  954. if showExtLines
  955. DRhighE := line.new(bar_index[1], HH,bar_index,HH,extend = extend.right,color=mainColor,style=mainLineS,width=mainExtLinesWidth)
  956. DRlowE := line.new(bar_index[1], LL,bar_index,LL,extend = extend.right,color=lmainColor,style=lmainLineS,width=lmainExtLinesWidth)
  957. IDRhighE := line.new(bar_index[1], HHidr,bar_index,HHidr,extend = extend.right,color=mainColor,style=line.style_dotted,width=mainExtLinesWidth)
  958. IDRlowE := line.new(bar_index[1], LLidr,bar_index,LLidr,extend = extend.right,color=lmainColor,style=line.style_dotted,width=lmainExtLinesWidth)
  959.  
  960. if showFibo
  961. Fibo05 := line.new(bar_index[1], (HHidr+LLidr)/2,bar_index,(HHidr+LLidr)/2,extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  962. Fibo15 := line.new(bar_index[1], HHidr + ((HHidr-LLidr)*0.5),bar_index,HHidr + ((HHidr-LLidr)*0.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  963. Fibo2 := line.new(bar_index[1], HHidr + (HHidr-LLidr),bar_index,HHidr + (HHidr-LLidr),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  964. Fibo25 := line.new(bar_index[1], HHidr + ((HHidr-LLidr)*1.5),bar_index,HHidr + ((HHidr-LLidr)*1.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  965. Fibo3 := line.new(bar_index[1], HHidr + ((HHidr-LLidr)*2),bar_index,HHidr + ((HHidr-LLidr)*2),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  966. Fibo35 := line.new(bar_index[1], HHidr + ((HHidr-LLidr)*2.5),bar_index,HHidr + ((HHidr-LLidr)*2.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  967. Fibo4 := line.new(bar_index[1], HHidr + ((HHidr-LLidr)*3),bar_index,HHidr + ((HHidr-LLidr)*3),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  968. Fibo45 := line.new(bar_index[1], HHidr + ((HHidr-LLidr)*3.5),bar_index,HHidr + ((HHidr-LLidr)*3.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  969. Fibo5 := line.new(bar_index[1], HHidr + ((HHidr-LLidr)*4),bar_index,HHidr + ((HHidr-LLidr)*4),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  970. Fibo55 := line.new(bar_index[1], HHidr + ((HHidr-LLidr)*4.5),bar_index,HHidr + ((HHidr-LLidr)*4.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  971. Fibo6 := line.new(bar_index[1], HHidr + ((HHidr-LLidr)*5),bar_index,HHidr + ((HHidr-LLidr)*5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  972.  
  973. FiboM05 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*0.5),bar_index,LLidr - ((HHidr-LLidr)*0.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  974. FiboM1 := line.new(bar_index[1], LLidr - (HHidr-LLidr),bar_index,LLidr - (HHidr-LLidr),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  975. FiboM15 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*1.5),bar_index,LLidr - ((HHidr-LLidr)*1.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  976. FiboM2 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*2),bar_index,LLidr - ((HHidr-LLidr)*2),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  977. FiboM25 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*2.5),bar_index,LLidr - ((HHidr-LLidr)*2.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  978. FiboM3 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*3),bar_index,LLidr - ((HHidr-LLidr)*3),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  979. FiboM35 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*3.5),bar_index,LLidr - ((HHidr-LLidr)*3.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  980. FiboM4 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*4),bar_index,LLidr - ((HHidr-LLidr)*4),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  981. FiboM45 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*4.5),bar_index,LLidr - ((HHidr-LLidr)*4.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  982. FiboM5 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*5),bar_index,LLidr - ((HHidr-LLidr)*5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  983. FiboM55 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*5.5),bar_index,LLidr - ((HHidr-LLidr)*5.5),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  984. FiboM6 := line.new(bar_index[1], LLidr - ((HHidr-LLidr)*6),bar_index,LLidr - ((HHidr-LLidr)*6),extend = extend.right,color=FiboColor,style=fibLineS,width=FiboLineWidth)
  985.  
  986. fTextPos = bar_index[1]
  987. fTextXloc = xloc.bar_index
  988. Fibo05T := label.new(fTextPos, (HHidr+LLidr)/2, "0.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  989. Fibo15T := label.new(fTextPos, HHidr + ((HHidr-LLidr)*0.5), "1.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  990. Fibo2T := label.new(fTextPos, HHidr + (HHidr-LLidr), "2", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  991. Fibo25T := label.new(fTextPos, HHidr + ((HHidr-LLidr)*1.5), "2.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  992. Fibo3T := label.new(fTextPos, HHidr + ((HHidr-LLidr)*2), "3", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  993. Fibo35T := label.new(fTextPos, HHidr + ((HHidr-LLidr)*2.5), "3.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  994. Fibo4T := label.new(fTextPos, HHidr + ((HHidr-LLidr)*3), "4", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  995. Fibo45T := label.new(fTextPos, HHidr + ((HHidr-LLidr)*3.5), "4.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  996. Fibo5T := label.new(fTextPos, HHidr + ((HHidr-LLidr)*4), "5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  997. Fibo55T := label.new(fTextPos, HHidr + ((HHidr-LLidr)*4.5), "5.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  998. Fibo6T := label.new(fTextPos, HHidr + ((HHidr-LLidr)*5), "6", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  999.  
  1000. FiboM05T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*0.5), "-0.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1001. FiboM1T := label.new(fTextPos, LLidr - (HHidr-LLidr), "-1", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1002. FiboM15T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*1.5), "-1.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1003. FiboM2T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*2), "-2", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1004. FiboM25T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*2.5), "-2.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1005. FiboM3T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*3), "-3", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1006. FiboM35T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*3.5), "-3.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1007. FiboM4T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*4), "-4", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1008. FiboM45T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*4.5), "-4.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1009. FiboM5T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*5), "-5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1010. FiboM55T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*5.5), "-5.5", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1011. FiboM6T := label.new(fTextPos, LLidr - ((HHidr-LLidr)*6), "-6", xloc = fTextXloc, style = label.style_none,textcolor=FiboColor)
  1012.  
  1013. DeleteOldLInes = false
  1014. if showEarly and showMain and showADR and (nyeSession or nySession or nyaSession)
  1015. DeleteOldLInes := true
  1016. if showEarly and showMain == false and showADR == false and nyeSession
  1017. DeleteOldLInes := true
  1018. if showEarly == false and showMain and showADR == false and nySession
  1019. DeleteOldLInes := true
  1020. if showEarly == false and showMain == false and showADR and nyaSession
  1021. DeleteOldLInes := true
  1022. if showEarly == false and showMain and showADR and (nySession or nyaSession)
  1023. DeleteOldLInes := true
  1024. if showEarly and showMain == false and showADR and (nyeSession or nyaSession)
  1025. DeleteOldLInes := true
  1026. if showEarly and showMain and showADR == false and (nyeSession or nySession)
  1027. DeleteOldLInes := true
  1028.  
  1029. if DeleteOldLInes
  1030. line.delete(DRhighE[1])
  1031. line.delete(DRlowE[1])
  1032. line.delete(IDRhighE[1])
  1033. line.delete(IDRlowE[1])
  1034.  
  1035. line.delete(Fibo05[1])
  1036. line.delete(Fibo15[1])
  1037. line.delete(Fibo2[1])
  1038. line.delete(Fibo25[1])
  1039. line.delete(Fibo3[1])
  1040. line.delete(Fibo35[1])
  1041. line.delete(Fibo4[1])
  1042. line.delete(Fibo45[1])
  1043. line.delete(Fibo5[1])
  1044. line.delete(Fibo55[1])
  1045. line.delete(Fibo6[1])
  1046. line.delete(FiboM05[1])
  1047. line.delete(FiboM1[1])
  1048. line.delete(FiboM15[1])
  1049. line.delete(FiboM2[1])
  1050. line.delete(FiboM25[1])
  1051. line.delete(FiboM3[1])
  1052. line.delete(FiboM35[1])
  1053. line.delete(FiboM4[1])
  1054. line.delete(FiboM45[1])
  1055. line.delete(FiboM5[1])
  1056. line.delete(FiboM55[1])
  1057. line.delete(FiboM6[1])
  1058. label.delete(Fibo05T[1])
  1059. label.delete(Fibo15T[1])
  1060. label.delete(Fibo2T[1])
  1061. label.delete(Fibo25T[1])
  1062. label.delete(Fibo3T[1])
  1063. label.delete(Fibo35T[1])
  1064. label.delete(Fibo4T[1])
  1065. label.delete(Fibo45T[1])
  1066. label.delete(Fibo5T[1])
  1067. label.delete(Fibo55T[1])
  1068. label.delete(Fibo6T[1])
  1069. label.delete(FiboM05T[1])
  1070. label.delete(FiboM1T[1])
  1071. label.delete(FiboM15T[1])
  1072. label.delete(FiboM2T[1])
  1073. label.delete(FiboM25T[1])
  1074. label.delete(FiboM3T[1])
  1075. label.delete(FiboM35T[1])
  1076. label.delete(FiboM4T[1])
  1077. label.delete(FiboM45T[1])
  1078. label.delete(FiboM5T[1])
  1079. label.delete(FiboM55T[1])
  1080. label.delete(FiboM6T[1])
  1081.  
  1082. //NY ADR
  1083. if barstate.isconfirmed and endaBar and showADR
  1084. HHa = high
  1085. LLa = low
  1086. HHidra = close
  1087. LLidra = open
  1088. if close > open
  1089. HHidra := close
  1090. LLidra := open
  1091. else
  1092. HHidra := open
  1093. LLidra := close
  1094.  
  1095. for i = 1 to FirstaBar
  1096. if high[i] > HHa
  1097. HHa := high[i]
  1098. if low[i] < LLa
  1099. LLa := low[i]
  1100. if close[i] > open[i] and close[i] > HHidra
  1101. HHidra := close[i]
  1102. if close[i] < open[i] and open[i] > HHidra
  1103. HHidra := open[i]
  1104. if close[i] > open[i] and open[i] < LLidra
  1105. LLidra := open[i]
  1106. if close[i] < open[i] and close[i] < LLidra
  1107. LLidra := close[i]
  1108.  
  1109. aDRhigh = line.new(bar_index[FirstaBar], HHa,bar_index,HHa,color=emainColor,style=line.style_solid,width=adrmainExtLinesWidth)
  1110. aDRhighLabel = label.new(bar_index[FirstaBar],HHa,text="aDR high",size=size.small,color=adrmainColor,style=label.style_label_right,textcolor=adrmainLebelTextCol)
  1111. aDRlow = line.new(bar_index[FirstaBar], LLa,bar_index,LLa,color=adrlmainColor,style=line.style_solid,width=adrlmainExtLinesWidth)
  1112. aDRlowLabel = label.new(bar_index[FirstaBar],LLa,text="aDR low",size=size.small,color=adrlmainColor,style=label.style_label_right,textcolor=adrlmainLebelTextCol)
  1113. aIDRhigh = line.new(bar_index[FirstaBar], HHidra,bar_index,HHidra,color=adrmainColor,style=line.style_dotted,width=adrmainExtLinesWidth)
  1114. aIDRhighLabel = label.new(bar_index[FirstaBar+3],HHidra,text="aiDR high",size=size.small,color=color.rgb(61, 61, 61),style=label.style_none,textcolor=adrmainColor)
  1115. aIDRlow = line.new(bar_index[FirstaBar], LLidra,bar_index,LLidra,color=adrlmainColor,style=line.style_dotted,width=adrlmainExtLinesWidth)
  1116. aIDRlowLabel = label.new(bar_index[FirstaBar+3],LLidra,text="aiDR low",size=size.small,color=color.rgb(61, 61, 61),style=label.style_none,textcolor=adrlmainColor)
  1117. aDR_low := LLa
  1118. aDR_high := HHa
  1119.  
  1120. if showADRExtLines
  1121. aDRhighE := line.new(bar_index[1], HHa,bar_index,HHa,extend = extend.right,color=adrmainColor,style=adrmainLineS,width=adrmainExtLinesWidth)
  1122. aDRlowE := line.new(bar_index[1], LLa,bar_index,LLa,extend = extend.right,color=adrlmainColor,style=adrlmainLineS,width=adrlmainExtLinesWidth)
  1123. aIDRhighE := line.new(bar_index[1], HHidra,bar_index,HHidra,extend = extend.right,color=adrmainColor,style=line.style_dotted,width=adrmainExtLinesWidth)
  1124. aIDRlowE := line.new(bar_index[1], LLidra,bar_index,LLidra,extend = extend.right,color=adrlmainColor,style=line.style_dotted,width=adrlmainExtLinesWidth)
  1125.  
  1126. //Fibo ADR
  1127. if showadrFibo
  1128. aFibo05 := line.new(bar_index[1], (HHidra+LLidra)/2,bar_index,(HHidra+LLidra)/2,extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1129. aFibo15 := line.new(bar_index[1], HHidra + ((HHidra-LLidra)*0.5),bar_index,HHidra + ((HHidra-LLidra)*0.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1130. aFibo2 := line.new(bar_index[1], HHidra + (HHidra-LLidra),bar_index,HHidra + (HHidra-LLidra),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1131. aFibo25 := line.new(bar_index[1], HHidra + ((HHidra-LLidra)*1.5),bar_index,HHidra + ((HHidra-LLidra)*1.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1132. aFibo3 := line.new(bar_index[1], HHidra + ((HHidra-LLidra)*2),bar_index,HHidra + ((HHidra-LLidra)*2),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1133. aFibo35 := line.new(bar_index[1], HHidra + ((HHidra-LLidra)*2.5),bar_index,HHidra + ((HHidra-LLidra)*2.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1134. aFibo4 := line.new(bar_index[1], HHidra + ((HHidra-LLidra)*3),bar_index,HHidra + ((HHidra-LLidra)*3),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1135. aFibo45 := line.new(bar_index[1], HHidra + ((HHidra-LLidra)*3.5),bar_index,HHidra + ((HHidra-LLidra)*3.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1136. aFibo5 := line.new(bar_index[1], HHidra + ((HHidra-LLidra)*4),bar_index,HHidra + ((HHidra-LLidra)*4),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1137. aFibo55 := line.new(bar_index[1], HHidra + ((HHidra-LLidra)*4.5),bar_index,HHidra + ((HHidra-LLidra)*4.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1138. aFibo6 := line.new(bar_index[1], HHidra + ((HHidra-LLidra)*5),bar_index,HHidra + ((HHidra-LLidra)*5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1139.  
  1140. aFiboM05 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*0.5),bar_index,LLidra - ((HHidra-LLidra)*0.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1141. aFiboM1 := line.new(bar_index[1], LLidra - (HHidra-LLidra),bar_index,LLidra - (HHidra-LLidra),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1142. aFiboM15 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*1.5),bar_index,LLidra - ((HHidra-LLidra)*1.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1143. aFiboM2 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*2),bar_index,LLidra - ((HHidra-LLidra)*2),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1144. aFiboM25 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*2.5),bar_index,LLidra - ((HHidra-LLidra)*2.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1145. aFiboM3 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*3),bar_index,LLidra - ((HHidra-LLidra)*3),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1146. aFiboM35 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*3.5),bar_index,LLidra - ((HHidra-LLidra)*3.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1147. aFiboM4 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*4),bar_index,LLidra - ((HHidra-LLidra)*4),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1148. aFiboM45 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*4.5),bar_index,LLidra - ((HHidra-LLidra)*4.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1149. aFiboM5 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*5),bar_index,LLidra - ((HHidra-LLidra)*5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1150. aFiboM55 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*5.5),bar_index,LLidra - ((HHidra-LLidra)*5.5),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1151. aFiboM6 := line.new(bar_index[1], LLidra - ((HHidra-LLidra)*6),bar_index,LLidra - ((HHidra-LLidra)*6),extend = extend.right,color=adrFiboColor,style=adrfibLineS,width=adrFiboLineWidth)
  1152.  
  1153. aFibo05T := label.new(afTextPos, (HHidra+LLidra)/2, "0.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1154. aFibo15T := label.new(afTextPos, HHidra + ((HHidra-LLidra)*0.5), "1.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1155. aFibo2T := label.new(afTextPos, HHidra + (HHidra-LLidra), "2", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1156. aFibo25T := label.new(afTextPos, HHidra + ((HHidra-LLidra)*1.5), "2.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1157. aFibo3T := label.new(afTextPos, HHidra + ((HHidra-LLidra)*2), "3", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1158. aFibo35T := label.new(afTextPos, HHidra + ((HHidra-LLidra)*2.5), "3.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1159. aFibo4T := label.new(afTextPos, HHidra + ((HHidra-LLidra)*3), "4", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1160. aFibo45T := label.new(afTextPos, HHidra + ((HHidra-LLidra)*3.5), "4.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1161. aFibo5T := label.new(afTextPos, HHidra + ((HHidra-LLidra)*4), "5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1162. aFibo55T := label.new(afTextPos, HHidra + ((HHidra-LLidra)*4.5), "5.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1163. aFibo6T := label.new(afTextPos, HHidra + ((HHidra-LLidra)*5), "6", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1164.  
  1165. aFiboM05T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*0.5), "-0.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1166. aFiboM1T := label.new(afTextPos, LLidra - (HHidra-LLidra), "-1", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1167. aFiboM15T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*1.5), "-1.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1168. aFiboM2T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*2), "-2", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1169. aFiboM25T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*2.5), "-2.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1170. aFiboM3T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*3), "-3", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1171. aFiboM35T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*3.5), "-3.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1172. aFiboM4T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*4), "-4", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1173. aFiboM45T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*4.5), "-4.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1174. aFiboM5T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*5), "-5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1175. aFiboM55T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*5.5), "-5.5", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1176. aFiboM6T := label.new(afTextPos, LLidra - ((HHidra-LLidra)*6), "-6", xloc = afTextXloc, style = label.style_none,textcolor=adrFiboColor)
  1177.  
  1178.  
  1179. DeleteOldaLInes = false
  1180. if showEarly and showMain and showADR and (nyeSession or nySession or nyaSession)
  1181. DeleteOldaLInes := true
  1182. if showADR and showEarly == false and showMain == false and nyaSession
  1183. DeleteOldaLInes := true
  1184. if showADR == false and showMain and showEarly and (nySession or nyeSession)
  1185. DeleteOldaLInes := true
  1186. if showADR == false and showMain and showEarly == false and (nySession)
  1187. DeleteOldaLInes := true
  1188. if showADR == false and showMain == false and showEarly and (nyeSession)
  1189. DeleteOldaLInes := true
  1190. if showADR and showMain and showEarly == false and (nySession or nyaSession)
  1191. DeleteOldaLInes := true
  1192. if showADR and showMain == false and showEarly and (nyeSession or nyaSession)
  1193. DeleteOldaLInes := true
  1194.  
  1195. if DeleteOldaLInes
  1196. line.delete(aDRhighE[1])
  1197. line.delete(aDRlowE[1])
  1198. line.delete(aIDRhighE[1])
  1199. line.delete(aIDRlowE[1])
  1200.  
  1201. line.delete(aFibo05[1])
  1202. line.delete(aFibo15[1])
  1203. line.delete(aFibo2[1])
  1204. line.delete(aFibo25[1])
  1205. line.delete(aFibo3[1])
  1206. line.delete(aFibo35[1])
  1207. line.delete(aFibo4[1])
  1208. line.delete(aFibo45[1])
  1209. line.delete(aFibo5[1])
  1210. line.delete(aFibo55[1])
  1211. line.delete(aFibo6[1])
  1212. line.delete(aFiboM05[1])
  1213. line.delete(aFiboM1[1])
  1214. line.delete(aFiboM15[1])
  1215. line.delete(aFiboM2[1])
  1216. line.delete(aFiboM25[1])
  1217. line.delete(aFiboM3[1])
  1218. line.delete(aFiboM35[1])
  1219. line.delete(aFiboM4[1])
  1220. line.delete(aFiboM45[1])
  1221. line.delete(aFiboM5[1])
  1222. line.delete(aFiboM55[1])
  1223. line.delete(aFiboM6[1])
  1224. label.delete(aFibo05T[1])
  1225. label.delete(aFibo15T[1])
  1226. label.delete(aFibo2T[1])
  1227. label.delete(aFibo25T[1])
  1228. label.delete(aFibo3T[1])
  1229. label.delete(aFibo35T[1])
  1230. label.delete(aFibo4T[1])
  1231. label.delete(aFibo45T[1])
  1232. label.delete(aFibo5T[1])
  1233. label.delete(aFibo55T[1])
  1234. label.delete(aFibo6T[1])
  1235. label.delete(aFiboM05T[1])
  1236. label.delete(aFiboM1T[1])
  1237. label.delete(aFiboM15T[1])
  1238. label.delete(aFiboM2T[1])
  1239. label.delete(aFiboM25T[1])
  1240. label.delete(aFiboM3T[1])
  1241. label.delete(aFiboM35T[1])
  1242. label.delete(aFiboM4T[1])
  1243. label.delete(aFiboM45T[1])
  1244. label.delete(aFiboM5T[1])
  1245. label.delete(aFiboM55T[1])
  1246. label.delete(aFiboM6T[1])
  1247.  
  1248. //Delete Old Labels
  1249. DeleteExpansionTargets = false
  1250. if aDR_low != aDR_low[1] or aDR_high != aDR_high[1]
  1251. DeleteExpansionTargets := true
  1252.  
  1253. if DeleteExpansionTargets
  1254. line.delete(rDR_Downside_low_target[1])
  1255. line.delete(rDR_Upside_high_target[1])
  1256. label.delete(rDR_Downside_low_target_label[1])
  1257. label.delete(rDR_Upside_high_target_label[1])
  1258.  
  1259. ////////////////////////////////////////////////////////////////////////////////////////////////
  1260. ////////////////////////////////////////////////////////////////////////////////////////////////
  1261. // Draw Vertical Lines as Intraday Seperator
  1262. cur_minute = minute
  1263. cur_hour = hour
  1264.  
  1265. do_plot = false
  1266. if(cur_minute == 30 and cur_hour == 19) and Plot_intraday_Seperator
  1267. do_plot := true
  1268. else
  1269. do_plot := false
  1270.  
  1271. vline(BarIndex, Color, LineStyle, LineWidth) =>
  1272. line.new(BarIndex, low - ta.tr, BarIndex, high + ta.tr, xloc.bar_index, extend.both, Color, LineStyle, LineWidth)
  1273.  
  1274. if (do_plot)
  1275. vline(bar_index[0], color.rgb(46, 40, 40, 51), line.style_solid, 1)
  1276.  
  1277. // FVG Imbalance
  1278.  
  1279. TopImbalance = low[2] <= open[1] and high[0] >= close[1]
  1280. TopImbalancesize = low[2] - high[0]
  1281. if ShowImbalance and TopImbalance and TopImbalancesize > 0
  1282. BOX1 = box.new(left=bar_index[1], top=low[2], right=bar_index[0], bottom=high[0])
  1283. box.set_bgcolor(BOX1, color=color_fvg_imbalance)
  1284. box.set_border_color(BOX1, color=color_fvg_imbalance)
  1285. if ExtendFVG == true
  1286. box.set_extend (BOX1,extend.right)
  1287. // To prevent clutter, disable extension from the last box drawing
  1288. box.set_extend(id=BOX1[1], extend=extend.none)
  1289.  
  1290. BottomInbalance = high[2] >= open[1] and low[0] <= close[1]
  1291. BottomInbalancesize = low[0] - high[2]
  1292. if ShowImbalance and BottomInbalance and BottomInbalancesize > 0
  1293. BOX2 = box.new(left=bar_index[1], top=low[0], right=bar_index[0], bottom=high[2])
  1294. box.set_bgcolor(BOX2, color=color_fvg_imbalance)
  1295. box.set_border_color(BOX2, color=color_fvg_imbalance)
  1296. if ExtendFVG == true
  1297. box.set_extend (BOX2,extend.right)
  1298. // To prevent clutter, disable extension from the last box drawing
  1299. box.set_extend(id=BOX2[1], extend=extend.none)
  1300.  
  1301. // Volume Imbalances //
  1302. vol_imbalance_up = open > close[1] and low <= high[1] and close > close[1] and open > open[1]
  1303. vol_imbalance_down = open < close[1] and open < open[1] and high >= low[1] and close < close[1] and close < open[1]
  1304.  
  1305. if vol_imbalance_up and display_vol_imbalance
  1306. VIBbox1 = box.new(left=bar_index-1, top=math.min(open,close), right=bar_index, bottom=math.max(close[1],open[1]), bgcolor=color_vol_imbalance, border_color=color_vol_imbalance)
  1307. if ExtendVIB == true
  1308. box.set_extend (VIBbox1,extend.right)
  1309. // To prevent clutter, disable extension from the last box drawing
  1310. box.set_extend(id=VIBbox1[1], extend=extend.none)
  1311.  
  1312. if vol_imbalance_down and display_vol_imbalance
  1313. VIBbox2 = box.new(left=bar_index-1, top=math.min(close[1],open[1]), right=bar_index, bottom=math.max(open,close), bgcolor=color_vol_imbalance, border_color=color_vol_imbalance)
  1314. if ExtendVIB == true
  1315. box.set_extend (VIBbox2,extend.right)
  1316. // To prevent clutter, disable extension from the last box drawing
  1317. box.set_extend(id=VIBbox2[1], extend=extend.none)
  1318.  
  1319.  
Advertisement
Add Comment
Please, Sign In to add comment