package com.quantai.trader.artifact; import java.math.BigDecimal; import java.util.Map; public record TraderReplayModelFixture( DirectionFixture direction, EntryFixture entry, ContinueFixture continuation, ExitFixture exit, RiskFixture risk, BigDecimal uncertainty, BigDecimal oodScore, String featureSchemaHash, String featureOrderHash, String outputSchemaHash ) { public record DirectionFixture( BigDecimal longProbWhenMarkGteIndex, BigDecimal longProbWhenMarkLtIndex, BigDecimal neutralProb ) { } public record EntryFixture( BigDecimal longEntryProb, BigDecimal shortEntryProb, BigDecimal longExpectedNetEdgeBps, BigDecimal shortExpectedNetEdgeBps ) { } public record ContinueFixture( BigDecimal longContinueProb, BigDecimal shortContinueProb, BigDecimal longExpectedContinueEdgeBps, BigDecimal shortExpectedContinueEdgeBps ) { } public record ExitFixture( BigDecimal longExitProb, BigDecimal shortExitProb, BigDecimal longAdverseMoveBps, BigDecimal shortAdverseMoveBps, Map exitReasonScores ) { public ExitFixture { exitReasonScores = Map.copyOf(exitReasonScores == null ? Map.of() : exitReasonScores); } } public record RiskFixture( BigDecimal marketRiskProb, BigDecimal longPositionRiskProb, BigDecimal shortPositionRiskProb, BigDecimal marketPathRiskBps, BigDecimal longPositionPathRiskBps, BigDecimal shortPositionPathRiskBps, Map riskReasonScores ) { public RiskFixture { riskReasonScores = Map.copyOf(riskReasonScores == null ? Map.of() : riskReasonScores); } } }