Advertisement
Maurizio-Ciullo

Indicatore Sessions On Chart

Nov 10th, 2022 (edited)
617
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
  2. // © Aurocks_AIF
  3.  
  4. //@version=5
  5.  
  6. indicator("Sessions", overlay=true)
  7.  
  8. bgColor = input.bool(false, "Activate High/Low View")
  9.  
  10. LondonColor = color.new(color.green, 90)
  11. NYColor = color.new(color.red, 90)
  12. AsiaColor = color.new(color.yellow, 90)
  13. SydneyColor = color.new(color.blue, 90)
  14.  
  15. ///Sessions
  16.  
  17. res = input.timeframe("D", "Resolution", ["D","W","M"])
  18. london = input.session("0300-1200:1234567", "London Session")
  19. ny = input.session("0800-1700:1234567", "New York Session")
  20. tokyo = input.session("2000-0400:1234567", "Tokyo Session")
  21. sydney = input.session("1700-0200:1234567", "Sydney Session")
  22.  
  23. //Bars
  24.  
  25. is_newbar(sess) =>
  26.     t = time(res, sess, "America/New_York")
  27.     na(t[1]) and not na(t) or t[1] < t
  28.  
  29. is_session(sess) =>
  30.     not na(time(timeframe.period, sess, "America/New_York"))
  31.    
  32.  
  33. //London
  34.  
  35. London = input.bool(true, "London Session")
  36.  
  37. londonNewbar = is_newbar(london)
  38. londonSession = is_session(london)
  39.  
  40. float londonLow = na
  41. londonLow := if londonSession
  42.     if londonNewbar
  43.         low
  44.     else
  45.         math.min(londonLow[1],low)
  46. else
  47.     londonLow
  48.  
  49. float londonHigh = na
  50. londonHigh := if londonSession
  51.     if londonNewbar
  52.         high
  53.     else
  54.         math.max(londonHigh[1],high)
  55. else
  56.     londonHigh
  57.  
  58.  
  59. plotLL = plot(londonLow, color=color.new(#000000, 100))
  60. plotLH = plot(londonHigh, color=color.new(#000000, 100))
  61. fill(plotLL, plotLH, color = londonSession and London and bgColor ? LondonColor : na)
  62.  
  63. bgcolor(londonSession and London and not bgColor ? LondonColor : na)
  64.  
  65.  
  66.  
  67. //New York
  68.  
  69. NY = input.bool(true, "New York Session")
  70.  
  71. nyNewbar = is_newbar(ny)
  72. nySession = is_session(ny)
  73.  
  74. float nyLow = na
  75. nyLow := if nySession
  76.     if nyNewbar
  77.         low
  78.     else
  79.         math.min(nyLow[1],low)
  80. else
  81.     nyLow
  82.  
  83. float nyHigh = na
  84. nyHigh := if nySession
  85.     if nyNewbar
  86.         high
  87.     else
  88.         math.max(nyHigh[1],high)
  89. else
  90.     nyHigh
  91.  
  92.  
  93. plotNYL = plot(nyLow, color=color.new(#000000, 100))
  94. plotNYH = plot(nyHigh, color=color.new(#000000, 100))
  95. fill(plotNYL, plotNYH, color = nySession and NY and bgColor ? NYColor : na)
  96.  
  97. bgcolor(nySession and NY and not bgColor ? NYColor : na)
  98.  
  99.  
  100. //Tokyo
  101.  
  102. Tokyo = input.bool(true, "Tokyo Session")
  103.  
  104. tokyoNewbar = is_newbar(tokyo)
  105. tokyoSession = is_session(tokyo)
  106.  
  107. float tokyoLow = na
  108. tokyoLow := if tokyoSession
  109.     if tokyoNewbar
  110.         low
  111.     else
  112.         math.min(tokyoLow[1],low)
  113. else
  114.     tokyoLow
  115.  
  116. float tokyoHigh = na
  117. tokyoHigh := if tokyoSession
  118.     if tokyoNewbar
  119.         high
  120.     else
  121.         math.max(tokyoHigh[1],high)
  122. else
  123.     tokyoHigh
  124.  
  125.  
  126. plotTL = plot(tokyoLow, color=color.new(#000000, 100))
  127. plotTH = plot(tokyoHigh, color=color.new(#000000, 100))
  128. fill(plotTL, plotTH, color = tokyoSession and Tokyo and bgColor ? AsiaColor : na)
  129.  
  130. bgcolor(tokyoSession and Tokyo and not bgColor ? AsiaColor : na)
  131.  
  132.  
  133.  
  134. //Sydney
  135.  
  136. Sydney = input.bool(false, "Sydney Session")
  137.  
  138. sydneyNewbar = is_newbar(sydney)
  139. sydneySession = is_session(sydney)
  140.  
  141. float sydneyLow = na
  142. sydneyLow := if sydneySession
  143.     if sydneyNewbar
  144.         low
  145.     else
  146.         math.min(sydneyLow[1],low)
  147. else
  148.     sydneyLow
  149.  
  150. float sydneyHigh = na
  151. sydneyHigh := if sydneySession
  152.     if sydneyNewbar
  153.         high
  154.     else
  155.         math.max(sydneyHigh[1],high)
  156. else
  157.     sydneyHigh
  158.  
  159.  
  160. plotSL = plot(sydneyLow, color=color.new(#000000, 100))
  161. plotSH = plot(sydneyHigh, color=color.new(#000000, 100))
  162. fill(plotSL, plotSH, color = sydneySession and Sydney and bgColor ? SydneyColor : na)
  163.  
  164. bgcolor(sydneySession and Sydney and not bgColor ? SydneyColor : na)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement