Initial quant trader service baseline

This commit is contained in:
Codex
2026-06-23 22:09:06 +08:00
commit 7ff786f658
137 changed files with 6664 additions and 0 deletions
@@ -0,0 +1,66 @@
package com.quantai.trader.util;
import com.quantai.trader.domain.TraderDecisionCycle;
import java.time.Instant;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
import java.util.UUID;
public final class Ids {
private static final DateTimeFormatter RUN_FORMATTER =
DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss").withZone(ZoneOffset.UTC);
private Ids() {
}
public static String runId(Instant now) {
return "trader_run_" + RUN_FORMATTER.format(now) + "_" + suffix();
}
public static String cycleId(String runId, String symbol, Instant eventTime) {
return "trader_cycle_" + runId + "_" + symbol + "_" + eventTime.toEpochMilli();
}
public static String snapshotId(String cycleId) {
return "trader_snapshot_" + cycleId;
}
public static String candidateId(TraderDecisionCycle cycle, String playbookId) {
return "trader_candidate_" + cycle.cycleId() + "_" + playbookId;
}
public static String actionId(TraderDecisionCycle cycle, int sequence) {
return "trader_action_" + cycle.cycleId() + "_" + sequence;
}
public static String entryLegId(TraderDecisionCycle cycle, int index) {
return "trader_leg_" + actionId(cycle, index + 1) + "_" + index;
}
public static String positionId(String runId, String symbol, String side, int sequence) {
return "trader_position_" + runId + "_" + symbol + "_" + side + "_" + sequence;
}
public static String evidenceId(TraderDecisionCycle cycle, String stage) {
return "trader_evidence_" + cycle.cycleId() + "_" + slug(stage) + "_" + suffix();
}
public static String sampleId(TraderDecisionCycle cycle, String labelVersion) {
return "trader_sample_" + cycle.cycleId() + "_" + slug(labelVersion);
}
public static String reportId(String runId) {
return "trader_report_" + runId;
}
private static String slug(String value) {
return value.toLowerCase(Locale.ROOT).replaceAll("[^a-z0-9]+", "_");
}
private static String suffix() {
return UUID.randomUUID().toString().replace("-", "").substring(0, 8);
}
}