Hello,
Can anyone please help me with a script to find the previous session's high and low, including extended-hour sessions (pre and post)? I would like to find it based on a 1-hour aggregation period. I have modified a previous code made by @SleepyZ and adjusted the open and close session to get the highest high of the previous day. I plotted it against the ticker DUO but it was not working. Please help
Thank you
Can anyone please help me with a script to find the previous session's high and low, including extended-hour sessions (pre and post)? I would like to find it based on a 1-hour aggregation period. I have modified a previous code made by @SleepyZ and adjusted the open and close session to get the highest high of the previous day. I plotted it against the ticker DUO but it was not working. Please help
Thank you
Code:
input daysback = 1;
def ymd = GetYYYYMMDD();
def candles = !IsNaN(close);
def capture = candles and ymd != ymd[1];
def dayCount = CompoundValue(1, if capture then dayCount[1] + 1 else dayCount[1], 0);
def thisDay = (HighestAll(dayCount) - dayCount) ;
#Prior Day HLC RegularTradingHours
input rthbegin = 0100;
input rthend = 2000;
def pastOpen = If(secondsfromTime(rthbegin)[1]<0 and (SecondsTillTime(rthbegin) >= 0), 0, 1);
def pastClose = If(secondsfromTime(rthend)[1]<0 and (SecondsTillTime(rthend) >= 0), 0, 1);
def marketOpen = If(pastOpen and !pastClose, 1, 0);
def date = GetYYYYMMDD();
def c = close;
def h = high;
def l = low;
def o = open;
#Highest High during RTH from Previous Day Determined
def begin = CompoundValue(1, if thisday==daysback
then if SecondsFromTime(rthbegin) == 0
then h
else if h > begin[1] and marketOpen
then h
else begin[1]
else 0, begin[1]);
def beginbn = if GetDay() == GetLastDay()
then 0
else if getday()==getday()[1]
then if h == begin and marketOpen
then BarNumber()
else beginbn[1]
else 0;
def beginprice = if getday()==getday()[1]
then if BarNumber() == HighestAll(beginbn)
then h
else beginprice[1]
else beginprice[1];
#Lowest Low During RTH from Previous Day Determined
def begin1 = CompoundValue(1, if thisday==daysback
then if SecondsFromTime(rthbegin) == 0
then l
else if l < begin1[1] and marketOpen
then l
else begin1[1]
else 0, l);
def beginbn1 = if GetDay() == GetLastDay()
then 0
else if l == begin1
then BarNumber()
else beginbn1[1];
def beginprice1 = if date == date[1]
then if BarNumber() == HighestAll(beginbn1)
then l
else beginprice1[1]
else beginprice1[1];
#Close During RTH from Previous Day Determined
def begin2 = CompoundValue(1, if thisday==daysback
then if secondsfromTime(rthend)[1]<0 and SecondstillTime(rthend) >0
then c
else begin2[1]
else begin2[1], c);
def beginbn2 = if GetDay() == GetLastDay()
then 0
else if c == begin2
then BarNumber()
else beginbn2[1];
def beginprice2 = if date == date[1]
then if BarNumber() == HighestAll(beginbn2)
then c
else beginprice2[1]
else beginprice2[1];
#Open During RTH from Previous Day Determined
def begin3 = CompoundValue(1, if thisday==daysback
then if SecondsFromTime(rthbegin) == 0
then o
else begin3[1]
else begin3[1], 0);
def beginbn3 = if GetDay() == GetLastDay()
then 0
else if date==date[1] and o == (begin3)
then BarNumber()
else beginbn3[1];
def beginprice3 = if date == date[1]
then if BarNumber() == (beginbn3)
then o
else beginprice3[1]
else beginprice3[1];
def ph = if getday()!=getlastday() then double.nan else beginprice;
def pl = if getday()!=getlastday() then double.nan else beginprice1;
def pc = if getday()!=getlastday() then double.nan else beginprice2;
def po = if getday()!=getlastday() then double.nan else beginprice3;
plot a = ph;