Rewrite trader service for V4 P0

This commit is contained in:
Codex
2026-06-26 21:53:22 +08:00
parent 2fe4077164
commit 5d210053d0
184 changed files with 2780 additions and 6945 deletions
@@ -0,0 +1,38 @@
package com.quantai.trader.domain;
import static com.quantai.trader.util.TraderNumbers.*;
import java.math.BigDecimal;
import java.util.Map;
public record RiskOutput(
BigDecimal marketRiskProb,
BigDecimal positionRiskProb,
BigDecimal marketRiskSeverityBps,
BigDecimal positionRiskSeverityBps,
BigDecimal drawdownProb,
BigDecimal expectedShortfallBps,
BigDecimal volatilityExpansionProb,
BigDecimal spikeProb,
BigDecimal liquidityRiskProb,
BigDecimal liquidityCapacityRatio,
String modelVersion,
String calibrationVersion,
Map<String, Object> explanation
) {
public RiskOutput {
marketRiskProb = probability(marketRiskProb, "risk.marketRiskProb");
positionRiskProb = probability(positionRiskProb, "risk.positionRiskProb");
marketRiskSeverityBps = nonNegative(marketRiskSeverityBps, "risk.marketRiskSeverityBps");
positionRiskSeverityBps = nonNegative(positionRiskSeverityBps, "risk.positionRiskSeverityBps");
drawdownProb = probability(drawdownProb, "risk.drawdownProb");
expectedShortfallBps = nonNegative(expectedShortfallBps, "risk.expectedShortfallBps");
volatilityExpansionProb = probability(volatilityExpansionProb, "risk.volatilityExpansionProb");
spikeProb = probability(spikeProb, "risk.spikeProb");
liquidityRiskProb = probability(liquidityRiskProb, "risk.liquidityRiskProb");
liquidityCapacityRatio = nonNegative(liquidityCapacityRatio, "risk.liquidityCapacityRatio");
modelVersion = requiredText(modelVersion, "risk.modelVersion");
calibrationVersion = requiredText(calibrationVersion, "risk.calibrationVersion");
explanation = Map.copyOf(explanation == null ? Map.of() : explanation);
}
}