Update on today: The highest RV1 stock, so far, was CTPK with a relative volume of
only 24. The next two were color coded
red, which is strong, but not as strong as the
cyan colored stocks, which need to have an RV1 of at least 20. Usually, before 10 am, we see multiple stocks, about 2-3, with a cyan colored RV1 of at least 20. Although CTPK had a nice run up in the first 15 minutes (along with a couple of others) when compared to the other days, obviously today's trading day was much weaker than usual; of course, it is Friday.
After looking at the last 6 trading days, I went back and analyzed the top 3 RV1 stocks from 7/10 - 7/16 and found an actually pretty reliable strategy. Other than today, I've noticed that the top RV1 stocks tend to AT LEAST make a 1:1 RR move after the 15 minute break. ANTE, GENE, BKYI, BOXL, ARC, CPTA and many more are examples of how they made a perfect 15 min. ORB move. All of these tickers showed up on the RV1 scanner before 9:45 with about a 20-40 RV level, and continued to rise throughout the day.
I'm going to back test this for the 10 trading days by: (chronological order)
1. Following the top 3 highest RV1 tickers
2. Selecting one, while watching the others, with at least 20 RV1 before 9:42
3. Has a great amount of volume
4. Trading above VWAP
5. Has a 15 minute range between 15-25%
6. Setting a future buy order at $0.01 over the 15 min. high at exactly 9:45 am
7. Look for a 1:1 RR ratio.
If anyone wants to see what I'm talking about, take a look at the stocks with the highest RV1 in the last few days, even the last couple of weeks, and you'll see that at least 7-8 out of 10 times, it hits a 1:1 RR.
I don't know how to post a picture on the forum posts, but let's take a look at ARC, BKYI and BOXL from yesterday. All 3 popped up on the scanner first and by 9:40 am, ARC had the highest RV1 followed by BKYI and BOXL respectively. They were all color coded cyan by 9:40 and BOXL would've been the best stock to focus on around 9:42-9:43 am. I could've prepared a future buy order at $0.01 over the 15 min. high due to its volume, movement, close over VWAP and realistic range. You could have done this for all 3, however due to these indicators, BOXL would have been the most reliable. The range between the first 15 minutes was about 24%, so you would place a limit order 24% above the high and a stop loss order at the low of the 15 minute.
I could easily be making 15-25% a day, even though I might take some big losses from time to time; however, since the success rate after analyzing the previous stocks with a strong RV1 has hit their 1:1 RR 7-8 out of 10 times in the past, we can easily say we would stay profitable in the long run. For instance today, it would've been unrealistic to make this trade on CPTK because it didn't have the best RV1 before 9:45. Now there will be times that I'll get a fake out and let's say for example we have a stock with a 20% 15 min. opening range. If we see that the stock is diverging, crosses under VWAP, the 9Day AND the 20Day, we can cut our losses quick and not actually lose 20%, but maybe 10-15%. Imagine we have a fake out and it seems to be diverging, but after being down 10% it bounces off of VWAP and comes back up; we can probably sell half at break even and sell half at a 0.5:1 RR. It all depends on how the stock is moving and what's going on. I have noticed that when the stock breaks the 15 min. high, it tends to continue to rise; however, sometimes it falls back down and bounces off its support levels. So this is where technical analysis will come into play.
I hope this is something you all are interested in and I'll keep you updated on how it turns out to be. I want to thank
@Sonny for this money making machine; hopefully this works and I come back positive so I can share some good news and we can all make great returns.
Edit: I meant to say that the 1:1 RR is not perfect, but the indicator I use automatically paints where your profit target should be at and it shows consistent accuracy. Sometimes it's just under the 1:1, sometimes it's a little bit higher. The green line plots the high of the 15 min, the red line plots the low and the white line that appears after the break over th 15 min. high is where your profit target should be.
Code:
# Opening_Range_Breakout Strategy with Target Line
declare hide_on_daily;
declare once_per_bar;
input OrMeanS = 0930.0; #hint OrMeanS: Begin Mean Period. Usually Market Open EST.
input OrMeanE = 0935.0; #hint OrMeanE: End Mean period. Usually End of first bar.
input OrBegin = 0930.0; #hint OrBegin: Beginning for Period of Opening Range Breakout.
input OrEnd = 1000.0; #hint OrEnd: End of Period of Opening Range Breakout.
input RthEnd = 1600;
input AlertOn = yes; #hint AlertOn: Alerts on cross of Opening Range.
input ShowTodayOnly = yes;
input nAtr = 4; #hint nATR: Lenght for the ATR Risk and Target Lines.
input AtrTargetMult = 2.0;#hint ATRmult: Multiplier for the ATR calculations.
input InitialRisk = 1.00; #hint InitialRisk: Amount of Risk your will to take opening a trade.
input ShowTargetBubbles = yes;
def h = high;
def l = low;
def c = close;
def bar = BarNumber();
def na = Double.NaN;
def TS = TickSize();
def BubbleX = bar == HighestAll(bar);
def s = ShowTodayOnly;
def Agg = GetAggregationPeriod() / 1000 / 60;
def RTH = if SecondsFromTime(0930) >= 0 and
SecondsFromTime(1600) >= 0
then 1
else 0;
def RTHbar1 = if RTH and !RTH[1]
then bar
else na;
def ORActive = if SecondsTillTime(OrMeanE) > 0 and
SecondsFromTime(OrMeanS) >= 0
then 1
else 0;
def today = if s == 0
or GetDay() == GetLastDay() and
SecondsFromTime(OrMeanS) >= 0
then 1
else 0;
def ORHigh = if ORHigh[1] == 0
or ORActive[1] == 0 and
ORActive == 1
then h
else if ORActive and
h > ORHigh[1]
then h
else ORHigh[1];
def ORLow = if ORLow[1] == 0
or ORActive[1] == 0 and
ORActive == 1
then l
else if ORActive and
l < ORLow[1]
then l
else ORLow[1];
def ORWidth = ORHigh - ORLow;
def ORHA = if ORActive
or today < 1
then na
else ORHigh;
def ORLA = if ORActive
or today < 1
then na
else ORLow;
def O = ORHA - Round(((ORHA - ORLA) / 2) / TS, 0) * TS;
def ORActive2 = if SecondsTillTime(OrEnd) > 0 and
SecondsFromTime(OrBegin) >= 0
then 1
else 0;
def ORHigh2 = if ORHigh2[1] == 0
or ORActive2[1] == 0 and
ORActive2 == 1
then h
else if ORActive2 and
h > ORHigh2[1]
then h
else ORHigh2[1];
def ORLow2 = if ORLow2[1] == 0
or ORActive2[1] == 0 and
ORActive2 == 1
then l
else if ORActive2 and
l < ORLow2[1]
then l
else ORLow2[1];
def ORWidth2 = ORHigh2 - ORLow2;
def TimeLine = if SecondsTillTime(OrEnd) == 0
then 1
else 0;
def ORmeanBar = if !ORActive and ORActive[1]
then bar
else ORmeanBar[1];
def ORendBar = if !ORActive2 and ORActive2[1]
then bar
else ORendBar[1];
def ORH2 = if ORActive2
or today < 1
then na
else ORHigh2;
plot ORH2ext = if ShowTodayOnly and bar >= HighestAll(ORendBar)
then HighestAll(if IsNaN(c[-1])
then ORH2[1]
else na)
else if !ShowTodayOnly
then ORH2
else na;
ORH2ext.SetDefaultColor(Color.GREEN);
ORH2ext.SetStyle(Curve.LONG_DASH);
ORH2ext.SetLineWeight(3);
ORH2ext.HideTitle();
def ORL2 = if ORActive2
or today < 1
then na
else ORLow2;
plot ORL2ext = if BarNumber() >= HighestAll(ORendBar)
then HighestAll(if IsNaN(c[-1])
then ORL2[1]
else Double.NaN)
else Double.NaN;
ORL2ext.SetDefaultColor(Color.RED);
ORL2ext.SetStyle(Curve.LONG_DASH);
ORL2ext.SetLineWeight(3);
ORL2ext.HideTitle();
def Bubbleloc1 = isNaN(close[-1]);
def BreakoutBar = if ORActive
then double.nan
else if !ORActive and c crosses above ORH2
then bar
else if !isNaN(BreakoutBar[1]) and c crosses ORH2
then BreakoutBar[1]
else BreakoutBar[1];
def ATR = if ORActive2
then Round((Average(TrueRange(h, c, l), nATR)) / TickSize(), 0) * TickSize()
else ATR[1];
def cond1 = if h > ORH2 and
h[1] <= ORH2
then Round((ORH2 + (ATR * AtrTargetMult)) / TickSize(), 0) * TickSize()
else cond1[1];
def crossUpBar = if close crosses above ORH2
then bar
else double.nan;
# High Targets
plot Htarget = if bar >= HighestAll(ORendBar)
then HighestAll(cond1)
else na;
Htarget.SetPaintingStrategy(PaintingStrategy.SQUARES);
Htarget.SetLineWeight(1);
Htarget.SetDefaultColor(Color.WHITE);
Htarget.HideTitle();
AddChartBubble(ShowTargetBubbles and BubbleLoc1, cond1, "1:1", Color.WHITE, if c > Htarget then no else yes);
# End Code ORB VO3(B)