| name | risk-management-trading-skill |
| description | Master trading risk management and capital preservation. Use for position sizing methods (Fixed %, Kelly Criterion, Optimal f, Volatility-based, Risk Parity), stop loss strategies (ATR-based, percentage, structure-based, time-based, trailing stops), take profit strategies (R multiples, trailing stops, partial exits), risk/reward ratios, portfolio risk management (correlation, diversification, hedging), drawdown management (max daily/weekly loss, recovery strategies), account size rules, trading psychology (discipline, emotional control, trading journal), money management (compounding, anti-martingale), and preserving capital for long-term trading success.. Also use for Thai keywords "ความเสี่ยง", "จัดการความเสี่ยง", "risk management", "ป้องกันความเสี่ยง", "เทรด", "ซื้อขาย", "การเทรด", "trading", "ลงทุน", "การลงทุน", "นักลงทุน", "investment" |
🛡️ Risk Management Trading Mastery Skill
Master the #1 factor for trading success - not losing money
"Rule #1: Don't lose money. Rule #2: Don't forget Rule #1." - Warren Buffett
📚 Table of Contents
- Risk Management Fundamentals
- Position Sizing Methods
- Stop Loss Strategies
- Take Profit Strategies
- Risk/Reward Ratios
- Portfolio Risk Management
- Drawdown Management
- Account Size & Leverage
- Trading Psychology
- Real Examples & Calculations
1. Risk Management Fundamentals {#fundamentals}
🎯 Why Risk Management is #1
Harsh Reality:
❌ 90% of traders lose money
❌ Not because of bad strategies
✅ Because of poor risk management!
Example:
- Trader A: 60% win rate, no risk management → Blows account
- Trader B: 40% win rate, strict risk management → Profitable
✅ Survival > Profitability
✅ Stay in the game long enough to win
Core Principles:
1. Never risk more than 1-2% per trade
2. Always use stop losses
3. Risk/reward minimum 1:2
4. Don't overtrade
5. Preserve capital above all
6. Drawdowns are inevitable (manage them)
7. Position sizing > Entry timing
2. Position Sizing Methods {#position-sizing}
🎯 Method 1: Fixed Percentage Risk ⭐⭐⭐⭐⭐ (Most Popular)
Formula:
Position Size = (Account Balance × Risk %) / Stop Loss Distance
Example:
Account: $10,000
Risk: 2% per trade = $200
Entry: $50
Stop Loss: $48
Stop Distance: $2
Position Size = $200 / $2 = 100 shares
Max Loss = 100 shares × $2 = $200 ✅
Python Code:
def fixed_percent_position_size(account_balance, risk_percent, entry_price, stop_loss_price):
"""
Calculate position size based on fixed % risk
Args:
account_balance: Total account equity
risk_percent: Risk per trade (e.g., 2.0 for 2%)
entry_price: Entry price
stop_loss_price: Stop loss price
Returns:
Position size in shares/units
"""
risk_amount = account_balance * (risk_percent / 100)
stop_distance = abs(entry_price - stop_loss_price)
position_size = risk_amount / stop_distance
return int(position_size)
# Example usage
account = 10000
risk = 2.0 # 2%
entry = 50.0
stop_loss = 48.0
size = fixed_percent_position_size(account, risk, entry, stop_loss)
print(f"Position Size: {size} shares")
print(f"Total Investment: ${size * entry:.2f}")
print(f"Max Loss: ${size * (entry - stop_loss):.2f}")
Advantages:
✅ Simple to calculate
✅ Adjusts to account size
✅ Consistent risk across trades
✅ Best for beginners
🎯 Method 2: Kelly Criterion ⭐⭐⭐⭐ (Advanced)
Formula:
Kelly % = (Win Rate × Avg Win - Loss Rate × Avg Loss) / Avg Win
Or simplified:
Kelly % = (Win Rate - Loss Rate) / Avg Win/Loss Ratio
⚠️ Use fractional Kelly (0.25 to 0.5 Kelly) to reduce volatility
Example:
Win Rate: 60%
Avg Win: $300
Loss Rate: 40%
Avg Loss: $200
Kelly % = (0.6 × 300 - 0.4 × 200) / 300
= (180 - 80) / 300
= 0.333 (33.3%)
Fractional Kelly (0.5):
Position Size = 0.5 × 33.3% = 16.65% of account
⚠️ Full Kelly is aggressive! Use 0.25-0.5 Kelly
Python Code:
def kelly_criterion(win_rate, avg_win, avg_loss, fraction=0.5):
"""
Calculate Kelly position size
Args:
win_rate: Probability of winning (0-1)
avg_win: Average winning trade $
avg_loss: Average losing trade $ (positive number)
fraction: Kelly fraction (0.25 to 0.5 recommended)
Returns:
Position size as % of account
"""
loss_rate = 1 - win_rate
kelly = (win_rate * avg_win - loss_rate * avg_loss) / avg_win
fractional_kelly = kelly * fraction
return max(0, fractional_kelly) # Never negative
# Example
kelly = kelly_criterion(win_rate=0.60, avg_win=300, avg_loss=200, fraction=0.5)
print(f"Kelly Position Size: {kelly:.2%} of account")
Advantages:
✅ Mathematically optimal
✅ Maximizes long-term growth
✅ Accounts for edge
Disadvantages:
❌ Requires accurate win rate data
❌ Can be very aggressive (full Kelly)
❌ Assumes constant win rate (not realistic)
🎯 Method 3: Volatility-Based (ATR) ⭐⭐⭐⭐⭐
Formula:
Stop Distance = ATR × Multiplier (typically 2-3)
Position Size = (Account × Risk %) / Stop Distance
Example:
Account: $10,000
Risk: 2% = $200
ATR: $1.50
Multiplier: 2
Stop Distance: $3.00
Position Size = $200 / $3 = 66.67 shares
Why ATR-Based is Best:
✅ Adapts to market volatility
✅ Wider stops in volatile markets (avoid stop hunts)
✅ Tighter stops in calm markets (maximize capital efficiency)
✅ Works across all markets and timeframes
Python Code:
import pandas as pd
import numpy as np
def calculate_atr(df, period=14):
"""Calculate Average True Range"""
high = df['high']
low = df['low']
close = df['close']
tr1 = high - low
tr2 = abs(high - close.shift())
tr3 = abs(low - close.shift())
tr = pd.concat([tr1, tr2, tr3], axis=1).max(axis=1)
atr = tr.rolling(window=period).mean()
return atr
def atr_position_size(account, risk_percent, current_price, atr, atr_multiplier=2.0):
"""
Calculate position size using ATR-based stop
Args:
account: Account balance
risk_percent: Risk per trade (%)
current_price: Current market price
atr: Current ATR value
atr_multiplier: Stop loss = ATR × this (default 2.0)
Returns:
Position size in units
"""
risk_amount = account * (risk_percent / 100)
stop_distance = atr * atr_multiplier
position_size = risk_amount / stop_distance
# Calculate shares (for stocks)
shares = int(position_size)
return shares
# Example
account = 10000
atr = 1.50
price = 50.0
size = atr_position_size(account, risk_percent=2.0, current_price=price, atr=atr)
print(f"Position Size: {size} shares")
print(f"Stop Loss: ${price - (atr * 2):.2f}")
print(f"Risk: ${size * (atr * 2):.2f}")
🎯 Method 4: Risk Parity (Portfolio-Level)
Concept:
Allocate capital so each position has equal risk
Example:
3 positions:
- Stock A: High volatility (σ = 40%)
- Stock B: Medium volatility (σ = 25%)
- Stock C: Low volatility (σ = 15%)
Allocation:
- Stock A: Smallest position (10%)
- Stock B: Medium position (15%)
- Stock C: Largest position (25%)
Result: Equal risk contribution
3. Stop Loss Strategies {#stop-loss}
🎯 Stop Loss Types
1. ATR-Based Stop ⭐⭐⭐⭐⭐ (Best!)
Stop Loss = Entry ± (ATR × Multiplier)
Long Trade:
SL = Entry - (2 × ATR)
Short Trade:
SL = Entry + (2 × ATR)
Multiplier Guidelines:
- Scalping: 1.0 - 1.5 ATR
- Day Trading: 1.5 - 2.0 ATR
- Swing Trading: 2.0 - 3.0 ATR
- Position Trading: 3.0 - 4.0 ATR
✅ Adapts to volatility
✅ Scientific approach
✅ Avoids random stop placement
2. Structure-Based Stop ⭐⭐⭐⭐⭐
Long Trade:
SL = Below recent swing low (+ buffer)
Short Trade:
SL = Above recent swing high (+ buffer)
Buffer: 5-10 pips (Forex) or 0.5 ATR
✅ Respects market structure
✅ Logical invalidation point
✅ Used by professionals
❌ Can be wide (large $ risk)
❌ Requires discretion
3. Percentage Stop ⭐⭐
SL = Entry ± X%
Example:
Entry: $100
Stop: 2%
SL: $98
✅ Simple to calculate
❌ Arbitrary (doesn't consider market structure)
❌ Not recommended for serious trading
4. Time-Based Stop ⭐⭐⭐
Exit if trade hasn't moved in your favor after X bars
Example:
- Enter at 10:00
- No profit by 12:00 (4 bars)
- Exit at breakeven
✅ Prevents capital being tied up
✅ Good for range-bound markets
❌ May exit winning trades early
🎯 Stop Loss Placement Rules
Golden Rules:
✅ Set stop BEFORE entering trade
✅ Never move stop against you (widen loss)
✅ OK to move stop in your favor (lock profit)
✅ Stop must invalidate thesis (not random)
✅ Account for spreads/slippage
✅ Don't place stops at obvious levels (stop hunters!)
Stop Hunt Avoidance:
❌ Don't place stop exactly at swing low/high
✅ Add 5-10 pip buffer beyond swing point
✅ Use options/hedges for very tight stops
4. Take Profit Strategies {#take-profit}
🎯 Take Profit Methods
1. R-Multiple Targets ⭐⭐⭐⭐⭐ (Most Popular)
1R = Stop loss distance
Entry: $100
Stop: $98 (2 points = 1R)
Take Profit Levels:
- TP1: $104 (2R) → Exit 50%
- TP2: $106 (3R) → Exit 25%
- TP3: $110 (5R) → Trailing stop remaining 25%
Example Trade:
Risk: $200 (1R)
TP1 hit: +$400 (2R)
TP2 hit: +$300 (1.5R × 2 = 3R total from TP2)
TP3 hit: +$500 (2.5R × 2 = 5R total from TP3)
Total: 2R + 1.5R + 2.5R = 6R = $1,200 profit
✅ Systematic approach
✅ Balances profit taking + trend riding
✅ Clear risk/reward
2. Support/Resistance Targets ⭐⭐⭐⭐
Set TP at next major S/R level
Long Trade:
TP = Next resistance level
Short Trade:
TP = Next support level
✅ Natural exit points
✅ High probability of hitting
❌ May leave profit on table if strong trend
3. Trailing Stops ⭐⭐⭐⭐⭐
Type 1: Fixed Distance Trailing
- Trail stop X points below price
Type 2: ATR Trailing Stop
- Trail stop (ATR × 2) below price
- Adapts to volatility
Type 3: Structure Trailing
- Trail stop below each new higher low (uptrend)
- Trail stop above each new lower high (downtrend)
✅ Captures big trends
✅ No predefined target needed
❌ May exit early on retracements
Python Code - Trailing Stop:
def update_trailing_stop(entry_price, current_price, position_type, atr, initial_stop, trailing_atr_mult=2.0):
"""
Update trailing stop based on ATR
Args:
entry_price: Entry price
current_price: Current market price
position_type: 'long' or 'short'
atr: Current ATR value
initial_stop: Initial stop loss price
trailing_atr_mult: ATR multiplier for trailing (default 2.0)
Returns:
Updated stop loss price
"""
if position_type == 'long':
# Long position
new_stop = current_price - (atr * trailing_atr_mult)
# Only move stop up, never down
if new_stop > initial_stop:
# Additionally, only trail if in profit
if current_price > entry_price:
return new_stop
elif position_type == 'short':
# Short position
new_stop = current_price + (atr * trailing_atr_mult)
# Only move stop down, never up
if new_stop < initial_stop:
# Additionally, only trail if in profit
if current_price < entry_price:
return new_stop
return initial_stop # Keep existing stop
5. Risk/Reward Ratios {#risk-reward}
🎯 Minimum R:R Requirements
Win Rate vs Risk/Reward:
Break-Even R:R by Win Rate:
Win Rate 30% → Need 2.3:1 R:R to breakeven
Win Rate 40% → Need 1.5:1 R:R to breakeven
Win Rate 50% → Need 1:1 R:R to breakeven
Win Rate 60% → Need 0.67:1 R:R to breakeven
✅ Most strategies: 40-50% win rate
✅ Therefore: Minimum 1.5:1 R:R (better 2:1)
Professional Standards:
Minimum: 1.5:1
Good: 2:1 ⭐
Excellent: 3:1 ⭐⭐
Outstanding: 5:1+ ⭐⭐⭐
Never take trades < 1:1 R:R!
6. Portfolio Risk Management {#portfolio-risk}
🎯 Correlation Management
Don't Over-Concentrate:
❌ Bad: 5 trades, all EUR pairs
- EUR/USD long
- EUR/GBP long
- EUR/JPY long
- EUR/CHF long
- EUR/AUD long
If EUR crashes → ALL 5 trades lose!
Effective risk: 10% (5 × 2% each)
✅ Good: 5 trades, diversified
- EUR/USD long
- GBP/JPY short
- Gold long
- BTC/USD long
- SPX long
Low correlation → True diversification
Maximum Correlated Risk:
Rule: Max 6% total risk in correlated positions
Example:
- EUR/USD: 2%
- EUR/GBP: 2%
- EUR/JPY: 2%
Total: 6% (all EUR pairs)
✅ If want more trades → Use different pairs
7. Drawdown Management {#drawdown}
🎯 Drawdown Rules
Maximum Drawdown Limits:
Daily Loss Limit: -2% to -3%
Weekly Loss Limit: -5% to -6%
Monthly Loss Limit: -10%
Action Plan:
- Hit daily limit → Stop trading for the day
- Hit weekly limit → Stop trading for the week
- Hit monthly limit → Paper trade or take break
✅ Prevents emotional revenge trading
✅ Protects capital
Recovery Time Calculator:
Drawdown → Gain Needed to Recover
-10% → +11.1%
-20% → +25%
-30% → +42.9%
-40% → +66.7%
-50% → +100%
-60% → +150%
-75% → +300%
-90% → +900%
Lesson: AVOID LARGE DRAWDOWNS!
Easier to prevent than recover!
Python Code:
def calculate_recovery_gain(drawdown_percent):
"""
Calculate gain needed to recover from drawdown
Args:
drawdown_percent: Drawdown as % (e.g., 30 for -30%)
Returns:
Gain % needed to recover
"""
gain_needed = (drawdown_percent / (100 - drawdown_percent)) * 100
return gain_needed
# Examples
for dd in [10, 20, 30, 40, 50]:
gain = calculate_recovery_gain(dd)
print(f"{dd}% drawdown requires {gain:.1f}% gain to recover")
8. Account Size & Leverage {#account-size}
🎯 Minimum Account Size
By Market:
Forex:
- Micro account: $500 minimum
- Standard account: $5,000+ recommended
Stocks:
- Day Trading (US): $25,000 minimum (PDT rule)
- Swing Trading: $10,000+ recommended
Crypto:
- Minimum: $1,000
- Recommended: $5,000+
Options:
- Minimum: $2,000
- Recommended: $10,000+
Why Size Matters:
Small Account ($500):
- 2% risk = $10 per trade
- Hard to scale
- High psychological pressure
Medium Account ($10,000):
- 2% risk = $200 per trade
- Comfortable position sizing
- Room for diversification
✅ Larger account → Better risk management
✅ Larger account → Less emotional stress
🎯 Leverage Guidelines
Safe Leverage Limits:
Forex:
- Beginner: 1:10 max
- Intermediate: 1:20 max
- Professional: 1:50 max
⚠️ Never use 1:500 leverage!
Crypto:
- Spot: No leverage (safest)
- Futures: 1:5 max
⚠️ High leverage = fast liquidation
Stocks:
- US: 2:1 (Reg T margin)
- Day Trading: 4:1 intraday
Leverage Reality Check:
Example: $10,000 account, 1:100 leverage
Available leverage: $1,000,000
Sounds great? NO!
✅ Proper usage: Risk only 2% = $200
✅ Use leverage for position size flexibility, NOT risk amplification
❌ Don't use full leverage buying power!
9. Trading Psychology {#psychology}
🎯 Mental Risk Management
Emotional Control:
Common Pitfalls:
❌ Revenge trading (after loss)
❌ Over-trading (impatience)
❌ Position sizing up after wins (greed)
❌ Removing stop loss (hope)
❌ Averaging down losers (denial)
Solutions:
✅ Strict daily loss limit (walk away)
✅ Maximum trades per day (e.g., 3)
✅ Consistent position sizing (no emotion)
✅ Never touch stop loss (set and forget)
✅ Cut losers quickly (admit mistakes)
Trading Journal:
Record for EVERY trade:
1. Date/Time
2. Market/Symbol
3. Entry price
4. Stop loss price
5. Take profit target
6. Position size
7. R:R ratio
8. Setup (why entered)
9. Outcome (win/loss/breakeven)
10. Emotions (fear/greed/confident/uncertain)
11. Lessons learned
✅ Weekly review: Identify patterns
✅ Monthly review: Calculate metrics
✅ Identify psychological leaks
10. Real Examples & Calculations {#examples}
🎯 Complete Trade Example
Setup:
Account: $10,000
Risk per trade: 2% = $200
Symbol: EURUSD
Timeframe: H4
ATR: 0.0050 (50 pips)
Entry: 1.1000 (buy signal)
Stop Loss: 1.1000 - (2 × ATR) = 1.0900 (100 pips below)
Take Profit 1: 1.1200 (200 pips, 2R)
Take Profit 2: 1.1300 (300 pips, 3R)
Trailing: Remaining position
Position Size Calculation:
Risk: $200
Stop Distance: 100 pips = 0.0100
For Forex (standard lot = 100,000 units):
Position Size = $200 / $0.0100 = 20,000 units = 0.2 lots
Or per pip:
$10 per pip for 1 standard lot
$1 per pip for 0.1 lot
$2 per pip for 0.2 lots
Max Loss = 100 pips × $2/pip = $200 ✅
Trade Management:
Entry: Buy 0.2 lots @ 1.1000
TP1 Hit @ 1.1200:
- Close 0.1 lots (50%)
- Profit: 200 pips × $1/pip = $200 (1R)
- Move stop to breakeven (1.1000)
TP2 Hit @ 1.1300:
- Close 0.05 lots (25%)
- Profit: 300 pips × $0.5/pip = $150 (0.75R)
- Continue trailing remaining 0.05 lots
Price reverses, trailing stop hit @ 1.1250:
- Close 0.05 lots
- Profit: 250 pips × $0.5/pip = $125 (0.625R)
Total Profit: $200 + $150 + $125 = $475 (2.375R)
🎯 Risk Management Checklist
Before Every Trade:
✅ Account balance confirmed
✅ Risk per trade ≤ 2%
✅ Stop loss placed BEFORE entry
✅ R:R ≥ 1.5:1 (preferably 2:1)
✅ Position size calculated correctly
✅ No correlated positions exceeding 6%
✅ Not at daily/weekly loss limit
✅ Emotionally neutral (not revenge trading)
✅ Trade journal ready
✅ Take profit plan defined
📊 Risk Management Rules Summary
The 10 Commandments:
1. Never risk >2% per trade
2. Always use stop losses
3. Never move stop against you
4. Minimum 1.5:1 R:R (better 2:1)
5. Max 6% correlated risk
6. Stop at daily loss limit (-2-3%)
7. Position size formula: (Account × Risk%) / Stop Distance
8. Keep trading journal
9. Never trade on emotion
10. Capital preservation > Profit chasing
Master risk management and you'll outlast 90% of traders! 🛡️
"It's not about how much you make. It's about how much you don't lose."