# What is the Whaley Thrust Indicator

Updated: Nov 24

The Whaley Breadth Thrust indicator is a market momentum indicator that was introduced by Richard Whaley. It is designed to identify whether the stock market has entered an overbought or oversold condition. To calculate the Whaley Breadth Thrust, you follow these steps:

· **Calculate the Breadth Thrust Ratio:** This is the main component of the Whaley Breadth Thrust indicator. You calculate it by dividing the number of advancing issues by the sum of advancing and declining issues on a stock exchange for each day.

· Breadth Thrust Ratio=Number of Advancing Issues divided by (Number of Advancing issues plus Number of Declining Issues)

· **10-day Moving Average of the Breadth Thrust Ratio**: Once you have the daily Breadth Thrust Ratios, you compute the 10-day moving average of these ratios. This helps smooth out the daily fluctuations and gives a better overall market momentum trend.

**Whaley Breadth Thrust Indicator**: Finally, the Whaley Breadth Thrust indicator is derived by taking the 10-day moving average of the Breadth Thrust Ratio and multiplying it by one hundred to express it as a percentage. Whaley Breadth Thrust= (10-day MA of Breadth Thrust Ratio) ×100

The interpretation of the Whaley Breadth Thrust indicator can vary, but typically:

A value above a certain threshold (often around 40-45%) may indicate an overbought market condition.

A value below a certain threshold (often around 30-35%) may indicate an oversold market condition.

Traders and analysts might use these thresholds to predict potential market reversals or confirm the strength of a current trend. It is important to note that while this indicator can be useful, it should be used in conjunction with other indicators and analysis methods for the best results.

For our Calculation we are using a 5-period moving average, however, you can set that to ten.

# Code for TOS below

declare lower;

input aggregationPeriod = AggregationPeriod.DAY;

def advances_NYSE_W = close("$ADVN", aggregationPeriod);

def declines_NYSE_W = close("$DECN", aggregation period);

def Breadth_Thrust_Ratio = (advances_NYSE_W)/(advances_NYSE_W + Declines_NYSE_W);

input length = 5;

plot Whaley_Breadth_Thrust = Average(Breadth_Thrust_Ratio, length) * 100;

Addlabel(Yes, "Whaley_Breadth_Thrust = " + Round(Whaley_Breadth_Thrust,1) + "%", if Whaley_Breadth_Thrust > 73.66 then color.Green else color.yellow);Plot zero = 73.66;