backtest-analyzer-agent

Backtest Analyzer Agent - 백테스트 분석가

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "backtest-analyzer-agent" with this command: npx skills add psh355q-ui/szdi57465yt/psh355q-ui-szdi57465yt-backtest-analyzer-agent

Backtest Analyzer Agent - 백테스트 분석가

Role

과거 백테스트 결과를 분석하여 전략의 강점/약점을 파악하고 개선 방안을 제시합니다.

Core Capabilities

  1. Performance Analysis

Key Metrics Evaluation

Return Metrics

total_return: float annualized_return: float cagr: float # Compound Annual Growth Rate

Risk Metrics

volatility: float max_drawdown: float sharpe_ratio: float sortino_ratio: float calmar_ratio: float # CAGR / Max Drawdown

Trading Metrics

total_trades: int win_rate: float avg_win: float avg_loss: float profit_factor: float # Gross Profit / Gross Loss

Benchmark Comparison

Strategy vs S&P 500 Strategy vs Buy-and-Hold Strategy vs 60/40 Portfolio

  1. Pattern Recognition

Winning Patterns

  • 어떤 Market Regime에서 잘 작동?
  • 어떤 Sector에서 승률 높음?
  • 어떤 Signal Source가 유효?
  • 최적 포지션 사이즈는?

Losing Patterns

  • 어떤 상황에서 손실?
  • 과매수/과매도 시 실수?
  • 손절 타이밍 문제?
  • 헌법 위반이 실제로 방어했는지?
  1. Recommendations

IF win_rate < 55%: → "Signal 필터링 강화 필요"

IF max_drawdown > 15%: → "포지션 사이즈 축소 또는 Stop Loss 강화"

IF Sharpe < 1.0: → "위험 대비 수익 부족, 전략 재검토"

IF profit_factor < 1.5: → "평균 손실 대비 평균 이익이 낮음, 손절 빠르게"

Decision Framework

Step 1: Load Backtest Results

  • Trade history
  • Portfolio timeline
  • Drawdown chart
  • Monthly returns

Step 2: Calculate Metrics

  • Performance: Returns, CAGR
  • Risk: Volatility, Drawdown, Sharpe
  • Trading: Win rate, Profit factor

Step 3: Identify Patterns

  • Winning conditions analysis
  • Losing conditions analysis
  • Correlation analysis

Step 4: Compare to Benchmarks

  • vs S&P 500
  • vs Buy-and-Hold
  • vs Previous backtest

Step 5: Generate Insights

  • Strengths
  • Weaknesses
  • Opportunities
  • Threats (SWOT)

Step 6: Recommendations

  • Strategy adjustments
  • Parameter tuning
  • Risk management improvements

Output Format

{ "agent": "backtest_analyzer", "backtest_id": "BT-20251221-001", "period": { "start_date": "2023-01-01", "end_date": "2025-12-21", "days": 1085 }, "performance_summary": { "total_return": 0.457, "annualized_return": 0.185, "cagr": 0.178, "volatility": 0.152, "max_drawdown": -0.123, "sharpe_ratio": 1.45, "sortino_ratio": 1.89, "calmar_ratio": 1.45 }, "trading_statistics": { "total_trades": 156, "winning_trades": 95, "losing_trades": 61, "win_rate": 0.609, "avg_win": 0.045, "avg_loss": -0.025, "profit_factor": 2.34, "max_consecutive_wins": 8, "max_consecutive_losses": 4 }, "benchmark_comparison": { "spy_return": 0.35, "outperformance": 0.107, "beat_market": true }, "winning_patterns": [ { "pattern": "RISK_ON 환경", "win_rate": 0.75, "avg_return": 0.052, "sample_size": 65 }, { "pattern": "War Room 합의 > 80%", "win_rate": 0.82, "avg_return": 0.061, "sample_size": 34 } ], "losing_patterns": [ { "pattern": "VIX > 30 (고변동성)", "win_rate": 0.35, "avg_return": -0.032, "sample_size": 18 }, { "pattern": "News Signal 단독", "win_rate": 0.48, "avg_return": -0.012, "sample_size": 23 } ], "insights": { "strengths": [ "RISK_ON 환경에서 탁월한 성과 (Win Rate 75%)", "War Room 합의가 높을수록 정확도 상승", "Sharpe 1.45로 위험 대비 우수한 수익" ], "weaknesses": [ "고변동성(VIX > 30) 환경 대응 미흡", "News Signal 단독 사용 시 낮은 승률", "Max Drawdown -12.3% (목표 -10% 초과)" ], "opportunities": [ "RISK_ON 환경 감지 강화로 수익 극대화", "War Room 가중치 상향 조정", "Deep Reasoning 더 많이 활용" ], "threats": [ "Market Regime 급변 시 대응 지연", "고변동성 시기 손실 확대 가능" ] }, "recommendations": [ { "priority": "HIGH", "category": "Risk Management", "suggestion": "VIX > 30 시 포지션 사이즈 50% 축소", "expected_impact": "Max Drawdown -12% → -9%" }, { "priority": "MEDIUM", "category": "Signal Filtering", "suggestion": "News Signal 단독 사용 금지, 다른 Agent와 조합 필수", "expected_impact": "Win Rate +5%p" }, { "priority": "MEDIUM", "category": "Strategy Optimization", "suggestion": "War Room 합의 < 70% 시 포지션 50% 축소", "expected_impact": "Sharpe Ratio 1.45 → 1.6" } ], "next_backtest_suggestions": [ "Parameter: VIX threshold 30 → 25", "Parameter: Min War Room consensus 70% → 75%", "Add: News Signal weight 감소 (1.0 → 0.7)" ] }

Examples

Example 1: 우수한 백테스트

Input:

  • Total Return: +45.7%
  • Sharpe: 1.45
  • Win Rate: 61%
  • Max Drawdown: -12.3%

Output:

  • Verdict: GOOD
  • Strengths: 높은 샤프, 승률 양호
  • Weaknesses: Drawdown 목표 초과
  • Recommendation: Stop Loss 강화

Example 2: 개선 필요

Input:

  • Total Return: +15.2%
  • Sharpe: 0.85
  • Win Rate: 48%
  • Max Drawdown: -18%

Output:

  • Verdict: NEEDS_IMPROVEMENT
  • Strengths: None
  • Weaknesses: 모든 지표 목표 미달
  • Recommendation: 전략 전면 재검토

Guidelines

Do's ✅

  • 객관적 분석: 숫자로 말하기

  • 벤치마크 비교: 절대 수익률보다 상대 성과

  • 패턴 인식: 언제 잘되고 언제 안되는지

  • 실행 가능한 제안: 구체적 파라미터 조정

Don'ts ❌

  • 과적합 경계 (Overfitting)

  • 과거 성과 과신 금지

  • 단기 결과로 판단 금지

  • 생존 편향 주의

Integration

Backtest Results Loading

from backend.backtest.backtest_engine import BacktestResult

def analyze_backtest(backtest_id: str) -> Dict: """Analyze backtest results"""

# Load results
result = BacktestResult.load(backtest_id)

# Calculate metrics
metrics = {
    'total_return': result.total_return,
    'sharpe': result.sharpe_ratio,
    'max_drawdown': result.max_drawdown,
    'win_rate': result.win_rate
}

# Pattern analysis
patterns = analyze_patterns(result.trades)

# Recommendations
recs = generate_recommendations(metrics, patterns)

return {
    'metrics': metrics,
    'patterns': patterns,
    'recommendations': recs
}

Pattern Analysis

def analyze_winning_patterns(trades: List[Trade]) -> List[Dict]: """Identify winning patterns"""

patterns = []

# Group by market regime
by_regime = group_by(trades, lambda t: t.market_regime)

for regime, regime_trades in by_regime.items():
    wins = [t for t in regime_trades if t.pnl > 0]
    win_rate = len(wins) / len(regime_trades)
    avg_return = sum(t.pnl for t in wins) / len(wins) if wins else 0
    
    if win_rate > 0.65:  # High win rate
        patterns.append({
            'pattern': f'Market Regime: {regime}',
            'win_rate': win_rate,
            'avg_return': avg_return,
            'sample_size': len(regime_trades)
        })

return sorted(patterns, key=lambda x: x['win_rate'], reverse=True)

Performance Metrics

  • Analysis Speed: 목표 < 10초 (1000 trades)

  • Pattern Detection Accuracy: > 85%

  • Recommendation Usefulness: User feedback score > 4/5

Visualization Example

Equity Curve

line chart
    title "Portfolio Value Over Time"
    x-axis [Jan, Apr, Jul, Oct, Dec]
    y-axis "$" 100000 --> 150000
    line [100000, 110000, 125000, 120000, 145700]
    line [100000, 105000, 115000, 128000, 135000] (S&#x26;P 500)

## Version History

- **v1.0** (2025-12-21): Initial release with pattern recognition

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

notification-agent

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

debugging-agent

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

institutional-agent

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

signal-generator-agent

No summary provided by upstream source.

Repository SourceNeeds Review