The Big Four Chart SetUp For ThinkOrSwim

I have been using the Big Four with Mobius Supertrend. I have absolutely been killing it the last 4 weeks. I use it on the 1 Hour time frame. I look for Up or Dn signals to confirm on the 1 Hour and then look at the Daily to see if it conforms with the direction...then narrow down to 10, 3, 1 min charts for entries. It has absolutely changed my trading! I don't use any of the stuff from Hodl-Lay only because I don't understand what is going with his charts. But the Original Big Four is simple and it works GREAT! I can also use with ease on the TOS Mobile app. Big Four works on Mobile. So I can make money while at work. I almost always buy the next weeks expiration to give it time to work out. IF the stock has been in a downtrend and you get an UP signal will usually work and vice versa. However, if the stock has been in a range I avoid those. TMO needs to be below zero for calls and above zero for puts. I have had several multi-baggers of 100, 200, 300, 400 & 500%. I have left lots of money on the table also....as I was getting use to the strength of this indicator. I love using it for SPX trades on 3Min and I also put the option strike price in a separate chart and use the big four for the signal on an option about 10-20 strikes away from the price and this has worked tremedously as well. Can usually scalp -$100-$300/day with just a a couple trades per day.

Hope this helps you...I know it has changed my trading life!

Account is up 440% since I began using this indicator on the 1 Hour signals over the last 3-4 weeks.
Woah that's awesome to hear! I remember when I first combined the 4 indicators and started to use it my account went from $1,500 to $10k within 3 weeks. Never used it on the hourly as that is not my trading style. The whole purpose was to make it simple as possible without having too many indicators like the confirmation candles do. I am going to try to add the Supertrend to see how strong the signals are. Glad this indicator has helped you in your trading!
 
Woah that's awesome to hear! I remember when I first combined the 4 indicators and started to use it my account went from $1,500 to $10k within 3 weeks. Never used it on the hourly as that is not my trading style. The whole purpose was to make it simple as possible without having too many indicators like the confirmation candles do. I am going to try to add the Supertrend to see how strong the signals are. Glad this indicator has helped you in your trading!
First, thank you for creating this indicator! It is the best I have seen. It has truly given me that edge I was looking for…for so long!

You should look at the 1 Hour for swing trades. The strength of this indicator on the 1 hour last for several days.

Here are a few symbols for example that I’ve traded in June based on 1 hour signals. I was buying ATM options 7-14 days out in exp. You can go back and look to see how the trend reversed and was strong for several days. CVS, WMT, GILD, CVX, PG, RBLX, BA, MU, NCLH, DUK, XOM.

Thanks again!
 
Last edited:
I can't remember, if the ak trend is on that thread.

Links for the 4 indicators:
Anchored Momentum: https://tos.mx/buzNdWK
AK trend: https://tos.mx/ymhoN5R
Zscore indicator: https://tos.mx/ibBpRr6
Ehlers: https://tos.mx/14yaHql

I forgot to mention that I trade on a 3 min chart and I only trade SPY. The important part is to figure out when a trend has exhausted itself. I use a combo of support and resistance and also the TMO. Whenever it is overbought or oversold, I wait for price to reach a near-term resistance/support area and then watch for a buy/sell signal from the 4 indicators. If 3 out of the 4 indicators have fired a signal I am in the trade. I have tested about almost every indicator that has been posted on this website and I find these 4 to be pretty powerful when used together. I know there's many coders who have posted multiple indicators in one study such as the confirmation candles or the CSA indicators but unfortunately, I couldn't make money off of those.

I have been on this website for about a year now have successfully made $10,000 only last month starting my account from $1,500 using 4 indicators posted on here. I call them the big 4. Ehlers, anchored momentum, ak trend, and zscore. My strategy is simple. I wait until 3 out 4 of the indicators are either bullish or bearish to take on a trade. Over the years I have used other indicators as well but lost.
Shared Chart Link: http://tos.mx/M3STTOx Click here for --> Easiest way to load shared links
View attachment 17112
Is there a way to add Labels to all 4 of the lower indicators for either bullish or bearish?
 
First, thank you for creating this indicator! It is the best I have seen. It has truly given me that edge I was looking for…for so long!

You should look at the 1 Hour for swing trades. The strength of this indicator on the 1 hour last for several days.

Here are a few symbols for example that I’ve traded in June based on 1 hour signals. I was buying ATM options 7-14 days out in exp. You can go back and look to see how the trend reversed and was strong for several days. CVS, WMT, GILD, CVX, PG, RBLX, BA, MU, NCLH, DUK, XOM.

Thanks again!

What are your settings for the Big Four? Also, do you use extended hours or keep them off? When did you enter in XOM? Curious on some of those, I'd like to go back to see what you noticed before entering. Thanks!
 
This is a pretty neat indicator. I just started using it and so far I like the results. I was using power x candles but I find this one is faster at entering then power x. I did play with the code a little bit and added scoring categories.

The scoring method I used is based on candle size and fractal energy, but I imagine there are other ways to improve this indicator even more then it is out of the box.

The idea is if the candle is larger than the previous few candles or if the fractal energy is below a certain threshold then the stock is less likely to be choppy.

I just am experimenting with it, but I would guess there are ways to add even more accuracy to it:

Code:
# The Big Four Indicator
# https://usethinkscript.com/threads/the-big-four-chart-setup.14711/
# v1.0 - GiantBull and TradingNumbers
# v1.1 - TradingNumbers - hiding vertical lines by ddefault and added arrows
# v1.2 - TradingNumbers - added TMO
# v1.3 - TradingNumbers - hold trend input added
# v1.4 - TradingNumbers - simplified options, added filter with TMO, and set conditions per GianBull parameters
# v1.5 - TradingNumbers - removed TMO color filter percentChg GiantBull, added labels

# Info Labels

input showLabels = yes;
AddLabel(showLabels, " The Big Four v1.5 ", Color.WHITE);

# AK Trend

def aktrend_input1 = 3;
def aktrend_input2 = 8;
def aktrend_price = close;

def aktrend_fastmaa = MovAvgExponential(aktrend_price, aktrend_input1);
def aktrend_fastmab = MovAvgExponential(aktrend_price, aktrend_input2);
def aktrend_bspread = (aktrend_fastmaa - aktrend_fastmab) * 1.001;

def cond1_UP = if aktrend_bspread > 0 then 1 else 0;
def cond1_DN = if aktrend_bspread <= 0 then -1 else 0;

# ZSCORE

def zscore_price = close;
def zscore_length = 20;
def zscore_ZavgLength = 20;

def zscore_oneSD = StDev(zscore_price, zscore_length);
def zscore_avgClose = SimpleMovingAvg(zscore_price, zscore_length);
def zscore_ofoneSD = zscore_oneSD * zscore_price[1];
def zscore_Zscorevalue = ((zscore_price - zscore_avgClose) / zscore_oneSD);
def zscore_avgZv = Average(zscore_Zscorevalue, 20);
def zscore_Zscore = ((zscore_price - zscore_avgClose) / zscore_oneSD);
def zscore_avgZscore = Average(zscore_Zscorevalue, zscore_ZavgLength);

def cond2_UP = if zscore_Zscore > 0 then 1 else 0;
def cond2_DN = if zscore_Zscore <= 0 then -1 else 0;

# Ehlers

def ehlers_length = 34;

def ehlers_price = (high + low) / 2;
def ehlers_coeff = ehlers_length * ehlers_price * ehlers_price - 2 * ehlers_price * Sum(ehlers_price, ehlers_length)[1] + Sum(ehlers_price * ehlers_price, ehlers_length)[1];
def ehlers_Ehlers = Sum(ehlers_coeff * ehlers_price, ehlers_length) / Sum(ehlers_coeff, ehlers_length);

def cond3_UP = if close > ehlers_Ehlers then 1 else 0;
def cond3_DN = if close <= ehlers_Ehlers then -1 else 0;

# Anchored Momentum

def amom_src = close;
def amom_MomentumPeriod = 10;
def amom_SignalPeriod = 8;
def amom_SmoothMomentum = no;
def amom_SmoothingPeriod = 7;

def amom_p = 2 * amom_MomentumPeriod + 1;
def amom_t_amom = if amom_SmoothMomentum == yes then ExpAverage(amom_src, amom_SmoothingPeriod) else amom_src;
def amom_amom = 100 * ( (amom_t_amom / ( Average(amom_src, amom_p)) - 1));
def amom_amoms = Average(amom_amom, amom_SignalPeriod);


def cond4_UP = if amom_amom > 0 then 1 else 0;
def cond4_DN = if amom_amom <= 0 then -1 else 0;

# TMO

def tmo_length = 30; #def 14
def tmo_calcLength = 6; #def 5
def tmo_smoothLength = 6; #def 3

def tmo_data = fold i = 0 to tmo_length with s do s + (if close > GetValue(open, i) then 1 else if close < GetValue(open, i) then - 1 else 0);
def tmo_EMA5 = ExpAverage(tmo_data, tmo_calcLength);
def tmo_Main = ExpAverage(tmo_EMA5, tmo_smoothLength);
def tmo_Signal = ExpAverage(tmo_Main, tmo_smoothLength);
def tmo_color = if tmo_Main > tmo_Signal then 1 else -1;

def cond5_UP = if tmo_Main <= 0 then 1 else 0;
def cond5_DN = if tmo_Main >= 0 then -1 else 0;

# Strategy

input Strategy_Confirmation_Factor = 4;
input Strategy_FilterWithTMO = no;
input Strategy_ColoredCandlesOn = yes;
input Strategy_VerticalLinesOn = no;
input Strategy_HoldTrend = yes;

def cond_UP = cond1_UP + cond2_UP + cond3_UP + cond4_UP;
def cond_DN = cond1_DN + cond2_DN + cond3_DN + cond4_DN;

def direction = if cond_UP >= Strategy_Confirmation_Factor and (!Strategy_FilterWithTMO or cond5_UP) then 1
                else if cond_DN <= -Strategy_Confirmation_Factor and (!Strategy_FilterWithTMO or cond5_DN) then -1
                else if !Strategy_HoldTrend and direction[1] == 1 and cond_UP < Strategy_Confirmation_Factor and cond_DN > -Strategy_Confirmation_Factor then 0
                else if !Strategy_HoldTrend and direction[1] == -1 and cond_DN > -Strategy_Confirmation_Factor and cond_UP < Strategy_Confirmation_Factor then 0
                else direction[1];

plot signal_up = direction == 1 and direction[1] < 1;
signal_up.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
signal_up.SetDefaultColor(Color.WHITE);
signal_up.Hide();
signal_up.HideBubble();
signal_up.HideTitle();

plot signal_dn = direction == -1 and direction[1] > -1;
signal_dn.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
signal_dn.SetDefaultColor(Color.WHITE);
signal_dn.Hide();
signal_dn.HideBubble();
signal_dn.HideTitle();

AssignPriceColor(if Strategy_ColoredCandlesOn then if direction == 1 then Color.LIGHT_GREEN else if direction == -1 then Color.RED else Color.GRAY else Color.CURRENT);

AddLabel(showLabels, if Strategy_ColoredCandlesOn then if direction == 1 then " Bullish " else if direction == -1 then " Bearish " else " Neutral " else " N/A ",
                     if Strategy_ColoredCandlesOn then if direction == 1 then Color.LIGHT_GREEN else if direction == -1 then Color.RED else Color.GRAY else Color.BLACK);

AddVerticalLine(Strategy_VerticalLinesOn and signal_up, "Buy", Color.LIGHT_GREEN);
AddVerticalLine(Strategy_VerticalLinesOn and signal_dn, "Sell", Color.RED);

Alert(signal_up[1], "Buy", Alert.BAR, Sound.DING);
Alert(signal_dn[1], "Sell", Alert.BAR, Sound.DING);


# ------ Scoring Feature Below -------- #
# Large Candlestick Score
input candleLookback = 3;
input superCandleLookbackMult = 2;
def candle_size = absValue(close - open);
def largest_candle = if candle_size >= Highest(candle_size[1], candleLookback) then 1 else 0;

# Super Candlestick score
def super_candle = if candle_size >= Highest(candle_size[1], superCandleLookbackMult*candleLookback) then 1 else 0;

# Fractal Energy Score
def Period = 14;
def sumTR = Sum (TrueRange(high, close, low), Period);
def HMax =  Highest (high, Period);
def LMax =  Lowest (low, Period);
def FE = 100 * Log (sumTR / (HMax - LMax)) / Log(Period);
def Notchop = if FE < 61.8 then 1 else 0;
def premiumNotChop = if FE < 50 then 1 else 0;

# Score totals
input scoreThreshold = 2;
def score = Notchop + premiumNotChop + super_candle + largest_candle;


# ---- Signal Criteria ---- #
plot large_signal_up = direction == 1 and direction[1] < 1 and score >= scoreThreshold;
large_signal_up.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
large_signal_up.SetDefaultColor(Color.GREEN);


plot large_signal_dn = direction == -1 and direction[1] > -1 and score >= scoreThreshold;
large_signal_dn.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
large_signal_dn.SetDefaultColor(Color.RED);

# ---- End Signal Criteria ---- #
 
Last edited:
I have been using the Big Four with Mobius Supertrend. I have absolutely been killing it the last 4 weeks. I use it on the 1 Hour time frame. I look for Up or Dn signals to confirm on the 1 Hour and then look at the Daily to see if it conforms with the direction...then narrow down to 10, 3, 1 min charts for entries. It has absolutely changed my trading! I don't use any of the stuff from Hodl-Lay only because I don't understand what is going with his charts. But the Original Big Four is simple and it works GREAT! I can also use with ease on the TOS Mobile app. Big Four works on Mobile. So I can make money while at work. I almost always buy the next weeks expiration to give it time to work out. IF the stock has been in a downtrend and you get an UP signal will usually work and vice versa. However, if the stock has been in a range I avoid those. TMO needs to be below zero for calls and above zero for puts. I have had several multi-baggers of 100, 200, 300, 400 & 500%. I have left lots of money on the table also....as I was getting use to the strength of this indicator. I love using it for SPX trades on 3Min and I also put the option strike price in a separate chart and use the big four for the signal on an option about 10-20 strikes away from the price and this has worked tremedously as well. Can usually scalp -$100-$300/day with just a a couple trades per day.

Hope this helps you...I know it has changed my trading life!

Account is up 440% since I began using this indicator on the 1 Hour signals over the last 3-4 weeks.
I agree, the big 4 is very good on its own. If I were to use the it and nothing else I prefer the modified version (Big7) which simply adds triple exhaustion and Vix alert 4 (actually need to rename it the big 6 haha) to the mix as it provides an early warning as to the end of a trend or to signal a pullback. I find the big 4 arrows work well but I only use them with the TMO filter on (the version I use TMO only filters arrows not candle color)

That being said the big 4 is a great indicator on it’s own.
 
This is a pretty neat indicator. I just started using it and so far I like the results. I was using power x candles but I find this one is faster at entering then power x. I did play with the code a little bit and added scoring categories.

The scoring method I used is based on candle size and fractal energy, but I imagine there are other ways to improve this indicator even more then it is out of the box.

The idea is if the candle is larger than the previous few candles or if the fractal energy is below a certain threshold then the stock is less likely to be choppy.

I just am experimenting with it, but I would guess there are ways to add even more accuracy to it:

Code:
# The Big Four Indicator
# https://usethinkscript.com/threads/the-big-four-chart-setup.14711/
# v1.0 - GiantBull and TradingNumbers
# v1.1 - TradingNumbers - hiding vertical lines by ddefault and added arrows
# v1.2 - TradingNumbers - added TMO
# v1.3 - TradingNumbers - hold trend input added
# v1.4 - TradingNumbers - simplified options, added filter with TMO, and set conditions per GianBull parameters
# v1.5 - TradingNumbers - removed TMO color filter percentChg GiantBull, added labels

# Info Labels

input showLabels = yes;
AddLabel(showLabels, " The Big Four v1.5 ", Color.WHITE);

# AK Trend

def aktrend_input1 = 3;
def aktrend_input2 = 8;
def aktrend_price = close;

def aktrend_fastmaa = MovAvgExponential(aktrend_price, aktrend_input1);
def aktrend_fastmab = MovAvgExponential(aktrend_price, aktrend_input2);
def aktrend_bspread = (aktrend_fastmaa - aktrend_fastmab) * 1.001;

def cond1_UP = if aktrend_bspread > 0 then 1 else 0;
def cond1_DN = if aktrend_bspread <= 0 then -1 else 0;

# ZSCORE

def zscore_price = close;
def zscore_length = 20;
def zscore_ZavgLength = 20;

def zscore_oneSD = StDev(zscore_price, zscore_length);
def zscore_avgClose = SimpleMovingAvg(zscore_price, zscore_length);
def zscore_ofoneSD = zscore_oneSD * zscore_price[1];
def zscore_Zscorevalue = ((zscore_price - zscore_avgClose) / zscore_oneSD);
def zscore_avgZv = Average(zscore_Zscorevalue, 20);
def zscore_Zscore = ((zscore_price - zscore_avgClose) / zscore_oneSD);
def zscore_avgZscore = Average(zscore_Zscorevalue, zscore_ZavgLength);

def cond2_UP = if zscore_Zscore > 0 then 1 else 0;
def cond2_DN = if zscore_Zscore <= 0 then -1 else 0;

# Ehlers

def ehlers_length = 34;

def ehlers_price = (high + low) / 2;
def ehlers_coeff = ehlers_length * ehlers_price * ehlers_price - 2 * ehlers_price * Sum(ehlers_price, ehlers_length)[1] + Sum(ehlers_price * ehlers_price, ehlers_length)[1];
def ehlers_Ehlers = Sum(ehlers_coeff * ehlers_price, ehlers_length) / Sum(ehlers_coeff, ehlers_length);

def cond3_UP = if close > ehlers_Ehlers then 1 else 0;
def cond3_DN = if close <= ehlers_Ehlers then -1 else 0;

# Anchored Momentum

def amom_src = close;
def amom_MomentumPeriod = 10;
def amom_SignalPeriod = 8;
def amom_SmoothMomentum = no;
def amom_SmoothingPeriod = 7;

def amom_p = 2 * amom_MomentumPeriod + 1;
def amom_t_amom = if amom_SmoothMomentum == yes then ExpAverage(amom_src, amom_SmoothingPeriod) else amom_src;
def amom_amom = 100 * ( (amom_t_amom / ( Average(amom_src, amom_p)) - 1));
def amom_amoms = Average(amom_amom, amom_SignalPeriod);


def cond4_UP = if amom_amom > 0 then 1 else 0;
def cond4_DN = if amom_amom <= 0 then -1 else 0;

# TMO

def tmo_length = 30; #def 14
def tmo_calcLength = 6; #def 5
def tmo_smoothLength = 6; #def 3

def tmo_data = fold i = 0 to tmo_length with s do s + (if close > GetValue(open, i) then 1 else if close < GetValue(open, i) then - 1 else 0);
def tmo_EMA5 = ExpAverage(tmo_data, tmo_calcLength);
def tmo_Main = ExpAverage(tmo_EMA5, tmo_smoothLength);
def tmo_Signal = ExpAverage(tmo_Main, tmo_smoothLength);
def tmo_color = if tmo_Main > tmo_Signal then 1 else -1;

def cond5_UP = if tmo_Main <= 0 then 1 else 0;
def cond5_DN = if tmo_Main >= 0 then -1 else 0;

# Strategy

input Strategy_Confirmation_Factor = 4;
input Strategy_FilterWithTMO = no;
input Strategy_ColoredCandlesOn = yes;
input Strategy_VerticalLinesOn = no;
input Strategy_HoldTrend = yes;

def cond_UP = cond1_UP + cond2_UP + cond3_UP + cond4_UP;
def cond_DN = cond1_DN + cond2_DN + cond3_DN + cond4_DN;

def direction = if cond_UP >= Strategy_Confirmation_Factor and (!Strategy_FilterWithTMO or cond5_UP) then 1
                else if cond_DN <= -Strategy_Confirmation_Factor and (!Strategy_FilterWithTMO or cond5_DN) then -1
                else if !Strategy_HoldTrend and direction[1] == 1 and cond_UP < Strategy_Confirmation_Factor and cond_DN > -Strategy_Confirmation_Factor then 0
                else if !Strategy_HoldTrend and direction[1] == -1 and cond_DN > -Strategy_Confirmation_Factor and cond_UP < Strategy_Confirmation_Factor then 0
                else direction[1];

plot signal_up = direction == 1 and direction[1] < 1;
signal_up.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
signal_up.SetDefaultColor(Color.WHITE);
signal_up.Hide();
signal_up.HideBubble();
signal_up.HideTitle();

plot signal_dn = direction == -1 and direction[1] > -1;
signal_dn.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
signal_dn.SetDefaultColor(Color.WHITE);
signal_dn.Hide();
signal_dn.HideBubble();
signal_dn.HideTitle();

AssignPriceColor(if Strategy_ColoredCandlesOn then if direction == 1 then Color.LIGHT_GREEN else if direction == -1 then Color.RED else Color.GRAY else Color.CURRENT);

AddLabel(showLabels, if Strategy_ColoredCandlesOn then if direction == 1 then " Bullish " else if direction == -1 then " Bearish " else " Neutral " else " N/A ",
                     if Strategy_ColoredCandlesOn then if direction == 1 then Color.LIGHT_GREEN else if direction == -1 then Color.RED else Color.GRAY else Color.BLACK);

AddVerticalLine(Strategy_VerticalLinesOn and signal_up, "Buy", Color.LIGHT_GREEN);
AddVerticalLine(Strategy_VerticalLinesOn and signal_dn, "Sell", Color.RED);

Alert(signal_up[1], "Buy", Alert.BAR, Sound.DING);
Alert(signal_dn[1], "Sell", Alert.BAR, Sound.DING);


# ------ Scoring Feature Below -------- #
# Large Candlestick Score
input candleLookback = 3;
input superCandleLookbackMult = 2;
def candle_size = absValue(close - open);
def largest_candle = if candle_size >= Highest(candle_size[1], candleLookback) then 1 else 0;

# Super Candlestick score
def super_candle = if candle_size >= Highest(candle_size[1], superCandleLookbackMult*candleLookback) then 1 else 0;

# Fractal Energy Score
def Period = 14;
def sumTR = Sum (TrueRange(high, close, low), Period);
def HMax =  Highest (high, Period);
def LMax =  Lowest (low, Period);
def FE = 100 * Log (sumTR / (HMax - LMax)) / Log(Period);
def Notchop = if FE < 61.8 then 1 else 0;
def premiumNotChop = if FE < 50 then 1 else 0;

# Score totals
input scoreThreshold = 2;
def score = Notchop + premiumNotChop + super_candle + largest_candle;


# ---- Signal Criteria ---- #
plot large_signal_up = direction == 1 and direction[1] < 1 and score >= scoreThreshold;
large_signal_up.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
large_signal_up.SetDefaultColor(Color.GREEN);


plot large_signal_dn = direction == -1 and direction[1] > -1 and score >= scoreThreshold;
large_signal_dn.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
large_signal_dn.SetDefaultColor(Color.RED);

# ---- End Signal Criteria ---- #
Could you expound on what is different? I see that the Big Four doesn't give the same signals as the original....that would have missed some good entries. Just trying to figure out why this is. For example, look at PYPL on the 1 hour chart. The original Big 4 confirmed long on Friday. I entered July 14 65 calls. Today they were up 50%. But with your additions it didn't give you this signal.
 
Could you expound on what is different? I see that the Big Four doesn't give the same signals as the original....that would have missed some good entries. Just trying to figure out why this is. For example, look at PYPL on the 1 hour chart. The original Big 4 confirmed long on Friday. I entered July 14 65 calls. Today they were up 50%. But with your additions it didn't give you this signal.

All it does is checks to see if the fractal energy is below a certain threshold or a candle is larger than average than that implies you may not be chopping. It is supposed to give you less signals, not by a large degree, but hopefully it will keep you out of sideways trading. It was just an idea, I am working on adding more "restrictions" through scoring methods like checking if the relative volume is higher than average etc.

Honestly I wouldve been happy just saying "awesome indicator thanks!" because that is how I feel. I really like this one and believe that it is useful in practice but I wanted to attempt to add some value as well. If you dont like the addition or think it is overly restrictive without enough value compensation then just trade without it

Congrats on the PYPL calls btw! Nice trade
 
All it does is checks to see if the fractal energy is below a certain threshold or a candle is larger than average than that implies you may not be chopping. It is supposed to give you less signals, not by a large degree, but hopefully it will keep you out of sideways trading. It was just an idea, I am working on adding more "restrictions" through scoring methods like checking if the relative volume is higher than average etc.

Honestly I wouldve been happy just saying "awesome indicator thanks!" because that is how I feel. I really like this one and believe that it is useful in practice but I wanted to attempt to add some value as well. If you dont like the addition or think it is overly restrictive without enough value compensation then just trade without it

Congrats on the PYPL calls btw! Nice trade
Thanks for your reply. I agree.... anything that will help keep you out of a choppy trade is definitely worth looking at. I've had a couple of trades that were choppy for a few days. PEP, ROKU most recently. I entered ROKU July 7 Calls on Wednesday June 27 long signal. They were under water at the close on Friday. On Monday (Y'day) I closed them for 30% profit....I was at work and didn't want to chance the possibility of giving my gains up...They eventually went up another 30% but by eod they would have been under water...so I am happy! On June 20th and 21st I entered PEP 185 Puts...they were under water for a couple days and then on the 26th was able to close for them a small gain of 12%. These are reasons why I buy options expiring no less than 7 days...and I am actually going out 14-21 days as my account is growing and can afford to buy more time.

I will keep your additions to the Big 4 on a separate chart for reference. And please continue sharing your work. Since you're a VIP member you might want to add the BTD indicator. I wouldn't blindly use the BTD indicator as a stand alone but once you get a BTD signal...wait for the BIG 4 to confirm...this might help with some chop.

Oh, GOOGL has been another choppy trade...it's been difficult to trade this symbol thus far....but I am not giving up lol.
 
I have been using the Big Four with Mobius Supertrend. I have absolutely been killing it the last 4 weeks. I use it on the 1 Hour time frame. I look for Up or Dn signals to confirm on the 1 Hour and then look at the Daily to see if it conforms with the direction...then narrow down to 10, 3, 1 min charts for entries. It has absolutely changed my trading! I don't use any of the stuff from Hodl-Lay only because I don't understand what is going with his charts. But the Original Big Four is simple and it works GREAT! I can also use with ease on the TOS Mobile app. Big Four works on Mobile. So I can make money while at work. I almost always buy the next weeks expiration to give it time to work out. IF the stock has been in a downtrend and you get an UP signal will usually work and vice versa. However, if the stock has been in a range I avoid those. TMO needs to be below zero for calls and above zero for puts. I have had several multi-baggers of 100, 200, 300, 400 & 500%. I have left lots of money on the table also....as I was getting use to the strength of this indicator. I love using it for SPX trades on 3Min and I also put the option strike price in a separate chart and use the big four for the signal on an option about 10-20 strikes away from the price and this has worked tremedously as well. Can usually scalp -$100-$300/day with just a a couple trades per day.

Hope this helps you...I know it has changed my trading life!

Account is up 440% since I began using this indicator on the 1 Hour signals over the last 3-4 weeks.
I am using the big4 on 1hr as well, I tade forex and stocks. I check the trend on daily, switch to 1H for signal and fine tune entry on 5/15min. Its yielding very good results if I catch the signal correctly. My problem is scanning I haven’t figured out how to find trades prior to supertrend trigering. I am usually late a few candles which is okay because I take a solid slice of core move. I’d love to optimize my entries by finding positions before they make a move I guess in the gray stage with tmo moving above tmo. Is anyone else day trading with this setup? If so, do you just play your usual fsvoritee watchlist or do you have a scanner setup to be first row when the sognal triggers?
 
I am using the big4 on 1hr as well, I tade forex and stocks. I check the trend on daily, switch to 1H for signal and fine tune entry on 5/15min. Its yielding very good results if I catch the signal correctly. My problem is scanning I haven’t figured out how to find trades prior to supertrend trigering. I am usually late a few candles which is okay because I take a solid slice of core move. I’d love to optimize my entries by finding positions before they make a move I guess in the gray stage with tmo moving above tmo. Is anyone else day trading with this setup? If so, do you just play your usual fsvoritee watchlist or do you have a scanner setup to be first row when the sognal triggers?
I have 2 main watchlists...one is called "Default" and it probably has about 500+ stocks. Then I have a "Favorites" which has probably half of the stocks from Default. These are filtered out based on volume, open interest, bid/ask spreads, and backtesting to see if the signals would have worked previously. But mostly option spreads...I don't want to trade options that have wide bid/ask and low volume & open interest.

I have created a scan for up/dn signals on the 1 HR pulling from my "favorites." I have also added scans for 1 HR within 6 bars (1day) and 12 bars (2 days). This allows me to go back and see which stocks have confirmed long or short without having to keep up with them every hour. Sometimes you'll get a signal early in the hour but the stock may not confirm if the price doesn't close above Ehlers Distant Coeffeint. So having the scans within 6 & 12 bars will only grab those that have confirmed.

Here are the scans. I'm not sure if these will work. This scan looks for the TMO less than Zero for Up signals and TMO greater than zero for Dn Scans.

You can also change the timeframe to whatever time you want...I also have saved scans for Daily w/n 1 bar, 5 bars (week) and 10 bars (2 weeks). As well as Weekly timeframe.

http://tos.mx/1Tj1J6C - Scan for Big Four Up 1 Hr w/n 1 bar
http://tos.mx/oS8p3Yy - Scan for Big Four Up 1 Hr w/n 6 bars
http://tos.mx/NfMMobv - Scan for Big Four Up 1 Hr w/n 12 bars

http://tos.mx/1Tj1J6C - Scan for Big Four Dn 1 Hr w/n 1 bar
http://tos.mx/i2fL63S - Scan for Big Four Dn 1 Hr w/n 6 bars
http://tos.mx/8rNAA54 - Scan for Big Four Dn 1 Hr w/n 12 bars

http://tos.mx/6XQSLFG - My Favorites Watchlist

I hope this helps.
 
I should mention...somewhere in the beginning of this thread I saw someone mention that TMO needs to be 30,6,6. I believe the default settings are 14,5,3. So the scans above are using 30,6,6...which I have found work a lot better than the default settings. I am not sure what @GiantBull (the creator of Big 4) uses?
 
@illbdam69 Thanks for the details on how you use the indicator and the scans you provided! Also, thanks for everyone that is sharing the tweaks they are doing to make the indicator better.

I still use the same settings since back testing this those settings gave the best results. However, if you are using this indicator on a timeframe other than the 3 minute the parameters might be drastically different. You would need to back test to see which TMO settings will achieve the highest win %. Also, check to see if even the big 4 parameters need to be changed as I had set them to what I back tested on the 3 min timeframe.
 
Thanks for your reply. I agree.... anything that will help keep you out of a choppy trade is definitely worth looking at. I've had a couple of trades that were choppy for a few days. PEP, ROKU most recently. I entered ROKU July 7 Calls on Wednesday June 27 long signal. They were under water at the close on Friday. On Monday (Y'day) I closed them for 30% profit....I was at work and didn't want to chance the possibility of giving my gains up...They eventually went up another 30% but by eod they would have been under water...so I am happy! On June 20th and 21st I entered PEP 185 Puts...they were under water for a couple days and then on the 26th was able to close for them a small gain of 12%. These are reasons why I buy options expiring no less than 7 days...and I am actually going out 14-21 days as my account is growing and can afford to buy more time.

I will keep your additions to the Big 4 on a separate chart for reference. And please continue sharing your work. Since you're a VIP member you might want to add the BTD indicator. I wouldn't blindly use the BTD indicator as a stand alone but once you get a BTD signal...wait for the BIG 4 to confirm...this might help with some chop.

Oh, GOOGL has been another choppy trade...it's been difficult to trade this symbol thus far....but I am not giving up lol.

You might find this useful, im not sure if anyone has done this already (I havent gone through every page), but here is a custom watchlist column code. It would be useful in the way youre describing, such as finding a btd candidate and putting it on a wait for strength watchlist.

Code:
# The Big Four Watchlist Column

# AK Trend
def aktrend_input1 = 3;
def aktrend_input2 = 8;
def aktrend_price = close;
def aktrend_fastmaa = MovAvgExponential(aktrend_price, aktrend_input1);
def aktrend_fastmab = MovAvgExponential(aktrend_price, aktrend_input2);
def aktrend_bspread = (aktrend_fastmaa - aktrend_fastmab) * 1.001;
def cond1 = if aktrend_bspread > 0 then 1 else -1;

# ZSCORE
def zscore_length = 20;
def zscore_ZavgLength = 20;
def zscore_oneSD = StDev(close, zscore_length);
def zscore_avgClose = SimpleMovingAvg(close, zscore_length);
def zscore_Zscore = ((close - zscore_avgClose) / zscore_oneSD);
def cond2 = if zscore_Zscore > 0 then 1 else -1;

# Ehlers
def ehlers_length = 34;
def ehlers_price = (high + low) / 2;
def ehlers_coeff = ehlers_length * ehlers_price * ehlers_price - 2 * ehlers_price * Sum(ehlers_price, ehlers_length)[1] + Sum(ehlers_price * ehlers_price, ehlers_length)[1];
def ehlers_Ehlers = Sum(ehlers_coeff * ehlers_price, ehlers_length) / Sum(ehlers_coeff, ehlers_length);
def cond3 = if close > ehlers_Ehlers then 1 else -1;

# Anchored Momentum
def amom_src = close;
def amom_MomentumPeriod = 10;
def amom_SignalPeriod = 8;
def amom_SmoothingPeriod = 7;
def amom_p = 2 * amom_MomentumPeriod + 1;
def amom_t_amom = ExpAverage(amom_src, amom_SmoothingPeriod);
def amom_amom = 100 * ( (amom_t_amom / ( Average(amom_src, amom_p)) - 1));
def amom_amoms = Average(amom_amom, amom_SignalPeriod);
def cond4 = if amom_amom > 0 then 1 else -1;

# Aggregate and return score
def BigFourScore = cond1 + cond2 + cond3 + cond4;
AddLabel(yes, BigFourScore, color.black);
# Assign color to the text based on the score
AssignBackgroundColor(
    if BigFourScore == -4 then Color.RED else 
    if BigFourScore == -3 then Color.ORANGE else 
    if BigFourScore == -2 then  CreateColor(153, 153, 0) else 
    if BigFourScore == 2 then CreateColor(173, 216, 230) else
    if BigFourScore == 3 then Color.BLUE else 
    if BigFourScore == 4 then Color.GREEN else 
    Color.GRAY
);
 
Last edited:
I have 2 main watchlists...one is called "Default" and it probably has about 500+ stocks. Then I have a "Favorites" which has probably half of the stocks from Default. These are filtered out based on volume, open interest, bid/ask spreads, and backtesting to see if the signals would have worked previously. But mostly option spreads...I don't want to trade options that have wide bid/ask and low volume & open interest.

I have created a scan for up/dn signals on the 1 HR pulling from my "favorites." I have also added scans for 1 HR within 6 bars (1day) and 12 bars (2 days). This allows me to go back and see which stocks have confirmed long or short without having to keep up with them every hour. Sometimes you'll get a signal early in the hour but the stock may not confirm if the price doesn't close above Ehlers Distant Coeffeint. So having the scans within 6 & 12 bars will only grab those that have confirmed.

Here are the scans. I'm not sure if these will work. This scan looks for the TMO less than Zero for Up signals and TMO greater than zero for Dn Scans.

You can also change the timeframe to whatever time you want...I also have saved scans for Daily w/n 1 bar, 5 bars (week) and 10 bars (2 weeks). As well as Weekly timeframe.

http://tos.mx/1Tj1J6C - Scan for Big Four Up 1 Hr w/n 1 bar
http://tos.mx/oS8p3Yy - Scan for Big Four Up 1 Hr w/n 6 bars
http://tos.mx/NfMMobv - Scan for Big Four Up 1 Hr w/n 12 bars

http://tos.mx/1Tj1J6C - Scan for Big Four Dn 1 Hr w/n 1 bar
http://tos.mx/i2fL63S - Scan for Big Four Dn 1 Hr w/n 6 bars
http://tos.mx/8rNAA54 - Scan for Big Four Dn 1 Hr w/n 12 bars

http://tos.mx/6XQSLFG - My Favorites Watchlist

I hope this helps.
Downloaded and got Error:Script execution timeout what am I doing wrong?

TY in A
 
Downloaded and got Error:Script execution timeout what am I doing wrong?

TY in A
Error:Script execution timeout occurs when running a resource-intensive scan against the universe of stocks.
TDA throttles these types of scans as part of their resource management schema.

Workarounds:
~ sometimes this type of scan will run in off-hours when more resources are available.
~ or run the scan against a smaller subset of stocks.
IE: use a "scan-in" field and load one of your personal watchlists or one of ToS sub-lists: S&P100, NASDAQ100, etc.
~ or take out the "within x bars" as that creates x iterations which is a resource-killer.
 
Last edited:
Added Vix Alert 4 to the BIG4 watchlist column

2023-07-05-Quote.png


http://tos.mx/I1aG5E5

Code:
#Big_5 WL (Vix Alert4 added)
#added Blst off - triple exhaustion - vix alert4 to the big 4 - HODL

#######################################
##  Create Labels
#######################################
def showtitle = no;
def showlabels = yes;
def AutoAgg = yes;
def AutoAgg2 = yes;
# Williams Vix Fix Formula
def pd = 22;
def bbl = 20;
def mult = 2.0;
def lb = 50;
def ph = 0.85;
def pl = 1.01;

# Downtrend Criteria

input ltLB = 40;
input mtLB = 14;
input str = 3;

def wvf = ((highest(close, pd) - low) / (highest(close, pd))) * 100;
def sDev = mult * stdev(wvf, bbl);
def midLine = SimpleMovingAvg(wvf, bbl);
def lowerBand = midLine - sDev;
def upperBand = midLine + sDev;
def rangeHigh = (highest(wvf, lb)) * ph;

#  Filtered Bar Criteria

def upRange = low > low[1] and close > high[1];
def upRange_Aggr = close > close[1] and close > open[1];

#  Filtered Criteria

def filtered = ((wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and(wvf<upperBand and wvf<rangeHigh));
def filtered_Aggr = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]);

# Alerts Criteria


def alert4 = upRange_Aggr and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered_Aggr;

def Buy_133 = if alert4 and alert4[1] then 1 else 0;
def hide133 = if buy_133 and buy_133[1] then 0 else 1;

def Buy_13 = if buy_133 and hide133 then 1 else 0;
input trig = 20;
input paintbar = yes;

def val = AbsValue(close - open);
def range = high - low;
def blastOffVal = (val / range) * 100;
def trigger = trig;
#def alert1 = blastOffVal < trig;
def col = blastOffVal < trig;

plot value = if col then 1 else 0;


def ag_skip = no;
def ag_skip2 = no;
def ag_skip_lbl = no;

def agperiod1 = GetAggregationPeriod();
        
input timeframe = aggregationperiod.DAY;

input length = 10;
input length2 = 20;

def Vol = volume(period = timeframe);
def at_High = high(period = timeframe);
def at_Open = open(period = timeframe);
def at_Close = close(period = timeframe);
def at_Low = low(period = timeframe);
def Vol1 = volume(period = timeframe);
def at_High1 = high(period = timeframe);
def at_Open1 = open(period = timeframe);
def at_Close1 = close(period = timeframe);
def at_Low1 = low(period = timeframe);

# Buy_Volume forumla is volume * (close_price minus low_price) / (High_price minus low_price)
def Buy_Volume = RoundUp(Vol * (at_Close - at_Low) / (at_High - at_Low));
def Buy_percent = RoundUp((Buy_Volume / Vol) * 100);
#Buy_percent.SetPaintingStrategy(PaintingStrategy.LINE);
#Buy_percent.SetLineWeight(1);
#Buy_percent.SetDefaultColor(Color.GREEN);

#Sell_Volume forumla is  volume * (High_price minus Close_price) / (High_price minus Low_price)
def Sell_Volume = RoundDown(Vol1 * (at_High1 - at_Close1) / (at_High1 - at_Low1));
def Sell_percent = RoundUp((Sell_Volume / Vol1) * 100);
#input price = close;
input length_BB = 10;
input length_BB2 = 20;
plot avg = ExpAverage(close(period = agperiod1), length_BB);
#plot avg = ExpAverage((price), length);
def height = avg - avg[length];
avg.SetStyle(Curve.SHORT_DASH);
avg.SetLineWeight(1);

AddLabel(showtitle, " Big_6: ", Color.Light_gray);

# AK Trend

def aktrend_input1 = 3;
def aktrend_input2 = 8;
def aktrend_price = close;

def aktrend_fastmaa = MovAvgExponential(aktrend_price, aktrend_input1);
def aktrend_fastmab = MovAvgExponential(aktrend_price, aktrend_input2);
def aktrend_bspread = (aktrend_fastmaa - aktrend_fastmab) * 1.001;

def cond1_UP = if aktrend_bspread > 0 then 1 else 0;
def cond1_DN = if aktrend_bspread <= 0 then -1 else 0;

# ZSCORE

def zscore_price = close;
def zscore_length = 20;
def zscore_ZavgLength = 20;

def zscore_oneSD = StDev(zscore_price, zscore_length);
def zscore_avgClose = SimpleMovingAvg(zscore_price, zscore_length);
def zscore_ofoneSD = zscore_oneSD * zscore_price[1];
def zscore_Zscorevalue = ((zscore_price - zscore_avgClose) / zscore_oneSD);
def zscore_avgZv = Average(zscore_Zscorevalue, 20);
def zscore_Zscore = ((zscore_price - zscore_avgClose) / zscore_oneSD);
def zscore_avgZscore = Average(zscore_Zscorevalue, zscore_ZavgLength);

def cond2_UP = if zscore_Zscore > 0 then 1 else 0;
def cond2_DN = if zscore_Zscore <= 0 then -1 else 0;

# Ehlers

def ehlers_length = 34;

def ehlers_price = (high + low) / 2;
def ehlers_coeff = ehlers_length * ehlers_price * ehlers_price - 2 * ehlers_price * Sum(ehlers_price, ehlers_length)[1] + Sum(ehlers_price * ehlers_price, ehlers_length)[1];
def ehlers_Ehlers = Sum(ehlers_coeff * ehlers_price, ehlers_length) / Sum(ehlers_coeff, ehlers_length);

def cond3_UP = if close > ehlers_Ehlers then 1 else 0;
def cond3_DN = if close <= ehlers_Ehlers then -1 else 0;

# Anchored Momentum

def amom_src = close;
def amom_MomentumPeriod = 10;
def amom_SignalPeriod = 8;
def amom_SmoothMomentum = no;
def amom_SmoothingPeriod = 7;

def amom_p = 2 * amom_MomentumPeriod + 1;
def amom_t_amom = if amom_SmoothMomentum == yes then ExpAverage(amom_src, amom_SmoothingPeriod) else amom_src;
def amom_amom = 100 * ( (amom_t_amom / ( Average(amom_src, amom_p)) - 1));
def amom_amoms = Average(amom_amom, amom_SignalPeriod);


def cond4_UP = if amom_amom > 0 then 1 else 0;
def cond4_DN = if amom_amom <= 0 then -1 else 0;

# TMO

def tmo_length = 30; #def 14
def tmo_calcLength = 6; #def 5
def tmo_smoothLength = 6; #def 3

def tmo_data = fold i = 0 to tmo_length with s do s + (if close > GetValue(open, i) then 1 else if close < GetValue(open, i) then - 1 else 0);
def tmo_EMA5 = ExpAverage(tmo_data, tmo_calcLength);
def tmo_Main = ExpAverage(tmo_EMA5, tmo_smoothLength);
def tmo_Signal = ExpAverage(tmo_Main, tmo_smoothLength);
def tmo_color = if tmo_Main > tmo_Signal then 1 else -1;

def cond5_UP = if tmo_Main <= 0 then 1 else 0;
def cond5_DN = if tmo_Main >= 0 then -1 else 0;

# Strategy

input Strategy_Confirmation_Factor = 4;
input Strategy_FilterWithTMO = no;
input Strategy_FilterWithTMO_arrows = yes;
input Strategy_ColoredCandlesOn = yes;
input Strategy_VerticalLinesOn = no;
input Strategy_HoldTrend = no;

def cond_UP = cond1_UP + cond2_UP + cond3_UP + cond4_UP;
def cond_DN = cond1_DN + cond2_DN + cond3_DN + cond4_DN;

def direction = if cond_UP >= Strategy_Confirmation_Factor and (!Strategy_FilterWithTMO or cond5_UP) then 1
                else if cond_DN <= -Strategy_Confirmation_Factor and (!Strategy_FilterWithTMO or cond5_DN) then -1
                else if !Strategy_HoldTrend and direction[1] == 1 and cond_UP < Strategy_Confirmation_Factor and cond_DN > -Strategy_Confirmation_Factor then 0
                else if !Strategy_HoldTrend and direction[1] == -1 and cond_DN > -Strategy_Confirmation_Factor and cond_UP < Strategy_Confirmation_Factor then 0
                else direction[1];

def direction2 = if cond_UP >= Strategy_Confirmation_Factor and (!Strategy_FilterWithTMO_arrows or cond5_UP) then 1
                else if cond_DN <= -Strategy_Confirmation_Factor and (!Strategy_FilterWithTMO_arrows or cond5_DN) then -1
                else if !Strategy_HoldTrend and direction2[1] == 1 and cond_UP < Strategy_Confirmation_Factor and cond_DN > -Strategy_Confirmation_Factor then 0
                else if !Strategy_HoldTrend and direction2[1] == -1 and cond_DN > -Strategy_Confirmation_Factor and cond_UP < Strategy_Confirmation_Factor then 0
                else direction2[1];

def signal_up = direction2 == 1 and direction2[1] < 1;


def signal_dn = direction2 == -1 and direction2[1] > -1;

def up = direction == 1;
def down= direction == -1;
def none = !up and !down;
def alert4_1 = alert4 within 8 bars;

addlabel(yes,
if  alert4_1  and none then " Alert 4 "
else if signal_up and alert4_1 and up then " Alert 4 | 👍 "
else if signal_dn and  alert4_1  and down then " Alert 4 | 👎 " 
else if signal_up and  alert4_1  then " Alert 4 | 👍 "
else if signal_dn and  alert4_1  then " Alert 4 | 👎 " 
else if up and Alert4_1 then " Alert 4 "
else if down and Alert4_1 then " Alert 4 "
else if signal_up then "👍"
else if signal_dn then "👎"
else "  ", color.white);

Assignbackgroundcolor(
 if up and Alert4_1 then Color.dark_green
else if up then Color.dark_GREEN
else if down and alert4_1 then Color.dark_red
else if down then Color.dark_RED
else color.gray);
 
Downloaded and got Error:Script execution timeout what am I doing wrong?

TY in A
I have the scan pulling from my custom watchlist called "Favorites". You will probably change the "scan in" to your custom watchlist or another watchlist that TOS provides.
 

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
388 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