xmd79

Supply and Demand Zones

Nov 20th, 2021
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.01 KB | None | 0 0
  1. //@version=5
  2. indicator(title='Supply and Demand Zones', shorttitle='Supply / Demand', overlay=true)
  3.  
  4. //Daily zones
  5. daily = input(title='Daily', defval=true)
  6. dopen = request.security(syminfo.tickerid, 'D', open, barmerge.gaps_off, barmerge.lookahead_on)
  7. dayrange = high - low
  8. dcol = color.red
  9.  
  10. r1 = request.security(syminfo.tickerid, 'D', dayrange)
  11. r2 = request.security(syminfo.tickerid, 'D', dayrange[1])
  12. r3 = request.security(syminfo.tickerid, 'D', dayrange[2])
  13. r4 = request.security(syminfo.tickerid, 'D', dayrange[3])
  14. r5 = request.security(syminfo.tickerid, 'D', dayrange[4])
  15. r6 = request.security(syminfo.tickerid, 'D', dayrange[5])
  16. r7 = request.security(syminfo.tickerid, 'D', dayrange[6])
  17. r8 = request.security(syminfo.tickerid, 'D', dayrange[7])
  18. r9 = request.security(syminfo.tickerid, 'D', dayrange[8])
  19. r10 = request.security(syminfo.tickerid, 'D', dayrange[9])
  20.  
  21. adr_10 = (r1 + r2 + r3 + r4 + r5 + r6 + r7 + r8 + r9 + r10) / 10
  22. adr_9 = (r1 + r2 + r3 + r4 + r5 + r6 + r7 + r8 + r9) / 9
  23. adr_8 = (r1 + r2 + r3 + r4 + r5 + r6 + r7 + r8) / 8
  24. adr_7 = (r1 + r2 + r3 + r4 + r5 + r6 + r7) / 7
  25. adr_6 = (r1 + r2 + r3 + r4 + r5 + r6) / 6
  26. adr_5 = (r1 + r2 + r3 + r4 + r5) / 5
  27. adr_4 = (r1 + r2 + r3 + r4) / 4
  28. adr_3 = (r1 + r2 + r3) / 3
  29. adr_2 = (r1 + r2) / 2
  30. adr_1 = r1
  31.  
  32. adrhigh10 = dopen + adr_10 / 2
  33. adrhigh5 = dopen + adr_5 / 2
  34. adrlow5 = dopen - adr_5 / 2
  35. adrlow10 = dopen - adr_10 / 2
  36.  
  37. dayh5 = plot(daily ? adrhigh5 : na, color=dcol)
  38. dayh10 = plot(daily ? adrhigh10 : na, color=dcol)
  39. dayl5 = plot(daily ? adrlow5 : na, color=dcol)
  40. dayl10 = plot(daily ? adrlow10 : na, color=dcol)
  41. fill(dayh5, dayh10, color=dcol, transp=90)
  42. fill(dayl5, dayl10, color=dcol, transp=90)
  43.  
  44. //Weekly zones
  45. weekly = input(title='Weekly', defval=true)
  46. wopen = request.security(syminfo.tickerid, 'W', open, barmerge.gaps_off, barmerge.lookahead_on)
  47. weekrange = high - low
  48. wcol = color.blue
  49.  
  50. wr1 = request.security(syminfo.tickerid, 'W', weekrange)
  51. wr2 = request.security(syminfo.tickerid, 'W', weekrange[1])
  52. wr3 = request.security(syminfo.tickerid, 'W', weekrange[2])
  53. wr4 = request.security(syminfo.tickerid, 'W', weekrange[3])
  54. wr5 = request.security(syminfo.tickerid, 'W', weekrange[4])
  55. wr6 = request.security(syminfo.tickerid, 'W', weekrange[5])
  56. wr7 = request.security(syminfo.tickerid, 'W', weekrange[6])
  57. wr8 = request.security(syminfo.tickerid, 'W', weekrange[7])
  58. wr9 = request.security(syminfo.tickerid, 'W', weekrange[8])
  59. wr10 = request.security(syminfo.tickerid, 'W', weekrange[9])
  60.  
  61. awr_10 = (wr1 + wr2 + wr3 + wr4 + wr5 + wr6 + wr7 + wr8 + wr9 + wr10) / 10
  62. awr_9 = (wr1 + wr2 + wr3 + wr4 + wr5 + wr6 + wr7 + wr8 + wr9) / 9
  63. awr_8 = (wr1 + wr2 + wr3 + wr4 + wr5 + wr6 + wr7 + wr8) / 8
  64. awr_7 = (wr1 + wr2 + wr3 + wr4 + wr5 + wr6 + wr7) / 7
  65. awr_6 = (wr1 + wr2 + wr3 + wr4 + wr5 + wr6) / 6
  66. awr_5 = (wr1 + wr2 + wr3 + wr4 + wr5) / 5
  67. awr_4 = (wr1 + wr2 + wr3 + wr4) / 4
  68. awr_3 = (wr1 + wr2 + wr3) / 3
  69. awr_2 = (wr1 + wr2) / 2
  70. awr_1 = wr1
  71.  
  72. awrhigh10 = wopen + awr_10 / 2
  73. awrhigh5 = wopen + awr_5 / 2
  74. awrlow5 = wopen - awr_5 / 2
  75. awrlow10 = wopen - awr_10 / 2
  76.  
  77. weekh5 = plot(weekly ? awrhigh5 : na, color=wcol)
  78. weekh10 = plot(weekly ? awrhigh10 : na, color=wcol)
  79. weekl5 = plot(weekly ? awrlow5 : na, color=wcol)
  80. weekl10 = plot(weekly ? awrlow10 : na, color=wcol)
  81. fill(weekh5, weekh10, color=wcol, transp=90)
  82. fill(weekl5, weekl10, color=wcol, transp=90)
  83.  
  84. //Monthly zones
  85. monthly = input(title='Monthly', defval=true)
  86. mopen = request.security(syminfo.tickerid, 'M', open, barmerge.gaps_off, barmerge.lookahead_on)
  87. monthrange = high - low
  88. mcol = color.green
  89.  
  90. mr1 = request.security(syminfo.tickerid, 'M', monthrange)
  91. mr2 = request.security(syminfo.tickerid, 'M', monthrange[1])
  92. mr3 = request.security(syminfo.tickerid, 'M', monthrange[2])
  93. mr4 = request.security(syminfo.tickerid, 'M', monthrange[3])
  94. mr5 = request.security(syminfo.tickerid, 'M', monthrange[4])
  95. mr6 = request.security(syminfo.tickerid, 'M', monthrange[5])
  96. mr7 = request.security(syminfo.tickerid, 'M', monthrange[6])
  97. mr8 = request.security(syminfo.tickerid, 'M', monthrange[7])
  98. mr9 = request.security(syminfo.tickerid, 'M', monthrange[8])
  99. mr10 = request.security(syminfo.tickerid, 'M', monthrange[9])
  100.  
  101. amr_10 = (mr1 + mr2 + mr3 + mr4 + mr5 + mr6 + mr7 + mr8 + mr9 + mr10) / 10
  102. amr_9 = (mr1 + mr2 + mr3 + mr4 + mr5 + mr6 + mr7 + mr8 + mr9) / 9
  103. amr_8 = (mr1 + mr2 + mr3 + mr4 + mr5 + mr6 + mr7 + mr8) / 8
  104. amr_7 = (mr1 + mr2 + mr3 + mr4 + mr5 + mr6 + mr7) / 7
  105. amr_6 = (mr1 + mr2 + mr3 + mr4 + mr5 + mr6) / 6
  106. amr_5 = (mr1 + mr2 + mr3 + mr4 + mr5) / 5
  107. amr_4 = (mr1 + mr2 + mr3 + mr4) / 4
  108. amr_3 = (mr1 + mr2 + mr3) / 3
  109. amr_2 = (mr1 + mr2) / 2
  110. amr_1 = mr1
  111.  
  112. amrhigh10 = mopen + amr_10 / 2
  113. amrhigh5 = mopen + amr_5 / 2
  114. amrlom5 = mopen - amr_5 / 2
  115. amrlom10 = mopen - amr_10 / 2
  116.  
  117. monthh5 = plot(monthly ? amrhigh5 : na, color=mcol)
  118. monthh10 = plot(monthly ? amrhigh10 : na, color=mcol)
  119. monthl5 = plot(monthly ? amrlom5 : na, color=mcol)
  120. monthl10 = plot(monthly ? amrlom10 : na, color=mcol)
  121. fill(monthh5, monthh10, color=mcol, transp=90)
  122. fill(monthl5, monthl10, color=mcol, transp=90)
  123.  
  124.  
  125.  
  126.  
Advertisement
Add Comment
Please, Sign In to add comment