How to Set Take-Profit and Stop-Loss for HK/US Stocks (the 10%/5% Rule)

How should you set take-profit and stop-loss? Not with one universal percentage, but with two numbers written down before you buy: the loss at which you leave (the stop) and the gain at which you start banking (the target). The common "5% stop / 10% target" is a reasonable starting point, but the stop distance should match how much the stock normally moves in a day — calibrate it with ATR instead of applying the same number to every ticker. Then turn both numbers into a rule you can backtest and follow mechanically, so emotion has nowhere to step in.

Key takeaways

  • A stop's job is to cap the loss on one trade, not to call the bottom. Set it before you buy; afterwards it only moves up, never down.
  • Three ways to set a stop: fixed percent, technical level, or an ATR multiple. Fixed percent is simplest; ATR fits the stock's own volatility best.
  • On a stock that moves 3% a day, a 5% fixed stop is only about 1.5 days of ordinary noise — it gets hit far too easily.
  • Three ways to take profit: fixed target, trailing stop, or scaling out. Scaling out balances "money in the bank" with "riding the trend."
  • Stop distance drives position size: shares = risk per trade ÷ loss per share. Do not pick a share count first and then hunt for a stop.

Stop-loss: answer "what's my max loss?" first

A stop is not a judgment call ("I think it will bounce"). It is arithmetic: if this trade is wrong, how much tuition am I willing to pay? Three common methods:

  • Fixed percentage: 5%–10% below cost. Simple, easy to backtest, consistent across stocks — but it knows nothing about how much this particular stock moves.
  • Technical level: exit on a break of key support, the prior low, or the 20-day moving average. Fits the chart, but needs watching, and different people draw the level in different places.
  • Volatility (ATR): stop distance = N × ATR, with N usually between 2 and 3. Volatile stocks automatically get more room; quiet stocks get a tighter stop.

Whichever you choose, the principle is the same: set it before you buy, and keep the loss on a single trade to 1%–2% of total capital — which is a position-sizing job, covered in position sizing.

Why a 5% stop is too tight for some stocks

ATR (average true range) measures how far a stock travels on an average day. In Stock Compass the atr14_pct indicator expresses the 14-day ATR as a percentage of price, so you can compare across stocks: a utility with atr14_pct = 1.2 and a tech name with atr14_pct = 3 make the same 5% stop mean completely different things.

For the stock with atr14_pct = 3, a 5% stop is 5% ÷ 3% ≈ 1.67 ATR. Even if your directional call is exactly right, about a day and a half of "normal-sized" pullback is enough to touch your stop — before counting gaps. The trend did not prove you wrong; noise shook you out, and then you watched the stock resume the move you expected.

The reverse also hurts. For the stock with atr14_pct = 1.2, a 5% stop is more than 4 ATR — wastefully wide. You have given the trade more room than it needs, which forces a smaller position and lower capital efficiency.

A simple calibration, using 2.5 × ATR:

atr14_pctStop distance at 2.5 × ATRNote
1.2%3%Low volatility; the stop can be tighter
2%5%The classic 5% fits exactly
3%7.5%Needs more room or you get stopped repeatedly
4%10%High volatility; consider a smaller size or skip it

So a "5% stop" is not wrong — it just happens to suit stocks that move about 2% a day. Glancing at atr14_pct before you buy, then choosing the stop percentage, is the cheapest way to upgrade a fixed-percent stop into an ATR stop.

Take-profit: don't give the gains back

Harder than stopping out is taking profit — you will not leave while it is up, then a pullback eats the gain. Behavioural finance calls this the disposition effect: people tend to sell winners too early and hold losers too long. Three executable approaches:

  • Fixed target: trim or exit at +10%, +15% or +20%. High certainty and easy to backtest, but it can miss the big trend.
  • Trailing stop: no ceiling; instead the stop rises with each new high — for example, "exit on an 8% pullback from the 20-day high." Winners run; you leave only on a defined retreat.
  • Scale out: sell half at the first target, trail the other half. Some profit is banked; some stays in for the trend.

A common way to set the target is the "R multiple": work out the stop distance first (call it 1R) and place the target at no less than 2R. With that ratio, a win rate of only 40% still produces positive expectancy over time — win rate and reward-to-risk both matter, and neither works alone.

A worked example you can follow with a calculator

Suppose a 100,000 USD account with 1% risk per trade, so at most 1,000 USD lost. You are looking at a 50 USD stock with atr14_pct = 3, meaning ATR ≈ 1.50 USD.

Step 1: set the stop. At 2.5 × ATR: 1.50 × 2.5 = 3.75 USD. Stop price = 50 − 3.75 = 46.25 USD, or −7.5%.

Step 2: back out the position size. Maximum loss per share is 3.75 USD, so 1,000 ÷ 3.75 ≈ 266 shares; round to 260. Position value = 260 × 50 = 13,000 USD, or 13% of the account.

Step 3: set the target. The 2R target = 50 + 3.75 × 2 = 57.50 USD (+15%). Sell 130 shares there, locking in 130 × 7.50 = 975 USD — nearly the whole risk budget recovered. Trail the remaining 130 shares with "8% off the 20-day high."

Step 4: compare with a 5% fixed stop. Stop at 47.50 USD, 2.50 USD loss per share, so 400 shares (20,000 USD). The position is bigger, but the stop is only 1.67 ATR — an ordinary day and a half of movement can trigger it. Which is better is not a matter of feel; it is a matter of backtesting.

Either way the maximum loss on the trade is pinned near 1,000 USD. What changes is the trade-off between "probability of being shaken out by noise" and "position size."

Combine into one backtestable rule

Write the stop, the target and the holding period as explicit conditions:

ParameterSettingIndicator
Stop-losscost −7.5%floating_loss_pct > 7.5
First target (sell half)+15%floating_gain_pct >= 15
Trailing stop8% off the 20-day highpct_from_high_20d < −8
Time stopheld 30 days without a 3% gainholding_days >= 30 and floating_gain_pct < 3

The time stop is the one most people forget. A trade that goes nowhere ties up capital and attention. Give it a deadline.

A rule like this can be backtested directly — see its historical win rate, profit factor and max drawdown on your own watchlist instead of guessing. At minimum, compare two variants: the 5% fixed stop and the 2.5 × ATR stop, and count how often each one "stopped out, then recovered."

How to set this up in Stock Compass

Stock Compass does not connect to a broker, place orders, or recommend stocks. It scans your holdings and watchlist every day against the rules you write and tells you which conditions are met. The rule above, written as a strategy:

{
  "name": "ATR-calibrated stop + scale-out",
  "market": "us",
  "rules": {
    "buy":  { "v": 2, "outerOp": "OR", "groups": [ { "innerOp": "AND", "conditions": [ { "indicator": "is_20d_breakout", "operator": "==", "value": 1 }, { "indicator": "adx_14", "operator": ">", "value": 20 }, { "indicator": "atr14_pct", "operator": "<=", "value": 3.5 } ] } ] },
    "add":  { "v": 2, "outerOp": "OR", "groups": [] },
    "trim": { "v": 2, "outerOp": "OR", "groups": [ { "innerOp": "AND", "conditions": [ { "indicator": "floating_gain_pct", "operator": ">=", "value": 15 } ] } ] },
    "exit": { "v": 2, "outerOp": "OR", "groups": [
      { "innerOp": "AND", "conditions": [ { "indicator": "floating_loss_pct", "operator": ">", "value": 7.5 } ] },
      { "innerOp": "AND", "conditions": [ { "indicator": "floating_gain_pct", "operator": ">", "value": 0 }, { "indicator": "pct_from_high_20d", "operator": "<", "value": -8 } ] },
      { "innerOp": "AND", "conditions": [ { "indicator": "holding_days", "operator": ">=", "value": 30 }, { "indicator": "floating_gain_pct", "operator": "<", "value": 3 } ] }
    ] }
  }
}

Condition by condition:

  • buy · is_20d_breakout == 1: close at a new 20-day high; the entry trigger.
  • buy · adx_14 > 20: trend-strength filter to avoid false breakouts inside a range (see ADX).
  • buy · atr14_pct <= 3.5: only buy stocks moving 3.5% a day or less, so the 7.5% stop is always at least 2 ATR. The stop in a rule is a fixed number, so this line keeps volatility inside the range where that number makes sense.
  • trim · floating_gain_pct >= 15: unrealised gain reaches 15%; flag to sell half.
  • exit · floating_loss_pct > 7.5: unrealised loss exceeds 7.5%; stop-loss.
  • exit · floating_gain_pct > 0 and pct_from_high_20d < −8: while in profit, more than 8% below the 20-day high; trailing stop (see distance from 20-day high).
  • exit · holding_days >= 30 and floating_gain_pct < 3: held 30 days without reaching a 3% gain; time stop.

Note that percentages in rules are plain numbers — 5 means 5% — and floating_loss_pct is positive when the position is losing.

Common mistakes

  • One percentage for every stock: a flat 5% without checking atr14_pct wastes room on quiet stocks and gets shaken out on volatile ones.
  • Lowering the stop when price reaches it: "one more day" is the number-one way stops stop working. A stop moves up only, never down. See why you can't execute your stop-loss.
  • Choosing the share count first, then finding a stop: backwards. Set the stop distance first, then derive shares from the risk budget.
  • Target smaller than the stop: a rule that risks 7.5% to make 5% needs a win rate above 60% just to break even, and most people do not have that.
  • Writing the rule but never testing it: an untested rule tells you nothing about whether it holds on your watchlist, so you will not trust it when it fires.

Summary

Take-profit and stop-loss come down to two numbers written before you buy, plus a calibration method that matches the stock's volatility. Use atr14_pct to check that the stop is at least 2 ATR away, use the R multiple to keep the target no smaller than the stop, back the position size out of the risk budget, then backtest the whole rule and put it in the strategy you scan every day. There is no magic in the numbers themselves — only in numbers you execute consistently.

FAQ

What percentages should I use for stop-loss and take-profit?

There's no universal number. A -5% stop / +10% target is a common short-term starting point, and longer-term stops can widen to 10%–15%. Better than any fixed figure is to check the stock's atr14_pct and keep the stop at least 2 ATR away, then set the target at no less than twice the stop distance. Whatever you choose, set it before you buy, execute it consistently, and validate it with a backtest.

Should I use a fixed target or a trailing stop?

Use a fixed target if you want to lock in certain gains and trade often; use a trailing stop if you want to ride big trends and can tolerate giving some back. Many people scale out: bank half at the first target, then trail the rest with a rule such as "exit 8% below the 20-day high." Backtest both on your own watchlist rather than choosing on feel.

What ATR multiple should I use for the stop?

Most people use 2 to 3 times the 14-day ATR. Below 2 ATR, ordinary daily noise can trigger the stop even when the trend is intact; above 3 ATR, the loss per share grows so much that the position has to shrink a lot to stay within your risk budget. Start at 2.5, then let the backtest tell you whether tighter or wider works better for your stocks.

Can I change a stop-loss after I have set it?

Move it up, never down. Raising the stop as price rises is what a trailing stop does, and it is fine. Lowering it when price approaches is the most common way stops fail, because it turns a defined loss into an open-ended one. If you find yourself wanting to lower it, the original stop was probably set without checking volatility.

Is setting stops different for Hong Kong stocks versus US stocks?

The method is the same, but the inputs differ. Many smaller HK names move more per day and gap more often, so checking atr14_pct before choosing a stop percentage matters even more there. Trading costs also eat into tight stops and small targets, so factor them in when you set the numbers (see the guide on Hong Kong trading fees).