Package-level declarations
Types
Link copied to clipboard
class Backtest(strategies: List<Pair<String, Strategy>>, rules: List<RiskRule> = emptyList(), feed: TickFeed, candleWindow: TimeWindow? = null, initialTimestamp: Long = 0, source: MarketSource = NullMarketSource, calendar: TradingCalendar = TradingCalendar.crypto(), warmupSpec: WarmupSpec = WarmupSpec.None, symbols: List<String> = emptyList(), cadence: SampleCadence? = null, startingBalance: BigDecimal = java.math.BigDecimal.ZERO)
Link copied to clipboard
data class BacktestResult(val trades: List<TradeRecord>, val rejections: List<RiskRejectedEvent>, val finalPositions: Map<String, Position>, val global: PerformanceReport, val perStrategy: Map<String, PerformanceReport>, val cadence: SampleCadence)
Link copied to clipboard
data class DrawdownPeriod(val peakTimestamp: Long, val peakEquity: BigDecimal, val troughTimestamp: Long, val troughEquity: BigDecimal, val recoveryTimestamp: Long?, val depthPct: BigDecimal, val durationMs: Long, val ongoing: Boolean)
Link copied to clipboard
class EquityCurveCollector(cadence: SampleCadence, bus: EventBus, pnl: PnLProvider, strategyPnL: StrategyPnL, strategyIds: List<String>)
Link copied to clipboard
data class EquityFanPoint(val tradeIndex: Int, val p5: BigDecimal, val p25: BigDecimal, val p50: BigDecimal, val p75: BigDecimal, val p95: BigDecimal)
Link copied to clipboard
Link copied to clipboard
data class MonteCarloSummary(val simulations: Int, val finalEquityP5: BigDecimal, val finalEquityP25: BigDecimal, val finalEquityP50: BigDecimal, val finalEquityP75: BigDecimal, val finalEquityP95: BigDecimal, val maxDrawdownP5: BigDecimal, val maxDrawdownP95: BigDecimal, val probabilityNegativeFinal: BigDecimal, val equityFanByTradeIndex: List<EquityFanPoint>)
Link copied to clipboard
data class PerformanceReport(val realizedTotal: BigDecimal, val unrealizedTotal: BigDecimal, val totalPnL: BigDecimal, val tradeCount: Int, val winRate: BigDecimal, val maxDrawdown: BigDecimal, val profitFactor: BigDecimal?, val avgWin: BigDecimal, val avgLoss: BigDecimal, val largestWin: BigDecimal, val largestLoss: BigDecimal, val maxConsecutiveLosses: Int, val sharpeRatio: BigDecimal?, val calmarRatio: BigDecimal?, val equityCurve: List<EquitySample>, val drawdownPeriods: List<DrawdownPeriod> = emptyList(), val monteCarlo: MonteCarloSummary? = null)
Link copied to clipboard
object ReportBuilder
Link copied to clipboard
Link copied to clipboard
data class TradeRecord(val trade: Trade, val realized: BigDecimal, val strategyId: String, val riskUsd: BigDecimal? = null)