Professional Documents
Culture Documents
Fibo On Open Price
Fibo On Open Price
Fibo On Open Price
//@version=4
study(title="User-Inputed Time Range & Fibs", shorttitle="TRF", overlay=true,
max_bars_back=1000, max_lines_count=500, max_labels_count=500)
// --> Inputs
chartColor = input(title="Chart Colors", defval="Dark Mode", options=["Dark Mode",
"Light Mode"])
sessionPeriod = input(title = "Time In Range", type = input.session, defval =
"0830-0930")
extend = input(title="Extend Targets?", defval=false)
endPlot = input(title="End Plots on New Day?", defval=false)
displayBG = input(true, title="Display Highlighted Background for Time In Range
Selection?")
showHigh = input(defval = true, title = 'Show High')
showHL2 = input(defval = true, title = 'Show HL2')
// --> Function Used to Round Prices to Tick Size Everywhere We Calculate Prices
RoundToTick( _price) => round(_price/syminfo.mintick)*syminfo.mintick
// === Store the Highest Highs/Lowest Lows from Session Range ===
dayHigh = 0.0, dayHigh := startSession() ? rangeHigh : nz(dayHigh[1])
// if new day then new high else previous high
dayLow = 0.0, dayLow := startSession() ? rangeLow : nz(dayLow[1])
// if new day then new low else previous low
dayHL2 = 0.0, dayHL2 := startSession() ? (dayHigh + dayLow)/2 :
nz(dayHL2[1]) // if new day then new avg else previous avg
// --> Labels
label1 = dayHigh// + buffer
label2 = dayHL2// + buffer
label3 = dayLow// + buffer
label4 = weeklyOpen
label5 = monthlyOpen
label6 = dailyOpen
label7 = yearlyOpen
label highLabel = na
label eqLabel = na
label lowLabel = na
l = "\n"
var float m = 0.0
length = input(title="Range Average Length Period", defval=5)
var a = array.new_float(length)
if startSession()[1] and not startSession()
m := dayHigh - dayLow
array.push(a, dayHigh-dayLow)
if array.size(a) > length
array.reverse(a)
array.pop(a)//emove(a, length + 1)
if array.size(a) == length
array.reverse(a)
b = array.avg(a)
c = label.new(time + time - time[1], dayHL2, xloc = xloc.bar_time, text="Average IB
Range: " + tostring(RoundToTick(b)) + l + "Current IB Range: " + tostring(m),
style=label.style_none, textcolor=color.white)
label.delete(c[1])
if not startSession()
if showHigh
highLabel := label.new(time+time-time[1], label1, text='RH',
style=label.style_none, xloc = xloc.bar_time, size=size.small, textcolor=color1)
label.delete(highLabel[1])
if showLow
lowLabel := label.new(time+time-time[1], label3, text='RL',
style=label.style_none, xloc = xloc.bar_time, size=size.small, textcolor=color1)
label.delete(lowLabel[1])
label dailyLabel = na
label dailyLabel1 = na
label weeklyLabel = na
label monthlyLabel = na
label yearlyLabel = na
if showDaily and dailyOpen == dailyOpen[1]
dailyLabel1 := label.new(time, label6, text='Daily Open Price',
style=label.style_none, xloc = xloc.bar_time, size=size.small, textcolor=color1)
label.delete(dailyLabel1[1])
if showWeekly and weeklyOpen == weeklyOpen[1]
dailyLabel := label.new(time-(time-time[3*posX_Labels]), label4, text='Weekly
Open Price', style=label.style_none, xloc = xloc.bar_time, size=size.small,
textcolor=color1)
label.delete(dailyLabel[1])
if shoMonthly and monthlyOpen == monthlyOpen[1]
monthlyLabel := label.new(time-(time-time[7*posX_Labels]), label5,
text='Monthly Open Price', style=label.style_none, xloc = xloc.bar_time,
size=size.small, textcolor=color1)
label.delete(monthlyLabel[1])
if showYearly and yearlyOpen == yearlyOpen[1]
yearlyLabel := label.new(time, label7, text='Yearly Open Price',
style=label.style_none, xloc = xloc.bar_time, size=size.small, textcolor=color1)
label.delete(yearlyLabel[1])