feat: add OI ranking data support and fix trader config update issues

- Add OI ranking data fetching and formatting for AI prompts
- Fix trader update not saving strategy_id, ai_model_id, initial_balance
- Fix AI API key not set for non-qwen/deepseek providers
- Add strategy_id to trader config API response
- Remove old trader from memory before reloading on update
- Clean up unused useTraderActions.ts
This commit is contained in:
tinkle-community
2025-12-12 16:08:21 +08:00
parent f5ae22d85c
commit cc390706d0
16 changed files with 476 additions and 716 deletions

View File

@@ -449,6 +449,16 @@ func (s *Server) handleStrategyTestRun(c *gin.Context) {
marketDataMap[coin.Symbol] = data
}
// Fetch quantitative data for each candidate coin
symbols := make([]string, 0, len(candidates))
for _, c := range candidates {
symbols = append(symbols, c.Symbol)
}
quantDataMap := engine.FetchQuantDataBatch(symbols)
// Fetch OI ranking data (market-wide position changes)
oiRankingData := engine.FetchOIRankingData()
// Build real context (for generating User Prompt)
testContext := &decision.Context{
CurrentTime: time.Now().UTC().Format("2006-01-02 15:04:05 UTC"),
@@ -468,6 +478,8 @@ func (s *Server) handleStrategyTestRun(c *gin.Context) {
CandidateCoins: candidates,
PromptVariant: req.PromptVariant,
MarketDataMap: marketDataMap,
QuantDataMap: quantDataMap,
OIRankingData: oiRankingData,
}
// Build System Prompt