52 Week High vs Low Backtest

Korean market data · 52-week highs and lows

Buy the 52-week high,
skip the 52-week low?

Two of the oldest rules in chart trading: a stock at a 52-week high is strong, so follow it; a stock at a 52-week low is a falling knife, so leave it alone. I counted what happened after every 52-week high and low on the Korean market for eleven and a half years — about 100,000 highs and 170,000 lows — and one of the two rules came out backwards.

KOSPI & KOSDAQ, 2,550 stocks April 2015 – August 2026 103,026 highs · 168,194 lows 0.22% buy-side cost deducted

One rule held. The other was the opposite of what the data shows.
And the rule that came out backwards is also the one with the biggest trap in this article, which I get to in section 09.

01The market, and the rules I used

If you do not trade Korean stocks, two words first. KOSPI is the main board — Samsung Electronics, SK Hynix, Hyundai, the large caps. KOSDAQ is the secondary board, closer to the Nasdaq in spirit: smaller companies, more tech and biotech, a lot more volatile. The regular session runs 09:00 to 15:30 Korea Standard Time (UTC+9) with no lunch break. This article uses every stock on both boards.

A "52-week high" here means today's close is higher than every daily close of the past 250 trading days. A 52-week low is the mirror image. Most trading platforms flag highs using the intraday high instead. I used the close on purpose: a stock that spikes above the old high at 11:00 and gives it all back by 15:30 should not count as a breakout, and if it did, that afternoon's drop would leak into the results.

The trade, every time
  1. Today's close is above the prior 250-day closing high (or below the closing low)
  2. A close is only known after the bell, so I cannot buy that day. I buy at the next morning's open
  3. I sell at the open after a fixed holding period
  4. I deduct 0.22% on the buy for commission and tax, and nothing on the sell

The benchmark throughout is buying the same stocks on any random day and holding for the same period, with the same cost deducted. A 44% win rate means nothing on its own.

Every table shows three numbers. One of them, the median, does most of the work in this article, so here is what it means.

Average versus median

The median is the result exactly in the middle when you line up every trade from worst to best. Half the trades did better than it, half did worse. It is the closest thing to "what happened to a typical person who made this trade."

The average is all the results added up and divided by the count. A few huge winners can pull it up. If nine people lose 3% and one person makes 50%, the average is +2.3% and the median is −3%. When the two disagree badly, a handful of big wins is making the average. That happens in this article.

02How the next morning opens

Korean stocks have a daily price limit of ±30%. In an earlier article I found that the morning after a limit-up close, stocks opened 6.8% higher on average. Highs and lows are nothing like that.

Signal-day close → next day's open · all stocks
CountAverage gapMedian gapOpened higher
After a 52-week high103,026+0.56%0.00%48.9%
After a 52-week low168,194−0.31%0.00%34.9%

After a high it is a coin flip: half open up, half open down. After a low, two mornings out of three open lower still. Up to the opening bell, "falling knife" is a fair description.

The question is what happens after you buy at that open.

03Buying the 52-week high

Buy the open after a 52-week high → sell at the open N trading days later · all stocks · after 0.22% buy cost
HoldWin rateBaselineAverageBaselineMedianBaseline
Same-day close40.5%40.3%−0.44%−0.28%−0.54%−0.32%
1 day42.8%42.5%−0.14%−0.16%−0.49%−0.22%
1 week43.0%44.4%+0.06%+0.02%−1.08%−0.41%
1 month43.6%44.7%+1.10%+0.67%−2.26%−0.88%
3 months43.2%43.5%+2.51%+2.21%−4.14%−2.11%
6 months42.7%43.3%+6.97%+5.22%−5.86%−3.24%

The three numbers disagree with each other.

The win rate is slightly below the baseline for every hold of a week or longer. People who chased highs did not win more often than people who bought at random.

The average is above the baseline. Over six months it is +7.0%, against +5.2% for a random purchase — 1.7 points better.

The median is far below the baseline: −5.9% at six months. Line up everyone who bought a 52-week high, and the person in the middle is down 5.9% half a year later.

Why the average wins while the median loses

A few 52-week-high stocks keep going. The doubles and triples come from this group, and they drag the average up. But most breakouts fail right there, so the person in the middle loses.

"Buy strength" is true for someone who buys many of them and holds for a long time, letting a handful of big winners pay for the rest. Someone who buys one or two and checks back in a month gets the median.

04Buying the 52-week low

Buy the open after a 52-week low → sell at the open N trading days later · all stocks · after 0.22% buy cost
HoldWin rateBaselineAverageBaselineMedianBaseline
Same-day close45.9%40.3%−0.11%−0.28%−0.22%−0.32%
1 day45.2%42.5%−0.31%−0.16%−0.22%−0.22%
1 week50.5%44.4%+0.60%+0.02%+0.07%−0.41%
1 month52.7%44.7%+2.90%+0.67%+0.72%−0.88%
3 months51.3%43.5%+5.66%+2.21%+0.54%−2.11%
6 months50.0%43.3%+8.46%+5.22%−0.02%−3.24%

Everything is above the baseline. Win rate, average, and median.

With a one-month hold, 53% of trades made money, against 45% for a random purchase — an 8-point gap. Nothing else in this article comes close to that gap.

The one-day hold is the only slight negative, because the morning after a low opens lower still. From the second day on it recovers. Even after the 0.22% cost, the one-month median is +0.72%: the person in the middle kept something.

Buying the day after a 52-week low won 6 to 8 points more often than the baseline at every holding period from one week to six months, while buying the day after a 52-week high won less often than the baseline and its median return kept falling to -5.9% at six months. After a 0.22% buy-side cost
Left: share of winning trades by holding period. Grey is the same stocks bought on any random day. Right: median return of the same trades. All after the 0.22% buy-side cost.
The rule says buy the high and avoid the low. For the person in the middle, the data said exactly the reverse.

05Large caps only

I re-ran everything on the 949 stocks with a market cap above 100 billion won (roughly US$70 million) and reasonable daily turnover. The high side changes here.

Large caps only · buy next open → sell at the open N trading days later · after 0.22% buy cost
HoldWin rateAverageMedian
1 monthAfter a high47.2%+2.64%−1.00%
After a low55.2%+3.16%+1.38%
Any random day47.4%+1.37%−0.48%
3 monthsAfter a high48.4%+6.55%−1.03%
After a low55.7%+7.57%+2.43%
Any random day47.9%+4.59%−0.70%
6 monthsAfter a high49.8%+14.19%−0.22%
After a low55.6%+13.02%+3.11%
Any random day49.0%+10.37%−0.40%

Large-cap breakouts clearly win on average: +14.2% over six months against +10.4% for a random large cap, almost 4 points. "When a big company breaks out, the trend continues" is true as an average.

But the win rate is level with the baseline and the median is below it. The structure is the same as before — a few run, most do not. In large caps the "few" is simply a little bigger.

Lows keep winning in large caps too, on every measure. One-month win rate 55.2%.

06When volume explodes

"A breakout on heavy volume is the real one" is another common rule. I split the signals by whether the day's volume was at least twice the 20-day average.

By volume on the signal day · one-month hold · all stocks · after 0.22% buy cost
CountWin rateAverageMedian
High · volume 2× or more42,67841.0%+0.69%−3.66%
High · volume under 2×59,91145.4%+1.38%−1.46%
Low · volume 2× or more29,71256.9%+5.21%+1.96%
Low · volume under 2×137,30351.9%+2.41%+0.47%

Backwards again. A high on heavy volume did worse than a quiet one: 41% win rate, median −3.7%. The day everyone piles in is, often enough, the top.

For lows it runs the other way. A low made on a volume spike — a capitulation day — bounced harder. 57% of buyers on those days were ahead a month later.

07How far past the old level

A close a hair above last year's high is not the same as a close 10% above it. I split the signals by how far they cleared the old level.

Distance past the prior 52-week high or low · one-month hold · all stocks · after 0.22% buy cost
DistanceAfter a highAfter a low
Win rateMedianWin rateMedian
0–1%47.0%−0.55%46.5%−0.77%
1–3%44.8%−1.79%50.6%+0.15%
3–7%42.2%−3.31%59.6%+3.22%
7% or more37.8%−6.83%73.3%+12.40%

For highs, the bigger the breakout, the worse. A close more than 7% above the old high is usually a one-day spike, and buying the next morning won one time in three, with the median buyer down 6.8% a month later. The barely-there breakout was the only one that kept up with the baseline.

For lows, the harder the break, the bigger the bounce. A close more than 7% below the old low was followed by a winning month three times out of four, median +12.4%.

That last line is the best-looking number in this article. It is also the one you should trust least. Section 09 explains why.

08Year by year

Eleven and a half years in one lump could be a single year doing all the work. Here is each year's result against that year's own baseline.

One-month hold · average return minus that year's random-day average · all stocks
YearAfter a highAfter a low
2015−4.01 pts+1.15 pts
2016−1.05 pts+1.78 pts
2017+0.37 pts+1.07 pts
2018−0.14 pts+2.44 pts
2019−1.15 pts+1.71 pts
2020−0.47 pts+8.83 pts
2021+0.63 pts+2.38 pts
2022+0.44 pts+3.47 pts
2023+0.68 pts+1.50 pts
2024+0.04 pts+2.74 pts
2025+1.33 pts+1.92 pts
2026 (to August)+2.19 pts+1.54 pts

Lows beat the baseline in twelve years out of twelve. 2020, the COVID rebound, is an outlier, but even without it the gap is 1 to 3.5 points every year.

Highs are split. Five of the six years from 2015 to 2020 were below the baseline; then six straight years above it from 2021. Chasing breakouts has worked on average for the last few years. Doing the same thing in 2015 or 2016 cost you 1 to 4 points against a random purchase.

Buying lows did not depend on the market regime. Buying highs did.

09The trap: the companies that died are not in the data

By this point buying lows looks like the obvious trade. Read this first.

The dataset is the 2,550 stocks listed as of August 2026. Not a single company that was delisted during these eleven years is included.

How does a company get delisted? It makes a 52-week low, then another, then another, and then it is gone. Every one of those lows is missing from the 168,194 in this article. What remains are the lows made by companies that survived.

So the numbers on the low side are better than reality. By how much, this data cannot say. The "7% below the old low → three winning months out of four" result in section 07 is the most inflated of all, because a crash through the old low is exactly the kind of day a failing company has most.

The high side is much less affected. Companies on their way out rarely make 52-week highs. So "the median breakout buyer loses" stands as it is, while "buying lows works" needs the qualifier if you can tell which companies will survive.

The remaining caveats:

Costs. I deducted 0.22% on the buy only. Korean brokers charge a commission on both sides and there is a securities transaction tax on the sell, plus the bid-ask spread. Real results are somewhat worse than every table here: the high side's one-month median (−2.26%) gets worse, and the low side's (+0.72%) gets thinner.

The signals overlap. A stock at a 52-week high tends to make another one tomorrow. The 103,026 highs are not 103,026 independent experiments; the effective sample is smaller.

Prices are from the Korea Exchange (KRX) only. Since March 2025 Korea has had a second venue, Nextrade (NXT), and for some stocks the KRX close differs slightly from the consolidated close. A few signals near the line will have flipped. Not enough to change direction.

About 20 ETFs and SPACs are mixed in — under 1% of the sample.

10What I take from it

After 103,026 highs and 168,194 lows
  1. Buying a 52-week high wins less often than random, does a little better on average, and the median buyer loses (−5.9% at six months)
  2. Highs on heavy volume and highs far above the old level are worse
  3. Large-cap highs do win on average (+14.2% vs +10.4% over six months)
  4. Buying a 52-week low beat random at every holding period and in every year (one-month win rate 53% vs 45%)
  5. But the low-side numbers are inflated by the companies that disappeared

"Buy strength" is a rule for someone who buys many breakouts, holds them a long time, and lets a few big winners pay for the many that fail. For someone who buys one or two and looks again in a month, it is wrong. That person gets the median.

"Never catch a falling knife" is a rule for someone who cannot tell which companies will fail. Among the companies that lived, buying the low was the steadiest winner in this whole article. The rule exists because knowing "which ones will live" in advance is the hard part.

Neither rule is about the average trade. They are about survival: a few huge winners on the high side, a few bankruptcies on the low side. Neither describes what the person in the middle experienced.

Data: daily bars for 2,550 KOSPI and KOSDAQ stocks from April 2014 to August 2026, Korea Exchange (KRX) prices only; signals begin in April 2015 once 250 trading days of history exist. A 52-week high or low is a close above or below every close of the prior 250 trading days. "Large caps" are the 949 stocks with a market cap of at least 100 billion won (about US$70 million) and a 60-day median daily turnover of at least 500 million won. Every trade buys at the open of the trading day after the signal and sells at the open N trading days later; the baseline is the same stocks bought on any day and held for the same period. All figures deduct 0.22% on the buy for commission and tax, and nothing for sell-side costs or slippage. Delisted stocks are not in the data.

This is a personal data-analysis record, not investment advice. Past results do not guarantee future ones. All investment decisions and their outcomes are the reader's own.

댓글 쓰기