# Trade Risk

> Risk Assessment & Position Sizing — volatility profile (beta/ATR/HV), historical drawdowns, correlation analysis, liquidity risk, position sizing tables (fixed %, volatility-adjusted, Kelly Criterion), and VaR estimates. Returns Risk Score (0-100, higher = safer). Triggered by "trade risk <TICKER>".

- Skill: `zubair-trabzada/trade-risk` (Agent Skill)
- Install (CLI): `npx skillmds@latest add zubair-trabzada/trade-risk`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zubair-trabzada/trade-risk/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zubair-trabzada (https://skillmd.com/u/zubair-trabzada)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zubair-trabzada/trade-risk

---


# Risk Assessment & Position Sizing

You are a quantitative risk analyst. When invoked with "trade risk <TICKER>" or called as a subagent, analyze every dimension of risk and provide actionable position sizing recommendations.

**DISCLAIMER: For educational and research purposes only. Not financial advice.**

---

## Data Collection

Run these searches:

1. **Volatility:** `"<TICKER> stock beta volatility average true range ATR"` + `"<TICKER> historical volatility 30 day implied volatility"` → beta, 14-day ATR, 30/60-day HV, implied vol
2. **Drawdowns:** `"<TICKER> stock maximum drawdown worst decline history"` + `"<TICKER> stock crash 2020 2022 bear market performance"` → max drawdown, COVID crash, 2022 bear market, recovery time
3. **Correlation:** `"<TICKER> stock correlation S&P 500 sector ETF"` → correlation with SPY, sector ETF, TLT, VIX
4. **Liquidity:** `"<TICKER> average daily volume market cap shares outstanding float"` → avg volume, avg dollar volume, float, short interest, bid-ask spread
5. **Current Price & Technical Context:** `"<TICKER> stock price today 52 week high low moving averages"` → current price, 52-week range, key MAs, RSI, key support/resistance
6. **Fundamental Risk:** `"<TICKER> debt ratio cash position earnings stability"` → D/E, interest coverage, cash, earnings variability
7. **Event Risk:** `"<TICKER> next earnings date ex dividend date regulatory"` → next earnings, pending regulatory decisions, litigation

---

## Risk Score Methodology (0-100, higher = safer)

| Component | Weight | Scoring Logic |
|-----------|--------|---------------|
| Volatility | 20% | Beta < 0.8 = 80+; 0.8-1.2 = 50-79; > 1.5 = 20- |
| Drawdown Resilience | 15% | Max drawdown < 20% = 80+; 20-40% = 50-79; 40-60% = 25-49; > 60% = 0-24 |
| Liquidity | 20% | Avg volume > 5M = 90+; 1-5M = 60-89; 100K-1M = 30-59; < 100K = 0-29 |
| Financial Health | 20% | D/E < 0.5 + strong cash + stable earnings = 80+; high debt + burn = 20- |
| Correlation | 10% | Low correlation to SPY = higher score (diversification value) |
| Event Risk | 15% | No near-term events = 80+; earnings within 14 days = 50; binary event pending = 20-30 |

**Composite Risk Score** = Weighted average, rounded to nearest integer.

| Score | Rating | Description |
|-------|--------|-------------|
| 80-100 | Very Safe | Blue-chip stability, high liquidity |
| 60-79 | Safe | Manageable risk, suitable for most portfolios |
| 40-59 | Moderate | Notable risk factors, size accordingly |
| 20-39 | Risky | Significant risk, small position recommended |
| 0-19 | Very Risky | Extreme risk, speculative only |

---

## Position Sizing Calculations

Use `execute_code` (Python) for all calculations:

```python
# Method 1: Fixed Percentage Risk
entry_price = [current_price]
stop_loss = entry_price - (2 * atr_14)  # 2x ATR stop
risk_per_share = entry_price - stop_loss

account_sizes = [10000, 25000, 50000, 100000, 250000]
risk_percentages = [0.01, 0.02, 0.03]

for account in account_sizes:
    for risk_pct in risk_percentages:
        dollar_risk = account * risk_pct
        shares = int(dollar_risk / risk_per_share)
        position_value = shares * entry_price
        print(f"${account:,} at {risk_pct:.0%}: {shares} shares (${position_value:,.0f})")

# Method 2: Kelly Criterion (Half Kelly recommended)
win_rate = 0.55  # estimated
reward_risk_ratio = 2.0  # based on setup
kelly_pct = win_rate - ((1 - win_rate) / reward_risk_ratio)
half_kelly = kelly_pct / 2
print(f"Full Kelly: {kelly_pct:.1%} | Half Kelly: {half_kelly:.1%}")

# Method 3: VaR (95% confidence)
import math
daily_vol = [30_day_hv_decimal]
position_value = 10000
daily_var = position_value * daily_vol * 1.645
weekly_var = daily_var * math.sqrt(5)
monthly_var = daily_var * math.sqrt(21)
print(f"Daily VaR: ${daily_var:.2f} | Weekly: ${weekly_var:.2f} | Monthly: ${monthly_var:.2f}")
```

---

## Output Format

Write `TRADE-RISK-<TICKER>.md`:

```markdown
# Risk Assessment: <TICKER> — <COMPANY NAME>
> Generated by AI Trading Analyst (Hermes) | <DATE>
> Current Price: $X | Market Cap: $X

> **DISCLAIMER:** For educational/research purposes only. Not financial advice.

---

## Risk Score: <SCORE>/100 — <RATING>

[=====================     ] 50/100 — Moderate Risk

<1-2 sentence summary of overall risk profile.>

### Component Breakdown
| Component | Score | Weight | Key Driver |
|-----------|-------|--------|------------|
| Volatility | X/100 | 20% | |
| Drawdown Resilience | X/100 | 15% | |
| Liquidity | X/100 | 20% | |
| Financial Health | X/100 | 20% | |
| Correlation/Diversification | X/100 | 10% | |
| Event Risk | X/100 | 15% | |
| **COMPOSITE** | | **100%** | **X/100** |

---

## 1. Volatility Analysis
| Metric | Value | Interpretation |
|--------|-------|----------------|
| Beta (vs S&P 500) | X | |
| 14-Day ATR | $X (X%) | |
| 30-Day Historical Vol | X% (annualized) | |
| Implied Volatility | X% | |

### Volatility-Based Stop Levels
| Method | Stop Distance | Stop Price |
|--------|--------------|------------|
| 1x ATR | $X | $X |
| 2x ATR | $X | $X |
| 3x ATR | $X | $X |

---

## 2. Historical Drawdowns
| Period | Trigger | Max Drawdown | Recovery Time |
|--------|---------|-------------|---------------|

### Stress Test Scenarios
| Scenario | Estimated Drawdown | Price Level | Probability |
|----------|-------------------|-------------|-------------|
| Market -10% | -X% | $X | Medium |
| Market -20% (Bear) | -X% | $X | Low-Medium |
| Market -35% (Severe) | -X% | $X | Low |
| Company-specific crisis | -X% | $X | Low |

---

## 3. Correlation Analysis
| Asset | Correlation | Interpretation |
|-------|------------|----------------|
| S&P 500 (SPY) | X | |
| Sector ETF | X | |
| 10-Year Treasury (TLT) | X | |

---

## 4. Liquidity Risk
| Metric | Value | Rating |
|--------|-------|--------|
| Avg Daily Volume (30-day) | X shares | |
| Avg Dollar Volume | $XM/day | |
| Market Cap | $XB | |
| Float | XM shares | |
| Short Interest | X% of float | |
| Days to Cover | X days | |

---

## 5. Position Sizing Calculator

### Method 1: Fixed Percentage Risk
| Account Size | 1% Risk | 2% Risk | 3% Risk |
|-------------|---------|---------|---------|
| $10,000 | X sh ($X) | X sh ($X) | X sh ($X) |
| $25,000 | X sh ($X) | X sh ($X) | X sh ($X) |
| $50,000 | X sh ($X) | X sh ($X) | X sh ($X) |
| $100,000 | X sh ($X) | X sh ($X) | X sh ($X) |

*Based on entry at $X and stop at $X (2x ATR)*

### Method 2: Kelly Criterion
- Win Rate: X% | Reward/Risk: X:1
- Full Kelly: X% | Half Kelly (recommended): X% | Quarter Kelly: X%

### Method 3: VaR Estimates (95% confidence, per $10K)
- Daily VaR: $X | Weekly VaR: $X | Monthly VaR: $X

---

## 6. Risk Flags
- [ ] High Short Interest (>10% float)
- [ ] Earnings Within 14 Days
- [ ] Insider Selling (non-10b5-1)
- [ ] Declining Institutional Ownership
- [ ] High Debt (D/E > 2)
- [ ] Low Liquidity (<500K avg volume)
- [ ] Elevated IV (IV Rank > 70%)
- [ ] Pending Litigation/Regulatory Action
- [ ] Revenue/Customer Concentration
- [ ] Negative FCF / Cash Burn

**Flags Triggered:** X/10

---

## 7. Risk Management Recommendations
1. **Position Sizing:** [specific recommendation]
2. **Stop Loss:** [specific level]
3. **Hedging:** [recommendation]
4. **Event Calendar:** [what to watch]

> **DISCLAIMER:** For educational/research purposes only. Not financial advice.
```

---

## Calculation Rules

1. ALWAYS use `execute_code` for Python calculations — never estimate manually.
2. Risk Score must be defensible — each component must have clear reasoning.
3. Drawdown scenarios must be grounded in actual historical data.
4. Position sizing stop loss must match recommended stop loss throughout.

**DISCLAIMER: For educational and research purposes only. Not financial advice.**

