30-Day Strategy Review - Trend Following¶
Review Date: 2025-11-28 (30 days from 2025-10-28) Purpose: Validate trend following strategy before moving to live trading Required: Minimum 30 closed trades
📅 Review Schedule¶
Week 1 Review (2025-11-04)¶
- [ ] Trades closed: ____ / 30
- [ ] Current win rate: ____%
- [ ] Any rule violations?: Yes / No
- [ ] Emotional state: Confident / Anxious / Bored / FOMO
- [ ] On track for 30 trades by Nov 28?: Yes / No
- [ ] Action items: [List any adjustments needed]
Week 2 Review (2025-11-11)¶
- [ ] Trades closed: ____ / 30
- [ ] Current win rate: ____%
- [ ] Largest win: $_ (%)
- [ ] Largest loss: $_ (%)
- [ ] Emotional challenges: [Describe]
- [ ] On track?: Yes / No
Week 3 Review (2025-11-18)¶
- [ ] Trades closed: ____ / 30
- [ ] Current win rate: ____%
- [ ] Expected value: $____ per trade
- [ ] Any pattern to winners/losers?: [Describe]
- [ ] Strategy confidence: High / Medium / Low
- [ ] Adjustments needed?: [List]
Week 4 Review (2025-11-25)¶
- [ ] Trades closed: ____ / 30
- [ ] Current win rate: ____%
- [ ] Final prep for 30-trade review
- [ ] Run full analytics (see below)
- [ ] Decision: Ready for live? / Need more paper? / Stop strategy?
🎯 30-Trade Validation Checklist¶
Complete this on 2025-11-28 (or when 30th trade closes)
Performance Metrics¶
Win Rate: - Current: ____% - Target Range: 33-45% - Status: [ ] PASS (within range) / [ ] FAIL (outside range) - If FAIL: Analyze why (entries too loose? Stops too tight?)
Expected Value per Trade:
- Current: $____ per trade
- Target: >$0
- Calculation: (Win% × Avg Win$) - (Loss% × Avg Loss$)
- Status: [ ] PASS (>$0) / [ ] FAIL (≤$0)
- If FAIL: Strategy is not profitable, needs refinement
Sharpe Ratio:
- Current: ____
- Target: >0.5 (prefer >1.0)
- Calculation: Run uv run python3 tools/trading_analytics.py
- Status: [ ] PASS (>0.5) / [ ] FAIL (≤0.5)
- If FAIL: Returns not worth the risk
Max Drawdown: - Current: _% - Target: <20% - Largest consecutive loss streak: _ trades - Status: [ ] PASS (<20%) / [ ] FAIL (≥20%) - If FAIL: Position sizing too aggressive
Risk/Reward Ratio: - Average: ____:1 - Target: 2.5:1 minimum - Status: [ ] PASS (≥2.5:1) / [ ] FAIL (<2.5:1) - If FAIL: Taking profits too early or stops too wide
Execution Metrics¶
Rule Compliance: - Total rule violations: _ - Violations in last 10 trades: _ - Target: 0 violations in last 10 trades - Status: [ ] PASS (0 violations) / [ ] FAIL (1+ violations) - Common violations: [List most common]
Entry Quality: - Trades with 2+ criteria: _ / 30 (_%) - Target: 100% - Status: [ ] PASS (100%) / [ ] FAIL (<100%) - If FAIL: Review entries, tighten criteria adherence
Stop Loss Discipline: - Stops set immediately: _ / 30 (%) - Stops never moved lower: _ / 30 (%) - Target: 100% both - Status: [ ] PASS (100%) / [ ] FAIL (<100%) - If FAIL: Discipline issue, not ready for live
Exit Discipline: - Exits at target/stop only: _ / 30 (_%) - Early profit-taking: ____ times - Target: 100% exits at target/stop - Status: [ ] PASS (100%) / [ ] FAIL (<100%) - If FAIL: Emotional trading, not ready for live
Psychological Assessment¶
Emotional Control: - [ ] Can handle losses without revenge trading - [ ] Can let winners run without early profit-taking - [ ] Not checking positions obsessively (>10x/day) - [ ] Sleeping well despite open positions - [ ] No FOMO when missing setups - [ ] Following strategy even when "feeling" different - Status: [ ] PASS (all checked) / [ ] FAIL (any unchecked)
Confidence Level: - [ ] Understand why strategy works (3:1 math) - [ ] Can explain strategy to someone else - [ ] Trust the system more than "feelings" - [ ] Comfortable with 60% loss rate - [ ] Know what to do in every scenario - Status: [ ] PASS (all checked) / [ ] FAIL (any unchecked)
Red Flags (Check any that apply): - [ ] Checking positions >20x/day - [ ] Staying up late worrying about positions - [ ] Arguing with stop losses ("it'll bounce") - [ ] Taking profits early due to fear - [ ] Revenge trading after losses - [ ] Skipping entry criteria because "I have a feeling" - [ ] Increasing position sizes after wins - [ ] Decreasing position sizes after losses - If ANY checked → NOT ready for live trading
📊 Analytics Commands¶
Run these on review day:
cd ~/mem-agent-mcp
# 1. Full portfolio analytics
uv run python3 tools/trading_analytics.py
# 2. Closed trades summary
uv run python3 tools/portfolio_fetcher.py
# 3. Generate performance report
uv run python3 << 'EOF'
import json
from pathlib import Path
# Read trade log
log_file = Path("~/Documents/memory/entities/trading/trend-following-trades-2025.md").expanduser()
# Parse trades and calculate metrics
# [Implementation would go here]
# Output summary
print("=" * 80)
print("30-DAY PERFORMANCE SUMMARY")
print("=" * 80)
# Print all key metrics
EOF
✅ Decision Matrix¶
After completing checklist above, make decision:
PASS: Move to Alpaca Live ✅¶
Criteria (ALL must pass): - [ ] Win rate: 33-45% - [ ] Expected Value: >$0 - [ ] Sharpe Ratio: >0.5 - [ ] Max Drawdown: <20% - [ ] Rule compliance: 100% last 10 trades - [ ] Psychological assessment: PASS - [ ] No red flags checked
Action: 1. Document success in memory 2. Create Alpaca Live plan (smaller positions) 3. Start Phase 2 with $500 max position 4. Maintain trade log 5. Review again after 20 live trades
REFINE: Continue Paper Trading ⚠️¶
Criteria (1-2 metrics fail): - [ ] Close but not quite passing - [ ] Win rate 25-32% or 46-55% (edge of range) - [ ] Sharpe 0.3-0.5 (almost there) - [ ] Some rule violations but improving - [ ] Psychological mostly ready
Action: 1. Identify specific issue (win rate low? stops too tight?) 2. Make ONE adjustment only 3. Document adjustment in strategy 4. Paper trade another 20 trades 5. Review again at 50 trades total
Common Refinements: - Win rate too low (<30%) → Tighten entry criteria - Win rate too high (>50%) → Increase profit target to 4:1 - Max drawdown high → Reduce position sizes - Sharpe low → Improve entry timing
STOP: Strategy Not Working ❌¶
Criteria (3+ metrics fail OR major red flags): - [ ] Expected Value: negative - [ ] Win rate: <25% or >60% - [ ] Max drawdown: >25% - [ ] Multiple rule violations continuing - [ ] Multiple psychological red flags - [ ] No improvement over 30 trades
Action: 1. STOP trading immediately 2. Analyze what went wrong (full post-mortem) 3. Options: - Try different strategy (mean reversion, etc) - Stick to index investing (VOO, SPY) - Take break, study more, try again later 4. Document lessons learned 5. DO NOT move to live trading
Accept: Not everyone profits from active trading. Index investing beats 90% of traders.
📝 30-Day Review Template¶
Copy this on 2025-11-28:
# 30-Day Strategy Review - Trend Following
**Date**: 2025-11-28
**Trades Completed**: ____ / 30
**Strategy**: Trend Following (3:1 R/R)
## Performance Metrics
| Metric | Target | Actual | Status |
|--------|--------|--------|--------|
| Win Rate | 33-45% | ____% | [ ] PASS / [ ] FAIL |
| Expected Value | >$0 | $____ | [ ] PASS / [ ] FAIL |
| Sharpe Ratio | >0.5 | ____ | [ ] PASS / [ ] FAIL |
| Max Drawdown | <20% | ____% | [ ] PASS / [ ] FAIL |
| Avg R/R | >2.5:1 | ____:1 | [ ] PASS / [ ] FAIL |
## Execution Metrics
| Metric | Target | Actual | Status |
|--------|--------|--------|--------|
| Rule Compliance | 100% | ____% | [ ] PASS / [ ] FAIL |
| Entry Criteria Met | 100% | ____% | [ ] PASS / [ ] FAIL |
| Stops Set Immediately | 100% | ____% | [ ] PASS / [ ] FAIL |
| Exit Discipline | 100% | ____% | [ ] PASS / [ ] FAIL |
## Trade Breakdown
- **Total Trades**: ____
- **Wins**: ____ (____%)
- **Losses**: ____ (____%)
- **Total P&L**: $____
- **Avg Win**: $____
- **Avg Loss**: $____
- **Largest Win**: $____ ([SYMBOL])
- **Largest Loss**: $____ ([SYMBOL])
- **Best Streak**: ____ wins
- **Worst Streak**: ____ losses
## Psychological Assessment
- Emotional Control: [ ] PASS / [ ] FAIL
- Confidence Level: [ ] PASS / [ ] FAIL
- Red Flags: ____ (list any)
## Decision
**Status**: [ ] PASS → Move to Live / [ ] REFINE → Continue Paper / [ ] STOP → Strategy Failed
**Reasoning**: [Explain decision]
**Next Steps**: [List specific actions]
## Lessons Learned
**What Worked**:
1. [List 3-5 things]
**What Didn't Work**:
1. [List 3-5 things]
**Adjustments** (if refining):
1. [List specific changes]
**Confidence Level**: __/10
**Ready for Live?**: Yes / No / Maybe (explain)
## Celebration or Consolation
[Personal note about the journey, learnings, next steps]
---
**Reviewed By**: Bert Frichot
**Witnessed By**: Claude (AI Assistant)
**Next Review**: [Date - if continuing]
🔔 Reminder System¶
Option 1: Calendar Reminder (Manual)¶
Add to calendar: - Date: 2025-11-28 - Title: "30-Day Trading Strategy Review" - Description: "Complete validation checklist in ~/mem-agent-mcp/docs/trading/30_DAY_REVIEW_CHECKLIST.md" - Reminder: 1 day before
Also add weekly check-ins: - 2025-11-04: Week 1 Review - 2025-11-11: Week 2 Review - 2025-11-18: Week 3 Review - 2025-11-25: Week 4 Review
Option 2: Automated LaunchAgent (macOS)¶
# Create reminder script
cat > ~/bin/trading-review-reminder.sh << 'EOF'
#!/bin/bash
# Trading Strategy Review Reminder
REVIEW_DATE="2025-11-28"
TODAY=$(date +%Y-%m-%d)
if [ "$TODAY" == "$REVIEW_DATE" ]; then
osascript -e 'display notification "Complete 30-day trading strategy review today!" with title "Trading Review Due"'
open ~/mem-agent-mcp/docs/trading/30_DAY_REVIEW_CHECKLIST.md
fi
EOF
chmod +x ~/bin/trading-review-reminder.sh
# Create LaunchAgent
cat > ~/Library/LaunchAgents/com.trading.review.reminder.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.trading.review.reminder</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Users/bertfrichot/bin/trading-review-reminder.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>9</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
# Load LaunchAgent
launchctl load ~/Library/LaunchAgents/com.trading.review.reminder.plist
echo "✅ Review reminder set for 2025-11-28 at 9:00 AM"
Option 3: Python Script (Flexible)¶
cd ~/mem-agent-mcp
cat > tools/check_review_date.py << 'EOF'
#!/usr/bin/env python3
"""
Check if it's time for 30-day strategy review
Run this daily or add to cron
"""
from datetime import datetime, timedelta
import subprocess
REVIEW_DATE = datetime(2025, 11, 28)
TODAY = datetime.now()
days_until_review = (REVIEW_DATE - TODAY).days
if days_until_review == 0:
print("🚨 30-DAY REVIEW DUE TODAY!")
print(" Complete: ~/mem-agent-mcp/docs/trading/30_DAY_REVIEW_CHECKLIST.md")
# Open file automatically
subprocess.run(["open", "/Users/bertfrichot/mem-agent-mcp/docs/trading/30_DAY_REVIEW_CHECKLIST.md"])
elif days_until_review > 0 and days_until_review <= 7:
print(f"⏰ {days_until_review} days until 30-day review ({REVIEW_DATE.strftime('%Y-%m-%d')})")
elif days_until_review < 0:
print(f"⚠️ Review overdue by {abs(days_until_review)} days!")
print(" Complete ASAP: ~/mem-agent-mcp/docs/trading/30_DAY_REVIEW_CHECKLIST.md")
EOF
chmod +x tools/check_review_date.py
# Test it
uv run python3 tools/check_review_date.py
📋 Quick Action Checklist¶
Today (2025-10-28): - [x] Strategy created - [x] Trade log created - [x] Review checklist created - [ ] Calendar reminders set - [ ] First 2 trades documented (HIVE, BITF)
This Week: - [ ] Print Quick Reference Card - [ ] Close HIVE and BITF - [ ] Set all stop losses - [ ] Find 5 entry candidates - [ ] Enter 1-2 new positions
Week 1 Review (2025-11-04): - [ ] Complete Week 1 checklist above - [ ] Assess progress toward 30 trades
30-Day Review (2025-11-28): - [ ] Complete full validation checklist - [ ] Run all analytics - [ ] Make decision: Live / Refine / Stop - [ ] Document in memory - [ ] Celebrate or learn!
Status: 📅 Scheduled Review Date: 2025-11-28 Current Progress: 2/30 trades (6.7%) On Track: Need ~1 trade/day to reach 30 by Nov 28