6.4 KiB
SimpleORB Strategy Optimization Guide
Date: February 17, 2026
Current Performance: $320 profit, 60% win rate, 3.0 profit factor
Goal: Optimize parameters to improve profitability and reduce drawdown
📊 Current Baseline Performance
Trade Statistics (5 trades, Feb 10-16, 2026)
- Net Profit: $320
- Profit Factor: 3.00
- Win Rate: 60% (3W/2L)
- Avg Win: $160
- Avg Loss: $80
- Win/Loss Ratio: 2:1
- Sharpe Ratio: 1.31
- Max Drawdown: $160
Performance by Direction
Longs (2 trades):
- Win Rate: 100%
- Profit: $320
- Profit Factor: 99.0
- Sharpe: 2.30
Shorts (3 trades):
- Win Rate: 33%
- Profit: $0
- Profit Factor: 1.00
- Sharpe: 1.53
KEY INSIGHT: Longs are exceptional, shorts are break-even/losing.
🎯 Optimization Priority List
Priority 1: Direction Filter (CRITICAL)
Current: Trading both long and short Issue: Shorts have 33% win rate vs 100% for longs Action: Test long-only mode
Expected Impact:
- Net profit: Increase (eliminate losing shorts)
- Win rate: Increase to 100%
- Drawdown: Decrease significantly
Priority 2: Opening Range Period
Current: 30 minutes Range to Test: 15, 20, 30, 45, 60 minutes
Hypothesis:
- Shorter OR (15-20 min): More trades, potentially more false breakouts
- Longer OR (45-60 min): Fewer trades, higher quality setups
Metric to Watch: Profit factor, win rate
Priority 3: Stop Loss / Profit Target
Current: Stop 8 ticks, Target 16 ticks (2:1 R:R)
Test Matrix:
| Stop | Target | R:R | Rationale |
|---|---|---|---|
| 6 | 12 | 2:1 | Tighter, less heat |
| 8 | 16 | 2:1 | Current baseline |
| 10 | 20 | 2:1 | Wider, more room |
| 8 | 24 | 3:1 | Asymmetric, bigger winners |
| 10 | 30 | 3:1 | Wide asymmetric |
Metric to Watch: Win rate vs avg win/loss ratio tradeoff
Priority 4: Entry Threshold (Std Dev Multiplier)
Current: 1.0 (breakout = 1x standard deviation)
Range to Test: 0.5, 1.0, 1.5, 2.0
Hypothesis:
- Lower (0.5): More entries, lower quality
- Higher (1.5-2.0): Fewer entries, higher conviction
Metric to Watch: Trade frequency vs win rate
Priority 5: Time-of-Day Filter
Current: Trading all day (9:30-16:00)
Test Scenarios:
- First hour only (9:30-10:30)
- Morning session (9:30-12:00)
- Afternoon only (12:00-16:00)
- First 2 hours (9:30-11:30)
Hypothesis: Early breakouts (first hour) might have more momentum
Metric to Watch: Win rate by time of entry
📋 Optimization Test Plan
Phase 1: Quick Wins (30 minutes)
Test long-only mode immediately
- Add property to SimpleORBNT8:
[NinjaScriptProperty]
[Display(Name = "Long Only", GroupName = "ORB Strategy", Order = 10)]
public bool LongOnly { get; set; }
-
Update intent processing in base class to filter shorts if LongOnly = true
-
Re-run backtest with LongOnly = true
Expected: Profit increases, drawdown decreases
Phase 2: Parameter Grid Search (2-3 hours)
Use NT8 Strategy Analyzer Optimization:
Variables to Optimize:
- Opening Range Minutes: 15, 20, 30, 45, 60
- Stop Ticks: 6, 8, 10, 12
- Target Ticks: 12, 16, 20, 24, 30
- Std Dev Multiplier: 0.5, 1.0, 1.5, 2.0
- Long Only: true, false
Optimization Metric: Net Profit or Sharpe Ratio
Total Combinations: 5 × 4 × 5 × 4 × 2 = 800 tests Reduce to: Test in stages to avoid combinatorial explosion
Phase 3: Walk-Forward Analysis (4-6 hours)
Process:
- Split data: Train on Jan-Feb, Test on Mar-Apr
- Optimize on training set
- Validate on test set (out-of-sample)
- Check for overfitting
Goal: Ensure parameters aren't curve-fit to specific market conditions
Phase 4: Regime-Aware Optimization (Future)
Use existing regime detection:
- Optimize separately for High Vol vs Low Vol regimes
- Different parameters for Trending vs Mean-Reverting
- Grade-based position sizing (already implemented)
🔧 NT8 Strategy Analyzer Optimization Settings
How to Run Optimization in NT8:
-
Open Strategy Analyzer
-
Click "Settings" tab
-
Enable "Optimize"
-
Select parameters to optimize:
- Opening Range Minutes: Start 15, Stop 60, Step 15
- Stop Ticks: Start 6, Stop 12, Step 2
- Target Ticks: Start 12, Stop 30, Step 4
- Std Dev Multiplier: Start 0.5, Stop 2.0, Step 0.5
-
Optimization Target:
- Primary: Net Profit
- Secondary: Sharpe Ratio (to avoid overfitting)
-
Click "Run"
-
Review results - sort by Sharpe Ratio (not just profit)
📊 What to Look For in Results
Red Flags (Overfitting):
- ❌ Win rate > 90% (unrealistic)
- ❌ Sharpe > 5.0 (too good to be true)
- ❌ Only 1-2 trades (not statistically significant)
- ❌ Max drawdown = $0 (lucky parameters)
Good Signs (Robust):
- ✅ Win rate 55-70%
- ✅ Sharpe 1.5-3.0
- ✅ 10+ trades (statistical significance)
- ✅ Profit factor 1.5-3.0
- ✅ Consistent across similar parameters
🎯 Expected Optimal Results
Based on current performance, after optimization expect:
Conservative Estimate:
- Net Profit: $400-600 (vs $320 baseline)
- Win Rate: 65-75%
- Profit Factor: 2.5-4.0
- Sharpe: 1.5-2.5
- Max Drawdown: <$200
Stretch Goal:
- Net Profit: $800+
- Win Rate: 70-80%
- Profit Factor: 3.5-5.0
- Sharpe: 2.5-3.5
📋 Immediate Action Items
Today (30 minutes):
- ✅ Add "Long Only" property to SimpleORBNT8
- ✅ Test with LongOnly = true
- ✅ Compare results to baseline
This Week (3-4 hours):
- Run parameter optimization in NT8
- Test top 5 parameter sets
- Validate on different time periods
- Document optimal parameters
Next Week (Future):
- Walk-forward analysis
- Regime-specific optimization
- Monte Carlo robustness testing
🎉 Summary
You have a PROFITABLE strategy that's working!
Key optimizations to try:
- Long only (eliminate losing shorts) - TEST FIRST
- Opening range period (15-60 minutes)
- Stop/target optimization (6-12 ticks / 12-30 ticks)
- Entry threshold (0.5-2.0 std dev)
Current: $320 profit, 60% win, 3.0 PF, 1.31 Sharpe Target: $500+ profit, 70% win, 3.5+ PF, 2.0+ Sharpe
The foundation is solid - time to fine-tune! 🚀
📝 Notes
- Always validate on out-of-sample data
- Don't overfit - simpler is better
- Focus on Sharpe Ratio, not just profit
- 10+ trades minimum for statistical validity
- Document everything for reproducibility