Watchlist field: How to change close vs Yesterday High/Low on 1min ?

we29125

Member
Close vs Yesterday High/Low in 1min.
Reason is i want it to compare close in premarket or market time vs Yesterday High/Low.
How to change close vs Yesterday High/Low on 1min ?
Please help.. using above sample.

pmhl.jpg


Code:
declare once_per_bar;

input PlotPreMktLinesHrsPastOpen = yes;

def bar = BarNumber();
def nan = Double.NaN;
def vHigh = high;
def vLow = low;

def PMhrs = RegularTradingStart (GetYYYYMMDD()) > GetTime();
def RMhrs = RegularTradingStart (GetYYYYMMDD()) < GetTime();
def PMStart = RMhrs[1] and PMhrs;
def PMHigh = CompoundValue(1, if PMStart then vHigh else if PMhrs then Max(vHigh, PMHigh[1]) else PMHigh[1], 0);
def PMLow = CompoundValue(1, if PMStart then vLow else if PMhrs then Min(vLow, PMLow[1]) else PMLow[1], 0);
def highBar = if PMhrs and vHigh == PMHigh then bar else nan;
def lowBar = if PMhrs and vLow == PMLow then bar else nan;
def PMHighBar = if bar == HighestAll(highBar) then PMHigh else PMHighBar[1];
def PMLowBar = if bar == HighestAll(lowBar) then PMLow else PMLowBar[1];
def PMH =  if PlotPreMktLinesHrsPastOpen and PMHighBar != 0
            then PMHighBar
            else nan;
def PML =  if PlotPreMktLinesHrsPastOpen and PMLowBar != 0
            then PMLowBar
            else nan;
def PMMid = if PlotPreMktLinesHrsPastOpen and PMHighBar != 0 and PMLowBar != 0
             then (PMHighBar+PMLowBar)/2
             else nan;

plot x = Round((close - PMMid) / (PMH - PMMid));
x.assignValueColor (if x >= 5 then Color.GREEN else if x <= -5 then Color.RED else if x >= 2 then Color.CYAN else if x <= -2 then Color.MAGENTA else if x >= 1 then Color.LIGHT_GREEN else if x <= -1 then Color.PINK else Color.White) ;
 
Last edited by a moderator:

we29125

Member
Made it. But it shows PreMarket and Regular Hours. How to add After Hour output ?

Code:
declare once_per_bar;

input ShowTodayOnly = yes;
input PlotPreMktLinesHrsPastOpen = yes;
def agg = AggregationPeriod.DAY;
def Today = if GetDay() == GetLastDay() then 1 else 0;

def bar = BarNumber();
def nan = Double.NaN;
def vHigh = if ShowTodayOnly and !Today then Double.NaN else high(period = "day" )[1];
def vLow = if ShowTodayOnly and !Today then Double.NaN else low(period = "day" )[1];

def PMhrs = RegularTradingStart (GetYYYYMMDD()) > GetTime();
def RMhrs = RegularTradingStart (GetYYYYMMDD()) < GetTime();

def PMStart = RMhrs[1] and PMhrs ;
def PMHigh = CompoundValue(1, if PMStart then vHigh else if PMhrs then Max(vHigh, PMHigh[1]) else PMHigh[1], 0);
def PMLow = CompoundValue(1, if PMStart then vLow else if PMhrs then Min(vLow, PMLow[1]) else PMLow[1], 0);
def highBar = if PMhrs and vHigh == PMHigh then bar else nan;
def lowBar = if PMhrs and vLow == PMLow then bar else nan;
def PMHighBar = if bar == HighestAll(highBar) then PMHigh else PMHighBar[1];
def PMLowBar = if bar == HighestAll(lowBar) then PMLow else PMLowBar[1];
def PMH =  if PlotPreMktLinesHrsPastOpen and PMHighBar != 0
            then PMHighBar
            else nan;
def PML =  if PlotPreMktLinesHrsPastOpen and PMLowBar != 0
            then PMLowBar
            else nan;
def PMMid = if PlotPreMktLinesHrsPastOpen and PMHighBar != 0 and PMLowBar != 0
             then (PMHighBar+PMLowBar)/2
             else nan;

plot x = Round((close - PMMid) / (PMH - PMMid));
x.assignValueColor(if (x >= 7 or x <= -7) then CreateColor(255,0,0) else if (x >= 5 or x <= -5) then CreateColor(255,0,255) else if (x >= 3 or x <= -3) then Color.Pink else if (x >= 1.5 or x <= -1.5) then CreateColor(0,255,0) else if (x >= 1 or x <= -1) then CreateColor(255,255,255) else CreateColor(128,128,128) );
 

Similar threads

Top