Translate

Buying the Dip: Why Limit Orders Beat Market Orders

Korean stock market strategy backtest

Buying the Dip: Why Limit Orders Beat Market Orders

Across 1,772 stocks with a market cap above 100 billion KRW and solid trading volume, we ran 272,740 simulated trades at random points in time. Which wins, buying with a limit order or a market order? And how much do the stop-loss and take-profit levels actually matter?

272,740 simulated trades 1,772 stocks 0.35% buy-side fee

🌐 한국어로 읽기 (Read in Korean)

00 How this was tested

To keep skill or judgment out of the picture entirely, every stock, date, and time of day was picked at random, and a buy order was placed right there. A limit order was set some percentage below the reference price, and we simply watched whether it filled, then whether the take-profit or the stop-loss was hit first.

Ground rules
  1. Universe: stocks with a market cap of at least 100 billion KRW and a 5-day average trading value of at least 500 million KRW, on days meeting both conditions
  2. Exit: whichever of the take-profit or stop-loss is hit first; if neither is hit, the position is closed at that day's close (never held overnight)
  3. A 0.35% fee was applied on the buy side only
  4. Korean KOSPI/KOSDAQ markets, using data from July 2025 through July 2026

01 Limit order vs market order

Buy 1% below the reference price, take profit at +1%, stop loss at -1% — limit vs market compared under identical conditions

The first question worth asking: when buying a dip, is it better to haggle with a limit order, or to just buy immediately at market? Both approaches were tested on the exact same stock and the exact same moment in time.

Out of 272,740 attempts, limit orders filled only 41.96% of the time; market orders filled 100%
Order typeFill rateWin rateAvg. returnAvg. winAvg. loss
Limit (wait at -1%) 41.96% 54.33% -0.152% +0.607% -1.055%
Market (instant fill) 100.00% 39.16% -0.371% +0.572% -0.977%
Return distribution histogram comparing limit orders and market orders
Limit orders (blue) average -0.152%, market orders (orange) average -0.371% — the market-order distribution is shifted further into losses.
The reason limit orders win is simple. It's not that buying cheap makes money by itself — it's that only buying when it's cheap acts as a filter. Market orders always fill (100% fill rate), so they also swallow every expensive entry that should have been skipped. Limit orders miss 58% of the time, but those missed trades were likely the ones that shouldn't have been taken in the first place. The result: a 15-point gap in win rate and a 0.22-point gap in average return.

02 Stop-loss, take-profit, or entry price — which matters most?

Starting from the baseline (entry -1%, stop -1%, target +1%), each value was widened one at a time while the other two stayed fixed

Limit orders win — that much is settled. The next question is which of these levers actually moves the outcome. Entry price (-1% → -2%), stop-loss (-1% → -2%), and take-profit (+1% → +2%) were each widened on their own, leaving the other two untouched.

272,740 samples; A is the baseline
CombinationFill rateWin rateAvg. returnProfit factor
(win-rate weighted)
A Baseline (-1% / -1% / +1%) 41.96% 54.33% -0.152% 0.684
B Wider entry (-2% / -1% / +1%) 19.25% 56.96% -0.135% 0.723
C Wider stop-loss (-1% / -2% / +1%) 41.96% 62.40% -0.095% 0.798
D Wider take-profit (-1% / -1% / +2%) 41.96% 36.28% -0.282% 0.581
A common misread — profit factor is not "return on capital"

It's tempting to assume that if the average return is -0.095%, the profit factor should be close to 1.0 too — say, 0.99. But the profit factor here isn't measured against total capital at all. It's the total money the winning trades made, divided by the total money the losing trades lost — nothing to do with account size. Because the two are calculated completely differently, their numbers can diverge a lot more than you'd expect.

Working it out with combination C's real numbers (win rate 62.4%, avg. win +0.607%, avg. loss -1.261%):

What the winners made 62.4% × 0.607% ≈ +0.379pp
What the losers lost 37.6% × 1.261% ≈ -0.474pp
Profit factor (divide: 0.379 ÷ 0.474) ≈ 0.798
Average return (subtract: 0.379 − 0.474) ≈ -0.095%

0.379% and 0.474% are both small numbers to begin with — well under 1%. When two small numbers like that are divided, the gap looks huge (20%, i.e. 0.798) — but when they're subtracted, the gap shrinks to a mere -0.095 percentage points. "The winners only made 80% of what the losers lost" describes the same losing structure either way, but if you want to know how much was actually lost relative to capital, the average return is the number to look at — the two metrics simply answer different questions.

Bar chart comparing win rate and average return across combinations A, B, C, D
Widening the stop-loss (C) lifts the win rate by 8.1 points, while widening the take-profit (D) drops it by more than 18 points.
Bar chart of profit factor across combinations A, B, C, D
A naive average-win ÷ average-loss calculation makes D look best at over 1.0 — but once win rate is factored in, D actually has the lowest profit factor of the four (0.581).
The stop-loss has the biggest impact on the outcome. Widening it from -1% to -2% (combination C) came out on top on all three measures — win rate (62.40%), average return (-0.095%), and profit factor (0.798). A stop that's set too tight gets triggered by ordinary short-term noise, locking in a loss on trades that would have reached the target if given more room.
Widening the take-profit does the opposite — it hurts all three measures. Looking only at the size of the average win (+0.607% → +1.081%) makes it seem like a win, but it comes at the cost of losing far more often (win rate 54.33% → 36.28%). Once win rate is factored in, the profit factor drops to 0.581 — the lowest of the four. This is exactly why average win size alone isn't a safe way to judge a change.

Setting the entry price lower (B) only reduces how often you get to buy at all (41.96% → 19.25%). Among the trades that did fill, win rate, average return, and profit factor are all close to the baseline (0.684 → 0.723) — a reminder that "how deep a dip you wait for" matters far less than "how much room you give the stop-loss."

03 Takeaways

  • Limit orders beat market orders. Even with fully random entries, the simple rule of "only buy when it's cheap" improved the average return by 0.22 points and the win rate by 15 points.
  • The stop-loss matters most. Widening it alone improved win rate, average return, and profit factor — all three came out best in this combination (win rate +8.07 points).
  • Widening the take-profit backfires. The average win looks bigger, but the win rate collapse (-18.05 points) drags the profit factor down to the lowest of the four (0.581).
  • The entry price mainly controls opportunity, not quality. It barely affected the win rate, average return, or profit factor of the trades that actually filled.
  • All four combinations still finished with a negative average return. This test set a baseline of "buying with zero judgment, entirely at random" — the next step is to see how much real entry signals (dip patterns, volume, trend filters) improve on that baseline.

Calculated using 5-minute and daily Korean stock market data from July 21, 2025 through July 13, 2026. Market cap is approximated using each stock's current share count, so historical capital raises or reductions aren't reflected.

댓글 쓰기