Brett Bot - Consistent Profits from 52 Week Lows

brettb

Newbie
Messages
9
Likes
2
I thought I'd start a trading diary for the ongoing development of Brett Bot. Even if you think my strategy is rubbish I have been generating masses of data relating to maximising trading profits.

I'm a software dev and this project started life as me wanting to make a financial information website. However, it's now evolved into a desktop backtesting tool for testing longer term chart patterns and strategies all the way back to 1971 (yes, really).

I added a stock chart component onto the app and put little markers for the 52 week highs and lows. Immediately I noticed something extremely interesting:

When a stock makes a 52 week low, it either (a) bounces, (b) drops a bit then recovers or (c) makes a new low.

Assuming you're looking at **quality** stocks then (a) happens a LOT, and if it doesn't then (b) will theoretically allow you to exit the trade at breakeven. (c) is rare for a top quality stock, and doesn't often happen outside of 2008/2020 extreme events.

The quality bit is **extremely** important. Please don't complain that this technique doesn't work then show me you've been trying to replicate it on some meme stock or microcap pharma stock :eek:!!!

Example of a quality stock: Pepsico (PEP) has a 100% success rate in bouncing off the 52 low. Furthermore, it has a 100% success rate of ultimately doubling in price. Likewise, McDonalds has only once not rebounded 100%.

Even Ulta Beauty (ULTA) has a 100% success rate of bouncing 10%.

So anyway 100% is nice but we need to be maximising CAGR and for that I've found the sweetspot is looking for a fixed profit of around 10%.

Current backtested statistics of this technique January 2018 to present, buying the 503 stocks and ETFs in my backtest database:

Winning trades: 381 (51.0%) Breakeven trades: 279 (37.3%) Losing trades: 87 (11.6%) Total trades: 747.

I'm still learning probability but this technique never seems to lose money (provided you make enough trades). It does also avoid crashes that are preceeded by a blow-off top [because all your trades return a profit then there aren't any 52 week lows to buy, i.e. January 2020 blow-off top]. 2022 wasn't quite so good but the bot has been making incredible cash in 2024.

My real money account is up ~4% in 2 months.

I think the biggest drawback is that people simply don't believe this works. But I have analysed 20,000 52 week lows and it's a timeless classic strategy.

Recent big profits:
  • Baidu - 8.3% after 10 days (volatility).
  • Target - 8.2% after 8 days (volatility).
  • Qualsys - 26.3% after 5 days (Trump bump).
  • TT Electronics - 30.4% after 11 days (takeover).
  • Smiths Group - 11.1% after 5 days (good news).
  • Harvard Biosciences - 9% after 1 day (unknown).
 
  • Like
Reactions: THT
first, Welcome to the forum! I hope you take this feedback in a good way. Back-testing a new system is a good thing, but you shouldn't rely on that. If you're buying a round lot of a single stock like Pepsi @ the previous low of $155, that's some serious cash, especially when that could be replicated across 5, 10 or even 20 at one time. Do you take a position the moment it puts in a new 52 week low? How many positions in your real money account were at one time? losing trades of almost 12% is a good ratio, but were the loses large as compared to the winners returns?

Perhaps, you should consider posting the stocks you considered, AFTER you have taken a position for yourself. Have you checked the results of using options? Did you build your website, or is that a future project? TIA.
 
Website link in profile. I started building a site for ETFs, then realised stocks are better for this particular strategy. ETFs work great but there haven't been many good quality ones putting in 52 week lows this year. If the S&P 11 sector ETFs ever hit 52 week lows again then I'll be gorging on them... apart from maybe biotech they're fantastically profitable. The country ETFs are good too (I recently bought France - for those who think that's crazy I'll just show them the chart of "basket case" Argentina).

I'm still backtesting. Whatever I do I get decent profitability. I'm trying to refine it (I think this is adding "Edge"?) but if I start excluding potentially bad trades then I remove some of the best ones too. This morning I added a quality score - it doesn't buy stocks that have a patchy history in the 2 years prior to potential purchase date.

Win rate is consistently around 55% and losses 11%. So by my calculations it does work. From 2011-2024 the average loss was 22%. The average win is (I think) 9%. I'm still writing the code to calculate that. I aim for 7.5% but I've had a few takeover bids and stuff.

I have over 500 stocks and ETFs in my database. The US stocks have mostly been screened using FastGraphs so that they're only top quality (low debt, growing revenue) and they're mostly dividend payers. I also exclude anything that hasn't been around for at least 7 years.

I have two real money accounts: a fund account and my ISA. The fund account started off with UK stocks only but as they sell off I'm adding US stocks. I started 28th October and I am regularly hitting new highs in the account. What's also good is that the account itself only briefly became loss making.

Real money tests are so far for October's buys: 34% profitable so far. The others are mostly in the green but I try not to look at my portfolio too much. Biggest paper drawdown so far is -15%. So real money tests are generally in line with expectations. I would expect real money to beat my backtester because the real stocks universe has a lot more stocks to buy. My bot just does not have enough stocks to stay 100% invested.

I buy the first 52 week low and then if something dips 10% I'll buy the next. I don't do any charting to try and buy the absolute bottom. The only thing I am careful about is to buy as close to the low as possible. If it hits a low then rebounds I won't chase as much of the potential profit will have already gone.

I prioritise stocks I don't currently own. If there's a tonne of stuff hitting 52 week lows I'll prioritse the A listers first (i.e. Pepsi, McDonalds, Visa).

I have plenty of cash to deploy for this strategy so I don't really want options or anything else at this stage. Probably what would improve profitability are trailing stops, but I can't automate those in my account.

What I do like is it's a low risk strategy. The bot goes to cash in toppy markets (much like now). I'm OK with this as 2024 has been a tremendous year for the backtester (maybe the best year ever). Also cash pays decent rates right now. There could be some bias because I have mostly been adding stocks that have been putting in 52 week lows this year.

Going forward I'll focus on testing with real money. By the end of April 2025 I will have complete data for ~150 trades.

I could test other stuff, e.g. buying 52 week lows and selling at the 52 week highs. New 52 week highs are in theory also profitable but stop losses are definitely required. I've seen numerous examples where a stock will make a 52 week high then crash.

I also like the look of double bottoms. I heard they have a very high success rate. I had a few good wins on these earlier this year (with actual money).
 
  • Like
Reactions: THT
Website link in profile. I started building a site for ETFs, then realised stocks are better for this particular strategy. ETFs work great but there haven't been many good quality ones putting in 52 week lows this year. If the S&P 11 sector ETFs ever hit 52 week lows again then I'll be gorging on them... apart from maybe biotech they're fantastically profitable. The country ETFs are good too (I recently bought France - for those who think that's crazy I'll just show them the chart of "basket case" Argentina).

I'm still backtesting. Whatever I do I get decent profitability. I'm trying to refine it (I think this is adding "Edge"?) but if I start excluding potentially bad trades then I remove some of the best ones too. This morning I added a quality score - it doesn't buy stocks that have a patchy history in the 2 years prior to potential purchase date.

Win rate is consistently around 55% and losses 11%. So by my calculations it does work. From 2011-2024 the average loss was 22%. The average win is (I think) 9%. I'm still writing the code to calculate that. I aim for 7.5% but I've had a few takeover bids and stuff.

I have over 500 stocks and ETFs in my database. The US stocks have mostly been screened using FastGraphs so that they're only top quality (low debt, growing revenue) and they're mostly dividend payers. I also exclude anything that hasn't been around for at least 7 years.

I have two real money accounts: a fund account and my ISA. The fund account started off with UK stocks only but as they sell off I'm adding US stocks. I started 28th October and I am regularly hitting new highs in the account. What's also good is that the account itself only briefly became loss making.

Real money tests are so far for October's buys: 34% profitable so far. The others are mostly in the green but I try not to look at my portfolio too much. Biggest paper drawdown so far is -15%. So real money tests are generally in line with expectations. I would expect real money to beat my backtester because the real stocks universe has a lot more stocks to buy. My bot just does not have enough stocks to stay 100% invested.

I buy the first 52 week low and then if something dips 10% I'll buy the next. I don't do any charting to try and buy the absolute bottom. The only thing I am careful about is to buy as close to the low as possible. If it hits a low then rebounds I won't chase as much of the potential profit will have already gone.

I prioritise stocks I don't currently own. If there's a tonne of stuff hitting 52 week lows I'll prioritse the A listers first (i.e. Pepsi, McDonalds, Visa).

I have plenty of cash to deploy for this strategy so I don't really want options or anything else at this stage. Probably what would improve profitability are trailing stops, but I can't automate those in my account.

What I do like is it's a low risk strategy. The bot goes to cash in toppy markets (much like now). I'm OK with this as 2024 has been a tremendous year for the backtester (maybe the best year ever). Also cash pays decent rates right now. There could be some bias because I have mostly been adding stocks that have been putting in 52 week lows this year.

Going forward I'll focus on testing with real money. By the end of April 2025 I will have complete data for ~150 trades.

I could test other stuff, e.g. buying 52 week lows and selling at the 52 week highs. New 52 week highs are in theory also profitable but stop losses are definitely required. I've seen numerous examples where a stock will make a 52 week high then crash.

I also like the look of double bottoms. I heard they have a very high success rate. I had a few good wins on these earlier this year (with actual money).

Behind the scenes what is happening here is you are catching multiple sized cycle turns upwards, which all happen to converge at the same time/place

Double Bottom:
1415.JPG


Triple Bottom:
1414.JPG
 
I've improved the data collection so below is a chart of my backtesting bot's results 2018 - 2024. There may be some recency bias as I've primarily been adding stocks that have been making 52 week lows in the last couple of months. But I've also started adding in my large Excel spreadsheet of top tier US stocks screened through FastGraphs (for low debt, constant earnings and dividend growth). I've not owned many of them because they are almost never on sale (e.g. Chubb, Colgate-Palmolive).

With the new stocks the bot is outperforming the S&P. And it's doing it by buying lower risk US and UK stocks. It's also getting very close to outperforming the Nasdaq (but if it wasn't for NVDA I'd probably be consistently beating it :D). The main issue I have is there are still long periods where it holds cash because there aren't enough 52 week lows and/or it takes a lot of profits.

I'm not sure if the win/loss ratio is related to any particular market conditions. Really all I need to be doing apparently is buying 52 week lows.

Back in the real world I bought Mondelez today. My backtester would assign this stock an A- rating. I bought it in my older ISA too as I want to ramp up the strategy and will start hoarding more of the top quality stocks that appear.

I failed to buy Footlocker - I'm annoyed about this one but it appears there was massive dip buying on the earnings crash. Did anyone buy this one at what would have been a great price?

I looked at LND and CHRD but bought neither.

I booked another profit - 8.4% from COTY after 27 days. My bot predicted it would take 21 days.

If anyone knows a better 52 week low scanner then let me know. I'm currently using this one:


Despite the URL it has US stocks too.

I will carry on testing as this seems a perfect lower risk, lower effort trading strategy for me.

Summary of this chart's results:

Winning trades: 380 (56.0%) Breakeven trades: 215 (31.7%) Losing trades: 84 (12.4%) Total trades: 679. Average loss: 22.2%.
Overall CAGR 16.66%


BrettBot-52WeekLowSwingTrader-V5.png
 
Top