Rewrite trader service for V4 P0
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user