# Trading ETFs while fear and greed rise

### A system to scaling into positions that deliver 21% annual returns since 1999

# The idea

"The first principle is that you must not fool yourself, and you are the easiest person to fool.” Richard Feynman

Richard Feynman was one of the great scientists and physicists of our time, truly one of the great minds of humanity. This is one of my favorite quotes from him. It emphasizes the importance of **intellectual honesty** and **self-awareness** in scientific inquiry and in life in general.

We have a tendency to deceive ourselves, either consciously or unconsciously. He cautions against cognitive biases, wishful thinking, and self-delusion, which can cloud our judgment and lead to erroneous conclusions.

Feynman stresses the need for **humility** and **critical self-reflection**. Scientists and individuals alike must **constantly question their assumptions**, **challenge their beliefs**, and **be open to revising their views in the face of new evidence**. This quote underscores the importance of **skepticism**, **rigorous self-examination**, and a **commitment to seeking truth** without succumbing to personal biases or preconceptions.

His Caltech’s 1974 commencement address is a masterpiece.

Listening to Andreas Clenow on

, hosted by and (amazing interview, strongly recommend to all - here's the link) made me think of him. Especially when he shared ideas like these:“You don't trade somebody else's model without understanding what it is and what it does. You need to be cynical enough not to trust any sort of backtesting software—whatever comes out of it—and do your own math.”

As you might have already noticed, I strongly believe in that.

In another insightful part of the interview, Andreas emphasized that both trend-following and momentum strategies are **valuable building blocks rather than complete solutions**. They should be part of a diversified portfolio rather than standalone strategies.

He highlights the importance of **creating a well-rounded portfolio using various strategies** as building blocks to achieve overall investment goals **rather than relying on a single strategy**.

I was already a fan (of both Andreas and the podcast) and became even more impressed. I strongly recommend Andreas’ books and listening to

Podcast.This week, we will test the idea based on the TPS strategy from Larry Connors's book Buy the Fear, Sell the Greed.

T: Time

P: Price

S: Scale-In

TPS identifies when an ETF is oversold and averages into the position as it becomes more oversold.

Here are the TPS rules on the long side:

The ETF is

**above its 200-day simple moving average**.The

**2-period RSI is below 25 for two days in a row**.**Buy 10%**of your position.If

**prices are lower on the close than your previous entry price**, any day you’re in the position,**buy 20% more of your position**(you’re averaging in).*If

**prices are lower on the close than your previous entry price**, any day you’re in the position,**buy 30% more of your position**.*If

**prices are lower on the close than your previous entry price**, any day you’re in the position,**buy 40% more of your position**.*

Using this 10%, 20%, 30%, 40% **scaling-in approach** (also known as 1-2-3-4), you now have a full position in a very oversold ETF.

*Do not take a new position anytime the ETF closes under the 200-day MA.

**Exit**when the**2-period RSI closes above 70**.

As highlighted by Cleanow, we should not rely on a single strategy. So, consider this strategy as a building block to be used in a portfolio of strategies. And most importantly, do your own math.

# Data considerations

This article uses **Norgate data**. It's a great survivorship-bias-free dataset that contains thousands of active and delisted ETFs since the 1990s.

In the book, Connor recommends focusing on **unleveraged, non-inverse ETFs**. This is simple to filter with Norgate dynamic watchlists. However, even after filtering, **the list might include ETFs that contain derivatives** (in other words, highly leveraged). Also, the book is not clear whether we should include ETNs or not.

I'm using **ETFs only, not including ETNs**. Also, I developed a small script that checks every ETF (search online) to determine if it contains derivatives, excluding the ones that do.

# The edge

Let's start by verifying the edge in buying all events when an ETF's (unleveraged, non-inverse) 2-period RSI crosses below 25 for two consecutive days and selling when it crosses above 70, provided its closing price is above its 200-day SMA. These returns consider the 1-2-3-4 scaling approach.

There's a good **75% probability of success**, although the numbers are inferior to what was presented in the book.

Also, the **payoff ratio is positive**: winning trades are expected to return +3.0% while losing trades -2.6%. Overall, the expected return per trade is +1.6%.

Now, let's check the stats of non-events. We define non-events as buying ETFs whenever their 2-day RSI closes above 25 in either of two consecutive days and holding the trade for 8 days (which is the median duration of the trades obtained in the events).

Curiously, although we see a coin flip (51% probability of success), we observe a small positive expected return of +0.5%. That's probably because of the positive drift observed in financial markets. Anyway, the **P-value is well below 0.05**: the means of the two distributions are **significantly different**. So, we have an edge.

## Occurrence of events

Before we start the experiments, let's check how many ETFs have triggered the entry rules since 1998. To remove small illiquid ETFs, we will only look at ETFs with a turnover higher than USD 100 million/day on average.

As the chart shows, **plenty of ETFs triggered the entry rules**, especially after the 2008 crisis.

# The strategy

The strategy was well described at the beginning of the article. We will focus only on the long side. Additional important details:

We will only trade ETFs with a

**turnover higher than USD 100 million/day**on average;We will start with

**maximum positions = 1**, which means we will only trade if we are not already carrying a position; if we are, we will ignore any opportunities;We will trade always at the

**next opening**;We will start with

**denominator 10 in the 1-2-3-4 scaling system**. This means**no leverage**:First position will take 1 / 10 of the capital allocated to that trade (10%, sum 10%);

Second position, if needed, will take 2 / 10 (20%, sum 30%);

Third position, if needed, will take 3 / 10 (30%, sum 60%);

Fourth position, if needed, will take 4 / 10 (40%, sum 100%).

Later, to apply leverage, we will just reduce the denominator accordingly.

# Experiments

As mentioned, we start with maximum positions = 1 and denominator = 10 in the 1-2-3-4 scaling system (i.e. no leverage):

Highlights:

The

**annual return is 4.7% vs. 6.6%**the benchmark in the period;The

**exposure is only 62%**; exposure-adjusted annual return is at 7.7%;**Sharpe ratio is 0.74**, much better than the 0.43 of the S&P 500;**Maximum drawdown is at 14.5%,**well below the 57% of the benchmark;The

**expected return/trade is +1.0%**, with an**win rate of 76%**;**Profit factor is at 1.82**;**win/loss ratio is over 3**; however,**payoff ratio is 0.73**.

Although the exposure time is 62%, the **capital was not well employed:**

Because of the 1-2-3-4 system, on an average day, the expected % of cash sitting idle in the account was

**90%;**In

**only 16% of the days, 50% or more of the capital was allocated**.

How can we improve the capital allocation?

# Improving the capital allocation

Let's look closer at how the capital is being employed:

The chart above is telling:

In

**38% of the days,****100% of the cash**was**sitting idle**in the account;In

**68% of the days**, we had**the first leg**of the position executed;In

**31% of the days**, we had**the second leg**of the position executed;In

**17% of the days**, we had**the third leg**of the position executed;in

**9% of the days only**, we had**all the legs**of the position executed.

This means that **83% of the time**, we **either had no trades or had a trade in stages 1 or 2** of the 1-2-3-4 system.

So, based on the data above, we will start improving the capital allocation by changing the denominator parameter in the 1-2-3-4 system to 3. This means that, for every trade:

First position will take 1 / 3 of the capital allocated to that trade (33%, sum 33%);

Second position, if needed, will take 2 / 3 (67%, sum 100%);

Third position, if needed, will take 3 / 3 (100%, sum 200%);

Fourth position, if needed, will take 4 / 3 (133%, sum 333%).

With this system, **83% of the time**, we expect **either no trades** **or 100% of the capital employed**. 17% of the time, in stages 3 and 4 of the 1-2-3-4 system, we will use leverage.

Here are the results:

Adding leverage worked:

The

**annual return increased to 15.4%**, more than twice the benchmark;The

**Sharpe ratio**also increased, now at**0.78;**However, as expected, the

**maximum drawdown also increased**, reaching**44%;**The exposure time is exactly the same as the trade stats.

The better numbers result from improved capital utilization: now, on average, on a given day, **67% of capital sits idle in the account vs. the previous 90% value.**

But we can do better. We can improve these drawdowns.

# Diversification

Up to now, we have been using the **maximum number of positions** equal to 1. Now, let's improve this number **to 5**. So, at the beginning of every trading session:

We will

**split the total value into 5 portions**: these will be the**total capital available to every single trade**;For

**every single trade**, we will**apply the 1-2-3-4 system**as described previously, keeping the denominator factor as 3 (i.e., using leverage) and scaling the positions accordingly;We will carry

**a maximum of 5 positions at any given time**: if we are carrying less than 5, we will look for opportunities (ETFs with entry signal triggered), sort them by turnover (descending), and fill in the trades until all the 5 slots are filled;As the exit signal is triggered in every trade, we will close the positions and re-open the slots to be filled again.

Applying diversification leads to this:

Highlights:

Increasing the maximum number of positions to 5 led to an

**annual return of 6.8%**, about the same as the S&P 500;However, we achieved

**much better risk-adjusted returns**: Sharpe ratio reached**0.88,**twice as much as the benchmark;The

**maximum drawdown also decreased, now at 15%**vs. 57% the benchmark;The trade stats improved a bit: now the

**win ratio is at 78%**, the**profit factor of 1.93**, and the win/loss ratio at 3.52;Now, the system is

**trading on average 52 times/year**, or once a week.

However, **capital utilization got worse**: now, on an average day, 80% of the capital sits idle in the account. That's because it's not every day we can find 5 ETFs triggering the entry rules. How can we fix that?

# Adjusting the denominator factor

We already know how to improve capital utilization: we just need to **reduce the denominator factor**. Let's use **2 instead of 3**:

Again, we achieved the desired result:

The

**annual return increased to 10.2%**vs. 6.8% in the previous run;Sharpe ratio remained twice as big as the S&P 500's at 0.89;

The

**maximum drawdown increased to 23%**, which is acceptable and way better than the benchmark's (57%).

Nevertheless, a 10.2% annual return is below the minimum we strive to reach (15%). Further increasing leverage (using denominator factor 1 instead of 2) would not be ideal, as it would result in a few days with extremely high leverage. How can we improve further?

# Long & short portfolio

Our last trick is to **add a short leg**. The short side will work exactly the same as the long side but in reverse. Here are the rules for the TPS short:

ETF is

**below its 200-day simple moving average**;The

**2-period RSI is above 75 for two days in a row**.**Sell short 10%**of your position;If

**prices are higher on the close than your previous entry price**, any day you’re in the position,**sell short 20%**more of your position (you’re averaging in)*;If

**prices are higher on the close than your previous entry pric**e, any day you’re in the position,**sell short 30%**more of your position*;If

**prices are higher on the close than your previous entry price**, any day you’re in the position,**sell short 40%**more of your position*;

*Do not take a new position anytime the ETF closes above the 200-day MA.

**Exit**when the**2-period RSI closes below 30;**

We will trade **both the long and short portfolios in parallel. We will use a maximum of 3 positions for the long portfolio but 6 positions** for the **short** portfolio. That's because we want **more diversification in the short side** to **protect us from outliers**.

Here are the results:

The implemented changes, adding the short leg and changing the max positions, worked as intended:

**Annual returns achieved 21.0%**, over 3x the benchmark;**Sharpe ratio of 0.91**, over 2x the benchmark and the best value in all our experiments;**Maximum drawdown reached 35%**, which is above what we want (20%) but much better than the 57% of the benchmark;Trade stats continued strong,

**with 81 trades/year**(about 3 trades every 2 weeks) @**77% win rate**, with an**expected return/trade of +1.05%**and a**payoff ratio of 0.85**.

If you want lower drawdowns, they can be easily achieved by using 4-8 max positions instead of 3-6. Finally, let's look at what would have happened month by month since 1999:

If we had traded this strategy since 1999:

We would have had

**4 down years in 26**;We would have seen

**68% of the months positive**, with the best at +30.9% (Sep’16);We would have seen

**32% of the months negative**, with the worst at -29.1% (Jan'10);The

**longest****positive streak**would have been**17 months**, from Apr'12 to Aug'13;The

**longest negative streak**would have been**4 months**, from Aug'21 to Nov'21.

# Final thoughts

I like this strategy. The maximum drawdown is still a bit higher than what I like, but I think the general idea of the TPS, with the tweaks and changes added here, is a good start to further improvements.

Before trading it, here are some improvement suggestions:

Try a different way to select ETFs to trade. So far, I've just filtered unleveraged and non-inverse ETFs and applied a liquidity filter. We can think of more interesting ways of creating lists (e.g., at the beginning of every year, dynamically create a list of the top 500 ETFs that are not highly correlated to each other);

Try different universes rather than ETFs (stocks belonging to indices such as Nasdaq-100, S&P 500, Russell 3000, etc.);

Try different exits.

As usual, I've considered 2 basis points in slippage + trading costs in all trades. We should obviously expect a lower return for higher costs. I also did not include any costs related to leverage or gains related to capital sitting idle in the account. Adding those would increase the complexity of the tests and add a bunch more assumptions, and I suspect one would offset the other. And the objective is to give you the overall idea of the strategy.

This idea, as with any other, should be seen as a building block upon which we should build a portfolio of strategies. No single strategy will work 100% of the time in all market regimes. Now, a portfolio of uncorrelated strategies might do the trick ;)

Again, I would like to thank

for their amazing podcast and Andreas Cleanow and Larry Connors for openly sharing their ideas. This article was only possible because these great systematic traders generously shared their knowledge and insights.As usual, I'd love to hear your thoughts about this approach. If you have any questions or comments, **just reach out via Twitter or email**.

Also, **if you want to implement this strategy (or any other strategy) and need help, just let me know**.

Cheers!

Fascinating. I tested this mean reversion with scaling approach, and it works well across equities and fixed income sector futures. Especially in US markets. The rules don't work in commodities sectors. It'd be nice to see how it works in stocks mean reversion strategies like your Nasdaq 100 strategy.

Interesting ideas. Thanks for publishing and keep up the great work. Have you tried reducing the universe of ETFs to a logical set? For instance does it work on just the SPY sector ETFs or the iShares global ETFs?