3-5-7 rule for options trading
The 3-5-7 rule dey limit risk per trade to 3%, per underlying to 5%, and 7% of total account. We go check where dis rule come from and if e dey work well with data.
3-5-7 rule na one way wey traders dey use to sabi how much dem go take for one trade. Dem dey see am for options forums and broker blogs: risk pass 3% of your account for one trade, pass 5% for one stock, and pass 7% for all your open positions together. E dey control size, no be which trade to pick. E no tell you wetin to trade, and e no fit create advantage wey no dey there before.
Wetin 3-5-7 rule dey talk about
Di three numbers dey talk about money wey you fit lose, no be money wey you put inside.
- 3% per trade. Di maximum loss for one position no go pass 3% of your account money. For account wey get $100,000, dat limit na $3,000.
- 5% per stock. All positions for di same stock count as one. If you get long call, call spread, and short put for one stock, dem all dey use one 5% budget.
- 7% total. Total maximum loss for all open positions no go pass 7% of your account money at any time.
Di first limit dey control one wrong idea. Di second limit dey control di same wrong idea wey you show for three different ways. Di third limit dey control when many positions dey move together.
Options make di first number easy to calculate. For long call or put, di money wey you pay na di maximum loss, so 3% cap na cap on money wey you risk. Imagine account wey get $100,000 and contract wey cost $4.50: one contract dey for 100 shares, e cost $450, and six of dem put $2,700 for risk, inside di $3,000 line. For defined risk spread, di maximum loss na di difference between strike prices minus di credit wey you collect. For position wey no get defined risk like naked short call, no calculation fit show di maximum loss, and di rule wey dem usually talk about no get anything to say about am. If you use margin requirement, or mental stop, instead of true maximum loss, you dey break di calculation wey di rule dey depend on.
Where di rule come from
Search results show 3-5-7 rule as correct way to do things. E be like common sense. No paper, no data, and no published calculation dey behind dis three numbers, and older versions dey talk about share trading, no be options. Di correct weight to give di specific numbers na weight wey you give to convention, no be to finding.
Di family wey di rule belong to dey well documented. Fixed fractional sizing, where every position dey risk constant share of account equity, dey inside twentieth century trading books. E formal ancestor na Kelly criterion (John Kelly, 1956), wey dey calculate correct fraction from estimated edge and payoff odds, and wey dem usually use half or quarter of di formula's result for markets, because if you over-estimate edge, you fit lose all your money. 3-5-7 rule no dey estimate, e just pick small number. Dat substitution na di whole design: e dey work even if you no sabi anything, but e no dey optimal for anything.
Wetin 5% per-underlying cap dey measure against
Cap per name only make sense when you compare am to how far one name dey move. Di table below show seven common tickers for twelve months wey end June 30, 2026, and e measure close to close moves on regular session prices.
The exact SQL behind every number
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'JNJ', 'AAPL', 'MSFT', 'NVDA', 'TSLA')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-07-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
moves AS (
SELECT ticker, d,
100 * (px / any(px) OVER (PARTITION BY ticker ORDER BY d
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) - 1) AS move_pct
FROM daily
)
SELECT ticker,
count() AS sessions,
round(quantileDeterministic(0.5)(abs(move_pct), cityHash64(ticker, d)), 2) AS median_abs_move_pct,
round(quantileDeterministic(0.95)(abs(move_pct), cityHash64(ticker, d)), 2) AS p95_abs_move_pct,
round(100 * countIf(abs(move_pct) >= 3) / count(), 1) AS pct_days_beyond_3,
round(min(move_pct), 2) AS worst_day_pct
FROM moves
WHERE isFinite(move_pct)
GROUP BY ticker
ORDER BY p95_abs_move_pctDi range for one year dey wide. Di steadiest name for di table, SPY, get median absolute one-day move of 0.46% and spend 0% of its 250 sessions moving 3% or more for any direction. Di busiest, TSLA, get median of 1.83%, cross di 3% mark on 30.4% of sessions, and get one worst session of -8.39%. Its 95th percentile day, 5.45%, na more than three times di 1.62% figure wey dey top of di table.
One fixed percentage cap dey do different work for different names. 5% budget per name for stock wey get 0.46% typical day na loose constraint. Same 5% for name wey dey move 1.83% on median day, and much further on outlier, go finish quick. Sizing conventions wey dey scale di cap by di stock's own volatility dey exist because of dis gap, and liquid versus volatile options dey explain how di difference show for di contracts themselves.
Losses dey come together
7% aggregate limit na di part of di rule wey get most weight, and e dey target real market property: bad sessions no dey spread evenly. Next table measure same seven names for same window, tracking di worst five session stretch and di deepest fall from running high inside di window.
The exact SQL behind every number
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'JNJ', 'AAPL', 'MSFT', 'NVDA', 'TSLA')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-07-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
win AS (
SELECT ticker, d, px,
any(px) OVER (PARTITION BY ticker ORDER BY d
ROWS BETWEEN 5 PRECEDING AND 5 PRECEDING) AS px_5_ago,
max(px) OVER (PARTITION BY ticker ORDER BY d
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_high
FROM daily
)
SELECT ticker,
round(min(100 * (px / px_5_ago - 1)), 2) AS worst_5_session_pct,
round(min(100 * (px / running_high - 1)), 2) AS deepest_drawdown_pct,
round(100 * countIf(px / running_high - 1 <= -0.1) / count(), 1) AS pct_days_10pct_below_high
FROM win
WHERE isFinite(px_5_ago)
GROUP BY ticker
ORDER BY deepest_drawdown_pctDi deepest fall inside di window belong to MSFT at -34.99%, and dat name dey more than 10% under its running high on 59% of di window's sessions. Its worst five session stretch measure -14.41%. For di other side, KO bottomed -8.49% under its running high and spend 0% of sessions dat far down. Every reading here start its running high on July 1, 2025, so dis na figures inside di window, no be all-time figures.
Read dat against 3% per trade cap. Trader wey hold three positions, each one sized at full 3% ceiling, dey carry 9% for risk, above di 7% aggregate limit already, and dem three positions fit easily be one exposure wey wear three names. Aggregate cap and per underlying cap na di parts of di rule wey dey do di hard work, wey also be di subject of concentration risk.
Di index tell similar story for longer time. Eleven calendar years of one-day moves for S&P 500 tracker:
The exact SQL behind every number
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2015-12-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
moves AS (
SELECT d,
100 * (px / any(px) OVER (ORDER BY d ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) - 1) AS move_pct
FROM daily
)
SELECT toYear(d) AS year,
count() AS sessions,
countIf(move_pct <= -1) AS days_down_1pct,
countIf(move_pct <= -3) AS days_down_3pct,
round(min(move_pct), 2) AS worst_day_pct
FROM moves
WHERE isFinite(move_pct) AND toYear(d) >= 2016
GROUP BY year
ORDER BY yearSessions wey close 3% or more lower dey cluster into few years instead of coming on schedule. 2020 carry 16 of dem and worst session of -11.63%, while 2017 carry 0. Number of sessions wey close 1% or more lower dey change from 4 for di quietest year to 65 for di busiest. Final row cover 123 sessions wey end June 30, 2026, so e be partial year. Fixed 7% aggregate cap dey calibrated for quiet years by construction and e face real test for loud ones. Long option fit also lose all its premium overnight without any daily move of dat size wey dey print on di underlying, di mechanism overnight gaps dey explain.
Wetin di rule handle, and wetin e leave out
Fixed fraction rule handle di failure mode wey dey empty accounts fastest: one position wey big enough to matter. Any small constant number better pass no constant number, and one wey person fit remember go dey used under pressure, wey be when sizing decisions really dey happen.
Wetin e leave out na most of di detail. E no dey scale with volatility, so 3% stake for steady name and 3% stake for name wey dey move 1.83% per day dey count as same bet. E dey ignore correlation across tickers, so portfolio of seven positions inside di caps fit still be one trade. E no dey talk about time decay, wey dey reduce long option value for quiet sessions without any bad move at all (option theta dey cover mechanics). E dey ignore costs, and commissions plus bid-ask spread na recurring drag wey percentage cap no dey see (what it costs to trade options dey give figures for dat). E also assume say maximum loss fit know, wey no be true for short undefined risk positions.
FAQ
Wetin be 3-5-7 rule for options trading?
E be position sizing convention: no pass 3% of account equity for risk on one trade, no pass 5% for any one stock, and no pass 7% for risk across all open positions together. Di numbers dey describe maximum loss, no be capital wey you put inside.
3-5-7 rule official or proven rule?
No. E dey circulate as trading folk wisdom, with no published derivation or study wey dey behind di specific figures. Di bigger family wey e belong to, fixed fractional sizing, dey well documented, and Kelly criterion na e formal version.
How 3-5-7 rule apply to long call or put?
Premium wey you pay na maximum loss for long option, so 3% limit dey cap total premium for one trade. For example account of $100,000 dat na $3,000 of premium, wey at $4.50 contract price dey work out to six contracts.
Why 5% per-underlying limit dey separate?
Several positions for one stock dey behave like one exposure during big move for dat stock. For twelve months wey end June 30, 2026, TSLA move 3% or more on 30.4% of sessions, and separate contracts for dat name go don move together for each of dem days.
Rule fit covered calls and other income positions?
Maximum loss for covered call na di stock position itself minus di premium wey you collect, wey usually dey far above 3% of account, so di cap dey apply to share position instead of option leg. Covered calls dey explain payoff arithmetic.
Every figure above come from stored query wey dey use real market data, and SQL for each table dey one click away if you want re-run am for different set of names on Strasmore terminal.