/**
 * Backtesting & Strategy Types
 * Types for strategy backtesting and analysis
 */

import type { PortfolioAnalysis } from './portfolio';
import type { DrawdownAnalysis, RiskMetrics } from './risk-metrics';
import type { TradeExecution, TradePerformance } from './trading';

/**
 * Backtesting results
 */
export interface BacktestResults {
  /** All trades executed */
  trades: TradeExecution[];
  /** Equity curve over time */
  equityCurve: Array<{ value: number; date: Date }>;
  /** Performance metrics */
  performance: PortfolioAnalysis;
  /** Risk metrics */
  riskMetrics: RiskMetrics;
  /** Drawdown analysis */
  drawdownAnalysis: DrawdownAnalysis;
  /** Trade performance */
  tradePerformance: TradePerformance;
  /** Start date */
  startDate: Date;
  /** End date */
  endDate: Date;
  /** Initial capital */
  initialCapital: number;
  /** Final value */
  finalValue: number;
}
