Opening Range (ORB) Watchlist Column for ThinkorSwim

E

ezrollin

Member
I trade options and one of my favorite trades is morning breakout to 2nd fib (cause if you have a certain set up that trade works like 90% of the time)
What time frame? Would you care to share a screenshot of said 2nd fib? I dont know 2nd fib, I know 38% or 61% Thanks
 
technicallydreaming

technicallydreaming

New member
Could this be edited to reflect time beyond the first half hour of the market, comparing general range of the previous day price?
 
V

VicD

Member
@technicallydreaming yes, but you would have to bring in the logic to put in the overnight high and low. Below is the study I use to show prior day and premarket open and close on my chart. If you edit the column to show above, below, or inside the premarket, please post it here.

Code:
# Custom Multi Plot ThinkScript by 7of9 for BRT
# edited 3/5/19

# Inputs

input PlotPreMktLinesHrsPastOpen = 0;

input PlotRegMktLinesHrsPastOpen = 0;

input PlotYesterdayMktLinesHrsPastOpen = 0;

input PlotActiveRegMktLinesOnPrevDays = 0;

input DisplayPreMarketPriceBubbles = yes;

input DisplayCurrentDayPriceBubbles = yes;

input DisplayPreviousDayPriceBubbles = yes;

# Pre market / Regular market definitions

def ExtPMOut = PlotPreMktLinesHrsPastOpen * 3610000;

def ExtRMOut = PlotRegMktLinesHrsPastOpen * 3610000;

def ExtYMOut = PlotYesterdayMktLinesHrsPastOpen * 3610000;

def MktPlot = GetLastDay() - PlotActiveRegMktLinesOnPrevDays <= GetDay() and GetLastYear() - 0 <= GetYear();

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

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

def PMplots = RegularTradingStart (GetYYYYMMDD()) > GetTime() - ExtPMOut;

def RMplots = RegularTradingStart (GetYYYYMMDD()) > GetTime() - ExtRMOut;

def YMplots = RegularTradingStart (GetYYYYMMDD()) > GetTime() - ExtYMOut;

def PMStart = RMhrs[1] and PMhrs;

def RMStart = PMhrs[1] and RMhrs;

def PMHigh = CompoundValue(1, if PMStart then high else if PMhrs then Max(high, PMHigh[1]) else PMHigh[1], 0);

def PMLow = CompoundValue (1, if PMStart then low else if PMhrs then Min(low, PMLow[1]) else PMLow[1], 0);

def bar = BarNumber();

def highBar = if PMhrs and high == PMHigh then bar else Double.NaN;

def lowBar = if PMhrs and low == PMLow then bar else Double.NaN;

# Current price line tracker code

plot PriceLine = HighestAll (if IsNaN(close[-1]) and !IsNaN(close) then close else Double.NaN);

PriceLine.SetDefaultColor (Color.GRAY);
PriceLine.SetStyle (Curve.SHORT_DASH);

# Pre market open code

def HidePMO = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then yes else no;

def day = GetDay();

def PMopenBar = day != day[1];

def PMOpen = if PMopenBar then open else PMOpen[1];

plot PMO = if HidePMO and MktPlot and PMplots then PMOpen else Double.NaN;

PMO.SetDefaultColor (CreateColor (234, 136, 255));

# Pre market high code

def HidePMH = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then yes else no;

def PMHighBar = if bar == HighestAll(highBar) then PMHigh else PMHighBar[1];

plot PMH = if HidePMH and PMplots and PMHighBar > 0 then PMHighBar else Double.NaN;

PMH.SetDefaultColor (CreateColor (116, 189, 232));

# Pre market low code

def HidePML = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then yes else no;

def PMLowBar = if bar == HighestAll(lowBar) then PMLow else PMLowBar[1];

plot PML = if HidePML and PMplots and PMLowBar > 0 then PMLowBar else Double.NaN;

PML.SetDefaultColor (CreateColor (116, 189, 232));

# Current day open code

def HideCDO = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then yes else no;

def CDOpen = if !day then Double.NaN else open (period = "day");

plot CDO = if HideCDO and MktPlot and RMplots then CDOpen else Double.NaN;

CDO.SetDefaultColor (Color.WHITE);
CDO.SetStyle (Curve.SHORT_DASH);

#Current day high code

def HideCDH = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then yes else no;

def CDHigh = if !day then Double.NaN else high (period = "day");

plot CDH = if HideCDH and MktPlot and RMplots then CDHigh else Double.NaN;

CDH.SetDefaultColor (Color.GREEN);
CDH.SetStyle (Curve.SHORT_DASH);

#Current day low code

def HideCDL = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then yes else no;

def CDLow = if !day then Double.NaN else low (period = "day");

plot CDL = if HideCDL and MktPlot and RMplots then CDLow else Double.NaN;

CDL.SetDefaultColor (Color.RED);
CDL.SetStyle (Curve.SHORT_DASH);

#Previous day high code

def HidePDH = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then yes else no;

def PDHigh = if !day then Double.NaN else high (period = "day")[1];

plot PDH = if HidePDH and MktPlot and YMplots then PDHigh else Double.NaN;

PDH.SetDefaultColor (CreateColor (153, 255, 153));
PDH.SetStyle (Curve.SHORT_DASH);

#Previous day low code

def HidePDL = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then yes else no;

def PDLow = if !day then Double.NaN else low (period = "day")[1];

plot PDL = if HidePDL and MktPlot and YMplots then PDLow else Double.NaN;

PDL.SetDefaultColor (CreateColor (255, 126, 156));
PDL.SetStyle (Curve.SHORT_DASH);

#Previous day close code

def HidePDC = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then yes else no;

def PDClose = if !day then Double.NaN else close (period = "day")[1];

plot PDC = if HidePDC and MktPlot and YMplots then PDClose else Double.NaN;

PDC.SetDefaultColor (CreateColor (231, 190, 0));
PDC.SetStyle (Curve.SHORT_DASH);

#Pre market bubbles code

def PMBubbles = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then DisplayPreMarketPriceBubbles else no;

AddChartBubble (PMopenBar and PMBubbles, PMO, ("PMO:") + PMO,
CreateColor (204, 204, 255));

AddChartBubble (highBar and PMBubbles, PMH, ("PMH:") + PMH,
CreateColor (204, 204, 255));

AddChartBubble (lowBar and PMBubbles, PML, ("PML:") + PML,
CreateColor (204, 204, 255), no);

#Current day bubbles code

def CDBubbles = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then DisplayCurrentDayPriceBubbles else no;

def CDFirstBar = SecondsFromTime (0800) >= 0 and SecondsFromTime (0800) < 60;

AddChartBubble (CDFirstBar and CDBubbles, CDO, ("CDO:") + CDO,
CreateColor (204, 204, 255));

AddChartBubble (CDFirstBar and CDBubbles, CDH, ("CDH:") + CDH,
CreateColor (204, 204, 255));

AddChartBubble (CDFirstBar and CDBubbles, CDL, ("CDL:") + CDL,
CreateColor (204, 204, 255), no);

#Previous day bubbles code

def PDBubbles = if GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN then DisplayPreviousDayPriceBubbles else no;

def PDFirstBar = SecondsFromTime (0700) >= 0 and SecondsFromTime (0700) < 60;

AddChartBubble (PDFirstBar and PDBubbles, PDH, ("PDH:") + PDH,
CreateColor (204, 204, 255));

AddChartBubble (PDFirstBar and PDBubbles, PDL, ("PDL:") + PDL,
CreateColor (204, 204, 255), no);

AddChartBubble (PDFirstBar and PDBubbles, PDC, ("PDC:") + PDC,
CreateColor (204, 204, 255));

plot PMHclose = PMH;
plot ArrowUp = Crosses(close, PMHclose, CrossingDirection.ABOVE);
ArrowUp.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);


plot PMLclose = PML;
plot ArrowDown = Crosses(close, PMLclose, CrossingDirection.BELOW);
ArrowDown.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);

Alert(ArrowUp, " ", Alert.BAR, Sound.Chimes);
Alert(ArrowDown, " ", Alert.BAR, Sound.Bell);
 
Last edited by a moderator:
V

VicD

Member
@ezrollin Target levels on the fibonacci extensions are T1: 161.8% and T2 261.8%.

The logic:

input fibext1 = .272;
input fibext2 = .618;
input fibext3 = 1.618;
input fibext4 = 2.618;

I don't know how to insert image here, it asks for a URL. Alas. If you overlay the fib extensions on the 5 minute bar, it will be the exact match
 
K

KKaiser

Member
@VicD Thanks for detail explanation. Could you please share TOS link of your chart if you don't mind. Thank you.
 

Top