The Position Sizing Framework: How I Decide 1-3% Risk on Every Trade
The Position Sizing Framework: How I Decide 1-3% Risk on Every Trade
Most losing trades are not from bad setups. They are from good setups sized wrong. Three questions I answer before every trade, worked through a real MNQ example — plus the four regimes where the framework quietly fails.
The most expensive lesson from a decade of trading — documented in Five Painful Lessons — was not that I picked wrong trades. It was that I sized right trades wrong. Specifically, I sized on how much I liked the setup rather than on what the trade would actually cost the account if I was wrong. Those are two entirely different variables, and they diverge exactly at the moment when it matters most.
Sizing is the one part of trading where discipline cannot fix the problem. If your framework says "size on conviction" and your conviction is high, you will size big every time you feel certain — which is exactly when small-cap earnings gaps and post-CPI reversals will punish you the most. The fix is not more discipline. The fix is a framework that removes conviction from the sizing decision entirely.
💡 Core idea: Position sizing is a mechanical calculation on three inputs — where the stop is, what the account can afford to lose, and how many contracts that permits. Everything else, including how good the setup looks, belongs to a different question.
- The three questions that decide sizing on every trade
- R-multiple math — why R matters more than win rate
- A worked MNQ case study, contracts and all
- Reality Check — where the sizing framework still fails
1. The Three Questions That Decide Sizing
Every trade I take, on any instrument, goes through the same three-question sequence before I click. The order is fixed. Skipping any step means the sizing was decided on something other than mechanics — which, empirically, is where every one of my sizing mistakes has come from.
① Where is the structural stop?
Not "where should I put a tight stop." Not "where does my platform default to." Where does the underlying structural thesis actually invalidate? For a long off an HTF order block, that is below the sweep low. For a short after a bearish CHoCH, that is above the last structural high. The stop is decided by the structure, not by the R/R I want to see on paper.
② What is the maximum this trade can cost the account?
Expressed as a percentage of current account equity, not last month's equity, and not a fixed dollar amount decided when the account was 40% smaller. I use a fixed 1% to 3% band depending on setup grade (defined below). The band exists precisely so the "I feel really good about this one" version of me cannot slip a 5% trade past the framework.
③ How many contracts does that permit?
Pure division. Contracts = (account × risk %) ÷ (points from entry to stop × dollar-per-point). Round down always. There is no decision here — the answer is whatever the math produces. If the answer is zero contracts, the trade does not happen at this account size.
Setup grade — the input to Question 2 — is where the only judgement call sits. My grades map to the confluence stack:
| Grade | Confluence | Risk band |
|---|---|---|
| A+ | All 5 volume layers align + HTF context + Kill Zone + no news | 2 – 3% |
| A | 4 layers + HTF alignment + session | 1 – 2% |
| B | 3 layers + session | 0.5 – 1% |
| Below B | 2 or fewer layers, missing HTF, or news-adjacent | Do not trade |
The 5-layer volume stack referenced here is the Institutional Volume Framework that anchors every setup grade above. Sizing without that upstream filter is guessing.
2. R-Multiple Math — Why R Matters More Than Win Rate
Once sizing is mechanical, the second half of the framework is expressing every trade in R-multiples — where 1R = the dollar amount you were prepared to lose on that specific trade, from Question 2 above. A trade that hits its 3.5× stop-distance target closes at +3.5R. A trade that hits its stop closes at −1R. This normalisation is what makes trades comparable across instruments and account sizes.
🧮 Expectancy formula:
E = (win rate × avg win R) − (loss rate × avg loss R)
For a system that wins 45% of the time at an average of +3.5R and loses 55% of the time at −1R (the setup grade in the case study below), the expectancy per trade is:
E = 1.575 − 0.55
E = +1.025R per trade
Every trade this system takes has, on average, a positive expected value of roughly one full R — meaning if 1R is $200, each trade generates about $205 in expected profit before variance. This is why R matters more than win rate. A 35% win rate at +5R is a better system than a 65% win rate at +1.2R, even though the second one feels better in the moment. The framework does not care how it feels.
🎯 The consequence: a positive-expectancy system with mechanical sizing needs only two things — enough sample size and enough capital to survive the drawdown path — to compound over time. Neither of those is helped by sizing on conviction. Both are helped by sizing on the framework.
For the broader mathematical foundation of the Kelly criterion and expectancy in trading, see Investopedia's overview of the Kelly criterion. I use a fractional-Kelly variant of the sizing bands above, but the math discipline is the same.
3. A Worked MNQ Case Study — Contracts and All
Here is the framework applied to a Micro E-mini Nasdaq setup, with the three questions answered in order and the contract count derived mechanically.
🔼 Figure 1: the setup that produced the numbers below. Entry, structural stop, and target are pre-defined on the chart before the sizing question is asked.
The setup context: MNQ long, HTF 1H bullish CHoCH confirmed, price mitigating a 1H demand zone, 5M micro-CHoCH inside the zone at the NY Open Kill Zone, three of the five volume layers confirming (CVD divergence, CMF positive cross, OBV higher low). Setup grade: A — four layers plus session, missing one layer for A+.
Answering the three questions
Q1 — Structural stop: below the 5M sweep low at $27,370, 110 points below entry.
Q2 — Account risk: Grade A → 1.5% of $50,000 account = $750 maximum acceptable loss.
Q3 — Contract count: $750 ÷ (110 pts × $2/pt) = 3.41 → round down to 3 contracts.
🔼 Figure 2: the same three answers expressed as a spreadsheet. The contract count is not a decision — it is the output of the math.
Notice what the framework does not ask. It does not ask how confident I feel. It does not ask what the win streak is. It does not ask what the last three trades did. The three inputs — stop, risk band, math — are the only variables that touch the contract count. Every other feeling I have about the trade is expressed by clicking or not clicking, not by resizing.
💎 What this trade actually risks: 3 contracts × 110 points × $2/pt = $660 at risk (1.32% of the $50k account, comfortably inside the Grade A 1 – 2% band), $2,310 in reward at target. Realised R/R: 3.5. Expectancy on the grade-A sample: +1.025R per trade average, meaning across many similar trades this position expected to make roughly $225 net after variance.
4. Reality Check — Where the Sizing Framework Still Fails
The three-question framework produces the correct per-trade sizing decision. It does not automatically produce a survivable portfolio, and there are four ways I have watched it fail in real accounts.
① Correlated concurrent positions
Two MNQ longs plus two ES longs plus a NQ options position all sized at 1% each is not five 1% trades — it is one 4-5% trade on the same underlying macro variable. When the S&P sells off, all five stops go together. Correlated positions must be summed for risk, not counted separately.
② Slippage on stops in thin sessions
The framework assumes the stop fills at the stop price. In thin overnight sessions, at FOMC gap opens, or during flash-crash moments, the stop can fill 20 – 100 points beyond the level. A 1% planned risk becomes a 1.5 – 3% realised risk. Position sizing should assume worst-plausible slippage, not best-case fill.
③ Holding a sized position through a scheduled event
Sizing was decided under the market's normal-session volatility distribution. Holding the same size through FOMC, CPI, NFP, or an earnings release means holding a size that assumes the wrong distribution. Either close before the event or resize down explicitly — do not let intra-day sizing wander into event exposure by inertia.
④ Resizing mid-trade emotionally
Adding contracts to a losing position to average down, or cutting size on a winner because it "feels overextended," breaks the framework retroactively. The sizing decision belongs to entry. Once the trade is open, sizing is fixed — the only decisions left are the stop and the target.
Even with all four failure modes controlled, the framework does not eliminate losing trades. It only ensures that the losing trades cost the account the amount the framework said they would — no more. That is what makes the drawdowns survivable, and survivable drawdowns are the entire prerequisite for the +1.025R expectancy to actually compound.
Sizing is the one part of trading that has to be right on every trade, because compounding is multiplicative and one oversized loss can undo a hundred correctly sized winners. Discipline cannot save a bad sizing rule. A good sizing rule can survive an occasional lapse in discipline. Pick the one that scales.
📚 Related Reading on This Blog
Sizing sits downstream of setup selection and upstream of execution. The pieces around it on this blog:
- Five Painful Lessons — Lesson 1 is the exact sizing mistake this framework prevents
- The Institutional Volume Framework — the 5-layer stack that produces the setup grade upstream
- The 5-Layer Chart Framework — the setup filter that catches Below-B grades before sizing
- Multi-Timeframe Top-Down SMC — where the structural stop for Question 1 comes from
- Kill Zones Decoded — the session gate that promotes a B setup to an A setup
⚠️ Disclaimer: This article is for educational and informational purposes only and does not constitute financial, investment, or trading advice. Trading involves substantial risk of loss. Position sizing choices depend on individual circumstances, account size, tax jurisdiction, and risk tolerance. Always conduct your own research and consult a licensed financial advisor before making any investment decision. Read the full disclaimer →
About the Author
Dongmin Park is a software engineer with over 15 years in embedded systems (automotive and defense industries) and 10+ years of active trading across Korean equities, US options, MNQ futures, and crypto. He started trading on a Kiwoom Securities account in Seoul in 2016 and now lives in Ingolstadt, Germany, after relocating in 2022.
Coder Trader is an ongoing project to document where systematic engineering discipline meets discretionary trading. Say hi on X, look at the code on GitHub, or email hello@codertrader.com.


Comments
Post a Comment