Persist trader V4 P0 decision trace
This commit is contained in:
@@ -7,8 +7,9 @@ import com.quantai.trader.domain.*;
|
||||
import com.quantai.trader.enums.PositionSide;
|
||||
import com.quantai.trader.evidence.EvidenceAppender;
|
||||
import com.quantai.trader.model.TraderModelService;
|
||||
import com.quantai.trader.outbox.InMemoryOutboxRepository;
|
||||
import com.quantai.trader.outbox.TraderOutboxRepository;
|
||||
import com.quantai.trader.outbox.TraderOutboxEvent;
|
||||
import com.quantai.trader.persistence.TraderDecisionTraceWriter;
|
||||
import com.quantai.trader.position.TraderPositionManager;
|
||||
import com.quantai.trader.risk.RiskGateInput;
|
||||
import com.quantai.trader.risk.RiskLimits;
|
||||
@@ -32,7 +33,8 @@ public class TraderP0CycleRunner {
|
||||
private final TraderRiskGate riskGate;
|
||||
private final TraderActionFactory actionFactory;
|
||||
private final EvidenceAppender evidenceAppender;
|
||||
private final InMemoryOutboxRepository outboxRepository;
|
||||
private final TraderDecisionTraceWriter traceWriter;
|
||||
private final TraderOutboxRepository outboxRepository;
|
||||
|
||||
public TraderP0CycleRunner(TraderProperties properties,
|
||||
TraderArtifactLoader artifactLoader,
|
||||
@@ -41,7 +43,8 @@ public class TraderP0CycleRunner {
|
||||
TraderRiskGate riskGate,
|
||||
TraderActionFactory actionFactory,
|
||||
EvidenceAppender evidenceAppender,
|
||||
InMemoryOutboxRepository outboxRepository) {
|
||||
TraderDecisionTraceWriter traceWriter,
|
||||
TraderOutboxRepository outboxRepository) {
|
||||
this.properties = properties;
|
||||
this.artifactLoader = artifactLoader;
|
||||
this.modelService = modelService;
|
||||
@@ -49,6 +52,7 @@ public class TraderP0CycleRunner {
|
||||
this.riskGate = riskGate;
|
||||
this.actionFactory = actionFactory;
|
||||
this.evidenceAppender = evidenceAppender;
|
||||
this.traceWriter = traceWriter;
|
||||
this.outboxRepository = outboxRepository;
|
||||
}
|
||||
|
||||
@@ -69,6 +73,7 @@ public class TraderP0CycleRunner {
|
||||
pmInput.executionState(), snapshot, riskLimits()));
|
||||
evidenceAppender.append(cycle.runId(), cycle.cycleId(), "RISK_DECISION", riskDecision.allowAction(), riskDecision.allowAction() ? "RISK_PASS" : riskDecision.blocker(), riskDecision.blocker(), Map.of());
|
||||
TraderAction action = actionFactory.create(pmDecision, riskDecision, event.symbol());
|
||||
traceWriter.persistCycleTrace(cycle, snapshot, modelOutput, pmInput.positionState(), pmDecision, riskDecision, action);
|
||||
outboxRepository.insert(new TraderOutboxEvent("outbox_" + action.actionId(), action.runId(), action.cycleId(),
|
||||
"TRADER_ACTION", action.actionId(), "ACTION_CREATED", properties.runMode().name() + "_RECORDER",
|
||||
Map.of("actionType", action.actionType().name()), action.idempotencyKey(), "PENDING", Instant.now()));
|
||||
|
||||
Reference in New Issue
Block a user