xmd79

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

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