Relative Volume Strategy and Momentum Scanner for ThinkorSwim

Thank you Sonny! Also is the change going to be similar for checking the pre-market without the last 2 study filters?

My premarket scan is different. It is listed here:

Last: 0.2 to 15
Volume: 5000 to No Max
and
Custom Study (under Price Performance) Afterhours Percent Change, the Close has moved greater than 10% in the after hours trading; check EXT and aggregation to 1m.
 

Ben's Swing Trading Strategy + Indicator

I wouldn't call this a course. My goal is zero fluff. I will jump right into my current watchlist, tell you the ThinkorSwim indicator that I'm using, and past trade setups to help you understand my swing trading strategy.

I'm Interested

@Sonny I need your help once more.
How can I create a scan for stocks (low timeframe 1m or 3m) that volume has changed at least 200% from the last minute?
And also that candle with higher volume is above VWAP?
And finally, it needs to be working during pre-market also

Thanks in advance
 
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)
 
Last edited:
I want to chime in that if you have a higher price on the scan, the possibilities are expanded. VRNA has a whopping 1714 rv1 as of 2:15pm est. It was on top the premarket gainers list (on another paid algo scanner I use, but might drop because of this strategy) and it continued momentum throughout the morning. Regarding low floats I have notice the ones that run for multiple dollars are in between the $7 to $10 range before the breakout. Lower end price can run but it is limited.
 
I want to chime in that if you have a higher price on the scan, the possibilities are expanded. VRNA has a whopping 1714 rv1 as of 2:15pm est. It was on top the premarket gainers list (on another paid algo scanner I use, but might drop because of this strategy) and it continued momentum throughout the morning. Regarding low floats I have notice the ones that run for multiple dollars are in between the $7 to $10 range before the breakout. Lower end price can run but it is limited.
Yes I actually changed the original $0.5 - $7 to $0.5 - $10, because I noticed that as well. Regarding the pre-market RV1, I won't usually use those for intraday trading because the RV1 can be really high due to the premarket momentum, and I rather let intraday momentum be my indicator determining when a stock is going to run after 9:30.
 
Yes I actually changed the original $0.5 - $7 to $0.5 - $10, because I noticed that as well. Regarding the pre-market RV1, I won't usually use those for intraday trading because the RV1 can be really high due to the premarket momentum, and I rather let intraday momentum be my indicator determining when a stock is going to run after 9:30.


I dont use the rv1 for premarket. I have a scanner that identifies gap up or high momentum stocks before the bell. It works better than anything TOS has to offer but there is sometimes too much to sort through and the moves are fast and furious in pre market. I agree with waiting after the bell to get in. Too much going on at that time.

Also the biggest factor in determining a mover is news associated with it. twitter is a good source. Every stock can pop but the ones that go ballistic are the ones that have a catalyst.
 
I dont use the rv1 for premarket. I have a scanner that identifies gap up or high momentum stocks before the bell. It works better than anything TOS has to offer but there is sometimes too much to sort through and the moves are fast and furious in pre market. I agree with waiting after the bell to get in. Too much going on at that time.

Also the biggest factor in determining a mover is news associated with it. twitter is a good source. Every stock can pop but the ones that go ballistic are the ones that have a catalyst.
Definitely. Well, I'm gonna try this out on my paper trading account and let you know how I do.
 
This momentum scan is an alternative to find stocks if the AM Gappers fail. At about 9:15am, I make a list of the top 6 gappers that have high gaps (>15% ) and high volumes (>100K). I use this sheet below to do it. I track the AM gappers to see if one will rocket. My favorite pattern is the U pattern after the bell, meaning early dip and then goes up. The C stands for catalyst, T is today, Y is yesterday, LF is low float (<10M), and RV is relative volume. PMH is premarket high and PC is previous close. Today VRNA had the U pattern with double bottom, broke VWAP, had a bull flag pattern between 10:13 and 10:20, and bounced off VWAP at 10:21. It was the clear winner today. It also had the highest RV1 of all stocks today. My point is see if the AM gappers provide good setups and use my momentum scan as a backup. BTW, I like the idea of changing the range to 0.5 to 10. Also, I focus on 2-3 AM gappers; I like ones with a good catalyst and low float (<10M). Today my focus was on VRNA and APDN.
QSAr4Ib.jpg
 
This momentum scan is an alternative to find stocks if the AM Gappers fail. At about 9:15am, I make a list of the top 6 gappers that have high gaps (>15% ) and high volumes (>100K). I use this sheet below to do it. I track the AM gappers to see if one will rocket. My favorite pattern is the U pattern after the bell, meaning early dip and then goes up. The C stands for catalyst, T is today, Y is yesterday, LF is low float (<10M), and RV is relative volume. PMH is premarket high and PC is previous close. Today VRNA had the U pattern with double bottom, broke VWAP, had a bull flag pattern between 10:13 and 10:20, and bounced off VWAP at 10:21. It was the clear winner today. It also had the highest RV1 of all stocks today. My point is see if the AM gappers provide good setups and use my momentum scan as a backup. BTW, I like the idea of changing the range to 0.5 to 10. Also, I focus on 2-3 AM gappers; I like ones with a good catalyst and low float (<10M). Today my focus was on VRNA and APDN.

When you say AM Gappers, you find them through your pre-market scanner and if they fail, and don't have a proper intraday run up, you use the momentum scanner to find the ones that do?
 
When you say AM Gappers, you find them through your pre-market scanner and if they fail, and don't have a proper intraday run up, you use the momentum scanner to find the ones that do?

Yes, but I look at both the AM gappers and also check the momentum scan as well to find good setups.
 
So I made 7% on CPTA this morning, but I know I missed out on GENE big time (I only get 1-2 trades a day bc I'm on a cash account).
You may be misunderstanding the Pattern Day Trader rule. We all probably did when we first started trading, but the bottom line is if you read the PDT rule closely, you'll find it only applies to margin accounts.

I have a $5,000 cash account and made nine day trades today testing out this scanner — which is excellent! — and had enough buying power remaining that I could have made more trades. However, now that money is tied up until the second business day, so I won't be able to use it for any trades until Tuesday (or Wednesday during a week with a holiday).
 
You may be misunderstanding the Pattern Day Trader rule. We all probably did when we first started trading, but the bottom line is if you read the PDT rule closely, you'll find it only applies to margin accounts.

I have a $5,000 cash account and made nine day trades today testing out this scanner — which is excellent! — and had enough buying power remaining that I could have made more trades. However, now that money is tied up until the second business day, so I won't be able to use it for any trades until Tuesday (or Wednesday during a week with a holiday).
No I understand the difference between PDT and a cash account. I have $10k in total capital, but I only use $5k a day, or 50% of what my total capital is, so that way I can trade everyday without having to wait for my funds to settle; however, with that $5000 for the day, I’ll make 2 trades of $2500 or 1 trade with my $5k. That way I end up taking 1-2 trades a day. I can take more trades with smaller position sizes, but I look for strong indicators that the stock is gonna run up so I can make an overall percentage gain rather than separate ones. Thank you for the input though, I didn’t mean to make it seem like what I meant by 1-2 trades to be confusing 👍🏽
 
Last edited:
You don't need to keep scanning as long as you set alerts for when new symbols are added to both scans. Just have the Message Center pulled up and you can see any new stocks that pop up on both scans.
I revised my sidebar today to have all of the scans that you've posted be Watchlists, so there's no need to do any scans; they show up automatically in the Watchlist. You can even tell when one is being added, because there's a pause while it brings it data.

My sidebar now shows my account, your Pre-Market scan I saw in one of your threads, the low float scan, the high float scan — by the way, why did you separate them, since it doesn't seem there's be any difference in buying strategy? — and the positions I hold with the shares and price I bought at, as well as the P/L Open. The runners I generally watch until they peter out — or until my rookie's eyes mistakenly think they've stalled! — but I've also been buying Zacks' Strong Buys ahead of the their earnings release, since they tend to have a bit of a run up. I sort the Watchlist of my positions by P/L Open, and when one of the earnings stocks has grown large enough to my liking, I bail to protect the profit.
 
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.
Dumb question, but what are 1:1 RR and ORB?
 
Dumb question, but what are 1:1 RR and ORB?
1:1 RR is 1 to 1 Risk to Reward; so if the stock has a range of 10%, you’re risking 10% to make 10%

ORB is Opening Range Breakout; so you take the high and low of the time frame you like, mine is 15m time frame, and you buy the stock at the break over the high. So if within the first 15 min of trading the stocks high is at $1.05 and its low is at $0.95, you’re placing an order to go long at $1.06 or placing an order to short at $0.94.
 
1:1 RR is 1 to 1 Risk to Reward; so if the stock has a range of 10%, you’re risking 10% to make 10%

ORB is Opening Range Breakout; so you take the high and low of the time frame you like, mine is 15m time frame, and you buy the stock at the break over the high. So if within the first 15 min of trading the stocks high is at $1.05 and its low is at $0.95, you’re placing an order to go long at $1.06 or placing an order to short at $0.94.
Thanks, Gabriel.

That's an interesting strategy. If I'm understanding you correctly, it sounds like you're somehow putting in a conditional order. If the stock is rising by 9:45, it will hit your buy request at $1.06, whereas if it is falling, it will trigger a short at $.94. If that is correct, what is the process in thinkorswim to place a delayed order? Is it as simple as using limits at those prices and TOS won't touch them until the stock hits either one of them?

Actually, it probably has to be some type of either/or order, correct, because otherwise it would still be there when the stock reverses?
 
Thanks, Gabriel.

That's an interesting strategy. If I'm understanding you correctly, it sounds like you're somehow putting in a conditional order. If the stock is rising by 9:45, it will hit your buy request at $1.06, whereas if it is falling, it will trigger a short at $.94. If that is correct, what is the process in thinkorswim to place a delayed order? Is it as simple as using limits at those prices and TOS won't touch them until the stock hits either one of them?

Actually, it probably has to be some type of either/or order, correct, because otherwise it would still be there when the stock reverses?
No problem, but here I’ll put a specific example of the process.

1. Stock opens at 9:30 at $1.00 per share
2. At 9:45 it’s high is $1.10, it’s low is $0.95 and it’s close was at $1.06
3. At 9:45:01 I place an OCO bracket future buy order with a 1:1 RR (automatically sets a limit and stop loss as soon as I enter the trade) at $1.11
4. Wait for the stock to reach my future buy order at $1.11 and adjust my bracket to a 1:1 RR, which would be setting my limit to $1.25 and my stop at $0.95
5. As soon as I’m filled, I wait for it to hit either my limit or stop loss

That’s basically the process; big firms use this strategy with a 70% success rate, but they do trade large caps so it’s different. That’s why I’m going to be back resting this strategy with small cap stocks and the RV1 scanner.
 
Last edited:
@Gabrielx77
Make sure you set an alert for when new symbols are added to the scan. Then assess the stocks that come at 9:35 or 9:36. Go for the highest volume, highest RV, and stock with room to run. When you buy it, you can hold it as long as it stays above VWAP. BOXL was on the scan early and met these conditions.
Hi, Sonny, After I set the momentum scan/watchlist, how to set up alerts to pop up new symbols in Thinkorswim? thank you in advance
 
No problem, but here I’ll put a specific example of the process.

1. Stock opens at 9:30 at $1.00 per share
2. At 9:45 it’s high is $1.10, it’s low is $0.95 and it’s close was at $1.06
3. At 9:45:01 I place an OCO bracket future buy order with a 1:1 RR (automatically sets a limit and stop loss as soon as I enter the trade) at $1.11
4. Wait for the stock to reach my future buy order at $1.11 and adjust my bracket to a 1:1 RR, which would be setting my limit to $1.25 and my stop at $0.95
5. As soon as I’m filled, I wait for it to hit either my limit or stop loss

That’s basically the process; big firms use this strategy with a 70% success rate, but they do trade large caps so it’s different. That’s why I’m going to be back resting this strategy with small cap stocks and the RV1 scanner.
Thanks for that information, Gabriel.

I have a bit of confusion about Line 4. I understand setting a limit to sell at $1.26, since that would be a 12.6% ROI, but a stop loss at $0.95 would be a 14.4% loss. I would have assumed that your stop loss would be much smaller, so am I misunderstanding something about this OCO bracketing?

I was also curious what your success rate has been. I just did a spreadsheet and calculated starting with $5,000, then adding 10% to the total for three consecutive days and subtracting 10% for the fourth day, or a 75% success rate. It's almost laughable what that becomes after a year — nearly $700 million! I've been far more methodical, and have had about an 80% success rate — although part of that is I'll bail with 4/10 of a percent gain if needed — but nowhere close to 10% daily gains. But if this scanner can lead to more double digit gains, I might up the day trading portion.
 
Last edited:
Thanks for that information, Gabriel.

I have a bit of confusion about Line 4. I understand setting a limit to sell at $1.26, since that would be a 12.6% ROI, but a stop loss at $0.95 would be a 14.4% loss. I would have assumed that your stop loss would be much smaller, so am I misunderstanding something about this OCO bracketing?

I was also curious what your success rate has been. I just did a spreadsheet and calculated starting with $5,000, then adding 10% to the total for three consecutive days and subtracting 10% for the fourth day, or a 75% success rate. It's almost laughable what that becomes after a year — almost $700 million! I've been far more methodical, and have had about an 80% success rate — although part of that is I'll bail with 4/10 of a percent gain if needed — but nowhere close to 10% daily gains. But if this scanner can lead to more double digit gains, I might up the day trading portion.
Okay so regarding your first question, although you're risking 14.4% to make 12.6% (your math is correct by the way), if your success rate is at least 70% over the long run, you will always end up with a positive ROI. So for instance, let's say we are successful 70% and we traded 10 times with the exact scenario I provided above. That would mean (12.6% gain x 7 wins) - (14.4% loss - 3 losses) = ROI of +45% in a period of 10 trades. Obviously this is just an example with a constant RR ratio, but that's why when you use this strategy in real time, you have to make sure the stock's 15m range falls into your desired percentage. As I said above in my step by step process, my desired range for the 15 min is 15-25%. If I had a success rate of 70%, we can say that a worst case scenario comes out like this where I always win the least and lose the most:
(15% gain x 7 wins) - (25% loss - 3 losses) = ROI of +30% after 10 trading days. This is the worst case scenario and what I have noticed with this RV1 scanner, the success rate is over 80%.

So now let's say I didn't follow my specified guidelines to only trade stocks that fall in between the 15-25% 15m range. Let's say I won 7 trades in a row at 15% but I took 3 losses at 30-35%. Because I didn't follow my guidelines, I would be in the negative. That's why you need to make sure your desired range always keeps you in the positive in the worst case scenario when your minimum success rate is 70%.

Regarding why you're risking 14.4% to make 12.6%, I still consider that 1:1 RR because you never want to set your future buy order at the high of the 15m range; if it doesn't break, it could easily just bounce off of the 15m high and it's not worth taking. So you would need to set your buy order $0.01 above the 15m high. From the example, you can always move your limit order to make it perfectly 1:1, so instead of setting your limit order to $1.25, you can move it to $1.26 to get the same gain as a loss; however, I'd rather just set it for the exact ratio where $0.25 away from the 15m high means I get a minimum of 0.85:1 RR to keep it safe. If my success rate is always over 70%, I would keep a positive ROI in the long run. Sometimes stocks bounce right off the 1:1 and if you place your limit order to be right above it, you probably won't get filled and gain less than what you could have.

Furthermore, regarding the success rate. This is what my back testing will be all about; after doing research on the ORB, it has been widely successful with brokerages and other day traders. Many people have back tested this strategy with large cap stocks and have a success rate between 66-75%. In my opinion, that's a solid win rate; however, they do use this strategy on large caps, so the risk is much safer than using this strategy on small caps and/or penny stocks. BUT, since Sonny gave us a relative volume scanner, I have noticed that the top 3 stocks with the highest RV1 by 9:35- 9:43 am tend to run for the rest of the day OR at least until the afternoon; but by that time, it has already hit your 1:1 RR. After going back and reviewing all the small caps with the highest RV1 in the morning, I noticed that 8 out of 10 hit their 1:1 RR and the other 2 broke the 15 min high, but never reached their 1:1, but didn't break under the 15m low. The 2 that broke their 15m high never dropped down to below their 15 min low. So you would take a lesser loss or possibly small gain, without actually risking the amount you said you were going to be risking originally. That's why I'm curious to see if we can easily make some money by setting an OCO order, make a 15-25% gain within an hour or two, and have a success rate of at least 70%. I'll be testing this ORB strategy over the next 10 trading days by analyzing the top 3 highest RV1 small cap stocks before 9:44 am, making 1 trade a day at the break over the 15m high of the best stock I like, take down my success rate, and then come back with the results. It would change the game honestly.

EDIT: Obviously, 10 days of backtesting isn't enough; however, I'm curious to what the results could be and I believe if my results show a great success ratio and I've made proper gains, I would implement it into live trading.

And also, I just did the math on excel, if I were to start with $5k and have a win rate of 75% at a reward of 10% and loss of 10%, it came out to $1 million. But it's important to remember that this is not realistic because you can't buy $500k worth of small cap stock, you probably wouldn't get filled fast enough or not at all honestly lol. So that number is unrealistic.
 
Last edited:

New Indicator: Buy the Dip

Check out our Buy the Dip indicator and see how it can help you find profitable swing trading ideas. Scanner, watchlist columns, and add-ons are included.

Download the indicator

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
421 Online
Create Post

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top