Implement Trader V4 training artifact pipeline

This commit is contained in:
Codex
2026-06-27 16:15:23 +08:00
parent dad6b831b4
commit e58e4a5572
113 changed files with 7959 additions and 477 deletions
@@ -0,0 +1,38 @@
package com.quantai.trader.feedback;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.quantai.trader.domain.TraderAppFeedback;
import com.quantai.trader.persistence.TraderJsonCodec;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.sql.Timestamp;
@Repository
public class JdbcTraderFeedbackRepository implements TraderFeedbackRepository {
private final JdbcTemplate jdbcTemplate;
private final TraderJsonCodec jsonCodec;
public JdbcTraderFeedbackRepository(JdbcTemplate jdbcTemplate, ObjectMapper objectMapper) {
this.jdbcTemplate = jdbcTemplate;
this.jsonCodec = new TraderJsonCodec(objectMapper);
}
@Override
public void insert(TraderAppFeedback feedback) {
jdbcTemplate.update("""
insert into trader_app_feedback
(run_id, cycle_id, feedback_id, action_id, feedback_source, is_real_fill,
order_id, order_status, app_received_time, exchange_ack_time, filled_time,
filled_price, filled_quantity, fee, slippage_bps, reject_reason, raw_feedback_json)
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
feedback.runId(), feedback.cycleId(), feedback.feedbackId(), feedback.actionId(),
feedback.feedbackSource().name(), feedback.realFill(), feedback.orderId(), feedback.orderStatus(),
feedback.appReceivedTime() == null ? null : Timestamp.from(feedback.appReceivedTime()),
feedback.exchangeAckTime() == null ? null : Timestamp.from(feedback.exchangeAckTime()),
feedback.filledTime() == null ? null : Timestamp.from(feedback.filledTime()),
feedback.filledPrice(), feedback.filledQuantity(), feedback.fee(), feedback.slippageBps(),
feedback.rejectReason(), jsonCodec.toJson(feedback.rawFeedbackJson()));
}
}
@@ -0,0 +1,7 @@
package com.quantai.trader.feedback;
import com.quantai.trader.domain.TraderAppFeedback;
public interface TraderFeedbackRepository {
void insert(TraderAppFeedback feedback);
}