OPEN-SOURCE SCRIPT
Pivot & ORB

//version=5
indicator("Pivot & ORB Thin Zones with Small Labels", overlay=true, max_boxes_count=500)
// ───── Input Settings ─────
orbMinutes = input.int(15, "ORB Minutes")
zoneThickness = input.float(0.0005, "Zone Thickness") // height of thin boxes
showPD = input.bool(true, "Show Previous Day Zone")
showPM = input.bool(true, "Show Previous Month Zone")
showORB = input.bool(true, "Show ORB Zone")
// ───── Previous Day High / Low ─────
pdh = request.security(syminfo.tickerid, "D", high[1])
pdl = request.security(syminfo.tickerid, "D", low[1])
var box pdhBox = na
var box pdlBox = na
if showPD
box.delete(pdhBox)
box.delete(pdlBox)
pdhBox := box.new(left=bar_index-1, right=bar_index, top=pdh+zoneThickness, bottom=pdh-zoneThickness, bgcolor=color.new(color.red, 80), border_color=color.red)
pdlBox := box.new(left=bar_index-1, right=bar_index, top=pdl+zoneThickness, bottom=pdl-zoneThickness, bgcolor=color.new(color.green, 80), border_color=color.green)
label.new(bar_index, pdh, "PDH", style=label.style_label_down, size=size.tiny, textcolor=color.white, color=color.red)
label.new(bar_index, pdl, "PDL", style=label.style_label_up, size=size.tiny, textcolor=color.white, color=color.green)
// ───── Previous Month High / Low ─────
pmh = request.security(syminfo.tickerid, "M", high[1])
pml = request.security(syminfo.tickerid, "M", low[1])
var box pmhBox = na
var box pmlBox = na
if showPM
box.delete(pmhBox)
box.delete(pmlBox)
pmhBox := box.new(left=bar_index-1, right=bar_index, top=pmh+zoneThickness, bottom=pmh-zoneThickness, bgcolor=color.new(color.orange, 80), border_color=color.orange)
pmlBox := box.new(left=bar_index-1, right=bar_index, top=pml+zoneThickness, bottom=pml-zoneThickness, bgcolor=color.new(color.blue, 80), border_color=color.blue)
label.new(bar_index, pmh, "PMH", style=label.style_label_down, size=size.tiny, textcolor=color.white, color=color.orange)
label.new(bar_index, pml, "PML", style=label.style_label_up, size=size.tiny, textcolor=color.white, color=color.blue)
// ───── ORB (Opening Range Breakout) ─────
var float orbHigh = na
var float orbLow = na
var box orbHighBox = na
var box orbLowBox = na
sessionStart = timestamp("GMT+0", year, month, dayofmonth, hour, minute)
inORB = (timenow - sessionStart) <= orbMinutes * 60000
if inORB
orbHigh := na(orbHigh) ? high : math.max(orbHigh, high)
orbLow := na(orbLow) ? low : math.min(orbLow, low)
else
if not na(orbHigh) and showORB
box.delete(orbHighBox)
box.delete(orbLowBox)
orbHighBox := box.new(left=bar_index-1, right=bar_index, top=orbHigh+zoneThickness, bottom=orbHigh-zoneThickness, bgcolor=color.new(color.yellow, 70), border_color=color.yellow)
orbLowBox := box.new(left=bar_index-1, right=bar_index, top=orbLow+zoneThickness, bottom=orbLow-zoneThickness, bgcolor=color.new(color.yellow, 70), border_color=color.yellow)
label.new(bar_index, orbHigh, "ORB High", style=label.style_label_down, size=size.tiny, textcolor=color.black, color=color.yellow)
label.new(bar_index, orbLow, "ORB Low", style=label.style_label_up, size=size.tiny, textcolor=color.black, color=color.yellow)
orbHigh := na
orbLow := na
indicator("Pivot & ORB Thin Zones with Small Labels", overlay=true, max_boxes_count=500)
// ───── Input Settings ─────
orbMinutes = input.int(15, "ORB Minutes")
zoneThickness = input.float(0.0005, "Zone Thickness") // height of thin boxes
showPD = input.bool(true, "Show Previous Day Zone")
showPM = input.bool(true, "Show Previous Month Zone")
showORB = input.bool(true, "Show ORB Zone")
// ───── Previous Day High / Low ─────
pdh = request.security(syminfo.tickerid, "D", high[1])
pdl = request.security(syminfo.tickerid, "D", low[1])
var box pdhBox = na
var box pdlBox = na
if showPD
box.delete(pdhBox)
box.delete(pdlBox)
pdhBox := box.new(left=bar_index-1, right=bar_index, top=pdh+zoneThickness, bottom=pdh-zoneThickness, bgcolor=color.new(color.red, 80), border_color=color.red)
pdlBox := box.new(left=bar_index-1, right=bar_index, top=pdl+zoneThickness, bottom=pdl-zoneThickness, bgcolor=color.new(color.green, 80), border_color=color.green)
label.new(bar_index, pdh, "PDH", style=label.style_label_down, size=size.tiny, textcolor=color.white, color=color.red)
label.new(bar_index, pdl, "PDL", style=label.style_label_up, size=size.tiny, textcolor=color.white, color=color.green)
// ───── Previous Month High / Low ─────
pmh = request.security(syminfo.tickerid, "M", high[1])
pml = request.security(syminfo.tickerid, "M", low[1])
var box pmhBox = na
var box pmlBox = na
if showPM
box.delete(pmhBox)
box.delete(pmlBox)
pmhBox := box.new(left=bar_index-1, right=bar_index, top=pmh+zoneThickness, bottom=pmh-zoneThickness, bgcolor=color.new(color.orange, 80), border_color=color.orange)
pmlBox := box.new(left=bar_index-1, right=bar_index, top=pml+zoneThickness, bottom=pml-zoneThickness, bgcolor=color.new(color.blue, 80), border_color=color.blue)
label.new(bar_index, pmh, "PMH", style=label.style_label_down, size=size.tiny, textcolor=color.white, color=color.orange)
label.new(bar_index, pml, "PML", style=label.style_label_up, size=size.tiny, textcolor=color.white, color=color.blue)
// ───── ORB (Opening Range Breakout) ─────
var float orbHigh = na
var float orbLow = na
var box orbHighBox = na
var box orbLowBox = na
sessionStart = timestamp("GMT+0", year, month, dayofmonth, hour, minute)
inORB = (timenow - sessionStart) <= orbMinutes * 60000
if inORB
orbHigh := na(orbHigh) ? high : math.max(orbHigh, high)
orbLow := na(orbLow) ? low : math.min(orbLow, low)
else
if not na(orbHigh) and showORB
box.delete(orbHighBox)
box.delete(orbLowBox)
orbHighBox := box.new(left=bar_index-1, right=bar_index, top=orbHigh+zoneThickness, bottom=orbHigh-zoneThickness, bgcolor=color.new(color.yellow, 70), border_color=color.yellow)
orbLowBox := box.new(left=bar_index-1, right=bar_index, top=orbLow+zoneThickness, bottom=orbLow-zoneThickness, bgcolor=color.new(color.yellow, 70), border_color=color.yellow)
label.new(bar_index, orbHigh, "ORB High", style=label.style_label_down, size=size.tiny, textcolor=color.black, color=color.yellow)
label.new(bar_index, orbLow, "ORB Low", style=label.style_label_up, size=size.tiny, textcolor=color.black, color=color.yellow)
orbHigh := na
orbLow := na
Skrip open-source
Dengan semangat TradingView yang sesungguhnya, pembuat skrip ini telah menjadikannya sebagai sumber terbuka, sehingga para trader dapat meninjau dan memverifikasi fungsinya. Salut untuk penulisnya! Meskipun Anda dapat menggunakannya secara gratis, perlu diingat bahwa penerbitan ulang kode ini tunduk pada Tata Tertib kami.
Pernyataan Penyangkalan
Informasi dan publikasi ini tidak dimaksudkan, dan bukan merupakan, saran atau rekomendasi keuangan, investasi, trading, atau jenis lainnya yang diberikan atau didukung oleh TradingView. Baca selengkapnya di Ketentuan Penggunaan.
Skrip open-source
Dengan semangat TradingView yang sesungguhnya, pembuat skrip ini telah menjadikannya sebagai sumber terbuka, sehingga para trader dapat meninjau dan memverifikasi fungsinya. Salut untuk penulisnya! Meskipun Anda dapat menggunakannya secara gratis, perlu diingat bahwa penerbitan ulang kode ini tunduk pada Tata Tertib kami.
Pernyataan Penyangkalan
Informasi dan publikasi ini tidak dimaksudkan, dan bukan merupakan, saran atau rekomendasi keuangan, investasi, trading, atau jenis lainnya yang diberikan atau didukung oleh TradingView. Baca selengkapnya di Ketentuan Penggunaan.