---
name: C2 strategy current state
description: Active trading strategy, backtest results, and Kelly sizing as of April 2026
type: project
originSessionId: c5210bce-4082-4e9c-80e2-e88c8538d92e
---
Active strategy is C2: buy near-money calls after 20d dip −20% to −40%, 5d still falling <−5%, price 30–50% below 52-week high. DTE 21–60, OTM 0–8%, ask ≤5% of underlying. Pure rule-based — no ML.

**Honest backtest stats (378 stocks, 2022–2026, full universe):**
- 372 trades, ~9/month
- WR 43.3%, avg win $758, avg loss −$434
- PF 1.33, Sharpe 0.32, max drawdown −$22k

**Note:** PF 2.73 shown in older reports came from `results_trades.csv` (a prior ML-gated run) — not reproducible by current rule-based approach. Do not use 2.73 as the current benchmark.

**OOS / ML exploration (April 2026):**
- ML (LightGBM, broad signal, walk-forward OOS): best at 70% threshold → PF 1.48, 11 trades/month. Doesn't clearly beat rule-based.
- MR strategy (mom20 −5% to −20%, no 52wk filter): PF 1.05 on full universe — apparent PF 2.1–2.9 was from 3×25 stock sample + Jan-Feb 2025 event, not generalizable.
- C2 at PF 1.33 remains the most robust result on the full universe.

**Kelly position sizing (from MC sweep, 10k sims, 372 trades):**
- Analytical f* = 7.1% per trade
- **Recommended: 5% fixed-fraction** — median +700%, 0% ruin, median MDD −60%
- Conservative: 2.5% (half-Kelly) — median +428%, 0% ruin, median MDD −46%
- Avoid >10%: ruin probability appears, p5 capital collapses
- Config in `monthly_recommendations.py`: `KELLY_CAPITAL`, `KELLY_FRACTION`

**Why C2:** Only signal surviving systematic grid search on 378 clean stocks with >25% daily price-change quality filter. MR, put-selling, and ML overlays all tested and found not meaningfully better.

## Active scripts (E:/options_code/)
- `monthly_recommendations.py` — C2 scanner, emails HTML report with Kelly contract sizing
- `weekly_update.py` — daily sync + process only (no suggest/email)
- `weekly_backtest.py` — backtester, supports --strategy c2|mr
- `monte_carlo.py` — MC + Kelly analysis
- `kelly_sweep.py` — Kelly fraction comparison table
- `run_monthly_recs.ps1` — Task Scheduler wrapper for last-day-of-month check

## Task Scheduler jobs
- `\OptionsDailySync` — Mon–Fri 4:30 PM, runs weekly_update.py (sync + process)
- `\OptionsMonthlyRecs` — Daily 5 PM, PowerShell checks if last day of month, runs monthly_recommendations.py

## April 2026 picks
- TSCO (Tractor Supply): Apr 25, $38 call @ $1.80, down 21.4%/20d, May 22 expiry
