Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //@version=4
- study("AV", overlay=true)
- //plot(timestamp(syminfo.timezone,year(timenow),month(timenow),dayofmonth(timenow), hour(timenow), minute(timenow)),color=color.blue)
- debugColor = color.new(color.green, 100)
- maxBoxCount = input(title="Maximum box count", type=input.integer, defval=100)
- lineWidth = input(title="Line width", type=input.integer, defval=1)
- defaultEuropeColor = color.new(#F0FFFF, 0)
- defaultUSAColor = color.new(#FFE4E1,0)
- defaultAsiaColor = color.new(#FFFFED,0)
- EuropeBorderColor = input(title="Europe box border",type=input.color, defval=#A0AAAA)
- EuropeBackgroundColor = input(title="Europe background colour",type=input.color, defval=defaultEuropeColor)
- USABorderColor = input(title="USA box border",type=input.color, defval=#AA9090)
- USABackgroundColor = input(title="USA background colour",type=input.color, defval=defaultUSAColor)
- AsiaBorderColor = input(title="Asia (Aust/NZ/JP) box border",type=input.color, defval=#909995)
- AsiaBackgroundColor = input(title="Asia (Aust/NZ/JP) background colour",type=input.color, defval=defaultAsiaColor)
- europe = input(title="Europe Session", type=input.bool, defval=true)
- usa=input(title="New York Session", type=input.bool, defval=true)
- asia = input(title="Asia Session", type=input.bool, defval=true)
- ///Sessions
- Europe = input(title="Europe Session", type=input.session, defval="0300-1200")
- USA = input(title="New York Session", type=input.session, defval="0800-1700")
- Asia = input(title="Asia (NZ/Aust/JP) Session", type=input.session, defval="1700-0400")
- //Bars
- is_newbar(sess) =>
- t = time("D", sess)
- na(t[1]) and not na(t) or t[1] < t
- is_session(sess) =>
- not na(time("D", sess))
- //Europe
- europeNewbar = is_newbar(Europe)
- europeSession = is_session(Europe)
- //europeBox = box.new(na,na,na,na,border_width=2,xloc=xloc.bar_time,border_style=line.style_solid, border_color=EuropeBorderColor, bgcolor=EuropeBackgroundColor)
- //plotshape(europeNewbar,"eu new",style=shape.xcross)
- if europe and europeSession
- float europeLow = na
- europeLow := if europeSession
- if europeNewbar
- low
- else
- min(europeLow[1],low)
- else
- europeLow[1]
- float europeHigh = na
- europeHigh := if europeSession
- if europeNewbar
- high
- else
- max(europeHigh[1],high)
- else
- europeHigh[1]
- int europeStart=na
- europeStart := if europeSession
- if europeNewbar
- time
- else
- min(europeStart[1],time)
- else
- na
- int europeEnd=na
- europeEnd := if europeSession
- if europeNewbar
- time_close
- else
- max(europeEnd[1],time_close)
- else
- na
- europeBox = if europeNewbar
- box.new(left=europeStart, bottom=europeLow, right=europeEnd, top=europeHigh,border_width=lineWidth,xloc=xloc.bar_time,border_style=line.style_solid, border_color=EuropeBorderColor, bgcolor=EuropeBackgroundColor )
- if not europeNewbar
- box.set_right(europeBox[1], europeEnd)
- box.set_top(europeBox[1], europeHigh)
- box.set_bottom(europeBox[1], europeLow)
- if timeframe.period == "240"
- box.delete(europeBox[maxBoxCount])
- //New York
- usaNewbar = is_newbar(USA)
- usaSession = is_session(USA)
- if usa and usaSession
- float usaLow = na
- usaLow := if usaSession
- if usaNewbar
- low
- else
- min(usaLow[1],low)
- else
- usaLow[1]
- float usaHigh = na
- usaHigh := if usaSession
- if usaNewbar
- high
- else
- max(usaHigh[1],high)
- else
- usaHigh[1]
- int usaStart=na
- usaStart := if usaSession
- if usaNewbar
- time
- else
- min(usaStart[1],time)
- else
- na
- int usaEnd=na
- usaEnd := if usaSession
- if usaNewbar
- time_close
- else
- max(usaEnd[1],time_close)
- else
- na
- usaBox = if usaNewbar
- usaBox = box.new(left=usaStart, bottom=usaLow, right=usaEnd, top=usaHigh,border_width=lineWidth,xloc=xloc.bar_time,border_style=line.style_solid, border_color=USABorderColor, bgcolor=USABackgroundColor )
- if not usaNewbar
- box.set_right(usaBox[1], usaEnd)
- box.set_top(usaBox[1], usaHigh)
- box.set_bottom(usaBox[1], usaLow)
- if timeframe.period == "240"
- box.delete(usaBox[maxBoxCount])
- //Asia
- asiaNewbar = is_newbar(Asia)
- asiaSession = is_session(Asia)
- if asia and asiaSession
- float asiaLow = na
- asiaLow := if asiaSession
- if asiaNewbar
- low
- else
- min(asiaLow[1],low)
- else
- asiaLow[1]
- float asiaHigh = na
- asiaHigh := if asiaSession
- if asiaNewbar
- high
- else
- max(asiaHigh[1],high)
- else
- asiaHigh[1]
- int asiaStart = na
- asiaStart := if asiaSession
- if asiaNewbar
- time
- else
- min(asiaStart[1],time)
- else
- na
- int asiaEnd = na
- asiaEnd := if asiaSession
- if asiaNewbar
- time_close
- else
- max(asiaEnd[1],time_close)
- else
- na
- asiaBox = if asiaNewbar
- box.new(left=asiaStart, bottom=asiaLow, right=asiaEnd, top=asiaHigh,border_width=lineWidth,xloc=xloc.bar_time,border_style=line.style_solid, border_color=AsiaBorderColor, bgcolor=AsiaBackgroundColor )
- if not asiaNewbar
- box.set_right(asiaBox[1], asiaEnd)
- box.set_top(asiaBox[1], asiaHigh)
- box.set_bottom(asiaBox[1], asiaLow)
- if timeframe.period == "240"
- box.delete(asiaBox[maxBoxCount])
Advertisement
Add Comment
Please, Sign In to add comment