Three Triple 3 Bars BreakOut

Shaco

Member
Hi. First of all, thank you for this great, helpful community. This is my first post ever, so please excuse me for any abnormalities.

I searched our forum but have not found a script for the 3 bars play trading strategy yet (see image linked below).

XN3s44p.png


I'm looking to scan any 3 bars formation and then look for entry from a small list of stock options.

Code:
#
#Strategy 3/4/5 Bars Breakout/down
#@tradecombine

input bodyMultiple = 2.0;
input gapMultiple = 0.0;
input volMultiple = 3.0;
input barPercent = .75; # What percentage of the bar must be body to qualify as a 3BP
input margin = 0.10; # how much to allow exceed
def VA = VolumeAvg(30).VolAvg;

#3 Bar Play:

def range3 = high[1] - low[1];
########First Bar:
#The "high" of the bar has to set a new 20 day high (or high of the previous 20 candles for intra day scans)
def bar31 = Highest(high[1], 20)
#Range of the bar has to be greater than the previous 14 bar ATR range
&& range3 > bodyMultiple * ATR(14)
# stock breaks out over range
&& open[1] > high[2] + gapMultiple * ATR(14)
# Volume is higher than average
&& volume[1] > volMultiple * VA
# breakout bar has full body or very close to it
&& (close[1] - open[1]) >= barPercent * (high[1] - low[1])
&& close[1] > open[1];




#######Second Bar:
#The "high" of the bar has to be 'less than or equal to' to high of the previous bar.
def bar32 = high <= high[1] + margin
#The "low" of the bar has to be in the upper 50% range of the first bar.
&& low >= low[1] + (0.5 * range3);


def bar3barplay = bar31 && bar32;


#--------------------------------------#
# 4 Bar Play:
def range4 = high[2] - low[2];

def bar41 = Highest(high[2], 20)
&& range4 > bodyMultiple * ATR(14)
&& open[2] > high[3] + gapMultiple*ATR(14)
&& volume[2] > volMultiple * VA
&& (close[2] - open[2]) >= barPercent * (high[2] - low[2])
&& close[2] > open[2];

def bar42 = high[1] <= high[2] + margin
&& low[1] >= low[2] + (0.5 * range4);

def bar43 = high <= high[2] + margin
&& low >= low[2] + (0.5 * range4);

def bar4barplay = bar41 && bar42 && bar43;


# 5 Bar Play:
def range5 = high[3] - low[3];

def bar51 = Highest(high[3], 20)
&& range5 > bodyMultiple * ATR(14)
&& open[3] > high[4] + gapMultiple*ATR(14)
&& volume[3] > volMultiple * VA
&& (close[3] - open[3]) >= barPercent * (high[3] - low[3])
&& close[3] > open[3];

def bar52 = high[2] <= high[3] + margin
&& low[2] >= low[3] + (0.5 * range5);

def bar53 = high[1] <= high[3] + margin
&& low[1] >= low[3] + (0.5 * range5);

def bar54 = high <= high[3] + margin
&& low >= low[3] + (0.5 * range5);

def bar5barplay = bar51 && bar52 && bar53 && bar54;

plot scan = bar3barplay OR bar4barplay OR bar5barplay;

The above codes are from @tradecombine (greatly appreciate this). This is the latest code/strategy for this thread (updated on 10/29/21). These codes look professionally done and seem to function much better than mine, so i will be using/testing this from now on.

Any help, suggestion, or advice is greatly appreciated! Thank you!
 
Last edited:
Solution
@Shaco Heres my take on this, only has 3 bar play long. You can scan using this and backtest the results. I'm sure you can figure out how to add short to this code.
Code:
input length = 14;

def o = open;
def h = high;
def l = low;
def c = close;

def green = c > o;
def red = c < o;
def range = h - l;
def wrb = range > 2 * Average(range, length);

def bar1 = green and wrb;
def bar2 = low > MidBodyVal()[1] and high > l[1] + (range[1] * .9) and h < l[1] + (range[1] * 1.05);
def bar3 = close > h[1];

def barplay3 = bar1[2] and bar2[1] and bar3;

plot scan = barplay3;
Hi. First of all, thank you for this great, helpful community. This is my first post ever, so please excuse me for any abnormalities.

I searched our forum but have not found a script for the 3 bars play trading strategy yet (see image linked below).

XN3s44p.png


I'm looking to scan any 3 bars formation and then look for entry from a small list of stock options.

Code:
#Strategy 3bars breakout

def price_0barC = close;
def price_0barO = open;
def price_1barC = close;
def price_1barO = open;
def price_2barC = close;
def price_2barO = open;
def price_3barC = close;
def price_3barO = open;

def 0bar = price_0barO - price_0barC;
def 1bar = price_1barO - price_1barC;
def 2bar = price_2barO - price_2barC;
def 3bar = price_3barO - price_3barC;

#Scanning for the start of the 3bars play breakout
#Compare bar#1 against the previous bars.  Bar#1 must double the size of all previous bars (averaged)
if 1bar > 0bar by 70% or more AND

#Compare bar#2 against bar#1.  Bar#2 must be in the upper 50% of bar#1 range and have relatively equal highs.
if 2bar < 1bar by 50% or less and is (negative or red candle) and the price_2barO = price_1barC AND

#Compare bar#3 against bar#2.  Bar#3 must open above the close of bar#2.  If these conditions are met, then send alert.
if price_3barO > price_2barC then send_alert

Alert(condition = send_alert[1] == 0, text = "3bars forming", sound = Sound.Bell, "alert type" = Alert.BAR);

If someone have scripted something similar, please point me to their post so I can study. If not yet scripted, then I've started a skeletal flow of my thoughts and coding shown above.

Any help, suggestion, or advice is greatly appreciated! Thank you!
Code:
input bar0_length = 3;
input bar1_bar0_ratio_length = 0.05;

def C = close;
def O = open;
def H = high;
def L = low;
def bar0_avg = Average(close[1], bar0_length);
def bar1_bar0_ratio =  bar0_avg/C;
def bar1_breakout = bar1_bar0_ratio_length < bar1_bar0_ratio;

plot breakout;
   if bar1_breakout {
      breakout = close;
   } else {
      breakout = close;
}

This is what i have so far learning from ToS Learning Center. The code compares if bar1 is greater than the average of the previous 3 bar0, then plot of do something with it. I'm a novice programmer and it took me half a day to come up with this syntax, so any feedback would be awesome.
 
Last edited:
@Shaco Heres my take on this, only has 3 bar play long. You can scan using this and backtest the results. I'm sure you can figure out how to add short to this code.
Code:
input length = 14;

def o = open;
def h = high;
def l = low;
def c = close;

def green = c > o;
def red = c < o;
def range = h - l;
def wrb = range > 2 * Average(range, length);

def bar1 = green and wrb;
def bar2 = low > MidBodyVal()[1] and high > l[1] + (range[1] * .9) and h < l[1] + (range[1] * 1.05);
def bar3 = close > h[1];

def barplay3 = bar1[2] and bar2[1] and bar3;

plot scan = barplay3;
 
Last edited:
Solution
@generic, after a few hours of dissecting your codes and backtesting with lags, I've managed to successfully written my first ToS script! WOOHOO!! This is the latest changes and I've given you credit for getting me such a great head start. You're the best!

Just a question. Why did you choose length 14? Is that a magical number or does this strategy works better with longer length like pre-market type of scan? It's hard for me to find a setup with length of 14 candles on a 1min, 5min, and 15min TF. So I changed the length to 3 for now.

Code:
#Strategy 3 Bars
#Originated From: generic 9/19/21
#Last Modified By: Shaco 9/20/21

input length = 3;

def o = open;
def h = high;
def l = low;
def c = close;

def green = c > o;
def red = c < o;
def range = h - l;
def wrb = range > 2 * Average(range, length);

def bar1 = green and wrb;
def bar2 = red and low > MidBodyVal()[1] and high < (h[1] + (h[1] * 0.1)) and high > (h[1] - (h[1] * 0.1));
def bar3 = open > l[1];

def entrybarC = bar1[2] and bar2[1] and bar3;

Alert(entrybarC, "Call", Alert.BAR, Sound.Chimes);
AddChartBubble(entrybarC, open, "C", Color.WHITE);
 
Last edited by a moderator:
@generic, after a few hours of dissecting your codes and backtesting with lags, I've managed to successfully written my first ToS script! WOOHOO!! This is the latest changes and I've given you credit for getting me such a great head start. You're the best!

Just a question. Why did you choose length 14? Is that a magical number or does this strategy works better with longer length like pre-market type of scan? It's hard for me to find a setup with length of 14 candles on a 1min, 5min, and 15min TF. So I changed the length to 3 for now.

Code:
#Strategy 3 Bars
#Originated From: generic 9/19/21
#Last Modified By: Shaco 9/20/21

input length = 3;

def o = open;
def h = high;
def l = low;
def c = close;

def green = c > o;
def red = c < o;
def range = h - l;
def wrb = range > 2 * Average(range, length);

def bar1 = green and wrb;
def bar2 = red and low > MidBodyVal()[1] and high < (h[1] + (h[1] * 0.1)) and high > (h[1] - (h[1] * 0.1));
def bar3 = open > l[1];

def entrybarC = bar1[2] and bar2[1] and bar3;

Alert(entrybarC, "Call", Alert.BAR, Sound.Chimes);
AddChartBubble(entrybarC, open, "C", Color.WHITE);

Please show me where to paste your code to scans for matching stocks?
 
Please show me where to paste your code to scans for matching stocks?
Hi @gate122, programming is not my strong ability, but i do like it. I'm still testing out the codes and the profitability on live markets.

To paste this code, open up the potion icon "Edit Studies and Strategies", then create a new script, then delete the default body line of code, then copy and pate these codes in the body, then click ok. Hope this helps.
 
Hi @gate122, programming is not my strong ability, but i do like it. I'm still testing out the codes and the profitability on live markets.

To paste this code, open up the potion icon "Edit Studies and Strategies", then create a new script, then delete the default body line of code, then copy and pate these codes in the body, then click ok. Hope this helps.
@Shaco, thanks. I can create the study. I was wondering where the codes go in the scanner to actually scans for any stocks with this pattern. I have tried to paste in the custom scanner, but tos would not let me save. I will be waiting patiently for you to test and share the complete codes.
 
@Shaco, thanks. I can create the study. I was wondering where the codes go in the scanner to actually scans for any stocks with this pattern. I have tried to paste in the custom scanner, but tos would not let me save. I will be waiting patiently for you to test and share the complete codes.
@gate122, I dont even know how to add codes to the scanner yet. I need to figure out how to do that. And Im not sure if this code will go directly into the scanner or if you have to make modification for it to work in the scanner.

If someone has a post showing how to add custom script for scanner, please reply. Im going to search the forum for how to add custom scanner now.

Edit: Nevermind, i just found a post here how to add custom script to a scanner. This forum is awesome! It offers so many free education/guides. THANK YOU!
 
Last edited:
So after many days of reading the forum and testing the codes (i'm not a programmer at all), I've come up with something that works for Calls (long) and Puts (short). It will sound an alert and add a bubble on the chart for Call or Put.

I want to improve this strategy better by finding a few candles (Bar#0, -1, -2, -3, -4, -5, -6, -7, -8) before Bar#1 that are at least twice as short as Bar#1. And their lows are relatively the same as Bar#1 low. But this part of the code is not working yet because I don't know the logic and how to use fold or loop. So I'm asking for experts to help me out with the below section:
# NEED HELP WITH CODES BELOW. IT'S NOT WORKING YET.

@generic @MerryDay @gate122

Code:
#Strategy 3 Bars
#Originated From: generic 9/19/21
#Last Modified By: Shaco 10/12/21

#input length = 3;
#input wrb_range = 2.0;
#input tolerance = 0.07;

def op = open;
def hi = high;
def lo = low;
def cl = close;

def green = cl > op;
def red = cl < op;

def range = hi - lo;
def mid = lo + range/2;

def highest = Highest(range[1], 3);
def wrb = range > 2.0 * highest;

#Check for increase in Volume
#input volumelength = 3;
def Vol = volume;
def VolAvg = Average(vol, 3);
def volume_increase = Vol > VolAvg;

#Calls
def bar1c = green and wrb;
def bar2c = lo > (mid[1] - range[1] * 0.07) and hi < (hi[1] + range[1] * 0.07) and hi > (hi[1] - range[1] * 0.07);
def bar3c = lo > mid[2];
def alertbarC = bar1c[1] and bar2c and volume_increase[1] and op > lo;
def entrybarC = bar1c[2] and bar2c[1] and bar3c and volume_increase[2] and op > lo[1];

Alert(alertbarC, "Call", Alert.BAR, Sound.Bell);
AddChartBubble(alertbarC, lo, "C", Color.LIME, no);
#def uparrow = if entrybarC then 1 else Double.NaN;
#plot up = uparrow;
#up.SetPaintingStrategy(paintingStrategy = paintingStrategy.BOOLEAN_ARROW_UP);

#Puts
def bar1p = red and wrb;
def bar2p = lo > (lo[1] - range[1] * 0.07) and lo < (lo[1] + range[1] * 0.07) and hi < (mid[1] + range[1] * 0.07);
def bar3p = lo < mid[2];
def alertbarP = bar1p[1] and bar2p and volume_increase[1] and op < hi;
def entrybarP = bar1p[2] and bar2p[1] and bar3p and volume_increase[2] and op < hi[1];

Alert(alertbarP, "Put", Alert.BAR, Sound.Bell);
AddChartBubble(alertbarP, hi, "P", Color.LIGHT_ORANGE);
#def downarrow = if entrybarP then 1 else Double.NaN;
#plot down = downarrow;
#down.SetPaintingStrategy(paintingStrategy = paintingStrategy.BOOLEAN_ARROW_DOWN);



# NEED HELP WITH CODES BELOW.  IT'S NOT WORKING YET.
def body = absValue(cl - op);
input size = 2;

# Candle body must be more than the wick
def bodyRangeRatio = (body / range) * 100;
def hugeCandle = if bodyRangeRatio > 80 then 1 else 0;

# Candle must be X bigger than all previous candles
def breakOutCandle = (hugeCandle) and (range > (size * range[1])) and (range > (size * range[2])) and (range > (size * range[3])) and (range > (size * range[4])) and (range > (size * range[5])) and (range > (size * range[6])) and (range > (size * range[7])) and (range > (size * range[8]));

assignPriceColor(if breakOutCandle then Color.WHITE else Color.CURRENT);

# Bullish breakout. Previous lows[] must be within breakOutCandle low.
def low_length = 8;
def bull_tol = 0.07;
def bull_lowest = Average(lo[1], low_length);
def bull_low = lo > (bull_lowest - (range * bull_tol)) and lo < (bull_lowest + (range * bull_tol));

def higherhighs = hi > hi[1] and hi[1] > hi[2] and hi[2] > hi[3] and hi[3] > hi[4] and hi[4] > hi[5] and hi[5] > hi[6] and hi[6] > hi[7] and hi[7] > hi[8];
def higherlows = lo > lo[1] and hi[1] > hi[2] and hi[2] > hi[3] and hi[3] > hi[4] and hi[4] > hi[5] and hi[5] > hi[6] and hi[6] > hi[7] and hi[7] > hi[8];

AddChartBubble(1, lo, "BL " + bull_low, if breakOutCandle and higherhighs and higherlows then Color.GREEN else Color.Gray);
 
Last edited:
So after many days of reading the forum and testing the codes (i'm not a programmer at all), I've come up with something that works for Calls (long) and Puts (short). It will sound an alert and add a bubble on the chart for Call or Put.

I want to improve this strategy better by finding a few candles (Bar#0, -1, -2, -3, -4, -5, -6, -7, -8) before Bar#1 that are at least twice as short as Bar#1. And their lows are relatively the same as Bar#1 low. But this part of the code is not working yet because I don't know the logic and how to use fold or loop. So I'm asking for experts to help me out with the below section:
# NEED HELP WITH CODES BELOW. IT'S NOT WORKING YET.

@generic @MerryDay @gate122

Code:
#Strategy 3 Bars
#Originated From: generic 9/19/21
#Last Modified By: Shaco 10/12/21

#input length = 3;
#input wrb_range = 2.0;
#input tolerance = 0.07;

def op = open;
def hi = high;
def lo = low;
def cl = close;

def green = cl > op;
def red = cl < op;

def range = hi - lo;
def mid = lo + range/2;

def highest = Highest(range[1], 3);
def wrb = range > 2.0 * highest;

#Check for increase in Volume
#input volumelength = 3;
def Vol = volume;
def VolAvg = Average(vol, 3);
def volume_increase = Vol > VolAvg;

#Calls
def bar1c = green and wrb;
def bar2c = lo > (mid[1] - range[1] * 0.07) and hi < (hi[1] + range[1] * 0.07) and hi > (hi[1] - range[1] * 0.07);
def bar3c = lo > mid[2];
def alertbarC = bar1c[1] and bar2c and volume_increase[1] and op > lo;
def entrybarC = bar1c[2] and bar2c[1] and bar3c and volume_increase[2] and op > lo[1];

Alert(alertbarC, "Call", Alert.BAR, Sound.Bell);
AddChartBubble(alertbarC, lo, "C", Color.LIME, no);
#def uparrow = if entrybarC then 1 else Double.NaN;
#plot up = uparrow;
#up.SetPaintingStrategy(paintingStrategy = paintingStrategy.BOOLEAN_ARROW_UP);

#Puts
def bar1p = red and wrb;
def bar2p = lo > (lo[1] - range[1] * 0.07) and lo < (lo[1] + range[1] * 0.07) and hi < (mid[1] + range[1] * 0.07);
def bar3p = lo < mid[2];
def alertbarP = bar1p[1] and bar2p and volume_increase[1] and op < hi;
def entrybarP = bar1p[2] and bar2p[1] and bar3p and volume_increase[2] and op < hi[1];

Alert(alertbarP, "Put", Alert.BAR, Sound.Bell);
AddChartBubble(alertbarP, hi, "P", Color.LIGHT_ORANGE);
#def downarrow = if entrybarP then 1 else Double.NaN;
#plot down = downarrow;
#down.SetPaintingStrategy(paintingStrategy = paintingStrategy.BOOLEAN_ARROW_DOWN);



# NEED HELP WITH CODES BELOW.  IT'S NOT WORKING YET.
def body = absValue(cl - op);
input size = 2;

# Candle body must be more than the wick
def bodyRangeRatio = (body / range) * 100;
def hugeCandle = if bodyRangeRatio > 80 then 1 else 0;

# Candle must be X bigger than all previous candles
def breakOutCandle = (hugeCandle) and (range > (size * range[1])) and (range > (size * range[2])) and (range > (size * range[3])) and (range > (size * range[4])) and (range > (size * range[5])) and (range > (size * range[6])) and (range > (size * range[7])) and (range > (size * range[8]));

assignPriceColor(if breakOutCandle then Color.WHITE else Color.CURRENT);

# Bullish breakout. Previous lows[] must be within breakOutCandle low.
def low_length = 8;
def bull_tol = 0.07;
def bull_lowest = Average(lo[1], low_length);
def bull_low = lo > (bull_lowest - (range * bull_tol)) and lo < (bull_lowest + (range * bull_tol));

def higherhighs = hi > hi[1] and hi[1] > hi[2] and hi[2] > hi[3] and hi[3] > hi[4] and hi[4] > hi[5] and hi[5] > hi[6] and hi[6] > hi[7] and hi[7] > hi[8];
def higherlows = lo > lo[1] and hi[1] > hi[2] and hi[2] > hi[3] and hi[3] > hi[4] and hi[4] > hi[5] and hi[5] > hi[6] and hi[6] > hi[7] and hi[7] > hi[8];

AddChartBubble(1, lo, "BL " + bull_low, if breakOutCandle and higherhighs and higherlows then Color.GREEN else Color.Gray);

here is an example code that finds the quantity of small bars before a large bar, engulfing bar.
this counts how many sequential smaller bars were immediately before the current bar.
https://usethinkscript.com/threads/...st-65-most-recent-days.7483/page-2#post-72474
 
Thanks @Shaco,

Would you be able to re-share the Script, in order for me to avoid any confusions, as the Scripts above indicate "Need Help" & I wasn't sure if that's supposed to be included or not. Thanks in advance,
 
Last edited by a moderator:
Try this scan for 3, 4 and 5 bar plays

Code:
input bodyMultiple = 2.0;
input gapMultiple = 0.0;
input volMultiple = 3.0;
input barPercent = .75; # What percentage of the bar must be body to qualify as a 3BP
input margin = 0.10; # how much to allow exceed
def VA = VolumeAvg(30).VolAvg;

#3 Bar Play:

def range3 = high[1] - low[1];
########First Bar:
#The "high" of the bar has to set a new 20 day high (or high of the previous 20 candles for intra day scans)
def bar31 = Highest(high[1], 20)
#Range of the bar has to be greater than the previous 14 bar ATR range
&& range3 > bodyMultiple * ATR(14)
# stock breaks out over range
&& open[1] > high[2] + gapMultiple * ATR(14)
# Volume is higher than average
&& volume[1] > volMultiple * VA
# breakout bar has full body or very close to it
&& (close[1] - open[1]) >= barPercent * (high[1] - low[1])
&& close[1] > open[1];




#######Second Bar:
#The "high" of the bar has to be 'less than or equal to' to high of the previous bar.
def bar32 = high <= high[1] + margin
#The "low" of the bar has to be in the upper 50% range of the first bar.
&& low >= low[1] + (0.5 * range3);


def bar3barplay = bar31 && bar32;


#--------------------------------------#
# 4 Bar Play:
def range4 = high[2] - low[2];

def bar41 = Highest(high[2], 20)
&& range4 > bodyMultiple * ATR(14)
&& open[2] > high[3] + gapMultiple*ATR(14)
&& volume[2] > volMultiple * VA
&& (close[2] - open[2]) >= barPercent * (high[2] - low[2])
&& close[2] > open[2];

def bar42 = high[1] <= high[2] + margin
&& low[1] >= low[2] + (0.5 * range4);

def bar43 = high <= high[2] + margin
&& low >= low[2] + (0.5 * range4);

def bar4barplay = bar41 && bar42 && bar43;


# 5 Bar Play:
def range5 = high[3] - low[3];

def bar51 = Highest(high[3], 20)
&& range5 > bodyMultiple * ATR(14)
&& open[3] > high[4] + gapMultiple*ATR(14)
&& volume[3] > volMultiple * VA
&& (close[3] - open[3]) >= barPercent * (high[3] - low[3])
&& close[3] > open[3];

def bar52 = high[2] <= high[3] + margin
&& low[2] >= low[3] + (0.5 * range5);

def bar53 = high[1] <= high[3] + margin
&& low[1] >= low[3] + (0.5 * range5);

def bar54 = high <= high[3] + margin
&& low >= low[3] + (0.5 * range5);

def bar5barplay = bar51 && bar52 && bar53 && bar54;

plot scan = bar3barplay OR bar4barplay OR bar5barplay;

Scan results on Daily Time Frame: (Evening of 10/29/2021, across all stocks):
L6Amy5z.png


DDMXW:
WeUmEXD.png

MMTRS:
ctlJgPE.png

PI:
E63hBIM.png

POEFF:
8kyTMUx.png

TIUGCU:
BnfuKGo.png


This code just basically scans for the setup (the preceding bars and volume match the setup). It's against the daily chart. So you could do your due diligence and then add it to a watchlist or even pre-stage your trade for entry.

If you want it to alert, you could add a trigger for the current bar exceeding your entry level.

Note: I don't consider it a wide-ranging bar unless it's at least 2 times the ATR (your opinion might differ). #bodyMultiple
Maybe you need a certain amount of gap #gapMultiple?
I consider high volume at least 3 x the average, your opinion might differ #volMultiple
I want 75 percent of that igniting bar to be body, your opinion might differ #barPercent
I allow a margin to exceed the high of the bar, and still be considered a valid play #margin
Note: I limited mine to gaps, that is the open of the wide-ranging bar is greater than the high of the candle before it.

# comment the lines including the word "gapMultiple" to exclude gaps.
e.g.:
# && open[1] > high[2] + gapMultiple * ATR(14)
# && open[2] > high[3] + gapMultiple*ATR(14)
# && open[3] > high[4] + gapMultiple*ATR(14)

If you remove the gaps, you might see more plays.

You can toy with the parameters, and try it at different time frames (maybe leverage it as a chart study?)

I think the scan has promise, but I'd want to research any companies that came out of this.
Maybe this semiconductor company is something to research this weekend.
https://finance.yahoo.com/news/impinj-reports-third-quarter-2021-201500412.html

References I used to construct the scan:
https://usethinkscript.com/threads/...or-and-scanner-for-thinkorswim.239/post-16287
https://tradingsim.com/blog/3-bar-play/
 
(DISCLAIMER: past performance is no indicator of future results)

I revisited that semiconductor stock (PI)

If you had traded it 2:1 with the resting bar as your risk, it would have hit. Note: I only chose PI as an example. The other stocks might have done poorly. PI is the only one I was interested in, because it was a semiconductor stock (my day job is the tech industry).

PI:
Pb81k63.png


For giggles, I looked at the others, to see what they did recently.

Sorry, I didn't feel like drawing lines on the rest. I was most interested in the semiconductor company.

DDMXW: triggered, hit 2R
TgdHLMw.png

MMTRS: no trigger (did not break high of inside bar)
PrrLXBe.png

POEFF: triggered, up, but hasn't hit 1R
mNLJi8d.png

TUGCU: triggered, hit the stop loss
Lib8SPa.png



If you did the scan and just jumped into the stocks without further due diligence at 2:1, where you gained $200 per win, and lost $100 per loss, that comes out to:

2 x 200 (2 winners)
1 x 0 (1 no-trade)
1 x -100 (loser)
net: $300
if you assume the trade that is still open is a loser, you'd still be +$200 (risk management for the win)
 
@tradecombine I was looking at PI on sunday after reading your script & playing w/ it.

I noticed it had a recent er & it had jumped from 50s to 70 (PEG). It was more like a 4 bar play to me.. after two days of consolidation it ran to 82. Has 25m float & there's no volume (unfortunate). Chart shows cup & handle formation on daily, I expect a pullback to 72-75 area (good pt to get in).

Share your thoughts & how you observe data/er/chart. Let me know

did you run your scan over the weekend? what tickers did you get? I had CERS pulled up.
 
@tradecombine I was looking at PI on sunday after reading your script & playing w/ it.

I noticed it had a recent er & it had jumped from 50s to 70 (PEG). It was more like a 4 bar play to me.. after two days of consolidation it ran to 82. Has 25m float & there's no volume (unfortunate). Chart shows cup & handle formation on daily, I expect a pullback to 72-75 area (good pt to get in).

Share your thoughts & how you observe data/er/chart. Let me know

Disclaimer: I didn't trade PI at all.
With regards to entry, IF I had played it, I would have entered as I said in screenshot, above the break of the 2nd candle in the pattern, at the line labeled "entry".

Pb81k63.png


With regards to this particular strategy, the way Jared on Youtube describes it, it's designed for a quick momentum scalp, and then ignore the stock completely unless this setup appears again.

With regards to cup and handle strategy, Bulkowski says to buy it when it breaks the high of the handle.
http://thepatternsite.com/cup.html
On my chart, the high of the handle is around $82 or so.

It may be possible to get in lower on a so-called "cheat" entry or "early" entry, but I would expect that to fail more often, since the handle of the cup is similar to flag pattern.

did you run your scan over the weekend? what tickers did you get? I had CERS pulled up.

Negative. I did not. That said, I see that CERS and FMC did both hit in the scan if I had run it (ignoring the OTC tickers).
Actually, CERS and FMC show to be 5-bar plays.

(If you want yesterday's results, just use the [1] to reference the prior value.)
example:
Code:
plot scan = bar3barplay[1] or bar4barplay[1] or bar5barplay[1];

I'm not playing either ticker, but bias would be to FMC because it's in Materials sector, and people might see it playing a part in infrastructure plays. (also, i have been burned by healthcare/bio companies in past--i believe in sticking with what works for you).
 
Last edited by a moderator:

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

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
524 Online
Create Post

Similar threads

Similar threads

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