Position sizing calculator
Bull market
Step 1 — Fundamental check
Strong and consistent cash flow
Market leader in sector
Deterioration detected — reduce to 1 tranche immediately; if continues, reclassify and apply exit rules
Both met = Core High-confidence = Growth
Step 2 — Portfolio constraints
Sector cap: 30% of current portfolio maximum
Core: max 16% by cost (recalibration band)  |  Growth: max 10% by cost
Allocation measured by cost paid, not current market value
Top-up by tranche cost — not by the gap to limit
Bull (SPX above MA200): 10–15% cash  |  Bear (SPX below MA200): 30–40% cash (soft)
Either constraint exceeded — pass on this stock
Core stock  4 tranches x 4% = 16% max  ·  buy cost frozen at recalibration
Always assess current conditions first — if Entry N conditions are already met, enter N tranches (N x 4%) directly without building up one at a time
Entry — if price drops
Entry 14% buy cost
Price forms a bottom — retest of most recent swing low (within 1 month)
Close within 2% above swing low = valid  |  Close below swing low = void, wait
Below MA200: enter 1 tranche  |  Above MA200: enter 2 tranches directly (no EMA condition needed)
Entry 2+4% to total 8% — either path triggers
↘ Drop path
Price falls at least 15% below Entry 1 bottom low — new 2nd bottom forms
↗ Surge path
P EMA20 MA50  ·  MA50 MA200 (MA50 still below MA200)
Held 3 days — price does not break below EMA20
Entry 3+4% to total 12% — either path triggers
↘ Drop path
Price falls at least 15% below Entry 2 bottom low — new 3rd bottom forms
↗ Surge path
P MA200 (price crossed above the 200-day MA)
EMA20 MA200 or MA50 MA200 (at least one MA still lagging)
Held 3 days — price holds above MA200
Entry 4+4% to total 16% (full) — either path triggers
↘ Drop path
Price falls at least 15% below Entry 3 bottom low — new 4th bottom forms
↗ Surge path
P EMA20 MA50 MA200 (full golden alignment)
EMA20 MA50 and MA200 — held 3 days without breaking below EMA20
Entry — if price surges (either scenario, not at full position)
Scenario 1 — Explosive rally
Clean surge above resistance or MA200
Holds above lowest opening of breakout candle for 3 days
→ Add 1 tranche (4%)
Scenario 2 — Continuation add
EMA20 above MA50 above MA200, held 3 days
Price holds above lowest closing — no break below during hold
→ Add 1 tranche (4%) per signal — repeat until full
Position management
Pre-earnings
At 4 tranches (full) — reduce to 3 tranches (12% of current portfolio) immediately
Act on the announcement date — do not wait for Friday review
Failed breakthrough
Price fails to close above highest closing 3 times — each attempt at least 5 trading days apart
Reduce to 2 tranches (8% of current portfolio)
Re-add if drops: wait for new bottom, apply original drop-path entry conditions
Re-add if rises: EMA20 above MA50 above MA200 intact, price above lowest closing — add 1 tranche per condition met
Post-TP re-add (from 2 tranches)
Stage 3: EMA20 and MA50 both above MA200, held 3 days — add to 3 tranches (12%)
Stage 4: same conditions — add to 4 tranches (16%)
Fundamental override
Deterioration at any point — reduce to 1 tranche (4%) immediately, ignore all technicals
Continued deterioration — reclassify as growth; apply growth stop rules to exit
Stop-loss
1 tranche held
No SL — hold indefinitely; allow sideways consolidation
2 to 4 tranches held
MA200 breach — cut to 1 tranche (4% of current portfolio)
Trailing SL
5% below MA50 — reduce to 1 tranche (4%); the final tranche has no SL
Adjust SL price every Friday after close
Take profit
TP target
30% above live EMA20 (dynamic — recalculate every Friday) — reduce to 2 tranches (8%)
Rally TP
During an explosive rally: price closes below previous day's opening — reduce to 2 tranches (8%)
Both TP rules are active simultaneously — whichever triggers first wins
Growth stock  Entry 1: 3% — Entry 2: 7% — 10% max  ·  buy cost frozen
Never enter if price is below MA200 — no exceptions
Skip-ahead: if Entry 2 conditions are already met — enter full 10% directly
Entry — if price drops
Entry 13% buy cost
Price above MA200 — forms a bottom or consolidation pattern
Hold steady; watch for Entry 2 confirmation before adding
Entry 2A+7% to total 10%
Price holds above breakout candle's opening price for 3 days
No strong resistance: highest closing level unable to break, confirmed by long upper wicks
No weakness candle: close not in lower 25% of the candle's range
Entry 2Bfull 10% direct
Price breaks above MA200 — holds above breakout candle's opening price for 3 days (inclusive)
Valid even if EMA20 and MA50 are still below MA200
After TP — re-add plan (position is back at Entry 1)
Price closes near EMA20 within 2% — add 3% to reach 6%
Price closes near MA50 within 2% — add 4% to reach full 10%
Entry — if price surges
Explosive rally
Surge above resistance — holds above lowest opening of breakout candle for 3 days
At 0%: Entry 1 criteria met — enter 3%  |  Entry 2B criteria met — enter full 10%
At 3% (Entry 1 held): Entry 2 criteria met — add 7% to reach full 10%
Position validation
Entry 2 conditions break
Price retreats below breakout candle's opening price — reduce to 3% (Entry 1 level)
Position management
Pre-earnings
At full position (10%) — reduce to 5% (fixed) immediately
Act on the announcement date — do not wait for Friday review
Fundamental override
Deterioration at any point — reduce to 3% (Entry 1 level) immediately, ignore technicals
Stop-loss
MA200 breach
Price closes below MA200 — cut to 0% (observatory monitoring, no physical position)
Fundamentals OK + MA200 recovery held 3 days — re-enter full 10% immediately
Fundamentals deteriorate — cut all (0%), do not re-enter
Trailing SL
5% below MA50 — exit full position (0%)
Adjust SL price every Friday after close
Take profit
TP target
30% above live EMA20 (dynamic — recalculate every Friday) — reduce to 3% of current portfolio
Rally TP
During an explosive rally: price closes below previous day's opening — reduce to 3%
Both TP rules are active simultaneously — whichever triggers first wins