From 319ccb8ca3722479bc4c79d646c5b4ddb9174802 Mon Sep 17 00:00:00 2001 From: tinkle-community Date: Wed, 10 Dec 2025 14:40:08 +0800 Subject: [PATCH] fix: initial balance calculation and UI improvements - Fix initial balance using available_balance instead of total_equity - Fix WSMonitor nil pointer by starting market monitor before loading traders - Add strategy name display on traders list and dashboard pages - Various position sync and trading improvements --- api/backtest.go | 9 - api/server.go | 102 +- api/strategy.go | 10 +- backtest/config.go | 59 + backtest/runner.go | 24 +- config.json.example | 17 - data/nofx.db | 0 decision/engine.go | 1348 +++++++++++------ decision/prompt_manager.go | 162 -- decision/prompt_manager_test.go | 285 ---- decision/prompt_reload_integration_test.go | 243 --- decision/prompt_test.go | 29 - decision/strategy_engine.go | 969 ------------ docker-compose.prod.yml | 2 +- docker-compose.yml | 14 +- img.png | Bin 0 -> 373019 bytes img_1.png | Bin 0 -> 260738 bytes logger/logger.go | 3 +- main.go | 20 +- prompts/Hansen.txt | 180 --- prompts/default.txt | 129 -- prompts/nof1.txt | 239 --- prompts/taro_long_prompts.txt | 337 ----- scripts/migrate_encryption.go | 2 +- start.sh | 41 +- store/position.go | 647 +++++++- store/strategy.go | 63 +- trader/aster_trader.go | 29 +- trader/auto_trader.go | 247 ++- trader/binance_futures.go | 113 ++ trader/bybit_trader.go | 157 +- trader/hyperliquid_trader.go | 10 + trader/interface.go | 25 + trader/lighter_trader.go | 9 + trader/lighter_trader_v2.go | 9 + trader/okx_trader.go | 109 ++ trader/position_sync.go | 381 ++++- web/src/App.tsx | 16 +- web/src/components/TraderConfigModal.tsx | 2 +- .../components/strategy/CoinSourceEditor.tsx | 4 +- .../components/strategy/RiskControlEditor.tsx | 178 ++- .../traders/ExchangeConfigModal.tsx | 62 +- .../traders/sections/TradersGrid.tsx | 1 + web/src/i18n/translations.ts | 32 +- web/src/types.ts | 25 +- 45 files changed, 2951 insertions(+), 3392 deletions(-) delete mode 100644 config.json.example create mode 100644 data/nofx.db delete mode 100644 decision/prompt_manager.go delete mode 100644 decision/prompt_manager_test.go delete mode 100644 decision/prompt_reload_integration_test.go delete mode 100644 decision/prompt_test.go delete mode 100644 decision/strategy_engine.go create mode 100644 img.png create mode 100644 img_1.png delete mode 100644 prompts/Hansen.txt delete mode 100644 prompts/default.txt delete mode 100644 prompts/nof1.txt delete mode 100644 prompts/taro_long_prompts.txt diff --git a/api/backtest.go b/api/backtest.go index 015c75b3..3adc55d1 100644 --- a/api/backtest.go +++ b/api/backtest.go @@ -12,7 +12,6 @@ import ( "time" "nofx/backtest" - "nofx/decision" "nofx/store" "github.com/gin-gonic/gin" @@ -64,14 +63,6 @@ func (s *Server) handleBacktestStart(c *gin.Context) { if cfg.RunID == "" { cfg.RunID = "bt_" + time.Now().UTC().Format("20060102_150405") } - cfg.PromptTemplate = strings.TrimSpace(cfg.PromptTemplate) - if cfg.PromptTemplate == "" { - cfg.PromptTemplate = "default" - } - if _, err := decision.GetPromptTemplate(cfg.PromptTemplate); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("Prompt template does not exist: %s", cfg.PromptTemplate)}) - return - } cfg.CustomPrompt = strings.TrimSpace(cfg.CustomPrompt) cfg.UserID = normalizeUserID(c.GetString("user_id")) if err := s.hydrateBacktestAIConfig(&cfg); err != nil { diff --git a/api/server.go b/api/server.go index f2139414..773d43a8 100644 --- a/api/server.go +++ b/api/server.go @@ -10,7 +10,6 @@ import ( "nofx/backtest" "nofx/config" "nofx/crypto" - "nofx/decision" "nofx/logger" "nofx/manager" "nofx/store" @@ -99,10 +98,6 @@ func (s *Server) setupRoutes() { api.GET("/crypto/public-key", s.cryptoHandler.HandleGetPublicKey) api.POST("/crypto/decrypt", s.cryptoHandler.HandleDecryptSensitiveData) - // System prompt template management (no authentication required) - api.GET("/prompt-templates", s.handleGetPromptTemplates) - api.GET("/prompt-templates/:name", s.handleGetPromptTemplate) - // Public competition data (no authentication required) api.GET("/traders", s.handlePublicTraderList) api.GET("/competition", s.handlePublicCompetition) @@ -150,7 +145,6 @@ func (s *Server) setupRoutes() { protected.GET("/strategies", s.handleGetStrategies) protected.GET("/strategies/active", s.handleGetActiveStrategy) protected.GET("/strategies/default-config", s.handleGetDefaultStrategyConfig) - protected.GET("/strategies/templates", s.handleGetPromptTemplates) protected.POST("/strategies/preview-prompt", s.handlePreviewPrompt) protected.POST("/strategies/test-run", s.handleStrategyTestRun) protected.GET("/strategies/:id", s.handleGetStrategy) @@ -553,25 +547,19 @@ func (s *Server) handleCreateTrader(c *gin.Context) { if balanceErr != nil { logger.Infof("⚠️ Failed to query exchange balance, using user input for initial balance: %v", balanceErr) } else { - // Extract available balance - supports multiple field name formats - if availableBalance, ok := balanceInfo["availableBalance"].(float64); ok && availableBalance > 0 { - // Binance format: availableBalance (camelCase) - actualBalance = availableBalance - logger.Infof("✓ Queried exchange actual balance: %.2f USDT (user input: %.2f USDT)", actualBalance, req.InitialBalance) - } else if availableBalance, ok := balanceInfo["available_balance"].(float64); ok && availableBalance > 0 { - // Other format: available_balance (snake_case) - actualBalance = availableBalance - logger.Infof("✓ Queried exchange actual balance: %.2f USDT (user input: %.2f USDT)", actualBalance, req.InitialBalance) - } else if totalBalance, ok := balanceInfo["totalWalletBalance"].(float64); ok && totalBalance > 0 { - // Binance format: totalWalletBalance (camelCase) - actualBalance = totalBalance - logger.Infof("✓ Queried exchange total balance: %.2f USDT (user input: %.2f USDT)", actualBalance, req.InitialBalance) - } else if totalBalance, ok := balanceInfo["balance"].(float64); ok && totalBalance > 0 { - // Other format: balance - actualBalance = totalBalance - logger.Infof("✓ Queried exchange actual balance: %.2f USDT (user input: %.2f USDT)", actualBalance, req.InitialBalance) - } else { - logger.Infof("⚠️ Unable to extract available balance from balance info, balanceInfo=%v, using user input for initial balance", balanceInfo) + // Extract total equity (account total value = wallet balance + unrealized PnL) + // Priority: total_equity > totalWalletBalance > wallet_balance > totalEq > balance + // Note: Must use total_equity (not availableBalance) for accurate P&L calculation + balanceKeys := []string{"total_equity", "totalWalletBalance", "wallet_balance", "totalEq", "balance"} + for _, key := range balanceKeys { + if balance, ok := balanceInfo[key].(float64); ok && balance > 0 { + actualBalance = balance + logger.Infof("✓ Queried exchange total equity (%s): %.2f USDT (user input: %.2f USDT)", key, actualBalance, req.InitialBalance) + break + } + } + if actualBalance <= 0 { + logger.Infof("⚠️ Unable to extract total equity from balance info, balanceInfo=%v, using user input for initial balance", balanceInfo) } } } @@ -1002,16 +990,18 @@ func (s *Server) handleSyncBalance(c *gin.Context) { return } - // Extract available balance + // Extract total equity (for P&L calculation, we need total account value, not available balance) var actualBalance float64 - if availableBalance, ok := balanceInfo["available_balance"].(float64); ok && availableBalance > 0 { - actualBalance = availableBalance - } else if availableBalance, ok := balanceInfo["availableBalance"].(float64); ok && availableBalance > 0 { - actualBalance = availableBalance - } else if totalBalance, ok := balanceInfo["balance"].(float64); ok && totalBalance > 0 { - actualBalance = totalBalance - } else { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Unable to get available balance"}) + // Priority: total_equity > totalWalletBalance > wallet_balance > totalEq > balance + balanceKeys := []string{"total_equity", "totalWalletBalance", "wallet_balance", "totalEq", "balance"} + for _, key := range balanceKeys { + if balance, ok := balanceInfo[key].(float64); ok && balance > 0 { + actualBalance = balance + break + } + } + if actualBalance <= 0 { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Unable to get total equity"}) return } @@ -1438,6 +1428,14 @@ func (s *Server) handleTraderList(c *gin.Context) { } } + // Get strategy name if strategy_id is set + var strategyName string + if trader.StrategyID != "" { + if strategy, err := s.store.Strategy().Get(userID, trader.StrategyID); err == nil { + strategyName = strategy.Name + } + } + // Return complete AIModelID (e.g. "admin_deepseek"), don't truncate // Frontend needs complete ID to verify model exists (consistent with handleGetTraderConfig) result = append(result, map[string]interface{}{ @@ -1447,6 +1445,8 @@ func (s *Server) handleTraderList(c *gin.Context) { "exchange_id": trader.ExchangeID, "is_running": isRunning, "initial_balance": trader.InitialBalance, + "strategy_id": trader.StrategyID, + "strategy_name": strategyName, }) } @@ -2142,40 +2142,6 @@ func (s *Server) Shutdown() error { return s.httpServer.Shutdown(ctx) } -// handleGetPromptTemplates Get all system prompt template list -func (s *Server) handleGetPromptTemplates(c *gin.Context) { - // Import decision package - templates := decision.GetAllPromptTemplates() - - // Convert to response format - response := make([]map[string]interface{}, 0, len(templates)) - for _, tmpl := range templates { - response = append(response, map[string]interface{}{ - "name": tmpl.Name, - }) - } - - c.JSON(http.StatusOK, gin.H{ - "templates": response, - }) -} - -// handleGetPromptTemplate Get prompt template content by specified name -func (s *Server) handleGetPromptTemplate(c *gin.Context) { - templateName := c.Param("name") - - template, err := decision.GetPromptTemplate(templateName) - if err != nil { - c.JSON(http.StatusNotFound, gin.H{"error": fmt.Sprintf("Template does not exist: %s", templateName)}) - return - } - - c.JSON(http.StatusOK, gin.H{ - "name": template.Name, - "content": template.Content, - }) -} - // handlePublicTraderList Get public trader list (no authentication required) func (s *Server) handlePublicTraderList(c *gin.Context) { // Get trader information from all users diff --git a/api/strategy.go b/api/strategy.go index 5eec8b92..f56b9204 100644 --- a/api/strategy.go +++ b/api/strategy.go @@ -361,13 +361,9 @@ func (s *Server) handlePreviewPrompt(c *gin.Context) { req.PromptVariant, ) - // Get list of available prompt templates - templateNames := decision.GetAllPromptTemplateNames() - c.JSON(http.StatusOK, gin.H{ - "system_prompt": systemPrompt, - "prompt_variant": req.PromptVariant, - "available_templates": templateNames, + "system_prompt": systemPrompt, + "prompt_variant": req.PromptVariant, "config_summary": gin.H{ "coin_source": req.Config.CoinSource.SourceType, "primary_tf": req.Config.Indicators.Klines.PrimaryTimeframe, @@ -455,7 +451,7 @@ func (s *Server) handleStrategyTestRun(c *gin.Context) { // Build real context (for generating User Prompt) testContext := &decision.Context{ - CurrentTime: time.Now().Format("2006-01-02 15:04:05"), + CurrentTime: time.Now().UTC().Format("2006-01-02 15:04:05 UTC"), RuntimeMinutes: 0, CallCount: 1, Account: decision.AccountInfo{ diff --git a/backtest/config.go b/backtest/config.go index 2062f25e..401d95f5 100644 --- a/backtest/config.go +++ b/backtest/config.go @@ -6,6 +6,7 @@ import ( "time" "nofx/market" + "nofx/store" ) // AIConfig defines the AI client configuration used in backtesting. @@ -176,3 +177,61 @@ func validateFillPolicy(policy string) error { return fmt.Errorf("unsupported fill_policy '%s'", policy) } } + +// ToStrategyConfig converts BacktestConfig to StrategyConfig for unified prompt generation. +// This ensures backtest uses the same StrategyEngine logic as live trading. +func (cfg *BacktestConfig) ToStrategyConfig() *store.StrategyConfig { + // Determine primary and longer timeframe from the timeframes list + primaryTF := "5m" + longerTF := "4h" + if len(cfg.Timeframes) > 0 { + primaryTF = cfg.Timeframes[0] + } + if len(cfg.Timeframes) > 1 { + longerTF = cfg.Timeframes[len(cfg.Timeframes)-1] + } + + return &store.StrategyConfig{ + CoinSource: store.CoinSourceConfig{ + SourceType: "static", + StaticCoins: cfg.Symbols, + UseCoinPool: false, + CoinPoolLimit: len(cfg.Symbols), + UseOITop: false, + OITopLimit: 0, + }, + Indicators: store.IndicatorConfig{ + Klines: store.KlineConfig{ + PrimaryTimeframe: primaryTF, + PrimaryCount: 30, + LongerTimeframe: longerTF, + LongerCount: 10, + EnableMultiTimeframe: len(cfg.Timeframes) > 1, + SelectedTimeframes: cfg.Timeframes, + }, + EnableRawKlines: true, + EnableEMA: true, + EnableMACD: true, + EnableRSI: true, + EnableATR: true, + EnableVolume: true, + EnableOI: true, + EnableFundingRate: true, + EMAPeriods: []int{20, 50}, + RSIPeriods: []int{7, 14}, + ATRPeriods: []int{14}, + }, + CustomPrompt: cfg.CustomPrompt, + RiskControl: store.RiskControlConfig{ + MaxPositions: 3, + BTCETHMaxLeverage: cfg.Leverage.BTCETHLeverage, + AltcoinMaxLeverage: cfg.Leverage.AltcoinLeverage, + BTCETHMaxPositionValueRatio: 5.0, + AltcoinMaxPositionValueRatio: 1.0, + MaxMarginUsage: 0.9, + MinPositionSize: 12, + MinRiskRewardRatio: 3.0, + MinConfidence: 75, + }, + } +} diff --git a/backtest/runner.go b/backtest/runner.go index 761196b1..8c483ecb 100644 --- a/backtest/runner.go +++ b/backtest/runner.go @@ -31,9 +31,10 @@ const ( // Runner encapsulates the lifecycle of a single backtest run. type Runner struct { - cfg BacktestConfig - feed *DataFeed - account *BacktestAccount + cfg BacktestConfig + feed *DataFeed + account *BacktestAccount + strategyEngine *decision.StrategyEngine decisionLogDir string mcpClient mcp.AIClient @@ -115,10 +116,15 @@ func NewRunner(cfg BacktestConfig, mcpClient mcp.AIClient) (*Runner, error) { aiCache = cache } + // Create strategy engine from backtest config for unified prompt generation + strategyConfig := cfg.ToStrategyConfig() + strategyEngine := decision.NewStrategyEngine(strategyConfig) + r := &Runner{ cfg: cfg, feed: feed, account: account, + strategyEngine: strategyEngine, decisionLogDir: dLogDir, mcpClient: client, status: RunStateCreated, @@ -492,7 +498,7 @@ func (r *Runner) buildDecisionContext(ts int64, marketData map[string]*market.Da runtime := int((ts - int64(r.cfg.StartTS*1000)) / 60000) ctx := &decision.Context{ - CurrentTime: time.UnixMilli(ts).UTC().Format(time.RFC3339), + CurrentTime: time.UnixMilli(ts).UTC().Format("2006-01-02 15:04:05 UTC"), RuntimeMinutes: runtime, CallCount: callCount, Account: accountInfo, @@ -503,6 +509,7 @@ func (r *Runner) buildDecisionContext(ts int64, marketData map[string]*market.Da MultiTFMarket: multiTF, BTCETHLeverage: r.cfg.Leverage.BTCETHLeverage, AltcoinLeverage: r.cfg.Leverage.AltcoinLeverage, + Timeframes: r.cfg.Timeframes, } record := &store.DecisionRecord{ @@ -537,12 +544,13 @@ func (r *Runner) fillDecisionRecord(record *store.DecisionRecord, full *decision func (r *Runner) invokeAIWithRetry(ctx *decision.Context) (*decision.FullDecision, error) { var lastErr error for attempt := 0; attempt < aiDecisionMaxRetries; attempt++ { - fd, err := decision.GetFullDecisionWithCustomPrompt( + // Use GetFullDecisionWithStrategy with the pre-configured strategy engine + // This ensures backtest uses the same unified prompt generation as live trading + fd, err := decision.GetFullDecisionWithStrategy( ctx, r.mcpClient, - r.cfg.CustomPrompt, - r.cfg.OverrideBasePrompt, - r.cfg.PromptTemplate, + r.strategyEngine, + r.cfg.PromptVariant, ) if err == nil { return fd, nil diff --git a/config.json.example b/config.json.example deleted file mode 100644 index 50dba709..00000000 --- a/config.json.example +++ /dev/null @@ -1,17 +0,0 @@ -{ - "_说明": "此文件仅供参考,系统不会读取此文件。所有配置从 .env 文件加载。", - - "_env配置说明": { - "JWT_SECRET": "JWT密钥,必须设置", - "REGISTRATION_ENABLED": "是否允许注册,true/false", - "API_SERVER_PORT": "API服务器端口,默认8080", - "DEEPSEEK_API_KEY": "DeepSeek API Key(回测用)" - }, - - "_数据库配置说明": { - "traders表": "交易员配置,包含杠杆、扫描间隔等", - "strategies表": "策略配置,包含AI500 API URL、OI Top API URL等", - "ai_models表": "AI模型配置", - "exchanges表": "交易所配置" - } -} diff --git a/data/nofx.db b/data/nofx.db new file mode 100644 index 00000000..e69de29b diff --git a/decision/engine.go b/decision/engine.go index 3d96bc50..1875ba3c 100644 --- a/decision/engine.go +++ b/decision/engine.go @@ -3,20 +3,24 @@ package decision import ( "encoding/json" "fmt" + "io" + "net/http" "nofx/logger" - "math" "nofx/market" "nofx/mcp" "nofx/pool" + "nofx/store" "regexp" "strings" "time" ) -// Pre-compiled regular expressions (performance optimization: avoid recompiling on each call) +// ============================================================================ +// Pre-compiled regular expressions (performance optimization) +// ============================================================================ + var ( // Safe regex: precisely match ```json code blocks - // Use backtick + concatenation to avoid escape issues reJSONFence = regexp.MustCompile(`(?is)` + "```json\\s*(\\[\\s*\\{.*?\\}\\s*\\])\\s*```") reJSONArray = regexp.MustCompile(`(?is)\[\s*\{.*?\}\s*\]`) reArrayHead = regexp.MustCompile(`^\[\s*\{`) @@ -28,6 +32,10 @@ var ( reDecisionTag = regexp.MustCompile(`(?s)(.*?)`) ) +// ============================================================================ +// Type Definitions +// ============================================================================ + // PositionInfo position information type PositionInfo struct { Symbol string `json:"symbol"` @@ -86,13 +94,15 @@ type TradingStats struct { // RecentOrder recently completed order (for AI input) type RecentOrder struct { - Symbol string `json:"symbol"` // Trading pair - Side string `json:"side"` // long/short - EntryPrice float64 `json:"entry_price"` // Entry price - ExitPrice float64 `json:"exit_price"` // Exit price - RealizedPnL float64 `json:"realized_pnl"` // Realized profit/loss - PnLPct float64 `json:"pnl_pct"` // Profit/loss percentage - FilledAt string `json:"filled_at"` // Fill time + Symbol string `json:"symbol"` // Trading pair + Side string `json:"side"` // long/short + EntryPrice float64 `json:"entry_price"` // Entry price + ExitPrice float64 `json:"exit_price"` // Exit price + RealizedPnL float64 `json:"realized_pnl"` // Realized profit/loss + PnLPct float64 `json:"pnl_pct"` // Profit/loss percentage + EntryTime string `json:"entry_time"` // Entry time + ExitTime string `json:"exit_time"` // Exit time + HoldDuration string `json:"hold_duration"` // Hold duration, e.g. "2h30m" } // Context trading context (complete information passed to AI) @@ -104,14 +114,15 @@ type Context struct { Positions []PositionInfo `json:"positions"` CandidateCoins []CandidateCoin `json:"candidate_coins"` PromptVariant string `json:"prompt_variant,omitempty"` - TradingStats *TradingStats `json:"trading_stats,omitempty"` // Trading statistics - RecentOrders []RecentOrder `json:"recent_orders,omitempty"` // Recently completed orders (10) - MarketDataMap map[string]*market.Data `json:"-"` // Not serialized, but used internally + TradingStats *TradingStats `json:"trading_stats,omitempty"` + RecentOrders []RecentOrder `json:"recent_orders,omitempty"` + MarketDataMap map[string]*market.Data `json:"-"` MultiTFMarket map[string]map[string]*market.Data `json:"-"` - OITopDataMap map[string]*OITopData `json:"-"` // OI Top data mapping - QuantDataMap map[string]*QuantData `json:"-"` // Quantitative data mapping (fund flow, position changes) - BTCETHLeverage int `json:"-"` // BTC/ETH leverage multiplier (read from config) - AltcoinLeverage int `json:"-"` // Altcoin leverage multiplier (read from config) + OITopDataMap map[string]*OITopData `json:"-"` + QuantDataMap map[string]*QuantData `json:"-"` + BTCETHLeverage int `json:"-"` + AltcoinLeverage int `json:"-"` + Timeframes []string `json:"-"` } // Decision AI trading decision @@ -133,33 +144,94 @@ type Decision struct { // FullDecision AI's complete decision (including chain of thought) type FullDecision struct { - SystemPrompt string `json:"system_prompt"` // System prompt (system prompt sent to AI) - UserPrompt string `json:"user_prompt"` // Input prompt sent to AI - CoTTrace string `json:"cot_trace"` // Chain of thought analysis (AI output) - Decisions []Decision `json:"decisions"` // Specific decision list - RawResponse string `json:"raw_response"` // Raw AI response (for debugging when parsing fails) - Timestamp time.Time `json:"timestamp"` - // AIRequestDurationMs records AI API call duration (milliseconds) for troubleshooting latency issues - AIRequestDurationMs int64 `json:"ai_request_duration_ms,omitempty"` + SystemPrompt string `json:"system_prompt"` + UserPrompt string `json:"user_prompt"` + CoTTrace string `json:"cot_trace"` + Decisions []Decision `json:"decisions"` + RawResponse string `json:"raw_response"` + Timestamp time.Time `json:"timestamp"` + AIRequestDurationMs int64 `json:"ai_request_duration_ms,omitempty"` } +// QuantData quantitative data structure (fund flow, position changes, price changes) +type QuantData struct { + Symbol string `json:"symbol"` + Price float64 `json:"price"` + Netflow *NetflowData `json:"netflow,omitempty"` + OI map[string]*OIData `json:"oi,omitempty"` + PriceChange map[string]float64 `json:"price_change,omitempty"` +} + +type NetflowData struct { + Institution *FlowTypeData `json:"institution,omitempty"` + Personal *FlowTypeData `json:"personal,omitempty"` +} + +type FlowTypeData struct { + Future map[string]float64 `json:"future,omitempty"` + Spot map[string]float64 `json:"spot,omitempty"` +} + +type OIData struct { + CurrentOI float64 `json:"current_oi"` + NetLong float64 `json:"net_long"` + NetShort float64 `json:"net_short"` + Delta map[string]*OIDeltaData `json:"delta,omitempty"` +} + +type OIDeltaData struct { + OIDelta float64 `json:"oi_delta"` + OIDeltaValue float64 `json:"oi_delta_value"` + OIDeltaPercent float64 `json:"oi_delta_percent"` +} + +// ============================================================================ +// StrategyEngine - Core Strategy Execution Engine +// ============================================================================ + +// StrategyEngine strategy execution engine +type StrategyEngine struct { + config *store.StrategyConfig +} + +// NewStrategyEngine creates strategy execution engine +func NewStrategyEngine(config *store.StrategyConfig) *StrategyEngine { + return &StrategyEngine{config: config} +} + +// GetRiskControlConfig gets risk control configuration +func (e *StrategyEngine) GetRiskControlConfig() store.RiskControlConfig { + return e.config.RiskControl +} + +// GetConfig gets complete strategy configuration +func (e *StrategyEngine) GetConfig() *store.StrategyConfig { + return e.config +} + +// ============================================================================ +// Entry Functions - Main API +// ============================================================================ + // GetFullDecision gets AI's complete trading decision (batch analysis of all coins and positions) +// Uses default strategy configuration - for production use GetFullDecisionWithStrategy with explicit config func GetFullDecision(ctx *Context, mcpClient mcp.AIClient) (*FullDecision, error) { - return GetFullDecisionWithCustomPrompt(ctx, mcpClient, "", false, "") + defaultConfig := store.GetDefaultStrategyConfig("en") + engine := NewStrategyEngine(&defaultConfig) + return GetFullDecisionWithStrategy(ctx, mcpClient, engine, "") } -// GetFullDecisionWithStrategy uses StrategyEngine to get AI decision (new version: strategy-driven) -// Key: uses strategy-configured timeframes to fetch market data, consistent with api/strategy.go test run logic +// GetFullDecisionWithStrategy uses StrategyEngine to get AI decision (unified prompt generation) func GetFullDecisionWithStrategy(ctx *Context, mcpClient mcp.AIClient, engine *StrategyEngine, variant string) (*FullDecision, error) { if ctx == nil { return nil, fmt.Errorf("context is nil") } if engine == nil { - // If no strategy engine, fallback to default behavior - return GetFullDecisionWithCustomPrompt(ctx, mcpClient, "", false, "") + defaultConfig := store.GetDefaultStrategyConfig("en") + engine = NewStrategyEngine(&defaultConfig) } - // 1. Fetch market data using strategy config (key: use multiple timeframes) + // 1. Fetch market data using strategy config if len(ctx.MarketDataMap) == 0 { if err := fetchMarketDataWithStrategy(ctx, engine); err != nil { return nil, fmt.Errorf("failed to fetch market data: %w", err) @@ -169,7 +241,6 @@ func GetFullDecisionWithStrategy(ctx *Context, mcpClient mcp.AIClient, engine *S // Ensure OITopDataMap is initialized if ctx.OITopDataMap == nil { ctx.OITopDataMap = make(map[string]*OITopData) - // Load OI Top data oiPositions, err := pool.GetOITopPositions() if err == nil { for _, pos := range oiPositions { @@ -189,7 +260,7 @@ func GetFullDecisionWithStrategy(ctx *Context, mcpClient mcp.AIClient, engine *S riskConfig := engine.GetRiskControlConfig() systemPrompt := engine.BuildSystemPrompt(ctx.Account.TotalEquity, variant) - // 3. Build User Prompt using strategy engine (including multi-timeframe data) + // 3. Build User Prompt using strategy engine userPrompt := engine.BuildUserPrompt(ctx) // 4. Call AI API @@ -213,7 +284,7 @@ func GetFullDecisionWithStrategy(ctx *Context, mcpClient mcp.AIClient, engine *S decision.SystemPrompt = systemPrompt decision.UserPrompt = userPrompt decision.AIRequestDurationMs = aiCallDuration.Milliseconds() - decision.RawResponse = aiResponse // Save raw response for debugging + decision.RawResponse = aiResponse } if err != nil { @@ -223,13 +294,15 @@ func GetFullDecisionWithStrategy(ctx *Context, mcpClient mcp.AIClient, engine *S return decision, nil } +// ============================================================================ +// Market Data Fetching +// ============================================================================ + // fetchMarketDataWithStrategy fetches market data using strategy config (multiple timeframes) -// Fully implemented according to api/strategy.go handleStrategyTestRun logic func fetchMarketDataWithStrategy(ctx *Context, engine *StrategyEngine) error { config := engine.GetConfig() ctx.MarketDataMap = make(map[string]*market.Data) - // Get timeframe configuration (fully consistent with api/strategy.go logic) timeframes := config.Indicators.Klines.SelectedTimeframes primaryTimeframe := config.Indicators.Klines.PrimaryTimeframe klineCount := config.Indicators.Klines.PrimaryCount @@ -264,18 +337,15 @@ func fetchMarketDataWithStrategy(ctx *Context, engine *StrategyEngine) error { ctx.MarketDataMap[pos.Symbol] = data } - // 2. Fetch data for all candidate coins (fully consistent with api/strategy.go, no quantity limit) - // Position coin set (used to determine whether to skip OI check) + // 2. Fetch data for all candidate coins positionSymbols := make(map[string]bool) for _, pos := range ctx.Positions { positionSymbols[pos.Symbol] = true } - // OI liquidity filter threshold (million USD) const minOIThresholdMillions = 15.0 // 15M USD minimum open interest value for _, coin := range ctx.CandidateCoins { - // Skip already fetched position coins if _, exists := ctx.MarketDataMap[coin.Symbol]; exists { continue } @@ -286,16 +356,14 @@ func fetchMarketDataWithStrategy(ctx *Context, engine *StrategyEngine) error { continue } - // Liquidity filter: skip coins with OI value below threshold (both long and short) - // But existing positions must be retained (need to decide whether to close) + // Liquidity filter isExistingPosition := positionSymbols[coin.Symbol] if !isExistingPosition && data.OpenInterest != nil && data.CurrentPrice > 0 { - // Calculate OI value (USD) = OI quantity × current price oiValue := data.OpenInterest.Latest * data.CurrentPrice - oiValueInMillions := oiValue / 1_000_000 // Convert to million USD + oiValueInMillions := oiValue / 1_000_000 if oiValueInMillions < minOIThresholdMillions { - logger.Infof("⚠️ %s OI value too low (%.2fM USD < %.1fM), skipping coin [OI:%.0f × Price:%.4f]", - coin.Symbol, oiValueInMillions, minOIThresholdMillions, data.OpenInterest.Latest, data.CurrentPrice) + logger.Infof("⚠️ %s OI value too low (%.2fM USD < %.1fM), skipping coin", + coin.Symbol, oiValueInMillions, minOIThresholdMillions) continue } } @@ -303,292 +371,467 @@ func fetchMarketDataWithStrategy(ctx *Context, engine *StrategyEngine) error { ctx.MarketDataMap[coin.Symbol] = data } - logger.Infof("📊 Successfully fetched multi-timeframe market data for %d coins (low liquidity coins filtered)", len(ctx.MarketDataMap)) + logger.Infof("📊 Successfully fetched multi-timeframe market data for %d coins", len(ctx.MarketDataMap)) return nil } -// GetFullDecisionWithCustomPrompt gets AI's complete trading decision (supports custom prompt and template selection) -func GetFullDecisionWithCustomPrompt(ctx *Context, mcpClient mcp.AIClient, customPrompt string, overrideBase bool, templateName string) (*FullDecision, error) { - if ctx == nil { - return nil, fmt.Errorf("context is nil") +// ============================================================================ +// Candidate Coins +// ============================================================================ + +// GetCandidateCoins gets candidate coins based on strategy configuration +func (e *StrategyEngine) GetCandidateCoins() ([]CandidateCoin, error) { + var candidates []CandidateCoin + symbolSources := make(map[string][]string) + + coinSource := e.config.CoinSource + + if coinSource.CoinPoolAPIURL != "" { + pool.SetCoinPoolAPI(coinSource.CoinPoolAPIURL) + } + if coinSource.OITopAPIURL != "" { + pool.SetOITopAPI(coinSource.OITopAPIURL) } - // 1. Fetch market data for all coins (if already provided by upper layer, no need to re-fetch) - if len(ctx.MarketDataMap) == 0 { - if err := fetchMarketDataForContext(ctx); err != nil { - return nil, fmt.Errorf("failed to fetch market data: %w", err) + switch coinSource.SourceType { + case "static": + for _, symbol := range coinSource.StaticCoins { + symbol = market.Normalize(symbol) + candidates = append(candidates, CandidateCoin{ + Symbol: symbol, + Sources: []string{"static"}, + }) } - } else if ctx.OITopDataMap == nil { - // Ensure OI data mapping is initialized to avoid null pointer access later - ctx.OITopDataMap = make(map[string]*OITopData) + return candidates, nil + + case "coinpool": + return e.getCoinPoolCoins(coinSource.CoinPoolLimit) + + case "oi_top": + return e.getOITopCoins(coinSource.OITopLimit) + + case "mixed": + if coinSource.UseCoinPool { + poolCoins, err := e.getCoinPoolCoins(coinSource.CoinPoolLimit) + if err != nil { + logger.Infof("⚠️ Failed to get AI500 coin pool: %v", err) + } else { + for _, coin := range poolCoins { + symbolSources[coin.Symbol] = append(symbolSources[coin.Symbol], "ai500") + } + } + } + + if coinSource.UseOITop { + oiCoins, err := e.getOITopCoins(coinSource.OITopLimit) + if err != nil { + logger.Infof("⚠️ Failed to get OI Top: %v", err) + } else { + for _, coin := range oiCoins { + symbolSources[coin.Symbol] = append(symbolSources[coin.Symbol], "oi_top") + } + } + } + + for _, symbol := range coinSource.StaticCoins { + symbol = market.Normalize(symbol) + if _, exists := symbolSources[symbol]; !exists { + symbolSources[symbol] = []string{"static"} + } else { + symbolSources[symbol] = append(symbolSources[symbol], "static") + } + } + + for symbol, sources := range symbolSources { + candidates = append(candidates, CandidateCoin{ + Symbol: symbol, + Sources: sources, + }) + } + return candidates, nil + + default: + return nil, fmt.Errorf("unknown coin source type: %s", coinSource.SourceType) } - - // 2. Build System Prompt (fixed rules) and User Prompt (dynamic data) - systemPrompt := buildSystemPromptWithCustom( - ctx.Account.TotalEquity, - ctx.BTCETHLeverage, - ctx.AltcoinLeverage, - customPrompt, - overrideBase, - templateName, - ctx.PromptVariant, - ) - userPrompt := buildUserPrompt(ctx) - - // 3. Call AI API (using system + user prompt) - aiCallStart := time.Now() - aiResponse, err := mcpClient.CallWithMessages(systemPrompt, userPrompt) - aiCallDuration := time.Since(aiCallStart) - if err != nil { - return nil, fmt.Errorf("AI API call failed: %w", err) - } - - // 4. Parse AI response - decision, err := parseFullDecisionResponse(aiResponse, ctx.Account.TotalEquity, ctx.BTCETHLeverage, ctx.AltcoinLeverage) - - // Save SystemPrompt and UserPrompt regardless of error (for debugging and troubleshooting unexecuted decisions) - if decision != nil { - decision.Timestamp = time.Now() - decision.SystemPrompt = systemPrompt // Save system prompt - decision.UserPrompt = userPrompt // Save input prompt - decision.AIRequestDurationMs = aiCallDuration.Milliseconds() - decision.RawResponse = aiResponse // Save raw response for debugging - } - - if err != nil { - return decision, fmt.Errorf("failed to parse AI response: %w", err) - } - - return decision, nil } -// fetchMarketDataForContext fetches market data and OI data for all coins in context -func fetchMarketDataForContext(ctx *Context) error { - ctx.MarketDataMap = make(map[string]*market.Data) - ctx.OITopDataMap = make(map[string]*OITopData) - - // Collect all symbols that need data - symbolSet := make(map[string]bool) - - // 1. Prioritize fetching position coin data (this is required) - for _, pos := range ctx.Positions { - symbolSet[pos.Symbol] = true +func (e *StrategyEngine) getCoinPoolCoins(limit int) ([]CandidateCoin, error) { + if limit <= 0 { + limit = 30 } - // 2. Candidate coin count dynamically adjusted based on account status - maxCandidates := calculateMaxCandidates(ctx) - for i, coin := range ctx.CandidateCoins { - if i >= maxCandidates { + symbols, err := pool.GetTopRatedCoins(limit) + if err != nil { + return nil, err + } + + var candidates []CandidateCoin + for _, symbol := range symbols { + candidates = append(candidates, CandidateCoin{ + Symbol: symbol, + Sources: []string{"ai500"}, + }) + } + return candidates, nil +} + +func (e *StrategyEngine) getOITopCoins(limit int) ([]CandidateCoin, error) { + if limit <= 0 { + limit = 20 + } + + positions, err := pool.GetOITopPositions() + if err != nil { + return nil, err + } + + var candidates []CandidateCoin + for i, pos := range positions { + if i >= limit { break } - symbolSet[coin.Symbol] = true + symbol := market.Normalize(pos.Symbol) + candidates = append(candidates, CandidateCoin{ + Symbol: symbol, + Sources: []string{"oi_top"}, + }) } + return candidates, nil +} - // Fetch market data concurrently - // Position coin set (used to determine whether to skip OI check) - positionSymbols := make(map[string]bool) - for _, pos := range ctx.Positions { - positionSymbols[pos.Symbol] = true - } +// ============================================================================ +// External & Quant Data +// ============================================================================ - for symbol := range symbolSet { - data, err := market.Get(symbol) +// FetchMarketData fetches market data based on strategy configuration +func (e *StrategyEngine) FetchMarketData(symbol string) (*market.Data, error) { + return market.Get(symbol) +} + +// FetchExternalData fetches external data sources +func (e *StrategyEngine) FetchExternalData() (map[string]interface{}, error) { + externalData := make(map[string]interface{}) + + for _, source := range e.config.Indicators.ExternalDataSources { + data, err := e.fetchSingleExternalSource(source) if err != nil { - // Single coin failure doesn't affect overall, just log error + logger.Infof("⚠️ Failed to fetch external data source [%s]: %v", source.Name, err) continue } - - // Liquidity filter: skip coins with OI value below threshold (both long and short) - // OI value = OI quantity × current price - // But existing positions must be retained (need to decide whether to close) - // OI threshold configuration: users can adjust based on risk preference - const minOIThresholdMillions = 15.0 // Adjustable: 15M(conservative) / 10M(balanced) / 8M(loose) / 5M(aggressive) - - isExistingPosition := positionSymbols[symbol] - if !isExistingPosition && data.OpenInterest != nil && data.CurrentPrice > 0 { - // Calculate OI value (USD) = OI quantity × current price - oiValue := data.OpenInterest.Latest * data.CurrentPrice - oiValueInMillions := oiValue / 1_000_000 // Convert to million USD - if oiValueInMillions < minOIThresholdMillions { - logger.Infof("⚠️ %s OI value too low (%.2fM USD < %.1fM), skipping coin [OI:%.0f × Price:%.4f]", - symbol, oiValueInMillions, minOIThresholdMillions, data.OpenInterest.Latest, data.CurrentPrice) - continue - } - } - - ctx.MarketDataMap[symbol] = data + externalData[source.Name] = data } - // Load OI Top data (doesn't affect main flow) - oiPositions, err := pool.GetOITopPositions() - if err == nil { - for _, pos := range oiPositions { - // Normalize symbol matching - symbol := pos.Symbol - ctx.OITopDataMap[symbol] = &OITopData{ - Rank: pos.Rank, - OIDeltaPercent: pos.OIDeltaPercent, - OIDeltaValue: pos.OIDeltaValue, - PriceDeltaPercent: pos.PriceDeltaPercent, - NetLong: pos.NetLong, - NetShort: pos.NetShort, - } - } - } - - return nil + return externalData, nil } -// calculateMaxCandidates calculates the number of candidate coins to analyze based on account status -func calculateMaxCandidates(ctx *Context) int { - // Important: limit candidate coin count to avoid prompt being too large - // Dynamically adjust based on position count: fewer positions allow analyzing more candidates - const ( - maxCandidatesWhenEmpty = 30 // Max 30 candidates when no positions - maxCandidatesWhenHolding1 = 25 // Max 25 candidates when holding 1 position - maxCandidatesWhenHolding2 = 20 // Max 20 candidates when holding 2 positions - maxCandidatesWhenHolding3 = 15 // Max 15 candidates when holding 3 positions (avoid prompt being too large) - ) - - positionCount := len(ctx.Positions) - var maxCandidates int - - switch positionCount { - case 0: - maxCandidates = maxCandidatesWhenEmpty - case 1: - maxCandidates = maxCandidatesWhenHolding1 - case 2: - maxCandidates = maxCandidatesWhenHolding2 - default: // 3+ positions - maxCandidates = maxCandidatesWhenHolding3 +func (e *StrategyEngine) fetchSingleExternalSource(source store.ExternalDataSource) (interface{}, error) { + client := &http.Client{ + Timeout: time.Duration(source.RefreshSecs) * time.Second, + } + if client.Timeout == 0 { + client.Timeout = 30 * time.Second } - // Return the smaller value between actual candidate count and max limit - return min(len(ctx.CandidateCoins), maxCandidates) -} - -// buildSystemPromptWithCustom builds System Prompt with custom content -func buildSystemPromptWithCustom(accountEquity float64, btcEthLeverage, altcoinLeverage int, customPrompt string, overrideBase bool, templateName string, variant string) string { - // If override base prompt and has custom prompt, only use custom prompt - if overrideBase && customPrompt != "" { - return customPrompt - } - - // Get base prompt (using specified template) - basePrompt := buildSystemPrompt(accountEquity, btcEthLeverage, altcoinLeverage, templateName, variant) - - // If no custom prompt, directly return base prompt - if customPrompt == "" { - return basePrompt - } - - // Add custom prompt section to base prompt - var sb strings.Builder - sb.WriteString(basePrompt) - sb.WriteString("\n\n") - sb.WriteString("# 📌 Personalized Trading Strategy\n\n") - sb.WriteString(customPrompt) - sb.WriteString("\n\n") - sb.WriteString("Note: The above personalized strategy is a supplement to basic rules and cannot violate basic risk control principles.\n") - - return sb.String() -} - -// buildSystemPrompt builds System Prompt (using template + dynamic parts) -func buildSystemPrompt(accountEquity float64, btcEthLeverage, altcoinLeverage int, templateName string, variant string) string { - var sb strings.Builder - - // 1. Load prompt template (core trading strategy part) - if templateName == "" { - templateName = "default" // Default to using default template - } - - template, err := GetPromptTemplate(templateName) + req, err := http.NewRequest(source.Method, source.URL, nil) if err != nil { - // If template doesn't exist, log error and use default - logger.Infof("⚠️ Prompt template '%s' doesn't exist, using default: %v", templateName, err) - template, err = GetPromptTemplate("default") - if err != nil { - // If even default doesn't exist, use built-in simplified version - logger.Infof("❌ Cannot load any prompt template, using built-in simplified version") - sb.WriteString("You are a professional cryptocurrency trading AI. Please make trading decisions based on market data.\n\n") - } else { - sb.WriteString(template.Content) - sb.WriteString("\n\n") - } - } else { - sb.WriteString(template.Content) - sb.WriteString("\n\n") + return nil, err } - // 2. Trading mode variants + for k, v := range source.Headers { + req.Header.Set(k, v) + } + + resp, err := client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + var result interface{} + if err := json.Unmarshal(body, &result); err != nil { + return nil, err + } + + if source.DataPath != "" { + result = extractJSONPath(result, source.DataPath) + } + + return result, nil +} + +func extractJSONPath(data interface{}, path string) interface{} { + parts := strings.Split(path, ".") + current := data + + for _, part := range parts { + if m, ok := current.(map[string]interface{}); ok { + current = m[part] + } else { + return nil + } + } + + return current +} + +// FetchQuantData fetches quantitative data for a single coin +func (e *StrategyEngine) FetchQuantData(symbol string) (*QuantData, error) { + if !e.config.Indicators.EnableQuantData || e.config.Indicators.QuantDataAPIURL == "" { + return nil, nil + } + + apiURL := e.config.Indicators.QuantDataAPIURL + url := strings.Replace(apiURL, "{symbol}", symbol, -1) + + client := &http.Client{Timeout: 10 * time.Second} + resp, err := client.Get(url) + if err != nil { + return nil, fmt.Errorf("request failed: %w", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("HTTP status code: %d", resp.StatusCode) + } + + body, err := io.ReadAll(resp.Body) + if err != nil { + return nil, fmt.Errorf("failed to read response: %w", err) + } + + var apiResp struct { + Code int `json:"code"` + Data *QuantData `json:"data"` + } + + if err := json.Unmarshal(body, &apiResp); err != nil { + return nil, fmt.Errorf("failed to parse JSON: %w", err) + } + + if apiResp.Code != 0 { + return nil, fmt.Errorf("API returned error code: %d", apiResp.Code) + } + + return apiResp.Data, nil +} + +// FetchQuantDataBatch batch fetches quantitative data +func (e *StrategyEngine) FetchQuantDataBatch(symbols []string) map[string]*QuantData { + result := make(map[string]*QuantData) + + if !e.config.Indicators.EnableQuantData || e.config.Indicators.QuantDataAPIURL == "" { + return result + } + + for _, symbol := range symbols { + data, err := e.FetchQuantData(symbol) + if err != nil { + logger.Infof("⚠️ Failed to fetch quantitative data for %s: %v", symbol, err) + continue + } + if data != nil { + result[symbol] = data + } + } + + return result +} + +// ============================================================================ +// Prompt Building - System Prompt +// ============================================================================ + +// BuildSystemPrompt builds System Prompt according to strategy configuration +func (e *StrategyEngine) BuildSystemPrompt(accountEquity float64, variant string) string { + var sb strings.Builder + riskControl := e.config.RiskControl + promptSections := e.config.PromptSections + + // 1. Role definition (editable) + if promptSections.RoleDefinition != "" { + sb.WriteString(promptSections.RoleDefinition) + sb.WriteString("\n\n") + } else { + sb.WriteString("# You are a professional cryptocurrency trading AI\n\n") + sb.WriteString("Your task is to make trading decisions based on provided market data.\n\n") + } + + // 2. Trading mode variant switch strings.ToLower(strings.TrimSpace(variant)) { case "aggressive": - sb.WriteString("## Mode: Aggressive\n- Prioritize capturing trend breakouts, can build positions in batches when confidence ≥70\n- Allow higher positions, but must strictly set stop loss and explain profit/loss ratio\n\n") + sb.WriteString("## Mode: Aggressive\n- Prioritize capturing trend breakouts, can build positions in batches when confidence ≥ 70\n- Allow higher positions, but must strictly set stop-loss and explain risk-reward ratio\n\n") case "conservative": - sb.WriteString("## Mode: Conservative\n- Only open positions when multiple signals resonate\n- Prioritize holding cash, must pause for multiple periods after consecutive losses\n\n") + sb.WriteString("## Mode: Conservative\n- Only open positions when multiple signals resonate\n- Prioritize cash preservation, must pause for multiple periods after consecutive losses\n\n") case "scalping": - sb.WriteString("## Mode: Scalping\n- Focus on short-term momentum, target smaller profits but require swift action\n- If price doesn't move as expected within two bars, immediately reduce position or stop loss\n\n") + sb.WriteString("## Mode: Scalping\n- Focus on short-term momentum, smaller profit targets but require quick action\n- If price doesn't move as expected within two bars, immediately reduce position or stop-loss\n\n") } // 3. Hard constraints (risk control) + btcEthPosValueRatio := riskControl.BTCETHMaxPositionValueRatio + if btcEthPosValueRatio <= 0 { + btcEthPosValueRatio = 5.0 + } + altcoinPosValueRatio := riskControl.AltcoinMaxPositionValueRatio + if altcoinPosValueRatio <= 0 { + altcoinPosValueRatio = 1.0 + } + sb.WriteString("# Hard Constraints (Risk Control)\n\n") - sb.WriteString("1. Risk/reward ratio: Must be ≥ 1:3 (risk 1% to earn 3%+ profit)\n") - sb.WriteString("2. Max positions: 3 coins (quality > quantity)\n") - sb.WriteString(fmt.Sprintf("3. Single coin position: Altcoins %.0f-%.0f U | BTC/ETH %.0f-%.0f U\n", - accountEquity*0.8, accountEquity*1.5, accountEquity*5, accountEquity*10)) - sb.WriteString(fmt.Sprintf("4. Leverage limit: **Altcoins max %dx leverage** | **BTC/ETH max %dx leverage**\n", altcoinLeverage, btcEthLeverage)) - sb.WriteString("5. Margin usage rate ≤ 90%%\n") - sb.WriteString("6. Opening amount: Recommended ≥12 USDT (exchange minimum notional value 10 USDT + safety margin)\n\n") + sb.WriteString("## CODE ENFORCED (Backend validation, cannot be bypassed):\n") + sb.WriteString(fmt.Sprintf("- Max Positions: %d coins simultaneously\n", riskControl.MaxPositions)) + sb.WriteString(fmt.Sprintf("- Position Value Limit (Altcoins): max %.0f USDT (= equity %.0f × %.1fx)\n", + accountEquity*altcoinPosValueRatio, accountEquity, altcoinPosValueRatio)) + sb.WriteString(fmt.Sprintf("- Position Value Limit (BTC/ETH): max %.0f USDT (= equity %.0f × %.1fx)\n", + accountEquity*btcEthPosValueRatio, accountEquity, btcEthPosValueRatio)) + sb.WriteString(fmt.Sprintf("- Max Margin Usage: ≤%.0f%%\n", riskControl.MaxMarginUsage*100)) + sb.WriteString(fmt.Sprintf("- Min Position Size: ≥%.0f USDT\n\n", riskControl.MinPositionSize)) - // 4. Trading frequency and signal quality - sb.WriteString("# ⏱️ Trading Frequency Awareness\n\n") - sb.WriteString("- Excellent traders: 2-4 trades/day ≈ 0.1-0.2 trades/hour\n") - sb.WriteString("- >2 trades/hour = overtrading\n") - sb.WriteString("- Single position holding time ≥30-60 minutes\n") - sb.WriteString("If you find yourself trading every period → standards too low; if closing position <30 minutes → too impatient.\n\n") + sb.WriteString("## AI GUIDED (Recommended, you should follow):\n") + sb.WriteString(fmt.Sprintf("- Trading Leverage: Altcoins max %dx | BTC/ETH max %dx\n", + riskControl.AltcoinMaxLeverage, riskControl.BTCETHMaxLeverage)) + sb.WriteString(fmt.Sprintf("- Risk-Reward Ratio: ≥1:%.1f (take_profit / stop_loss)\n", riskControl.MinRiskRewardRatio)) + sb.WriteString(fmt.Sprintf("- Min Confidence: ≥%d to open position\n\n", riskControl.MinConfidence)) - sb.WriteString("# 🎯 Opening Standards (Strict)\n\n") - sb.WriteString("Only open positions when multiple signals resonate. You have:\n") - sb.WriteString("- 3-minute price series + 4-hour K-line series\n") - sb.WriteString("- EMA20 / MACD / RSI7 / RSI14 indicator series\n") - sb.WriteString("- Volume, open interest (OI), funding rate and other fund flow series\n") - sb.WriteString("- AI500 / OI_Top screening tags (if any)\n\n") - sb.WriteString("Freely use any effective analysis method, but **confidence ≥75** required to open positions; avoid low-quality behaviors such as single indicators, contradictory signals, sideways consolidation, reopening immediately after closing, etc.\n\n") + // 4. Trading frequency (editable) + if promptSections.TradingFrequency != "" { + sb.WriteString(promptSections.TradingFrequency) + sb.WriteString("\n\n") + } else { + sb.WriteString("# ⏱️ Trading Frequency Awareness\n\n") + sb.WriteString("- Excellent traders: 2-4 trades/day ≈ 0.1-0.2 trades/hour\n") + sb.WriteString("- >2 trades/hour = Overtrading\n") + sb.WriteString("- Single position hold time ≥ 30-60 minutes\n") + sb.WriteString("If you find yourself trading every period → standards too low; if closing positions < 30 minutes → too impatient.\n\n") + } - // 5. Decision process tips - sb.WriteString("# 📋 Decision Process\n\n") - sb.WriteString("1. Check positions → Should take profit/stop loss?\n") - sb.WriteString("2. Scan candidate coins + multi-timeframe → Any strong signals?\n") - sb.WriteString("3. Write reasoning chain first, then output structured JSON\n\n") + // 5. Entry standards (editable) + if promptSections.EntryStandards != "" { + sb.WriteString(promptSections.EntryStandards) + sb.WriteString("\n\nYou have the following indicator data:\n") + e.writeAvailableIndicators(&sb) + sb.WriteString(fmt.Sprintf("\n**Confidence ≥ %d** required to open positions.\n\n", riskControl.MinConfidence)) + } else { + sb.WriteString("# 🎯 Entry Standards (Strict)\n\n") + sb.WriteString("Only open positions when multiple signals resonate. You have:\n") + e.writeAvailableIndicators(&sb) + sb.WriteString(fmt.Sprintf("\nFeel free to use any effective analysis method, but **confidence ≥ %d** required to open positions; avoid low-quality behaviors such as single indicators, contradictory signals, sideways consolidation, reopening immediately after closing, etc.\n\n", riskControl.MinConfidence)) + } - // 7. Output format - dynamically generated + // 6. Decision process (editable) + if promptSections.DecisionProcess != "" { + sb.WriteString(promptSections.DecisionProcess) + sb.WriteString("\n\n") + } else { + sb.WriteString("# 📋 Decision Process\n\n") + sb.WriteString("1. Check positions → Should we take profit/stop-loss\n") + sb.WriteString("2. Scan candidate coins + multi-timeframe → Are there strong signals\n") + sb.WriteString("3. Write chain of thought first, then output structured JSON\n\n") + } + + // 7. Output format sb.WriteString("# Output Format (Strictly Follow)\n\n") - sb.WriteString("**Must use XML tags and to separate reasoning chain and decision JSON, avoid parsing errors**\n\n") + sb.WriteString("**Must use XML tags and to separate chain of thought and decision JSON, avoiding parsing errors**\n\n") sb.WriteString("## Format Requirements\n\n") sb.WriteString("\n") - sb.WriteString("Your reasoning chain analysis...\n") - sb.WriteString("- Concisely analyze your thought process \n") + sb.WriteString("Your chain of thought analysis...\n") + sb.WriteString("- Briefly analyze your thinking process \n") sb.WriteString("\n\n") sb.WriteString("\n") sb.WriteString("Step 2: JSON decision array\n\n") sb.WriteString("```json\n[\n") - sb.WriteString(fmt.Sprintf(" {\"symbol\": \"BTCUSDT\", \"action\": \"open_short\", \"leverage\": %d, \"position_size_usd\": %.0f, \"stop_loss\": 97000, \"take_profit\": 91000, \"confidence\": 85, \"risk_usd\": 300},\n", btcEthLeverage, accountEquity*5)) + sb.WriteString(fmt.Sprintf(" {\"symbol\": \"BTCUSDT\", \"action\": \"open_short\", \"leverage\": %d, \"position_size_usd\": %.0f, \"stop_loss\": 97000, \"take_profit\": 91000, \"confidence\": 85, \"risk_usd\": 300},\n", + riskControl.BTCETHMaxLeverage, accountEquity*5)) sb.WriteString(" {\"symbol\": \"ETHUSDT\", \"action\": \"close_long\"}\n") sb.WriteString("]\n```\n") sb.WriteString("\n\n") - sb.WriteString("## Field Descriptions\n\n") + sb.WriteString("## Field Description\n\n") sb.WriteString("- `action`: open_long | open_short | close_long | close_short | hold | wait\n") - sb.WriteString("- `confidence`: 0-100 (opening recommended ≥75)\n") - sb.WriteString("- Required for opening: leverage, position_size_usd, stop_loss, take_profit, confidence, risk_usd\n") + sb.WriteString(fmt.Sprintf("- `confidence`: 0-100 (opening recommended ≥ %d)\n", riskControl.MinConfidence)) + sb.WriteString("- Required when opening: leverage, position_size_usd, stop_loss, take_profit, confidence, risk_usd\n") sb.WriteString("- **IMPORTANT**: All numeric values must be calculated numbers, NOT formulas/expressions (e.g., use `27.76` not `3000 * 0.01`)\n\n") + // 8. Custom Prompt + if e.config.CustomPrompt != "" { + sb.WriteString("# 📌 Personalized Trading Strategy\n\n") + sb.WriteString(e.config.CustomPrompt) + sb.WriteString("\n\n") + sb.WriteString("Note: The above personalized strategy is a supplement to the basic rules and cannot violate the basic risk control principles.\n") + } + return sb.String() } -// buildUserPrompt builds User Prompt (dynamic data) -func buildUserPrompt(ctx *Context) string { +func (e *StrategyEngine) writeAvailableIndicators(sb *strings.Builder) { + indicators := e.config.Indicators + kline := indicators.Klines + + sb.WriteString(fmt.Sprintf("- %s price series", kline.PrimaryTimeframe)) + if kline.EnableMultiTimeframe { + sb.WriteString(fmt.Sprintf(" + %s K-line series\n", kline.LongerTimeframe)) + } else { + sb.WriteString("\n") + } + + if indicators.EnableEMA { + sb.WriteString("- EMA indicators") + if len(indicators.EMAPeriods) > 0 { + sb.WriteString(fmt.Sprintf(" (periods: %v)", indicators.EMAPeriods)) + } + sb.WriteString("\n") + } + + if indicators.EnableMACD { + sb.WriteString("- MACD indicators\n") + } + + if indicators.EnableRSI { + sb.WriteString("- RSI indicators") + if len(indicators.RSIPeriods) > 0 { + sb.WriteString(fmt.Sprintf(" (periods: %v)", indicators.RSIPeriods)) + } + sb.WriteString("\n") + } + + if indicators.EnableATR { + sb.WriteString("- ATR indicators") + if len(indicators.ATRPeriods) > 0 { + sb.WriteString(fmt.Sprintf(" (periods: %v)", indicators.ATRPeriods)) + } + sb.WriteString("\n") + } + + if indicators.EnableVolume { + sb.WriteString("- Volume data\n") + } + + if indicators.EnableOI { + sb.WriteString("- Open Interest (OI) data\n") + } + + if indicators.EnableFundingRate { + sb.WriteString("- Funding rate\n") + } + + if len(e.config.CoinSource.StaticCoins) > 0 || e.config.CoinSource.UseCoinPool || e.config.CoinSource.UseOITop { + sb.WriteString("- AI500 / OI_Top filter tags (if available)\n") + } + + if indicators.EnableQuantData { + sb.WriteString("- Quantitative data (institutional/retail fund flow, position changes, multi-period price changes)\n") + } +} + +// ============================================================================ +// Prompt Building - User Prompt +// ============================================================================ + +// BuildUserPrompt builds User Prompt based on strategy configuration +func (e *StrategyEngine) BuildUserPrompt(ctx *Context) string { var sb strings.Builder // System status @@ -602,7 +845,7 @@ func buildUserPrompt(ctx *Context) string { btcData.CurrentMACD, btcData.CurrentRSI7)) } - // Account + // Account information sb.WriteString(fmt.Sprintf("Account: Equity %.2f | Balance %.2f (%.1f%%) | PnL %+.2f%% | Margin %.1f%% | Positions %d\n\n", ctx.Account.TotalEquity, ctx.Account.AvailableBalance, @@ -611,75 +854,34 @@ func buildUserPrompt(ctx *Context) string { ctx.Account.MarginUsedPct, ctx.Account.PositionCount)) - // Positions (complete market data) + // Position information if len(ctx.Positions) > 0 { sb.WriteString("## Current Positions\n") for i, pos := range ctx.Positions { - // Calculate holding duration - holdingDuration := "" - if pos.UpdateTime > 0 { - durationMs := time.Now().UnixMilli() - pos.UpdateTime - durationMin := durationMs / (1000 * 60) // Convert to minutes - if durationMin < 60 { - holdingDuration = fmt.Sprintf(" | Holding %d mins", durationMin) - } else { - durationHour := durationMin / 60 - durationMinRemainder := durationMin % 60 - holdingDuration = fmt.Sprintf(" | Holding %dh %dm", durationHour, durationMinRemainder) - } - } - - // Calculate position value - positionValue := math.Abs(pos.Quantity) * pos.MarkPrice - - sb.WriteString(fmt.Sprintf("%d. %s %s | Entry %.4f Current %.4f | Qty %.4f | Value %.2f USDT | PnL %+.2f%% | PnL Amount %+.2f USDT | Peak PnL %.2f%% | Leverage %dx | Margin %.0f | Liq %.4f%s\n\n", - i+1, pos.Symbol, strings.ToUpper(pos.Side), - pos.EntryPrice, pos.MarkPrice, pos.Quantity, positionValue, pos.UnrealizedPnLPct, pos.UnrealizedPnL, pos.PeakPnLPct, - pos.Leverage, pos.MarginUsed, pos.LiquidationPrice, holdingDuration)) - - // Use FormatMarketData to output complete market data - if marketData, ok := ctx.MarketDataMap[pos.Symbol]; ok { - sb.WriteString(market.Format(marketData)) - sb.WriteString("\n") - } + sb.WriteString(e.formatPositionInfo(i+1, pos, ctx)) } } else { sb.WriteString("Current Positions: None\n\n") } - // Trading statistics (if any) - if ctx.TradingStats != nil && ctx.TradingStats.TotalTrades > 0 { - sb.WriteString("## Historical Trading Statistics\n") - sb.WriteString(fmt.Sprintf("Total Trades: %d | Win Rate: %.1f%% | Profit Factor: %.2f | Sharpe Ratio: %.2f\n", - ctx.TradingStats.TotalTrades, - ctx.TradingStats.WinRate, - ctx.TradingStats.ProfitFactor, - ctx.TradingStats.SharpeRatio)) - sb.WriteString(fmt.Sprintf("Total PnL: %.2f USDT | Avg Win: %.2f | Avg Loss: %.2f | Max Drawdown: %.1f%%\n\n", - ctx.TradingStats.TotalPnL, - ctx.TradingStats.AvgWin, - ctx.TradingStats.AvgLoss, - ctx.TradingStats.MaxDrawdownPct)) - } - - // Recently completed orders (if any) + // Recently completed orders if len(ctx.RecentOrders) > 0 { - sb.WriteString("## Recently Completed Trades\n") + sb.WriteString("## Recent Completed Trades\n") for i, order := range ctx.RecentOrders { resultStr := "Profit" if order.RealizedPnL < 0 { resultStr = "Loss" } - sb.WriteString(fmt.Sprintf("%d. %s %s | Entry %.4f Exit %.4f | %s: %+.2f USDT (%+.2f%%) | %s\n", + sb.WriteString(fmt.Sprintf("%d. %s %s | Entry %.4f Exit %.4f | %s: %+.2f USDT (%+.2f%%) | %s→%s (%s)\n", i+1, order.Symbol, order.Side, order.EntryPrice, order.ExitPrice, resultStr, order.RealizedPnL, order.PnLPct, - order.FilledAt)) + order.EntryTime, order.ExitTime, order.HoldDuration)) } sb.WriteString("\n") } - // Candidate coins (complete market data) + // Candidate coins sb.WriteString(fmt.Sprintf("## Candidate Coins (%d coins)\n\n", len(ctx.MarketDataMap))) displayedCount := 0 for _, coin := range ctx.CandidateCoins { @@ -689,32 +891,362 @@ func buildUserPrompt(ctx *Context) string { } displayedCount++ - sourceTags := "" - if len(coin.Sources) > 1 { - sourceTags = " (AI500+OI_Top dual signal)" - } else if len(coin.Sources) == 1 && coin.Sources[0] == "oi_top" { - sourceTags = " (OI_Top growing)" - } - - // Use FormatMarketData to output complete market data + sourceTags := e.formatCoinSourceTag(coin.Sources) sb.WriteString(fmt.Sprintf("### %d. %s%s\n\n", displayedCount, coin.Symbol, sourceTags)) - sb.WriteString(market.Format(marketData)) + sb.WriteString(e.formatMarketData(marketData)) + + if ctx.QuantDataMap != nil { + if quantData, hasQuant := ctx.QuantDataMap[coin.Symbol]; hasQuant { + sb.WriteString(e.formatQuantData(quantData)) + } + } sb.WriteString("\n") } sb.WriteString("\n") sb.WriteString("---\n\n") - sb.WriteString("Now please analyze and output decision (reasoning chain + JSON)\n") + sb.WriteString("Now please analyze and output your decision (Chain of Thought + JSON)\n") return sb.String() } -// parseFullDecisionResponse parses AI's complete decision response +func (e *StrategyEngine) formatPositionInfo(index int, pos PositionInfo, ctx *Context) string { + var sb strings.Builder + + holdingDuration := "" + if pos.UpdateTime > 0 { + durationMs := time.Now().UnixMilli() - pos.UpdateTime + durationMin := durationMs / (1000 * 60) + if durationMin < 60 { + holdingDuration = fmt.Sprintf(" | Holding Duration %d min", durationMin) + } else { + durationHour := durationMin / 60 + durationMinRemainder := durationMin % 60 + holdingDuration = fmt.Sprintf(" | Holding Duration %dh %dm", durationHour, durationMinRemainder) + } + } + + positionValue := pos.Quantity * pos.MarkPrice + if positionValue < 0 { + positionValue = -positionValue + } + + sb.WriteString(fmt.Sprintf("%d. %s %s | Entry %.4f Current %.4f | Qty %.4f | Position Value %.2f USDT | PnL%+.2f%% | PnL Amount%+.2f USDT | Peak PnL%.2f%% | Leverage %dx | Margin %.0f | Liq Price %.4f%s\n\n", + index, pos.Symbol, strings.ToUpper(pos.Side), + pos.EntryPrice, pos.MarkPrice, pos.Quantity, positionValue, pos.UnrealizedPnLPct, pos.UnrealizedPnL, pos.PeakPnLPct, + pos.Leverage, pos.MarginUsed, pos.LiquidationPrice, holdingDuration)) + + if marketData, ok := ctx.MarketDataMap[pos.Symbol]; ok { + sb.WriteString(e.formatMarketData(marketData)) + + if ctx.QuantDataMap != nil { + if quantData, hasQuant := ctx.QuantDataMap[pos.Symbol]; hasQuant { + sb.WriteString(e.formatQuantData(quantData)) + } + } + sb.WriteString("\n") + } + + return sb.String() +} + +func (e *StrategyEngine) formatCoinSourceTag(sources []string) string { + if len(sources) > 1 { + return " (AI500+OI_Top dual signal)" + } else if len(sources) == 1 { + switch sources[0] { + case "ai500": + return " (AI500)" + case "oi_top": + return " (OI_Top position growth)" + case "static": + return " (Manual selection)" + } + } + return "" +} + +// ============================================================================ +// Market Data Formatting +// ============================================================================ + +func (e *StrategyEngine) formatMarketData(data *market.Data) string { + var sb strings.Builder + indicators := e.config.Indicators + + sb.WriteString(fmt.Sprintf("current_price = %.4f", data.CurrentPrice)) + + if indicators.EnableEMA { + sb.WriteString(fmt.Sprintf(", current_ema20 = %.3f", data.CurrentEMA20)) + } + + if indicators.EnableMACD { + sb.WriteString(fmt.Sprintf(", current_macd = %.3f", data.CurrentMACD)) + } + + if indicators.EnableRSI { + sb.WriteString(fmt.Sprintf(", current_rsi7 = %.3f", data.CurrentRSI7)) + } + + sb.WriteString("\n\n") + + if indicators.EnableOI || indicators.EnableFundingRate { + sb.WriteString(fmt.Sprintf("Additional data for %s:\n\n", data.Symbol)) + + if indicators.EnableOI && data.OpenInterest != nil { + sb.WriteString(fmt.Sprintf("Open Interest: Latest: %.2f Average: %.2f\n\n", + data.OpenInterest.Latest, data.OpenInterest.Average)) + } + + if indicators.EnableFundingRate { + sb.WriteString(fmt.Sprintf("Funding Rate: %.2e\n\n", data.FundingRate)) + } + } + + if len(data.TimeframeData) > 0 { + timeframeOrder := []string{"1m", "3m", "5m", "15m", "30m", "1h", "2h", "4h", "6h", "8h", "12h", "1d", "3d", "1w"} + for _, tf := range timeframeOrder { + if tfData, ok := data.TimeframeData[tf]; ok { + sb.WriteString(fmt.Sprintf("=== %s Timeframe (oldest → latest) ===\n\n", strings.ToUpper(tf))) + e.formatTimeframeSeriesData(&sb, tfData, indicators) + } + } + } else { + // Compatible with old data format + if data.IntradaySeries != nil { + klineConfig := indicators.Klines + sb.WriteString(fmt.Sprintf("Intraday series (%s intervals, oldest → latest):\n\n", klineConfig.PrimaryTimeframe)) + + if len(data.IntradaySeries.MidPrices) > 0 { + sb.WriteString(fmt.Sprintf("Mid prices: %s\n\n", formatFloatSlice(data.IntradaySeries.MidPrices))) + } + + if indicators.EnableEMA && len(data.IntradaySeries.EMA20Values) > 0 { + sb.WriteString(fmt.Sprintf("EMA indicators (20-period): %s\n\n", formatFloatSlice(data.IntradaySeries.EMA20Values))) + } + + if indicators.EnableMACD && len(data.IntradaySeries.MACDValues) > 0 { + sb.WriteString(fmt.Sprintf("MACD indicators: %s\n\n", formatFloatSlice(data.IntradaySeries.MACDValues))) + } + + if indicators.EnableRSI { + if len(data.IntradaySeries.RSI7Values) > 0 { + sb.WriteString(fmt.Sprintf("RSI indicators (7-Period): %s\n\n", formatFloatSlice(data.IntradaySeries.RSI7Values))) + } + if len(data.IntradaySeries.RSI14Values) > 0 { + sb.WriteString(fmt.Sprintf("RSI indicators (14-Period): %s\n\n", formatFloatSlice(data.IntradaySeries.RSI14Values))) + } + } + + if indicators.EnableVolume && len(data.IntradaySeries.Volume) > 0 { + sb.WriteString(fmt.Sprintf("Volume: %s\n\n", formatFloatSlice(data.IntradaySeries.Volume))) + } + + if indicators.EnableATR { + sb.WriteString(fmt.Sprintf("3m ATR (14-period): %.3f\n\n", data.IntradaySeries.ATR14)) + } + } + + if data.LongerTermContext != nil && indicators.Klines.EnableMultiTimeframe { + sb.WriteString(fmt.Sprintf("Longer-term context (%s timeframe):\n\n", indicators.Klines.LongerTimeframe)) + + if indicators.EnableEMA { + sb.WriteString(fmt.Sprintf("20-Period EMA: %.3f vs. 50-Period EMA: %.3f\n\n", + data.LongerTermContext.EMA20, data.LongerTermContext.EMA50)) + } + + if indicators.EnableATR { + sb.WriteString(fmt.Sprintf("3-Period ATR: %.3f vs. 14-Period ATR: %.3f\n\n", + data.LongerTermContext.ATR3, data.LongerTermContext.ATR14)) + } + + if indicators.EnableVolume { + sb.WriteString(fmt.Sprintf("Current Volume: %.3f vs. Average Volume: %.3f\n\n", + data.LongerTermContext.CurrentVolume, data.LongerTermContext.AverageVolume)) + } + + if indicators.EnableMACD && len(data.LongerTermContext.MACDValues) > 0 { + sb.WriteString(fmt.Sprintf("MACD indicators: %s\n\n", formatFloatSlice(data.LongerTermContext.MACDValues))) + } + + if indicators.EnableRSI && len(data.LongerTermContext.RSI14Values) > 0 { + sb.WriteString(fmt.Sprintf("RSI indicators (14-Period): %s\n\n", formatFloatSlice(data.LongerTermContext.RSI14Values))) + } + } + } + + return sb.String() +} + +func (e *StrategyEngine) formatTimeframeSeriesData(sb *strings.Builder, data *market.TimeframeSeriesData, indicators store.IndicatorConfig) { + if len(data.Klines) > 0 { + sb.WriteString("Time(UTC) Open High Low Close Volume\n") + for i, k := range data.Klines { + t := time.Unix(k.Time/1000, 0).UTC() + timeStr := t.Format("01-02 15:04") + marker := "" + if i == len(data.Klines)-1 { + marker = " <- current" + } + sb.WriteString(fmt.Sprintf("%-14s %-9.4f %-9.4f %-9.4f %-9.4f %-12.2f%s\n", + timeStr, k.Open, k.High, k.Low, k.Close, k.Volume, marker)) + } + sb.WriteString("\n") + } else if len(data.MidPrices) > 0 { + sb.WriteString(fmt.Sprintf("Mid prices: %s\n\n", formatFloatSlice(data.MidPrices))) + if indicators.EnableVolume && len(data.Volume) > 0 { + sb.WriteString(fmt.Sprintf("Volume: %s\n\n", formatFloatSlice(data.Volume))) + } + } + + if indicators.EnableEMA { + if len(data.EMA20Values) > 0 { + sb.WriteString(fmt.Sprintf("EMA20: %s\n", formatFloatSlice(data.EMA20Values))) + } + if len(data.EMA50Values) > 0 { + sb.WriteString(fmt.Sprintf("EMA50: %s\n", formatFloatSlice(data.EMA50Values))) + } + } + + if indicators.EnableMACD && len(data.MACDValues) > 0 { + sb.WriteString(fmt.Sprintf("MACD: %s\n", formatFloatSlice(data.MACDValues))) + } + + if indicators.EnableRSI { + if len(data.RSI7Values) > 0 { + sb.WriteString(fmt.Sprintf("RSI7: %s\n", formatFloatSlice(data.RSI7Values))) + } + if len(data.RSI14Values) > 0 { + sb.WriteString(fmt.Sprintf("RSI14: %s\n", formatFloatSlice(data.RSI14Values))) + } + } + + if indicators.EnableATR && data.ATR14 > 0 { + sb.WriteString(fmt.Sprintf("ATR14: %.4f\n", data.ATR14)) + } + + sb.WriteString("\n") +} + +func (e *StrategyEngine) formatQuantData(data *QuantData) string { + if data == nil { + return "" + } + + indicators := e.config.Indicators + if !indicators.EnableQuantOI && !indicators.EnableQuantNetflow { + return "" + } + + var sb strings.Builder + sb.WriteString("📊 Quantitative Data:\n") + + if len(data.PriceChange) > 0 { + sb.WriteString("Price Change: ") + timeframes := []string{"5m", "15m", "1h", "4h", "12h", "24h"} + parts := []string{} + for _, tf := range timeframes { + if v, ok := data.PriceChange[tf]; ok { + parts = append(parts, fmt.Sprintf("%s: %+.4f%%", tf, v*100)) + } + } + sb.WriteString(strings.Join(parts, " | ")) + sb.WriteString("\n") + } + + if indicators.EnableQuantNetflow && data.Netflow != nil { + sb.WriteString("Fund Flow (Netflow):\n") + timeframes := []string{"5m", "15m", "1h", "4h", "12h", "24h"} + + if data.Netflow.Institution != nil { + if data.Netflow.Institution.Future != nil && len(data.Netflow.Institution.Future) > 0 { + sb.WriteString(" Institutional Futures:\n") + for _, tf := range timeframes { + if v, ok := data.Netflow.Institution.Future[tf]; ok { + sb.WriteString(fmt.Sprintf(" %s: %s\n", tf, formatFlowValue(v))) + } + } + } + if data.Netflow.Institution.Spot != nil && len(data.Netflow.Institution.Spot) > 0 { + sb.WriteString(" Institutional Spot:\n") + for _, tf := range timeframes { + if v, ok := data.Netflow.Institution.Spot[tf]; ok { + sb.WriteString(fmt.Sprintf(" %s: %s\n", tf, formatFlowValue(v))) + } + } + } + } + + if data.Netflow.Personal != nil { + if data.Netflow.Personal.Future != nil && len(data.Netflow.Personal.Future) > 0 { + sb.WriteString(" Retail Futures:\n") + for _, tf := range timeframes { + if v, ok := data.Netflow.Personal.Future[tf]; ok { + sb.WriteString(fmt.Sprintf(" %s: %s\n", tf, formatFlowValue(v))) + } + } + } + if data.Netflow.Personal.Spot != nil && len(data.Netflow.Personal.Spot) > 0 { + sb.WriteString(" Retail Spot:\n") + for _, tf := range timeframes { + if v, ok := data.Netflow.Personal.Spot[tf]; ok { + sb.WriteString(fmt.Sprintf(" %s: %s\n", tf, formatFlowValue(v))) + } + } + } + } + } + + if indicators.EnableQuantOI && len(data.OI) > 0 { + for exchange, oiData := range data.OI { + if len(oiData.Delta) > 0 { + sb.WriteString(fmt.Sprintf("Open Interest (%s):\n", exchange)) + for _, tf := range []string{"5m", "15m", "1h", "4h", "12h", "24h"} { + if d, ok := oiData.Delta[tf]; ok { + sb.WriteString(fmt.Sprintf(" %s: %+.4f%% (%s)\n", tf, d.OIDeltaPercent, formatFlowValue(d.OIDeltaValue))) + } + } + } + } + } + + return sb.String() +} + +func formatFlowValue(v float64) string { + sign := "" + if v >= 0 { + sign = "+" + } + absV := v + if absV < 0 { + absV = -absV + } + if absV >= 1e9 { + return fmt.Sprintf("%s%.2fB", sign, v/1e9) + } else if absV >= 1e6 { + return fmt.Sprintf("%s%.2fM", sign, v/1e6) + } else if absV >= 1e3 { + return fmt.Sprintf("%s%.2fK", sign, v/1e3) + } + return fmt.Sprintf("%s%.2f", sign, v) +} + +func formatFloatSlice(values []float64) string { + strValues := make([]string, len(values)) + for i, v := range values { + strValues[i] = fmt.Sprintf("%.4f", v) + } + return "[" + strings.Join(strValues, ", ") + "]" +} + +// ============================================================================ +// AI Response Parsing +// ============================================================================ + func parseFullDecisionResponse(aiResponse string, accountEquity float64, btcEthLeverage, altcoinLeverage int) (*FullDecision, error) { - // 1. Extract chain of thought cotTrace := extractCoTTrace(aiResponse) - // 2. Extract JSON decision list decisions, err := extractDecisions(aiResponse) if err != nil { return &FullDecision{ @@ -723,7 +1255,6 @@ func parseFullDecisionResponse(aiResponse string, accountEquity float64, btcEthL }, fmt.Errorf("failed to extract decisions: %w", err) } - // 3. Validate decisions if err := validateDecisions(decisions, accountEquity, btcEthLeverage, altcoinLeverage); err != nil { return &FullDecision{ CoTTrace: cotTrace, @@ -737,60 +1268,46 @@ func parseFullDecisionResponse(aiResponse string, accountEquity float64, btcEthL }, nil } -// extractCoTTrace extracts chain of thought analysis func extractCoTTrace(response string) string { - // Method 1: Prioritize extracting tag content if match := reReasoningTag.FindStringSubmatch(response); match != nil && len(match) > 1 { logger.Infof("✓ Extracted reasoning chain using tag") return strings.TrimSpace(match[1]) } - // Method 2: If no tag but has tag, extract content before if decisionIdx := strings.Index(response, ""); decisionIdx > 0 { logger.Infof("✓ Extracted content before tag as reasoning chain") return strings.TrimSpace(response[:decisionIdx]) } - // Method 3: Fallback - find start position of JSON array jsonStart := strings.Index(response, "[") if jsonStart > 0 { logger.Infof("⚠️ Extracted reasoning chain using old format ([ character separator)") return strings.TrimSpace(response[:jsonStart]) } - // If no markers found, entire response is reasoning chain return strings.TrimSpace(response) } -// extractDecisions extracts JSON decision list func extractDecisions(response string) ([]Decision, error) { - // Pre-clean: remove zero-width/BOM s := removeInvisibleRunes(response) s = strings.TrimSpace(s) - - // Critical Fix: fix full-width characters before regex matching! - // Otherwise regex \[ cannot match full-width [ s = fixMissingQuotes(s) - // Method 1: Prioritize extracting from tag var jsonPart string if match := reDecisionTag.FindStringSubmatch(s); match != nil && len(match) > 1 { jsonPart = strings.TrimSpace(match[1]) logger.Infof("✓ Extracted JSON using tag") } else { - // Fallback: use entire response jsonPart = s logger.Infof("⚠️ tag not found, searching JSON in full text") } - // Fix full-width characters in jsonPart jsonPart = fixMissingQuotes(jsonPart) - // 1) Prioritize extracting from ```json code block if m := reJSONFence.FindStringSubmatch(jsonPart); m != nil && len(m) > 1 { jsonContent := strings.TrimSpace(m[1]) - jsonContent = compactArrayOpen(jsonContent) // Normalize "[ {" to "[{" - jsonContent = fixMissingQuotes(jsonContent) // Second fix (prevent residual full-width after regex extraction) + jsonContent = compactArrayOpen(jsonContent) + jsonContent = fixMissingQuotes(jsonContent) if err := validateJSONFormat(jsonContent); err != nil { return nil, fmt.Errorf("JSON format validation failed: %w\nJSON content: %s\nFull response:\n%s", err, jsonContent, response) } @@ -801,20 +1318,15 @@ func extractDecisions(response string) ([]Decision, error) { return decisions, nil } - // 2) Fallback: search for first object array in full text - // Note: at this point jsonPart has already been processed by fixMissingQuotes(), full-width converted to half-width jsonContent := strings.TrimSpace(reJSONArray.FindString(jsonPart)) if jsonContent == "" { - // Safe Fallback: when AI only outputs reasoning without JSON, generate fallback decision (avoid system crash) logger.Infof("⚠️ [SafeFallback] AI didn't output JSON decision, entering safe wait mode") - // Extract reasoning summary (max 240 characters) cotSummary := jsonPart if len(cotSummary) > 240 { cotSummary = cotSummary[:240] + "..." } - // Generate fallback decision: all coins enter wait state fallbackDecision := Decision{ Symbol: "ALL", Action: "wait", @@ -824,16 +1336,13 @@ func extractDecisions(response string) ([]Decision, error) { return []Decision{fallbackDecision}, nil } - // Normalize format (full-width characters already fixed earlier) jsonContent = compactArrayOpen(jsonContent) - jsonContent = fixMissingQuotes(jsonContent) // Second fix (prevent residual full-width after regex extraction) + jsonContent = fixMissingQuotes(jsonContent) - // Validate JSON format (detect common errors) if err := validateJSONFormat(jsonContent); err != nil { return nil, fmt.Errorf("JSON format validation failed: %w\nJSON content: %s\nFull response:\n%s", err, jsonContent, response) } - // Parse JSON var decisions []Decision if err := json.Unmarshal([]byte(jsonContent), &decisions); err != nil { return nil, fmt.Errorf("JSON parsing failed: %w\nJSON content: %s", err, jsonContent) @@ -842,55 +1351,44 @@ func extractDecisions(response string) ([]Decision, error) { return decisions, nil } -// fixMissingQuotes replaces Chinese quotes and full-width characters with English quotes and half-width characters (avoid parsing failure due to AI outputting full-width JSON characters) func fixMissingQuotes(jsonStr string) string { - // Replace Chinese quotes - jsonStr = strings.ReplaceAll(jsonStr, "\u201c", "\"") // " - jsonStr = strings.ReplaceAll(jsonStr, "\u201d", "\"") // " - jsonStr = strings.ReplaceAll(jsonStr, "\u2018", "'") // ' - jsonStr = strings.ReplaceAll(jsonStr, "\u2019", "'") // ' + jsonStr = strings.ReplaceAll(jsonStr, "\u201c", "\"") + jsonStr = strings.ReplaceAll(jsonStr, "\u201d", "\"") + jsonStr = strings.ReplaceAll(jsonStr, "\u2018", "'") + jsonStr = strings.ReplaceAll(jsonStr, "\u2019", "'") - // Replace full-width brackets, colons, commas (prevent AI outputting full-width JSON characters) - jsonStr = strings.ReplaceAll(jsonStr, "[", "[") // U+FF3B full-width left square bracket - jsonStr = strings.ReplaceAll(jsonStr, "]", "]") // U+FF3D full-width right square bracket - jsonStr = strings.ReplaceAll(jsonStr, "{", "{") // U+FF5B full-width left curly bracket - jsonStr = strings.ReplaceAll(jsonStr, "}", "}") // U+FF5D full-width right curly bracket - jsonStr = strings.ReplaceAll(jsonStr, ":", ":") // U+FF1A full-width colon - jsonStr = strings.ReplaceAll(jsonStr, ",", ",") // U+FF0C full-width comma + jsonStr = strings.ReplaceAll(jsonStr, "[", "[") + jsonStr = strings.ReplaceAll(jsonStr, "]", "]") + jsonStr = strings.ReplaceAll(jsonStr, "{", "{") + jsonStr = strings.ReplaceAll(jsonStr, "}", "}") + jsonStr = strings.ReplaceAll(jsonStr, ":", ":") + jsonStr = strings.ReplaceAll(jsonStr, ",", ",") - // Replace CJK punctuation (AI may also output these in Chinese context) - jsonStr = strings.ReplaceAll(jsonStr, "【", "[") // CJK left corner bracket U+3010 - jsonStr = strings.ReplaceAll(jsonStr, "】", "]") // CJK right corner bracket U+3011 - jsonStr = strings.ReplaceAll(jsonStr, "〔", "[") // CJK left tortoise shell bracket U+3014 - jsonStr = strings.ReplaceAll(jsonStr, "〕", "]") // CJK right tortoise shell bracket U+3015 - jsonStr = strings.ReplaceAll(jsonStr, "、", ",") // CJK ideographic comma U+3001 + jsonStr = strings.ReplaceAll(jsonStr, "【", "[") + jsonStr = strings.ReplaceAll(jsonStr, "】", "]") + jsonStr = strings.ReplaceAll(jsonStr, "〔", "[") + jsonStr = strings.ReplaceAll(jsonStr, "〕", "]") + jsonStr = strings.ReplaceAll(jsonStr, "、", ",") - // Replace full-width space with half-width space (JSON shouldn't have full-width spaces) - jsonStr = strings.ReplaceAll(jsonStr, " ", " ") // U+3000 full-width space + jsonStr = strings.ReplaceAll(jsonStr, " ", " ") return jsonStr } -// validateJSONFormat validates JSON format, detecting common errors func validateJSONFormat(jsonStr string) error { trimmed := strings.TrimSpace(jsonStr) - // Allow any whitespace (including zero-width) between [ and { if !reArrayHead.MatchString(trimmed) { - // Check if it's a pure number/range array (common error) if strings.HasPrefix(trimmed, "[") && !strings.Contains(trimmed[:min(20, len(trimmed))], "{") { return fmt.Errorf("not a valid decision array (must contain objects {}), actual content: %s", trimmed[:min(50, len(trimmed))]) } return fmt.Errorf("JSON must start with [{ (whitespace allowed), actual: %s", trimmed[:min(20, len(trimmed))]) } - // Check if contains range symbol ~ (common LLM error) if strings.Contains(jsonStr, "~") { return fmt.Errorf("JSON cannot contain range symbol ~, all numbers must be precise single values") } - // Check if contains thousand separators (like 98,000) - // Use simple pattern matching: digit + comma + 3 digits for i := 0; i < len(jsonStr)-4; i++ { if jsonStr[i] >= '0' && jsonStr[i] <= '9' && jsonStr[i+1] == ',' && @@ -904,7 +1402,6 @@ func validateJSONFormat(jsonStr string) error { return nil } -// min returns the smaller of two integers func min(a, b int) int { if a < b { return a @@ -912,17 +1409,18 @@ func min(a, b int) int { return b } -// removeInvisibleRunes removes zero-width characters and BOM, avoiding invisible prefixes breaking validation func removeInvisibleRunes(s string) string { return reInvisibleRunes.ReplaceAllString(s, "") } -// compactArrayOpen normalizes opening "[ {" → "[{" func compactArrayOpen(s string) string { return reArrayOpenSpace.ReplaceAllString(strings.TrimSpace(s), "[{") } -// validateDecisions validates all decisions (requires account information and leverage configuration) +// ============================================================================ +// Decision Validation +// ============================================================================ + func validateDecisions(decisions []Decision, accountEquity float64, btcEthLeverage, altcoinLeverage int) error { for i, decision := range decisions { if err := validateDecision(&decision, accountEquity, btcEthLeverage, altcoinLeverage); err != nil { @@ -932,31 +1430,7 @@ func validateDecisions(decisions []Decision, accountEquity float64, btcEthLevera return nil } -// findMatchingBracket finds matching right bracket -func findMatchingBracket(s string, start int) int { - if start >= len(s) || s[start] != '[' { - return -1 - } - - depth := 0 - for i := start; i < len(s); i++ { - switch s[i] { - case '[': - depth++ - case ']': - depth-- - if depth == 0 { - return i - } - } - } - - return -1 -} - -// validateDecision validates the validity of a single decision func validateDecision(d *Decision, accountEquity float64, btcEthLeverage, altcoinLeverage int) error { - // Validate action validActions := map[string]bool{ "open_long": true, "open_short": true, @@ -970,46 +1444,40 @@ func validateDecision(d *Decision, accountEquity float64, btcEthLeverage, altcoi return fmt.Errorf("invalid action: %s", d.Action) } - // Opening operations must provide complete parameters if d.Action == "open_long" || d.Action == "open_short" { - // Use configured leverage limit based on coin type - maxLeverage := altcoinLeverage // Altcoins use configured leverage - maxPositionValue := accountEquity * 1.5 // Altcoins max 1.5x account equity + maxLeverage := altcoinLeverage + maxPositionValue := accountEquity * 1.5 if d.Symbol == "BTCUSDT" || d.Symbol == "ETHUSDT" { - maxLeverage = btcEthLeverage // BTC and ETH use configured leverage - maxPositionValue = accountEquity * 10 // BTC/ETH max 10x account equity + maxLeverage = btcEthLeverage + maxPositionValue = accountEquity * 10 } - // Fallback mechanism: auto-correct leverage to limit when exceeded (instead of directly rejecting decision) if d.Leverage <= 0 { return fmt.Errorf("leverage must be greater than 0: %d", d.Leverage) } if d.Leverage > maxLeverage { logger.Infof("⚠️ [Leverage Fallback] %s leverage exceeded (%dx > %dx), auto-adjusting to limit %dx", d.Symbol, d.Leverage, maxLeverage, maxLeverage) - d.Leverage = maxLeverage // Auto-correct to limit value + d.Leverage = maxLeverage } if d.PositionSizeUSD <= 0 { return fmt.Errorf("position size must be greater than 0: %.2f", d.PositionSizeUSD) } - // Validate minimum opening amount (prevent quantity rounding to 0 error) - // Binance minimum notional value 10 USDT + safety margin - const minPositionSizeGeneral = 12.0 // 10 + 20% safety margin - const minPositionSizeBTCETH = 60.0 // BTC/ETH requires larger amount due to high price and precision limits (more flexible) + const minPositionSizeGeneral = 12.0 + const minPositionSizeBTCETH = 60.0 if d.Symbol == "BTCUSDT" || d.Symbol == "ETHUSDT" { if d.PositionSizeUSD < minPositionSizeBTCETH { - return fmt.Errorf("%s opening amount too small (%.2f USDT), must be ≥%.2f USDT (due to high price and precision limits, avoid quantity rounding to 0)", d.Symbol, d.PositionSizeUSD, minPositionSizeBTCETH) + return fmt.Errorf("%s opening amount too small (%.2f USDT), must be ≥%.2f USDT", d.Symbol, d.PositionSizeUSD, minPositionSizeBTCETH) } } else { if d.PositionSizeUSD < minPositionSizeGeneral { - return fmt.Errorf("opening amount too small (%.2f USDT), must be ≥%.2f USDT (Binance minimum notional value requirement)", d.PositionSizeUSD, minPositionSizeGeneral) + return fmt.Errorf("opening amount too small (%.2f USDT), must be ≥%.2f USDT", d.PositionSizeUSD, minPositionSizeGeneral) } } - // Validate position value limit (add 1% tolerance to avoid floating point precision issues) - tolerance := maxPositionValue * 0.01 // 1% tolerance + tolerance := maxPositionValue * 0.01 if d.PositionSizeUSD > maxPositionValue+tolerance { if d.Symbol == "BTCUSDT" || d.Symbol == "ETHUSDT" { return fmt.Errorf("BTC/ETH single coin position value cannot exceed %.0f USDT (10x account equity), actual: %.0f", maxPositionValue, d.PositionSizeUSD) @@ -1021,7 +1489,6 @@ func validateDecision(d *Decision, accountEquity float64, btcEthLeverage, altcoi return fmt.Errorf("stop loss and take profit must be greater than 0") } - // Validate rationality of stop loss and take profit if d.Action == "open_long" { if d.StopLoss >= d.TakeProfit { return fmt.Errorf("for long positions, stop loss price must be less than take profit price") @@ -1032,15 +1499,11 @@ func validateDecision(d *Decision, accountEquity float64, btcEthLeverage, altcoi } } - // Validate risk/reward ratio (must be ≥1:3) - // Calculate entry price (assume current market price) var entryPrice float64 if d.Action == "open_long" { - // Long: entry price between stop loss and take profit - entryPrice = d.StopLoss + (d.TakeProfit-d.StopLoss)*0.2 // Assume entry at 20% position + entryPrice = d.StopLoss + (d.TakeProfit-d.StopLoss)*0.2 } else { - // Short: entry price between stop loss and take profit - entryPrice = d.StopLoss - (d.StopLoss-d.TakeProfit)*0.2 // Assume entry at 20% position + entryPrice = d.StopLoss - (d.StopLoss-d.TakeProfit)*0.2 } var riskPercent, rewardPercent, riskRewardRatio float64 @@ -1058,7 +1521,6 @@ func validateDecision(d *Decision, accountEquity float64, btcEthLeverage, altcoi } } - // Hard constraint: risk/reward ratio must be ≥3.0 if riskRewardRatio < 3.0 { return fmt.Errorf("risk/reward ratio too low (%.2f:1), must be ≥3.0:1 [risk: %.2f%% reward: %.2f%%] [stop loss: %.2f take profit: %.2f]", riskRewardRatio, riskPercent, rewardPercent, d.StopLoss, d.TakeProfit) diff --git a/decision/prompt_manager.go b/decision/prompt_manager.go deleted file mode 100644 index 202d2291..00000000 --- a/decision/prompt_manager.go +++ /dev/null @@ -1,162 +0,0 @@ -package decision - -import ( - "fmt" - "log" - "os" - "path/filepath" - "strings" - "sync" -) - -// PromptTemplate system prompt template -type PromptTemplate struct { - Name string // Template name (filename without extension) - Content string // Template content -} - -// PromptManager prompt manager -type PromptManager struct { - templates map[string]*PromptTemplate - mu sync.RWMutex -} - -var ( - // globalPromptManager global prompt manager - globalPromptManager *PromptManager - // promptsDir prompt folder path - promptsDir = "prompts" -) - -// init loads all prompt templates during package initialization -func init() { - globalPromptManager = NewPromptManager() - if err := globalPromptManager.LoadTemplates(promptsDir); err != nil { - log.Printf("⚠️ Failed to load prompt templates: %v", err) - } else { - log.Printf("✓ Loaded %d system prompt templates", len(globalPromptManager.templates)) - } -} - -// NewPromptManager creates a prompt manager -func NewPromptManager() *PromptManager { - return &PromptManager{ - templates: make(map[string]*PromptTemplate), - } -} - -// LoadTemplates loads all prompt templates from specified directory -func (pm *PromptManager) LoadTemplates(dir string) error { - pm.mu.Lock() - defer pm.mu.Unlock() - - // Check if directory exists - if _, err := os.Stat(dir); os.IsNotExist(err) { - return fmt.Errorf("prompt directory does not exist: %s", dir) - } - - // Scan all .txt files in directory - files, err := filepath.Glob(filepath.Join(dir, "*.txt")) - if err != nil { - return fmt.Errorf("failed to scan prompt directory: %w", err) - } - - if len(files) == 0 { - log.Printf("⚠️ No .txt files found in prompt directory %s", dir) - return nil - } - - // Load each template file - for _, file := range files { - // Read file content - content, err := os.ReadFile(file) - if err != nil { - log.Printf("⚠️ Failed to read prompt file %s: %v", file, err) - continue - } - - // Extract filename (without extension) as template name - fileName := filepath.Base(file) - templateName := strings.TrimSuffix(fileName, filepath.Ext(fileName)) - - // Store template - pm.templates[templateName] = &PromptTemplate{ - Name: templateName, - Content: string(content), - } - - log.Printf(" 📄 Loaded prompt template: %s (%s)", templateName, fileName) - } - - return nil -} - -// GetTemplate gets prompt template by name -func (pm *PromptManager) GetTemplate(name string) (*PromptTemplate, error) { - pm.mu.RLock() - defer pm.mu.RUnlock() - - template, exists := pm.templates[name] - if !exists { - return nil, fmt.Errorf("prompt template does not exist: %s", name) - } - - return template, nil -} - -// GetAllTemplateNames gets all template names list -func (pm *PromptManager) GetAllTemplateNames() []string { - pm.mu.RLock() - defer pm.mu.RUnlock() - - names := make([]string, 0, len(pm.templates)) - for name := range pm.templates { - names = append(names, name) - } - - return names -} - -// GetAllTemplates gets all templates -func (pm *PromptManager) GetAllTemplates() []*PromptTemplate { - pm.mu.RLock() - defer pm.mu.RUnlock() - - templates := make([]*PromptTemplate, 0, len(pm.templates)) - for _, template := range pm.templates { - templates = append(templates, template) - } - - return templates -} - -// ReloadTemplates reloads all templates -func (pm *PromptManager) ReloadTemplates(dir string) error { - pm.mu.Lock() - pm.templates = make(map[string]*PromptTemplate) - pm.mu.Unlock() - - return pm.LoadTemplates(dir) -} - -// === Global functions (for external calls) === - -// GetPromptTemplate gets prompt template by name (global function) -func GetPromptTemplate(name string) (*PromptTemplate, error) { - return globalPromptManager.GetTemplate(name) -} - -// GetAllPromptTemplateNames gets all template names (global function) -func GetAllPromptTemplateNames() []string { - return globalPromptManager.GetAllTemplateNames() -} - -// GetAllPromptTemplates gets all templates (global function) -func GetAllPromptTemplates() []*PromptTemplate { - return globalPromptManager.GetAllTemplates() -} - -// ReloadPromptTemplates reloads all templates (global function) -func ReloadPromptTemplates() error { - return globalPromptManager.ReloadTemplates(promptsDir) -} diff --git a/decision/prompt_manager_test.go b/decision/prompt_manager_test.go deleted file mode 100644 index 720d766d..00000000 --- a/decision/prompt_manager_test.go +++ /dev/null @@ -1,285 +0,0 @@ -package decision - -import ( - "os" - "path/filepath" - "testing" -) - -func TestPromptManager_LoadTemplates(t *testing.T) { - // Create temporary directory for testing - tempDir := t.TempDir() - - tests := []struct { - name string - setupFiles map[string]string // filename -> content - expectedCount int - expectedNames []string - shouldError bool - }{ - { - name: "Load single template file", - setupFiles: map[string]string{ - "default.txt": "You are a professional cryptocurrency trading AI.", - }, - expectedCount: 1, - expectedNames: []string{"default"}, - shouldError: false, - }, - { - name: "Load multiple template files", - setupFiles: map[string]string{ - "default.txt": "Default strategy", - "conservative.txt": "Conservative strategy", - "aggressive.txt": "Aggressive strategy", - }, - expectedCount: 3, - expectedNames: []string{"default", "conservative", "aggressive"}, - shouldError: false, - }, - { - name: "Empty directory", - setupFiles: map[string]string{}, - expectedCount: 0, - expectedNames: []string{}, - shouldError: false, - }, - { - name: "Ignore non-.txt files", - setupFiles: map[string]string{ - "default.txt": "Correct template", - "readme.md": "Should be ignored", - "config.json": "Should be ignored", - }, - expectedCount: 1, - expectedNames: []string{"default"}, - shouldError: false, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - // Create independent subdirectory for each test case - testDir := filepath.Join(tempDir, tt.name) - if err := os.MkdirAll(testDir, 0755); err != nil { - t.Fatalf("Failed to create test directory: %v", err) - } - - // Setup test files - for filename, content := range tt.setupFiles { - filePath := filepath.Join(testDir, filename) - if err := os.WriteFile(filePath, []byte(content), 0644); err != nil { - t.Fatalf("Failed to create test file %s: %v", filename, err) - } - } - - // Create new PromptManager - pm := NewPromptManager() - - // Execute test - err := pm.LoadTemplates(testDir) - - // Check error - if (err != nil) != tt.shouldError { - t.Errorf("LoadTemplates() error = %v, shouldError %v", err, tt.shouldError) - return - } - - // Check loaded template count - if len(pm.templates) != tt.expectedCount { - t.Errorf("Loaded template count = %d, expected %d", len(pm.templates), tt.expectedCount) - } - - // Check template names - for _, expectedName := range tt.expectedNames { - if _, exists := pm.templates[expectedName]; !exists { - t.Errorf("Missing expected template: %s", expectedName) - } - } - - // Verify template content - for filename, expectedContent := range tt.setupFiles { - if filepath.Ext(filename) != ".txt" { - continue - } - templateName := filename[:len(filename)-4] // Remove .txt - template, err := pm.GetTemplate(templateName) - if err != nil { - t.Errorf("Failed to get template %s: %v", templateName, err) - continue - } - if template.Content != expectedContent { - t.Errorf("Template content mismatch\nExpected: %s\nActual: %s", expectedContent, template.Content) - } - } - }) - } -} - -func TestPromptManager_GetTemplate(t *testing.T) { - pm := NewPromptManager() - pm.templates = map[string]*PromptTemplate{ - "default": { - Name: "default", - Content: "Default strategy content", - }, - "aggressive": { - Name: "aggressive", - Content: "Aggressive strategy content", - }, - } - - tests := []struct { - name string - templateName string - expectError bool - expectedContent string - }{ - { - name: "Get existing template", - templateName: "default", - expectError: false, - expectedContent: "Default strategy content", - }, - { - name: "Get non-existent template", - templateName: "nonexistent", - expectError: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - template, err := pm.GetTemplate(tt.templateName) - - if (err != nil) != tt.expectError { - t.Errorf("GetTemplate() error = %v, expectError %v", err, tt.expectError) - return - } - - if !tt.expectError && template.Content != tt.expectedContent { - t.Errorf("Template content = %s, expected %s", template.Content, tt.expectedContent) - } - }) - } -} - -func TestPromptManager_ReloadTemplates(t *testing.T) { - tempDir := t.TempDir() - - // Initial file - if err := os.WriteFile(filepath.Join(tempDir, "default.txt"), []byte("Initial content"), 0644); err != nil { - t.Fatalf("Failed to create initial file: %v", err) - } - - pm := NewPromptManager() - if err := pm.LoadTemplates(tempDir); err != nil { - t.Fatalf("Initial load failed: %v", err) - } - - // Verify initial content - template, _ := pm.GetTemplate("default") - if template.Content != "Initial content" { - t.Errorf("Initial content incorrect: %s", template.Content) - } - - // Modify file content - if err := os.WriteFile(filepath.Join(tempDir, "default.txt"), []byte("Updated content"), 0644); err != nil { - t.Fatalf("Failed to update file: %v", err) - } - - // Add new file - if err := os.WriteFile(filepath.Join(tempDir, "new.txt"), []byte("New template content"), 0644); err != nil { - t.Fatalf("Failed to create new file: %v", err) - } - - // Reload - if err := pm.ReloadTemplates(tempDir); err != nil { - t.Fatalf("Reload failed: %v", err) - } - - // Verify updated content - template, err := pm.GetTemplate("default") - if err != nil { - t.Fatalf("Failed to get default template: %v", err) - } - if template.Content != "Updated content" { - t.Errorf("Content after reload incorrect: got %s, want 'Updated content'", template.Content) - } - - // Verify new template - newTemplate, err := pm.GetTemplate("new") - if err != nil { - t.Fatalf("Failed to get new template: %v", err) - } - if newTemplate.Content != "New template content" { - t.Errorf("New template content incorrect: %s", newTemplate.Content) - } - - // Verify template count - if len(pm.templates) != 2 { - t.Errorf("Template count after reload = %d, expected 2", len(pm.templates)) - } -} - -func TestPromptManager_GetAllTemplateNames(t *testing.T) { - pm := NewPromptManager() - pm.templates = map[string]*PromptTemplate{ - "default": {Name: "default", Content: "Default strategy"}, - "conservative": {Name: "conservative", Content: "Conservative strategy"}, - "aggressive": {Name: "aggressive", Content: "Aggressive strategy"}, - } - - names := pm.GetAllTemplateNames() - - if len(names) != 3 { - t.Errorf("GetAllTemplateNames() returned count = %d, expected 3", len(names)) - } - - // Verify all names exist - nameMap := make(map[string]bool) - for _, name := range names { - nameMap[name] = true - } - - expectedNames := []string{"default", "conservative", "aggressive"} - for _, expectedName := range expectedNames { - if !nameMap[expectedName] { - t.Errorf("Missing expected template name: %s", expectedName) - } - } -} - -func TestReloadPromptTemplates_GlobalFunction(t *testing.T) { - // Save original promptsDir - originalDir := promptsDir - defer func() { - promptsDir = originalDir - // Restore original templates - globalPromptManager.ReloadTemplates(originalDir) - }() - - // Create temporary directory - tempDir := t.TempDir() - promptsDir = tempDir - - // Create test file - if err := os.WriteFile(filepath.Join(tempDir, "test.txt"), []byte("Test content"), 0644); err != nil { - t.Fatalf("Failed to create test file: %v", err) - } - - // Call global reload function - if err := ReloadPromptTemplates(); err != nil { - t.Fatalf("ReloadPromptTemplates() failed: %v", err) - } - - // Verify global manager has been updated - template, err := GetPromptTemplate("test") - if err != nil { - t.Fatalf("Failed to get template: %v", err) - } - - if template.Content != "Test content" { - t.Errorf("Template content incorrect: got %s, want 'Test content'", template.Content) - } -} diff --git a/decision/prompt_reload_integration_test.go b/decision/prompt_reload_integration_test.go deleted file mode 100644 index 8139ddd1..00000000 --- a/decision/prompt_reload_integration_test.go +++ /dev/null @@ -1,243 +0,0 @@ -package decision - -import ( - "os" - "path/filepath" - "strings" - "testing" -) - -// TestPromptReloadEndToEnd end-to-end test: verify complete flow from file modification to decision engine usage -func TestPromptReloadEndToEnd(t *testing.T) { - // Save original promptsDir - originalDir := promptsDir - defer func() { - promptsDir = originalDir - // Restore original templates - globalPromptManager.ReloadTemplates(originalDir) - }() - - // Create temporary directory to simulate prompts/ directory - tempDir := t.TempDir() - promptsDir = tempDir - - // Step 1: Create initial prompt file - initialContent := "# Initial Trading Strategy\nYou are a conservative trading AI." - if err := os.WriteFile(filepath.Join(tempDir, "test_strategy.txt"), []byte(initialContent), 0644); err != nil { - t.Fatalf("Failed to create initial file: %v", err) - } - - // Step 2: First load (simulate system startup) - if err := ReloadPromptTemplates(); err != nil { - t.Fatalf("First load failed: %v", err) - } - - // Step 3: Verify initial content - template, err := GetPromptTemplate("test_strategy") - if err != nil { - t.Fatalf("Failed to get initial template: %v", err) - } - if template.Content != initialContent { - t.Errorf("Initial content mismatch\nExpected: %s\nActual: %s", initialContent, template.Content) - } - - // Step 4: Use buildSystemPrompt to verify template is correctly used - systemPrompt := buildSystemPrompt(10000.0, 10, 5, "test_strategy", "") - if !strings.Contains(systemPrompt, initialContent) { - t.Errorf("buildSystemPrompt doesn't contain template content\nGenerated prompt:\n%s", systemPrompt) - } - - // Step 5: Simulate user modifying file (user modifies prompt on disk) - updatedContent := "# Updated Trading Strategy\nYou are an aggressive trading AI seeking high risk and high reward." - if err := os.WriteFile(filepath.Join(tempDir, "test_strategy.txt"), []byte(updatedContent), 0644); err != nil { - t.Fatalf("Failed to update file: %v", err) - } - - // Step 6: Simulate trader startup calling ReloadPromptTemplates() - t.Log("Simulating trader startup, calling ReloadPromptTemplates()...") - if err := ReloadPromptTemplates(); err != nil { - t.Fatalf("Reload failed: %v", err) - } - - // Step 7: Verify new content has taken effect - reloadedTemplate, err := GetPromptTemplate("test_strategy") - if err != nil { - t.Fatalf("Failed to get reloaded template: %v", err) - } - if reloadedTemplate.Content != updatedContent { - t.Errorf("Content mismatch after reload\nExpected: %s\nActual: %s", updatedContent, reloadedTemplate.Content) - } - - // Step 8: Verify buildSystemPrompt uses new content - newSystemPrompt := buildSystemPrompt(10000.0, 10, 5, "test_strategy", "") - if !strings.Contains(newSystemPrompt, updatedContent) { - t.Errorf("buildSystemPrompt doesn't contain updated template content\nGenerated prompt:\n%s", newSystemPrompt) - } - - // Step 9: Verify old content no longer exists - if strings.Contains(newSystemPrompt, "conservative trading AI") { - t.Errorf("buildSystemPrompt still contains old template content") - } - - t.Log("✅ End-to-end test passed: file modification -> reload -> decision engine uses new content") -} - -// TestPromptReloadWithCustomPrompt tests interaction between custom prompt and template reload -func TestPromptReloadWithCustomPrompt(t *testing.T) { - // Save original promptsDir - originalDir := promptsDir - defer func() { - promptsDir = originalDir - globalPromptManager.ReloadTemplates(originalDir) - }() - - // Create temporary directory - tempDir := t.TempDir() - promptsDir = tempDir - - // Create base template - baseContent := "Base strategy: Stable trading" - if err := os.WriteFile(filepath.Join(tempDir, "base.txt"), []byte(baseContent), 0644); err != nil { - t.Fatalf("Failed to create file: %v", err) - } - - // Load templates - if err := ReloadPromptTemplates(); err != nil { - t.Fatalf("Load failed: %v", err) - } - - // Test 1: Base template + custom prompt (no override) - customPrompt := "Personalized rule: Only trade BTC" - result := buildSystemPromptWithCustom(10000.0, 10, 5, customPrompt, false, "base", "") - if !strings.Contains(result, baseContent) { - t.Errorf("Doesn't contain base template content") - } - if !strings.Contains(result, customPrompt) { - t.Errorf("Doesn't contain custom prompt") - } - - // Test 2: Override base prompt - result = buildSystemPromptWithCustom(10000.0, 10, 5, customPrompt, true, "base", "") - if strings.Contains(result, baseContent) { - t.Errorf("Override mode still contains base template content") - } - if !strings.Contains(result, customPrompt) { - t.Errorf("Override mode doesn't contain custom prompt") - } - - // Test 3: Effect after reload - updatedBase := "Updated base strategy: Aggressive trading" - if err := os.WriteFile(filepath.Join(tempDir, "base.txt"), []byte(updatedBase), 0644); err != nil { - t.Fatalf("Failed to update file: %v", err) - } - - if err := ReloadPromptTemplates(); err != nil { - t.Fatalf("Reload failed: %v", err) - } - - result = buildSystemPromptWithCustom(10000.0, 10, 5, customPrompt, false, "base", "") - if !strings.Contains(result, updatedBase) { - t.Errorf("After reload doesn't contain updated base template content") - } - if strings.Contains(result, baseContent) { - t.Errorf("After reload still contains old base template content") - } -} - -// TestPromptReloadFallback tests fallback mechanism when template doesn't exist -func TestPromptReloadFallback(t *testing.T) { - // Save original promptsDir - originalDir := promptsDir - defer func() { - promptsDir = originalDir - globalPromptManager.ReloadTemplates(originalDir) - }() - - // Create temporary directory - tempDir := t.TempDir() - promptsDir = tempDir - - // Only create default template - defaultContent := "Default strategy" - if err := os.WriteFile(filepath.Join(tempDir, "default.txt"), []byte(defaultContent), 0644); err != nil { - t.Fatalf("Failed to create file: %v", err) - } - - if err := ReloadPromptTemplates(); err != nil { - t.Fatalf("Load failed: %v", err) - } - - // Test 1: Request non-existent template, should fall back to default - result := buildSystemPrompt(10000.0, 10, 5, "nonexistent", "") - if !strings.Contains(result, defaultContent) { - t.Errorf("When requesting non-existent template, didn't fall back to default") - } - - // Test 2: Empty template name, should use default - result = buildSystemPrompt(10000.0, 10, 5, "", "") - if !strings.Contains(result, defaultContent) { - t.Errorf("With empty template name, didn't use default") - } -} - -// TestConcurrentPromptReload tests prompt reload in concurrent scenarios -func TestConcurrentPromptReload(t *testing.T) { - // Save original promptsDir - originalDir := promptsDir - defer func() { - promptsDir = originalDir - globalPromptManager.ReloadTemplates(originalDir) - }() - - // Create temporary directory - tempDir := t.TempDir() - promptsDir = tempDir - - // Create test file - if err := os.WriteFile(filepath.Join(tempDir, "test.txt"), []byte("Test content"), 0644); err != nil { - t.Fatalf("Failed to create file: %v", err) - } - - if err := ReloadPromptTemplates(); err != nil { - t.Fatalf("Initial load failed: %v", err) - } - - // Concurrent test: read and reload simultaneously - done := make(chan bool) - - // Start multiple read goroutines - for i := 0; i < 10; i++ { - go func() { - for j := 0; j < 100; j++ { - _, _ = GetPromptTemplate("test") - } - done <- true - }() - } - - // Start multiple reload goroutines - for i := 0; i < 3; i++ { - go func() { - for j := 0; j < 10; j++ { - _ = ReloadPromptTemplates() - } - done <- true - }() - } - - // Wait for all goroutines to complete - for i := 0; i < 13; i++ { - <-done - } - - // Verify final state is correct - template, err := GetPromptTemplate("test") - if err != nil { - t.Errorf("Failed to get template after concurrent test: %v", err) - } - if template.Content != "Test content" { - t.Errorf("Template content error after concurrent test: %s", template.Content) - } - - t.Log("✅ Concurrent test passed: multiple goroutines reading and reloading templates simultaneously, no data race") -} diff --git a/decision/prompt_test.go b/decision/prompt_test.go deleted file mode 100644 index 4890f7ea..00000000 --- a/decision/prompt_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package decision - -import ( - "strings" - "testing" -) - -// TestBuildSystemPrompt_ContainsAllValidActions tests whether prompt contains all valid actions -func TestBuildSystemPrompt_ContainsAllValidActions(t *testing.T) { - // These are all valid actions defined in the system (from validateDecision) - validActions := []string{ - "open_long", - "open_short", - "close_long", - "close_short", - "hold", - "wait", - } - - // Build prompt - prompt := buildSystemPrompt(1000.0, 10, 5, "default", "") - - // Verify each valid action appears in prompt - for _, action := range validActions { - if !strings.Contains(prompt, action) { - t.Errorf("Prompt missing valid action: %s", action) - } - } -} diff --git a/decision/strategy_engine.go b/decision/strategy_engine.go deleted file mode 100644 index 56f6c19d..00000000 --- a/decision/strategy_engine.go +++ /dev/null @@ -1,969 +0,0 @@ -package decision - -import ( - "encoding/json" - "fmt" - "io" - "net/http" - "nofx/logger" - "nofx/market" - "nofx/pool" - "nofx/store" - "strings" - "time" -) - -// StrategyEngine strategy execution engine -// Responsible for dynamically fetching data and assembling prompts based on strategy configuration -type StrategyEngine struct { - config *store.StrategyConfig -} - -// NewStrategyEngine creates strategy execution engine -func NewStrategyEngine(config *store.StrategyConfig) *StrategyEngine { - return &StrategyEngine{config: config} -} - -// GetCandidateCoins gets candidate coins based on strategy configuration -func (e *StrategyEngine) GetCandidateCoins() ([]CandidateCoin, error) { - var candidates []CandidateCoin - symbolSources := make(map[string][]string) - - coinSource := e.config.CoinSource - - // Set custom API URL (if configured) - if coinSource.CoinPoolAPIURL != "" { - pool.SetCoinPoolAPI(coinSource.CoinPoolAPIURL) - logger.Infof("✓ Using strategy-configured AI500 API URL: %s", coinSource.CoinPoolAPIURL) - } - if coinSource.OITopAPIURL != "" { - pool.SetOITopAPI(coinSource.OITopAPIURL) - logger.Infof("✓ Using strategy-configured OI Top API URL: %s", coinSource.OITopAPIURL) - } - - switch coinSource.SourceType { - case "static": - // Static coin list - for _, symbol := range coinSource.StaticCoins { - symbol = market.Normalize(symbol) - candidates = append(candidates, CandidateCoin{ - Symbol: symbol, - Sources: []string{"static"}, - }) - } - return candidates, nil - - case "coinpool": - // Use AI500 coin pool only - return e.getCoinPoolCoins(coinSource.CoinPoolLimit) - - case "oi_top": - // Use OI Top only - return e.getOITopCoins(coinSource.OITopLimit) - - case "mixed": - // Mixed mode: AI500 + OI Top - if coinSource.UseCoinPool { - poolCoins, err := e.getCoinPoolCoins(coinSource.CoinPoolLimit) - if err != nil { - logger.Infof("⚠️ Failed to get AI500 coin pool: %v", err) - } else { - for _, coin := range poolCoins { - symbolSources[coin.Symbol] = append(symbolSources[coin.Symbol], "ai500") - } - } - } - - if coinSource.UseOITop { - oiCoins, err := e.getOITopCoins(coinSource.OITopLimit) - if err != nil { - logger.Infof("⚠️ Failed to get OI Top: %v", err) - } else { - for _, coin := range oiCoins { - symbolSources[coin.Symbol] = append(symbolSources[coin.Symbol], "oi_top") - } - } - } - - // Add static coins (if any) - for _, symbol := range coinSource.StaticCoins { - symbol = market.Normalize(symbol) - if _, exists := symbolSources[symbol]; !exists { - symbolSources[symbol] = []string{"static"} - } else { - symbolSources[symbol] = append(symbolSources[symbol], "static") - } - } - - // Convert to candidate coin list - for symbol, sources := range symbolSources { - candidates = append(candidates, CandidateCoin{ - Symbol: symbol, - Sources: sources, - }) - } - return candidates, nil - - default: - return nil, fmt.Errorf("unknown coin source type: %s", coinSource.SourceType) - } -} - -// getCoinPoolCoins gets AI500 coin pool -func (e *StrategyEngine) getCoinPoolCoins(limit int) ([]CandidateCoin, error) { - if limit <= 0 { - limit = 30 - } - - symbols, err := pool.GetTopRatedCoins(limit) - if err != nil { - return nil, err - } - - var candidates []CandidateCoin - for _, symbol := range symbols { - candidates = append(candidates, CandidateCoin{ - Symbol: symbol, - Sources: []string{"ai500"}, - }) - } - return candidates, nil -} - -// getOITopCoins gets OI Top coins -func (e *StrategyEngine) getOITopCoins(limit int) ([]CandidateCoin, error) { - if limit <= 0 { - limit = 20 - } - - positions, err := pool.GetOITopPositions() - if err != nil { - return nil, err - } - - var candidates []CandidateCoin - for i, pos := range positions { - if i >= limit { - break - } - symbol := market.Normalize(pos.Symbol) - candidates = append(candidates, CandidateCoin{ - Symbol: symbol, - Sources: []string{"oi_top"}, - }) - } - return candidates, nil -} - -// FetchMarketData fetches market data based on strategy configuration -func (e *StrategyEngine) FetchMarketData(symbol string) (*market.Data, error) { - // Currently using existing market.Get, can be customized based on strategy configuration later - return market.Get(symbol) -} - -// FetchExternalData fetches external data sources -func (e *StrategyEngine) FetchExternalData() (map[string]interface{}, error) { - externalData := make(map[string]interface{}) - - for _, source := range e.config.Indicators.ExternalDataSources { - data, err := e.fetchSingleExternalSource(source) - if err != nil { - logger.Infof("⚠️ Failed to fetch external data source [%s]: %v", source.Name, err) - continue - } - externalData[source.Name] = data - } - - return externalData, nil -} - -// QuantData quantitative data structure (fund flow, position changes, price changes) -type QuantData struct { - Symbol string `json:"symbol"` - Price float64 `json:"price"` - Netflow *NetflowData `json:"netflow,omitempty"` - OI map[string]*OIData `json:"oi,omitempty"` - PriceChange map[string]float64 `json:"price_change,omitempty"` -} - -type NetflowData struct { - Institution *FlowTypeData `json:"institution,omitempty"` - Personal *FlowTypeData `json:"personal,omitempty"` -} - -type FlowTypeData struct { - Future map[string]float64 `json:"future,omitempty"` - Spot map[string]float64 `json:"spot,omitempty"` -} - -type OIData struct { - CurrentOI float64 `json:"current_oi"` - NetLong float64 `json:"net_long"` - NetShort float64 `json:"net_short"` - Delta map[string]*OIDeltaData `json:"delta,omitempty"` -} - -type OIDeltaData struct { - OIDelta float64 `json:"oi_delta"` - OIDeltaValue float64 `json:"oi_delta_value"` - OIDeltaPercent float64 `json:"oi_delta_percent"` -} - -// FetchQuantData fetches quantitative data for a single coin -func (e *StrategyEngine) FetchQuantData(symbol string) (*QuantData, error) { - if !e.config.Indicators.EnableQuantData || e.config.Indicators.QuantDataAPIURL == "" { - return nil, nil - } - - // Check if URL contains {symbol} placeholder - apiURL := e.config.Indicators.QuantDataAPIURL - if !strings.Contains(apiURL, "{symbol}") { - logger.Infof("⚠️ Quant data URL does not contain {symbol} placeholder, data may be incorrect for %s", symbol) - } - - // Replace {symbol} placeholder - url := strings.Replace(apiURL, "{symbol}", symbol, -1) - - client := &http.Client{Timeout: 10 * time.Second} - resp, err := client.Get(url) - if err != nil { - return nil, fmt.Errorf("request failed: %w", err) - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("HTTP status code: %d", resp.StatusCode) - } - - body, err := io.ReadAll(resp.Body) - if err != nil { - return nil, fmt.Errorf("failed to read response: %w", err) - } - - // Parse response - var apiResp struct { - Code int `json:"code"` - Data *QuantData `json:"data"` - } - - if err := json.Unmarshal(body, &apiResp); err != nil { - return nil, fmt.Errorf("failed to parse JSON: %w", err) - } - - if apiResp.Code != 0 { - return nil, fmt.Errorf("API returned error code: %d", apiResp.Code) - } - - return apiResp.Data, nil -} - -// FetchQuantDataBatch batch fetches quantitative data -func (e *StrategyEngine) FetchQuantDataBatch(symbols []string) map[string]*QuantData { - result := make(map[string]*QuantData) - - if !e.config.Indicators.EnableQuantData || e.config.Indicators.QuantDataAPIURL == "" { - return result - } - - for _, symbol := range symbols { - data, err := e.FetchQuantData(symbol) - if err != nil { - logger.Infof("⚠️ Failed to fetch quantitative data for %s: %v", symbol, err) - continue - } - if data != nil { - result[symbol] = data - } - } - - return result -} - -// formatQuantData formats quantitative data -func (e *StrategyEngine) formatQuantData(data *QuantData) string { - if data == nil { - return "" - } - - indicators := e.config.Indicators - // If both OI and Netflow are disabled, return empty - if !indicators.EnableQuantOI && !indicators.EnableQuantNetflow { - return "" - } - - var sb strings.Builder - sb.WriteString("📊 Quantitative Data:\n") - - // Price changes (API returns decimals, multiply by 100 for percentage) - if len(data.PriceChange) > 0 { - sb.WriteString("Price Change: ") - timeframes := []string{"5m", "15m", "1h", "4h", "12h", "24h"} - parts := []string{} - for _, tf := range timeframes { - if v, ok := data.PriceChange[tf]; ok { - parts = append(parts, fmt.Sprintf("%s: %+.4f%%", tf, v*100)) - } - } - sb.WriteString(strings.Join(parts, " | ")) - sb.WriteString("\n") - } - - // Fund flow (Netflow) - only show if enabled - if indicators.EnableQuantNetflow && data.Netflow != nil { - sb.WriteString("Fund Flow (Netflow):\n") - timeframes := []string{"5m", "15m", "1h", "4h", "12h", "24h"} - - // Institutional funds - if data.Netflow.Institution != nil { - if data.Netflow.Institution.Future != nil && len(data.Netflow.Institution.Future) > 0 { - sb.WriteString(" Institutional Futures:\n") - for _, tf := range timeframes { - if v, ok := data.Netflow.Institution.Future[tf]; ok { - sb.WriteString(fmt.Sprintf(" %s: %s\n", tf, formatFlowValue(v))) - } - } - } - if data.Netflow.Institution.Spot != nil && len(data.Netflow.Institution.Spot) > 0 { - sb.WriteString(" Institutional Spot:\n") - for _, tf := range timeframes { - if v, ok := data.Netflow.Institution.Spot[tf]; ok { - sb.WriteString(fmt.Sprintf(" %s: %s\n", tf, formatFlowValue(v))) - } - } - } - } - - // Retail funds - if data.Netflow.Personal != nil { - if data.Netflow.Personal.Future != nil && len(data.Netflow.Personal.Future) > 0 { - sb.WriteString(" Retail Futures:\n") - for _, tf := range timeframes { - if v, ok := data.Netflow.Personal.Future[tf]; ok { - sb.WriteString(fmt.Sprintf(" %s: %s\n", tf, formatFlowValue(v))) - } - } - } - if data.Netflow.Personal.Spot != nil && len(data.Netflow.Personal.Spot) > 0 { - sb.WriteString(" Retail Spot:\n") - for _, tf := range timeframes { - if v, ok := data.Netflow.Personal.Spot[tf]; ok { - sb.WriteString(fmt.Sprintf(" %s: %s\n", tf, formatFlowValue(v))) - } - } - } - } - } - - // Open Interest (OI) - only show if enabled - if indicators.EnableQuantOI && len(data.OI) > 0 { - for exchange, oiData := range data.OI { - if len(oiData.Delta) > 0 { - sb.WriteString(fmt.Sprintf("Open Interest (%s):\n", exchange)) - for _, tf := range []string{"5m", "15m", "1h", "4h", "12h", "24h"} { - if d, ok := oiData.Delta[tf]; ok { - sb.WriteString(fmt.Sprintf(" %s: %+.4f%% (%s)\n", tf, d.OIDeltaPercent, formatFlowValue(d.OIDeltaValue))) - } - } - } - } - } - - return sb.String() -} - -// fetchSingleExternalSource fetches a single external data source -func (e *StrategyEngine) fetchSingleExternalSource(source store.ExternalDataSource) (interface{}, error) { - client := &http.Client{ - Timeout: time.Duration(source.RefreshSecs) * time.Second, - } - - if client.Timeout == 0 { - client.Timeout = 30 * time.Second - } - - req, err := http.NewRequest(source.Method, source.URL, nil) - if err != nil { - return nil, err - } - - // Add request headers - for k, v := range source.Headers { - req.Header.Set(k, v) - } - - resp, err := client.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - body, err := io.ReadAll(resp.Body) - if err != nil { - return nil, err - } - - var result interface{} - if err := json.Unmarshal(body, &result); err != nil { - return nil, err - } - - // If data path is specified, extract data at specified path - if source.DataPath != "" { - result = extractJSONPath(result, source.DataPath) - } - - return result, nil -} - -// extractJSONPath extracts JSON path data (simple implementation) -func extractJSONPath(data interface{}, path string) interface{} { - parts := strings.Split(path, ".") - current := data - - for _, part := range parts { - if m, ok := current.(map[string]interface{}); ok { - current = m[part] - } else { - return nil - } - } - - return current -} - -// BuildUserPrompt builds User Prompt based on strategy configuration -func (e *StrategyEngine) BuildUserPrompt(ctx *Context) string { - var sb strings.Builder - - // System status - sb.WriteString(fmt.Sprintf("Time: %s | Period: #%d | Runtime: %d minutes\n\n", - ctx.CurrentTime, ctx.CallCount, ctx.RuntimeMinutes)) - - // BTC market (if configured) - if btcData, hasBTC := ctx.MarketDataMap["BTCUSDT"]; hasBTC { - sb.WriteString(fmt.Sprintf("BTC: %.2f (1h: %+.2f%%, 4h: %+.2f%%) | MACD: %.4f | RSI: %.2f\n\n", - btcData.CurrentPrice, btcData.PriceChange1h, btcData.PriceChange4h, - btcData.CurrentMACD, btcData.CurrentRSI7)) - } - - // Account information - sb.WriteString(fmt.Sprintf("Account: Equity %.2f | Balance %.2f (%.1f%%) | PnL %+.2f%% | Margin %.1f%% | Positions %d\n\n", - ctx.Account.TotalEquity, - ctx.Account.AvailableBalance, - (ctx.Account.AvailableBalance/ctx.Account.TotalEquity)*100, - ctx.Account.TotalPnLPct, - ctx.Account.MarginUsedPct, - ctx.Account.PositionCount)) - - // Position information - if len(ctx.Positions) > 0 { - sb.WriteString("## Current Positions\n") - for i, pos := range ctx.Positions { - sb.WriteString(e.formatPositionInfo(i+1, pos, ctx)) - } - } else { - sb.WriteString("Current Positions: None\n\n") - } - - // Trading statistics - if ctx.TradingStats != nil && ctx.TradingStats.TotalTrades > 0 { - sb.WriteString("## Historical Trading Statistics\n") - sb.WriteString(fmt.Sprintf("Total Trades: %d | Win Rate: %.1f%% | Profit Factor: %.2f | Sharpe Ratio: %.2f\n", - ctx.TradingStats.TotalTrades, - ctx.TradingStats.WinRate, - ctx.TradingStats.ProfitFactor, - ctx.TradingStats.SharpeRatio)) - sb.WriteString(fmt.Sprintf("Total P&L: %.2f USDT | Avg Win: %.2f | Avg Loss: %.2f | Max Drawdown: %.1f%%\n\n", - ctx.TradingStats.TotalPnL, - ctx.TradingStats.AvgWin, - ctx.TradingStats.AvgLoss, - ctx.TradingStats.MaxDrawdownPct)) - } - - // Recently completed orders - if len(ctx.RecentOrders) > 0 { - sb.WriteString("## Recent Completed Trades\n") - for i, order := range ctx.RecentOrders { - resultStr := "Profit" - if order.RealizedPnL < 0 { - resultStr = "Loss" - } - sb.WriteString(fmt.Sprintf("%d. %s %s | Entry %.4f Exit %.4f | %s: %+.2f USDT (%+.2f%%) | %s\n", - i+1, order.Symbol, order.Side, - order.EntryPrice, order.ExitPrice, - resultStr, order.RealizedPnL, order.PnLPct, - order.FilledAt)) - } - sb.WriteString("\n") - } - - // Candidate coins - sb.WriteString(fmt.Sprintf("## Candidate Coins (%d coins)\n\n", len(ctx.MarketDataMap))) - displayedCount := 0 - for _, coin := range ctx.CandidateCoins { - marketData, hasData := ctx.MarketDataMap[coin.Symbol] - if !hasData { - continue - } - displayedCount++ - - sourceTags := e.formatCoinSourceTag(coin.Sources) - sb.WriteString(fmt.Sprintf("### %d. %s%s\n\n", displayedCount, coin.Symbol, sourceTags)) - sb.WriteString(e.formatMarketData(marketData)) - - // Add quantitative data if available - if ctx.QuantDataMap != nil { - if quantData, hasQuant := ctx.QuantDataMap[coin.Symbol]; hasQuant { - sb.WriteString(e.formatQuantData(quantData)) - } - } - sb.WriteString("\n") - } - sb.WriteString("\n") - - sb.WriteString("---\n\n") - sb.WriteString("Now please analyze and output your decision (Chain of Thought + JSON)\n") - - return sb.String() -} - -// formatPositionInfo formats position information -func (e *StrategyEngine) formatPositionInfo(index int, pos PositionInfo, ctx *Context) string { - var sb strings.Builder - - // Calculate holding duration - holdingDuration := "" - if pos.UpdateTime > 0 { - durationMs := time.Now().UnixMilli() - pos.UpdateTime - durationMin := durationMs / (1000 * 60) - if durationMin < 60 { - holdingDuration = fmt.Sprintf(" | Holding Duration %d min", durationMin) - } else { - durationHour := durationMin / 60 - durationMinRemainder := durationMin % 60 - holdingDuration = fmt.Sprintf(" | Holding Duration %dh %dm", durationHour, durationMinRemainder) - } - } - - // Calculate position value - positionValue := pos.Quantity * pos.MarkPrice - if positionValue < 0 { - positionValue = -positionValue - } - - sb.WriteString(fmt.Sprintf("%d. %s %s | Entry %.4f Current %.4f | Qty %.4f | Position Value %.2f USDT | PnL%+.2f%% | PnL Amount%+.2f USDT | Peak PnL%.2f%% | Leverage %dx | Margin %.0f | Liq Price %.4f%s\n\n", - index, pos.Symbol, strings.ToUpper(pos.Side), - pos.EntryPrice, pos.MarkPrice, pos.Quantity, positionValue, pos.UnrealizedPnLPct, pos.UnrealizedPnL, pos.PeakPnLPct, - pos.Leverage, pos.MarginUsed, pos.LiquidationPrice, holdingDuration)) - - // Output market data using strategy configured indicators - if marketData, ok := ctx.MarketDataMap[pos.Symbol]; ok { - sb.WriteString(e.formatMarketData(marketData)) - - // Add quantitative data if available - if ctx.QuantDataMap != nil { - if quantData, hasQuant := ctx.QuantDataMap[pos.Symbol]; hasQuant { - sb.WriteString(e.formatQuantData(quantData)) - } - } - sb.WriteString("\n") - } - - return sb.String() -} - -// formatCoinSourceTag formats coin source tag -func (e *StrategyEngine) formatCoinSourceTag(sources []string) string { - if len(sources) > 1 { - return " (AI500+OI_Top dual signal)" - } else if len(sources) == 1 { - switch sources[0] { - case "ai500": - return " (AI500)" - case "oi_top": - return " (OI_Top position growth)" - case "static": - return " (Manual selection)" - } - } - return "" -} - -// formatMarketData formats market data according to strategy configuration -func (e *StrategyEngine) formatMarketData(data *market.Data) string { - var sb strings.Builder - indicators := e.config.Indicators - - // Current price (always display) - sb.WriteString(fmt.Sprintf("current_price = %.4f", data.CurrentPrice)) - - // EMA - if indicators.EnableEMA { - sb.WriteString(fmt.Sprintf(", current_ema20 = %.3f", data.CurrentEMA20)) - } - - // MACD - if indicators.EnableMACD { - sb.WriteString(fmt.Sprintf(", current_macd = %.3f", data.CurrentMACD)) - } - - // RSI - if indicators.EnableRSI { - sb.WriteString(fmt.Sprintf(", current_rsi7 = %.3f", data.CurrentRSI7)) - } - - sb.WriteString("\n\n") - - // OI and Funding Rate - if indicators.EnableOI || indicators.EnableFundingRate { - sb.WriteString(fmt.Sprintf("Additional data for %s:\n\n", data.Symbol)) - - if indicators.EnableOI && data.OpenInterest != nil { - sb.WriteString(fmt.Sprintf("Open Interest: Latest: %.2f Average: %.2f\n\n", - data.OpenInterest.Latest, data.OpenInterest.Average)) - } - - if indicators.EnableFundingRate { - sb.WriteString(fmt.Sprintf("Funding Rate: %.2e\n\n", data.FundingRate)) - } - } - - // Prefer using multi-timeframe data (new addition) - if len(data.TimeframeData) > 0 { - // Output in timeframe order - timeframeOrder := []string{"1m", "3m", "5m", "15m", "30m", "1h", "2h", "4h", "6h", "8h", "12h", "1d", "3d", "1w"} - for _, tf := range timeframeOrder { - if tfData, ok := data.TimeframeData[tf]; ok { - sb.WriteString(fmt.Sprintf("=== %s Timeframe (oldest → latest) ===\n\n", strings.ToUpper(tf))) - e.formatTimeframeSeriesData(&sb, tfData, indicators) - } - } - } else { - // Compatible with old data format - // Intraday data - if data.IntradaySeries != nil { - klineConfig := indicators.Klines - sb.WriteString(fmt.Sprintf("Intraday series (%s intervals, oldest → latest):\n\n", klineConfig.PrimaryTimeframe)) - - if len(data.IntradaySeries.MidPrices) > 0 { - sb.WriteString(fmt.Sprintf("Mid prices: %s\n\n", formatFloatSlice(data.IntradaySeries.MidPrices))) - } - - if indicators.EnableEMA && len(data.IntradaySeries.EMA20Values) > 0 { - sb.WriteString(fmt.Sprintf("EMA indicators (20-period): %s\n\n", formatFloatSlice(data.IntradaySeries.EMA20Values))) - } - - if indicators.EnableMACD && len(data.IntradaySeries.MACDValues) > 0 { - sb.WriteString(fmt.Sprintf("MACD indicators: %s\n\n", formatFloatSlice(data.IntradaySeries.MACDValues))) - } - - if indicators.EnableRSI { - if len(data.IntradaySeries.RSI7Values) > 0 { - sb.WriteString(fmt.Sprintf("RSI indicators (7-Period): %s\n\n", formatFloatSlice(data.IntradaySeries.RSI7Values))) - } - if len(data.IntradaySeries.RSI14Values) > 0 { - sb.WriteString(fmt.Sprintf("RSI indicators (14-Period): %s\n\n", formatFloatSlice(data.IntradaySeries.RSI14Values))) - } - } - - if indicators.EnableVolume && len(data.IntradaySeries.Volume) > 0 { - sb.WriteString(fmt.Sprintf("Volume: %s\n\n", formatFloatSlice(data.IntradaySeries.Volume))) - } - - if indicators.EnableATR { - sb.WriteString(fmt.Sprintf("3m ATR (14-period): %.3f\n\n", data.IntradaySeries.ATR14)) - } - } - - // Longer-term data - if data.LongerTermContext != nil && indicators.Klines.EnableMultiTimeframe { - sb.WriteString(fmt.Sprintf("Longer-term context (%s timeframe):\n\n", indicators.Klines.LongerTimeframe)) - - if indicators.EnableEMA { - sb.WriteString(fmt.Sprintf("20-Period EMA: %.3f vs. 50-Period EMA: %.3f\n\n", - data.LongerTermContext.EMA20, data.LongerTermContext.EMA50)) - } - - if indicators.EnableATR { - sb.WriteString(fmt.Sprintf("3-Period ATR: %.3f vs. 14-Period ATR: %.3f\n\n", - data.LongerTermContext.ATR3, data.LongerTermContext.ATR14)) - } - - if indicators.EnableVolume { - sb.WriteString(fmt.Sprintf("Current Volume: %.3f vs. Average Volume: %.3f\n\n", - data.LongerTermContext.CurrentVolume, data.LongerTermContext.AverageVolume)) - } - - if indicators.EnableMACD && len(data.LongerTermContext.MACDValues) > 0 { - sb.WriteString(fmt.Sprintf("MACD indicators: %s\n\n", formatFloatSlice(data.LongerTermContext.MACDValues))) - } - - if indicators.EnableRSI && len(data.LongerTermContext.RSI14Values) > 0 { - sb.WriteString(fmt.Sprintf("RSI indicators (14-Period): %s\n\n", formatFloatSlice(data.LongerTermContext.RSI14Values))) - } - } - } - - return sb.String() -} - -// formatTimeframeSeriesData formats series data for a single timeframe -func (e *StrategyEngine) formatTimeframeSeriesData(sb *strings.Builder, data *market.TimeframeSeriesData, indicators store.IndicatorConfig) { - // Use OHLCV table format if kline data is available - if len(data.Klines) > 0 { - sb.WriteString("Time(UTC) Open High Low Close Volume\n") - for i, k := range data.Klines { - t := time.Unix(k.Time/1000, 0).UTC() - timeStr := t.Format("01-02 15:04") - marker := "" - if i == len(data.Klines)-1 { - marker = " <- current" - } - sb.WriteString(fmt.Sprintf("%-14s %-9.4f %-9.4f %-9.4f %-9.4f %-12.2f%s\n", - timeStr, k.Open, k.High, k.Low, k.Close, k.Volume, marker)) - } - sb.WriteString("\n") - } else if len(data.MidPrices) > 0 { - // Fallback to old format for backward compatibility - sb.WriteString(fmt.Sprintf("Mid prices: %s\n\n", formatFloatSlice(data.MidPrices))) - if indicators.EnableVolume && len(data.Volume) > 0 { - sb.WriteString(fmt.Sprintf("Volume: %s\n\n", formatFloatSlice(data.Volume))) - } - } - - // Technical indicators (only show if enabled and data available) - if indicators.EnableEMA { - if len(data.EMA20Values) > 0 { - sb.WriteString(fmt.Sprintf("EMA20: %s\n", formatFloatSlice(data.EMA20Values))) - } - if len(data.EMA50Values) > 0 { - sb.WriteString(fmt.Sprintf("EMA50: %s\n", formatFloatSlice(data.EMA50Values))) - } - } - - if indicators.EnableMACD && len(data.MACDValues) > 0 { - sb.WriteString(fmt.Sprintf("MACD: %s\n", formatFloatSlice(data.MACDValues))) - } - - if indicators.EnableRSI { - if len(data.RSI7Values) > 0 { - sb.WriteString(fmt.Sprintf("RSI7: %s\n", formatFloatSlice(data.RSI7Values))) - } - if len(data.RSI14Values) > 0 { - sb.WriteString(fmt.Sprintf("RSI14: %s\n", formatFloatSlice(data.RSI14Values))) - } - } - - if indicators.EnableATR && data.ATR14 > 0 { - sb.WriteString(fmt.Sprintf("ATR14: %.4f\n", data.ATR14)) - } - - sb.WriteString("\n") -} - -// formatFlowValue formats flow value with M/K units -func formatFlowValue(v float64) string { - sign := "" - if v >= 0 { - sign = "+" - } - absV := v - if absV < 0 { - absV = -absV - } - if absV >= 1e9 { - return fmt.Sprintf("%s%.2fB", sign, v/1e9) - } else if absV >= 1e6 { - return fmt.Sprintf("%s%.2fM", sign, v/1e6) - } else if absV >= 1e3 { - return fmt.Sprintf("%s%.2fK", sign, v/1e3) - } - return fmt.Sprintf("%s%.2f", sign, v) -} - -// formatFloatSlice formats float slice -func formatFloatSlice(values []float64) string { - strValues := make([]string, len(values)) - for i, v := range values { - strValues[i] = fmt.Sprintf("%.4f", v) - } - return "[" + strings.Join(strValues, ", ") + "]" -} - -// BuildSystemPrompt builds System Prompt according to strategy configuration -func (e *StrategyEngine) BuildSystemPrompt(accountEquity float64, variant string) string { - var sb strings.Builder - riskControl := e.config.RiskControl - promptSections := e.config.PromptSections - - // 1. Role definition (editable) - if promptSections.RoleDefinition != "" { - sb.WriteString(promptSections.RoleDefinition) - sb.WriteString("\n\n") - } else { - sb.WriteString("# You are a professional cryptocurrency trading AI\n\n") - sb.WriteString("Your task is to make trading decisions based on provided market data.\n\n") - } - - // 2. Trading mode variant - switch strings.ToLower(strings.TrimSpace(variant)) { - case "aggressive": - sb.WriteString("## Mode: Aggressive\n- Prioritize capturing trend breakouts, can build positions in batches when confidence ≥ 70\n- Allow higher positions, but must strictly set stop-loss and explain risk-reward ratio\n\n") - case "conservative": - sb.WriteString("## Mode: Conservative\n- Only open positions when multiple signals resonate\n- Prioritize cash preservation, must pause for multiple periods after consecutive losses\n\n") - case "scalping": - sb.WriteString("## Mode: Scalping\n- Focus on short-term momentum, smaller profit targets but require quick action\n- If price doesn't move as expected within two bars, immediately reduce position or stop-loss\n\n") - } - - // 3. Hard constraints (risk control) - from strategy config (non-editable, auto-generated) - sb.WriteString("# Hard Constraints (Risk Control)\n\n") - sb.WriteString(fmt.Sprintf("1. Risk-Reward Ratio: Must be ≥ 1:%.1f\n", riskControl.MinRiskRewardRatio)) - sb.WriteString(fmt.Sprintf("2. Max Positions: %d coins (quality > quantity)\n", riskControl.MaxPositions)) - sb.WriteString(fmt.Sprintf("3. Single Coin Position: Altcoins %.0f-%.0f U | BTC/ETH %.0f-%.0f U\n", - accountEquity*0.8, accountEquity*riskControl.MaxPositionRatio, - accountEquity*5, accountEquity*10)) - sb.WriteString(fmt.Sprintf("4. Leverage Limits: **Altcoins max %dx leverage** | **BTC/ETH max %dx leverage**\n", - riskControl.AltcoinMaxLeverage, riskControl.BTCETHMaxLeverage)) - sb.WriteString(fmt.Sprintf("5. Margin Usage ≤ %.0f%%\n", riskControl.MaxMarginUsage*100)) - sb.WriteString(fmt.Sprintf("6. Opening Amount: Recommended ≥%.0f USDT\n", riskControl.MinPositionSize)) - sb.WriteString(fmt.Sprintf("7. Minimum Confidence: ≥%d\n\n", riskControl.MinConfidence)) - - // 4. Trading frequency and signal quality (editable) - if promptSections.TradingFrequency != "" { - sb.WriteString(promptSections.TradingFrequency) - sb.WriteString("\n\n") - } else { - sb.WriteString("# ⏱️ Trading Frequency Awareness\n\n") - sb.WriteString("- Excellent traders: 2-4 trades/day ≈ 0.1-0.2 trades/hour\n") - sb.WriteString("- >2 trades/hour = Overtrading\n") - sb.WriteString("- Single position hold time ≥ 30-60 minutes\n") - sb.WriteString("If you find yourself trading every period → standards too low; if closing positions < 30 minutes → too impatient.\n\n") - } - - // 5. Entry standards (editable) - if promptSections.EntryStandards != "" { - sb.WriteString(promptSections.EntryStandards) - sb.WriteString("\n\nYou have the following indicator data:\n") - e.writeAvailableIndicators(&sb) - sb.WriteString(fmt.Sprintf("\n**Confidence ≥ %d** required to open positions.\n\n", riskControl.MinConfidence)) - } else { - sb.WriteString("# 🎯 Entry Standards (Strict)\n\n") - sb.WriteString("Only open positions when multiple signals resonate. You have:\n") - e.writeAvailableIndicators(&sb) - sb.WriteString(fmt.Sprintf("\nFeel free to use any effective analysis method, but **confidence ≥ %d** required to open positions; avoid low-quality behaviors such as single indicators, contradictory signals, sideways consolidation, reopening immediately after closing, etc.\n\n", riskControl.MinConfidence)) - } - - // 6. Decision process tips (editable) - if promptSections.DecisionProcess != "" { - sb.WriteString(promptSections.DecisionProcess) - sb.WriteString("\n\n") - } else { - sb.WriteString("# 📋 Decision Process\n\n") - sb.WriteString("1. Check positions → Should we take profit/stop-loss\n") - sb.WriteString("2. Scan candidate coins + multi-timeframe → Are there strong signals\n") - sb.WriteString("3. Write chain of thought first, then output structured JSON\n\n") - } - - // 7. Output format - sb.WriteString("# Output Format (Strictly Follow)\n\n") - sb.WriteString("**Must use XML tags and to separate chain of thought and decision JSON, avoiding parsing errors**\n\n") - sb.WriteString("## Format Requirements\n\n") - sb.WriteString("\n") - sb.WriteString("Your chain of thought analysis...\n") - sb.WriteString("- Briefly analyze your thinking process \n") - sb.WriteString("\n\n") - sb.WriteString("\n") - sb.WriteString("Step 2: JSON decision array\n\n") - sb.WriteString("```json\n[\n") - sb.WriteString(fmt.Sprintf(" {\"symbol\": \"BTCUSDT\", \"action\": \"open_short\", \"leverage\": %d, \"position_size_usd\": %.0f, \"stop_loss\": 97000, \"take_profit\": 91000, \"confidence\": 85, \"risk_usd\": 300},\n", - riskControl.BTCETHMaxLeverage, accountEquity*5)) - sb.WriteString(" {\"symbol\": \"ETHUSDT\", \"action\": \"close_long\"}\n") - sb.WriteString("]\n```\n") - sb.WriteString("\n\n") - sb.WriteString("## Field Description\n\n") - sb.WriteString("- `action`: open_long | open_short | close_long | close_short | hold | wait\n") - sb.WriteString(fmt.Sprintf("- `confidence`: 0-100 (opening recommended ≥ %d)\n", riskControl.MinConfidence)) - sb.WriteString("- Required when opening: leverage, position_size_usd, stop_loss, take_profit, confidence, risk_usd\n") - sb.WriteString("- **IMPORTANT**: All numeric values must be calculated numbers, NOT formulas/expressions (e.g., use `27.76` not `3000 * 0.01`)\n\n") - - // 8. Custom Prompt - if e.config.CustomPrompt != "" { - sb.WriteString("# 📌 Personalized Trading Strategy\n\n") - sb.WriteString(e.config.CustomPrompt) - sb.WriteString("\n\n") - sb.WriteString("Note: The above personalized strategy is a supplement to the basic rules and cannot violate the basic risk control principles.\n") - } - - return sb.String() -} - -// writeAvailableIndicators writes list of available indicators -func (e *StrategyEngine) writeAvailableIndicators(sb *strings.Builder) { - indicators := e.config.Indicators - kline := indicators.Klines - - sb.WriteString(fmt.Sprintf("- %s price series", kline.PrimaryTimeframe)) - if kline.EnableMultiTimeframe { - sb.WriteString(fmt.Sprintf(" + %s K-line series\n", kline.LongerTimeframe)) - } else { - sb.WriteString("\n") - } - - if indicators.EnableEMA { - sb.WriteString("- EMA indicators") - if len(indicators.EMAPeriods) > 0 { - sb.WriteString(fmt.Sprintf(" (periods: %v)", indicators.EMAPeriods)) - } - sb.WriteString("\n") - } - - if indicators.EnableMACD { - sb.WriteString("- MACD indicators\n") - } - - if indicators.EnableRSI { - sb.WriteString("- RSI indicators") - if len(indicators.RSIPeriods) > 0 { - sb.WriteString(fmt.Sprintf(" (periods: %v)", indicators.RSIPeriods)) - } - sb.WriteString("\n") - } - - if indicators.EnableATR { - sb.WriteString("- ATR indicators") - if len(indicators.ATRPeriods) > 0 { - sb.WriteString(fmt.Sprintf(" (periods: %v)", indicators.ATRPeriods)) - } - sb.WriteString("\n") - } - - if indicators.EnableVolume { - sb.WriteString("- Volume data\n") - } - - if indicators.EnableOI { - sb.WriteString("- Open Interest (OI) data\n") - } - - if indicators.EnableFundingRate { - sb.WriteString("- Funding rate\n") - } - - if len(e.config.CoinSource.StaticCoins) > 0 || e.config.CoinSource.UseCoinPool || e.config.CoinSource.UseOITop { - sb.WriteString("- AI500 / OI_Top filter tags (if available)\n") - } - - if indicators.EnableQuantData { - sb.WriteString("- Quantitative data (institutional/retail fund flow, position changes, multi-period price changes)\n") - } -} - -// GetRiskControlConfig gets risk control configuration -func (e *StrategyEngine) GetRiskControlConfig() store.RiskControlConfig { - return e.config.RiskControl -} - -// GetConfig gets complete strategy configuration -func (e *StrategyEngine) GetConfig() *store.StrategyConfig { - return e.config -} diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index b6f82604..8c3243ac 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -24,7 +24,7 @@ services: - .env environment: - TZ=${TZ:-Asia/Shanghai} - - AI_MAX_TOKENS=4000 + - AI_MAX_TOKENS=8000 networks: - nofx-network healthcheck: diff --git a/docker-compose.yml b/docker-compose.yml index 47068071..b17bbab2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,17 +10,13 @@ services: ports: - "${NOFX_BACKEND_PORT:-8080}:8080" volumes: - - ./config.json:/app/config.json:ro - ./data:/app/data - - ./beta_codes.txt:/app/beta_codes.txt:ro - - ./prompts:/app/prompts - - /etc/localtime:/etc/localtime:ro # Sync host time + - /etc/localtime:/etc/localtime:ro + env_file: + - .env environment: - - TZ=${NOFX_TIMEZONE:-Asia/Shanghai} # Set timezone - - AI_MAX_TOKENS=4000 # AI响应的最大token数(默认2000,建议4000-8000) - - DATA_ENCRYPTION_KEY=${DATA_ENCRYPTION_KEY} # 数据库加密密钥 - - JWT_SECRET=${JWT_SECRET} # JWT认证密钥 - - RSA_PRIVATE_KEY=${RSA_PRIVATE_KEY} # RSA私钥(客户端加密) + - TZ=${TZ:-Asia/Shanghai} + - AI_MAX_TOKENS=8000 networks: - nofx-network healthcheck: diff --git a/img.png b/img.png new file mode 100644 index 0000000000000000000000000000000000000000..bb004f17e491aef5d54333742c09cb8185fdd88c GIT binary patch literal 373019 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 z z5c6gQ7Md~8;edsr%Y{XYL444qwSSfzru`O!2h<|w*=;8rlJQ)B!0@nVqc+yU41GBhoIKR7!JtA+>HE~q#lc)^auiW6%d7V@88sOEL?m_9*C~fj;pe92 zFrW%;t6w^l5Qg`f$&5dNvV_Q>xQ<_3zAc%%q7@5wsKtMw6%8W*cL2i!WGt!nlw(ep zT`d)7VskfuzKmp~i;*Sws&T2~6<4(S5ScSBO9{w&KNJ*YP70p??| z}QW_)rH?!56m@3-Z3x+T7`$xi?J=CzumJyeI)Z$f;R==E~c{c#wrjL_u%@ZS}?I?BA+6be3x-8iY>-?(4z;) z1BUMCf$^|B?>U89X6rQ8tfE#&PO`(msw_E4C52cliQ-uJ8K>H{S6afjH9H1*d%l+; zm;O?oV`}BtbdmS3LUF4MhWgqOo^!eP9HOQ~tiWQmh@3c2=!`0LsJFWOv!0}Gav~nq zKnh^qA4YU}`Kp~KdWx(DdI9x4YzzM-*eXm2ZP*j=54<;ijuSW=>8FaPfigd zP9c);c8&Suh1TwQNgH{p#O%j7(5*7Rdu&N?O&?M?aBWOZXVNlYv#niAoq9ff0zT}O z;Yl)>dObZ$G=6{c41;=6VMsF74x38E0R35%w%Jb_W$@7F!&3oOr>@jwiZ%BMCmcD~ zA_U5fko^n%i$&FRluGSNxu4dZdA6+iYiDTWlt{aM4b-do^Anp-iDD7+sU=BIm|cM? zFeMLvBX3cguj2rcyj$kaJUeFnN^-EeHL6%JnPK+Pf9P|T#ny?3pC2l%srKL??s^8u zOqqf>nE+FdS5EOv5sTQIG_JA-#fVhI^Gbm_pSQ$++kayKL zI2Li)UuiS5j;U>>QP(W=MzZ4-;xwz$v>05@Mjb{N`m0T-`!yO^)Yn5!tOC}hT zl}e5N*xs3cC`D!WndU4^z>!C{03WjUqsRCNPS}f;ez4Iz?#rWmcR-ImDMo@n2`jXD z=hb1U!@$fh0j_b^cD4rm2<&>+Wfr>3QS;13_reVSj$Mcvq1gV$B48Q;wMm_$c7DDy z|7*o|(MV;{B0%vL1-47}ey-vqb!j}`mU^Xon*QdxCQ%_?C~#=p*q{%2UECPFq~m5= zuvo1ru!~>9sv3`mCkJo`$;MV_qorw+YGf<#!XBhHP`>)dL5L?+{j6OS`F-mvqFCm9 z5S9bf>OZUJ@IoDf6&jw52jp*1mt1}hGGe&eaAIGzq}NN4{SGzAZ3gQM7{uRN-O4=J zLAe+F>dHXID-tDVT&A%|Y8x^tL=0Bjh5<_NP<7@zMF5FG>>I3ogIS8G&cwICBk>BT zh8D6h)H^rIvMgDCM>ckxzZ+ef6e@?_3%ec>vK>*wEARQ#DOzjlwIkFc^ zfHYSLynvK`WUhS&@dnayxDQN1P--&V+Q)o&9NQ7ub3!%cvBwtAvso8d%@h~{VmxK2K z!?E$1)|2E&(TMQm!2DlEt4n;?R3YoS6r0}hHY1%5mbgYLUT%Bf8BD&oCO`Q8|X0RXxqhaz#{)Xr((b)b>~)#)*fboX4*p*!hg3>*$_W} z)yr77vhCG+3Ca9#KOEoMdFIY8F%^_deDRIWC9v@FSBXoXRRsx>YszP0ayPXCR%)1x z1xNQVIT`9yQ6p-GGgapUT(hBW!;tXtbq=}Yi|r4CJbVdc(6V}9=DG$}9oC*~x`HXP zI)hpN^cmEsFKVmzKDfHxg3S1NiX|jCE>h32&&Uo@%E)X2OC9 z`rtHavD^|_s3LubYw(w7ZD-Xd#gugc6Z80M_r6`-=xcMf^tU!cU>}C+O($(#rJcq< zn)EKlYQ%rB!h6773F3*q-pMD?1LO_3{9BNABc5~?+E7Lzi26}}tJGWWdKAsxAcpHiuX2g<&xXJK=ul0u&hHoEA-nTgWG%C&TC#lt| z2D0BGjEUZI6pE%&_pnT>Qygr4{MY+inS!iXHKy+AgG-|wl1i~PGhtr&2M8*1*=7r3 z!o6N+d)xdlOPdI10<`ik2F!fbrBnI~by6Mtt%fH_5)tg2t8J(lVx|{u;mkusc>V|c zQUG6cCufBag1-|S;#W~C0pl*=Tlj8k_{SGWOP+(0oYc+Xb#7UOr&nd>`zbf*xppVl z*WJ{a#UeG+3u`n=M1k^za9VDq4Z*eNA$yOV`)<|}{9dgT{m9smq(ajv>sM;Nt z%YEI_pK|=Lb{N5e+RZTU&%c*mizGozMp;j+YN zIYL}Ld#;40Z9;MA%u->Y?0d(T!`6;E<2Nnw@k_+gdcs<8A^=cAfhOG*OzSNOSnbDl zi=1vjw1M?4=i=Okta%BI3rnss#Y!RO^t@cz(gA#KB6Vf$@1l!ff9wq0abBnQkk+VS@(C z27AivE`-*C=B*FP`$ z#Y~x@$+%KhSk8>c{1A+%pUB91%!@fa)%6)0Xud@dOhwIa1@ouh`At#fNRd@kJ$Vgz z>@RD1{UchPgyg-a%RuNWR(zO=6k%1L?;Fd`yJ>sIiP6RJmMwCunI9XA&pe?pGxXwp zv$B$e(eR!XJ$vJF8g5?k`w||gmResrDmkg)xzy@ikCh8_%|UwTD7i_doH8#&_R@@! zeOjG*P(8$|6Pjhrv26Dta+~+i~PDK%zVA>76nTF@PzYq-^F>sQM9UqxH^2g zUuSe~fjrm|%Qicl#ghd;%75VNqBHg4$AS)qj3tXP)#)tW4F5=z4`eshI+r0Lnt$0@ z6TiWTq@53+)0I3og12cj>y+Njo4lC-;9%KAF%@5>`Zp}GFZPtL0IL*VJeo}M;B~YI z>&ZFH=nv(hC`Qk_|IdJ<=604-7d^JHHvQ{n*8jTOprYvZyPP=p^^M=#I;UUWS@Q#MkJ&j6eF595md)Oq zzaKc$`1@~t^zFEt+rRw!oNczn?_8YU=8nGGN0**o6SIAbYSq7E&DU0m$DKM?65O&e z{?30@*7ZkUpI9qGF_nC>ZjaN|;`;PtTk>vhcX!q@kA?D_LEdG?Ri^ZUKNYrVUfXZ`iW3zu2v z@7GK?d+O1x^Y8!s=yF3v%*X8cA>?=I2?fpFIcFEWK!D6#dpT7QX&dvGjx(#;x znt4ho>fP7Rz0;W9Ik9{dye5AC>hkdS`gQf(=hy70OIZ`gAYX5A;dOe}_xIf^tm~YQ z{^ZzoK6c;iZPDWE&z`%#^6znmzyHDx70pXEZ{C#;URQbGvi}2HSOYChsDi)wz;93M z`lt7l8S~6F_Pp+tkZ+d;W zYa;Jj<>lw}+wSqt&lFrBZ&S4F>zP$wZ<_9X@qD|`w9h)bC9l*rgBK;t1D1DaWsm>t ztSPT`uy$3k&xFruPz2An5w^PfysoyWGZ?IV1Bs#?dkcK-Cn2* zF0}V^xh6P&{{By?W}v2jLldUrt*=_AN4cLrv-Mu(_vV~yEW**tFF(Ki^VPo`@QO}W z^n3?dg$i83&kS3jrq=k~0JdZj7<;JIAlQ%yS9M>0@5KVLxZH!CEXz1j7rKdAe{qB_edk1BHdjIND2%cL)XyV`9Hqj z`Mz`B_pEjPwOHzM%`@!%?0xV1svYu1RSxF~`ICG1?%^oNOKaS_hb4LM-s2^V$H4zI z)MvZhyZ7myg0zH|o5^-6x*O5zbRhrz2Ot#>Lga<|_S*@+)ydaivOYQCp*_k8kw@R4 zlJ+RTi;#HhYNYz85I{QMu^;y=^S?HYV& zoaL3rJkQSa?}5$~{27rxGdDN)=0hwU55|8!=H};B%RJBB>l*RzN4RPYfSD?j$U8Z` zy1l)M-jTxk+j#$c!vV>~fO?Ck*}s>kURx4B>D}$Gj?T`d;oQC&T;~5d!@qtfeRj9& zmqTOve@{%=1s9muMFIfO+xKnlbT%|1|Lfbk#Us3Qd;Yz5VrKsg-&Uiot<8pp z?|*-|U$Uk0KXdI-{qsusX=!OQYjB_auX(Om(9IkF=lz={yz#e4^bz>VAdxQYO08RB z^s5@O7#tZXVPr%}KuBo3)!jlF!?!^PGY=QT{pX}s#shi&vw5c&h%%q8(S%=rV7ZYB zIR3cyTi@T`|2ZF@PWtp#x87H&wP6&~zuv`v&tN90+x6>zRz=OazqWBuf(Wvx$VDIP8A|9)Gh5?Y!6}q_NxUGJ^jsCd?`>MYK|iy z$QDZKpKDX^{AEwz*}n&OTWnPK@%|BNP_8SIYA8eE;b@^QZm~hN>hW+#9Ic$A=dFR3YudRMG zxSE&llIiUyTX&Uq$K2`7t-9C7rO#+@Z=c9-M@`OW6D%7+o~aPSXf<7xADtrO7O#j9 z^*rq;d)JPrwF4h-O{i&yklb&8B5Tgim*Ia+cI~e!!`7f&{-G$G{w^q6DJ%aa8@a7XhxS$8~1kn`e3OjxEseCt6~h*rqy ziBU+yC((o&Rx|NNX`dq7fZyrjU~TugMpw?q*kl>EP}&DhVI=IaXzbeQLDQ33^$%}0kVfWst zWjXtm##M~Q>)NeE&6K`6hCFy&J>0vMBw;YsUU+w_ToEBLulh4IK8|ax)qDLe_8}Fu zeTG^@=;Xo9dtDm*tV+kCiZh_7hN>aDBG>!v%=#5My7KcJ#tm=pZf~ejO~eix!wkQZ z`PFEzrUaux63PT`=@{5b!#xe(?HUGHY}rGS=LSdY9mAhPWR}J+A&)UJKeWQ+N)f=gIaS7uX-8}b@{xo-UMiQ`XnP67i#Zs)C z$R%;JG>T5+^$9o&mfCT}JGy9midaSZTB(#V8+1!e+zxw~)Ek^W%s5XNyRByi?fvEqpI?{7ZF(N;LiY7HQ-=pFPs@?9VhUCA&XXChXeFdfkUk?9r!1 zS6;{59krL$?A7lkoY!r$OeMEDn3?5VI-acd#%Ve@h7d5shSSRvTN!)Dn_4s;$C;Y< z#cTVFi?OoyLU#>meQqz9Zm;I=fQ>0^sW}s*FznzQw({a?Y;>H3C;4hXtmkShx-3#n z>>CY#?t1?LO#$oZ6mJ@Y1T}f4n%Xlt-u}^Jx=jB=g%vMp6l9 zSq`R!0^2sjZr+`Lx(fM6)8u(DQoaUc(>5gO5 zh0@^VNLyKb7ZWkQ*vK>942sNXy`Ll=o--IBJ)kab_mAUEGT2p~*Gkhr9@Z?%MmG<$ z7z;+b8K{$Qy2^EAi>|a$IhcygfJAbKIOv4lE(uL5;|}HZ#fOB3|EP#c&sKVdt|Jmd zv9A6oujQ*n;mmdfUh!E-ix;)t8F7|pQ$(&B+ILs!Sm zbvCA&;nk&L10(h*1G~jH*BUoY6*5J3KPxyZj_exWmpL0_>-bPb=2n)zTfNpRN~H12 ztt@#rmi5tQ9xp<(%WJPXF8htZHP&3XB0?w=Si>H1b_v6J^|S4C08h>jjOJ?&73sfZ z5KDe#J41#;{^|{=O6$|^P&RrXE=^<$>}sjyYFDb!WoI9#wuP&`hw7CU>@$!VaY825 zHsB2Y4798KO~eL4=IXE5v4}gLm#sIajlTA>b9j&32lR4{HJ4O2>Q^9~Ru}25BYA_9 zV$b(G>K#!hizZz}87KVBvGO}&r;H9Imlyx+U6R9{u^9n>&c5kNp2OKZjvp3r!5HkL zB+m?3MGXsHH?m5Eo!i*VQ`1S;`LB~_w|zXf8Ncak{u)Qv1%EesP3BQbcT6kMS;p~PV;Z5F`KYl!Rus@ zlS>IkGsB{0LZVGvtmra_Vk10%cZ_nlMdU*y)dB2yq=zp`@}vv5>s{X^v)4=h2Zf{z z5|_i`1d`= zi>99RA~vpYh;A~{=0y~CKRuU_VEB3Ncy=VS-8#qWNvb%baNIIM8~ zDmRs=aZ%ewy53Vt;Ar2+rz`)s`2NIWKN;US%|C$x3cgaN_b%+fN?$R_e@^6{vsA^>8U$BJW_yFFF&3}#a34_CU# z{Gc905HDjy^7+|p+9ML&_Ax(IOy1&d-XO}0hk9Ii>xXEPTO>adaM786Hn?*K8DtMa z)ZPxBzJ`6@qoYYWeZ=M{(81GS0yJSo~6x_GH zxYuMbO%q|_{eZjkNP20Dr|LpP++~}LRqOjg!MahEl{yid&hKh=;|3>IkP~KhaSlO7 z7%}JP_nj?mll+BJ;^zx~);L>9Qw#|l#%(3Wjb-M2B-O1xcissY>{mW_H~cMkx1M8i z)0Il`T{_xcj?JNxX68qU+sR!;(0O`={sHbazI;&*cQMQKm2x2mk;aZo2LT_Ur=KBN ztnvsNXeq3vsV>fPTYdLvG6$z??sK!7iq2zrVUI29P3Zpu*Lh1XWt_Q$_!AhTq|#aZ`di z_?J5InInePlOvA39y6pMA9BUJw?7Ci2U5m@Jcw^@W04lsP|-BjkIAMy1cH_~LOfXb z;Cc7jk}XOkZ06^9S7>(yXX|0XPCcEL_kp?1OkEG3tlLR7zs=3a($Vch=#iUWa1%H( z{S!Kk$0%POz>W|U@kIerK~I+}ZAER4u+&6vDAxx1n#4=v=ek(fSHzNpppOlFCLgOL zSAWdDxS|0X_N_@zJIEaVOn87V2vIO5r)V+W>KW}YiFe%I-U$gxj}Mb3_5|6;(%Py_i2}5cGmuFN1=e%Iz5N+Q`wInxg>p4 z4JB5>*>p?lY7#iXI^DMbqr@j5$Vyj@S6&FWU%&VbvodbW#CvAYvDyQF{JhEAJ_GiQ z{9jx|i)zR_`9!;sV7F+asAL_F+IKSomdk#4pK~?Y=Po7|F5d-AXj3A}}AB-!v zR3-OG{r1OOAER`={;~KBeSZ}0u1sy-(Ng=9r=wTmK3c6z_c)2p+J)oTSU;E$pxSw= zw5;O6{%)&rx<&+5Hg|h>x46LZ+PXC7xhM0}_mSq8%v1uW4GjkM?^c*I#^2C(Idz|` z_Qm}aHBZ&f=@&G|(PtCZ4j}ni?|pOWb~6hsXq19Hzh9G`i0+w6t{6RkXc+N&4Ly>srC>-s$EaPQO{A?J5j`(_dZ@=EMtQ7t<|Ium!ILqT? zQ_w9Bn7FIoUoR>HUzLc*`%5y0J-K=vl=CAZs9YTb32)TMRX*P^O$Gm12B!Ag9(r^vSh@KmbZi ztqtQx3DCvCRdPU%%^o;5N1MvYeC>RE%{gcGieas{LIu*6#zf=zQSNyMVwrG$L2nU^ zbmy%P6nRG{(YZC{I(#;hRutKE@B}T7@h*d}W>E>6@AtpFGZEc27Q0bCNnq_AUw(*= zqkdTToVe)3ULQXc@i#5TRz^hI@AOvz;;(~WesI7Vp^9m6I{%FHGb>%zn~_O7QBeY@ zg>=SAxO@{YD?ur4m}Kz~NS-1*q)j+mip#ZM42=pGV2nP6y+x!PMp}kZse|d_b~7y* zHK>79&F&U=Bq`5P_T~BUA_0f`RBUFh@6l-2;rD`p^9(e^rY(Ks&ArJQjPq4P*Okc? zmjd{495;{7TA3ok_s{l!Pe2&$znUKSz>zYTCY8dzz3&0Og0{zU>JF1?%8v~IAIaWF zMP7f7jC08T;4VJe#E)*mM*2xn=4Su&D9+0ukT1aOqVgzLF-~%-!d&|Vb$5*t7jQqM zmz0tk<9yN$k-p7=y?*^^(=;wq#+O60fc}u^MWBaTycB{7ce#TJzND2PSDv@iUbi=( zQ6S_5e90(zMZ7ZNyPHe$CTEErjq@S zsMGCwf#Xe@NLd>HcQY%@$LmbXlG<_Wqx4pxh~4^UkQpmx$t#nUd3EhV9hsf!YV|x- zs*|wS8pM}3XY*Y_G~U4gn_j3K6w|!pAmg(k3j`#Cg4csdyjU@eDw6$4)%(9+4rY1# zJ^rp;7$2Q^S9<+$(^9IwaaU(7Ta!4`If_S=V68aGP&<&MUf+k?qd>1n&L?ui?4&#W z^{_aRe8}Xa9?Y$ve2(9Oc>P$m6p=bNQI=BaO~u~^;J2Z2Q%mIXiyZpN68*~Y;`tw+ z{UYwTCks|afrBPn|A@qPr}geO2zmasbL->rdijUgLvE83{i7t^=VvH!A)*Dwq}$kyxO9u*?2K?twp=Z+8#|KNwSy#=nRcln-4+MM z&+1QNHU}FcuHKmK?6n|+;nP)))gevAaDM$ti&Uh@O8~{eu1+c7J+v zK<9739BKhcx_V|&PS1TEQPCMUUoR61_!O@})$o9;fP<@;ovZv2*Tq9r3nfIC+R8xr zB=x|}HUVw6pzf*(P)0XA6)K*V20aX;mTZeP`ay(_Cot(QGN6y?@v*eTtu@7d$MwRr zV?T$F4h7$pLMlEwm}`F8s@srEN>O2}TB&8)O{1QmQst~!h{HZI6Oms(oL?_%)fnLK#bwXyk|96iif z4r4{_*!XflB6Ung>b`_dzhdB3Xj z*WYz2@?}mDWfq$jt;19psq<~NAWI_(9>PzA9H`hxgPXi&83mJrDcO0U*#LAJU!O>$?yqc|wtb$B1@z4htBSGA+MRXjyX{za#o>*+EyCvb z2BcaeY;Wdz>xs>+3T=|3dfPo#O~LLGa?;Y1VtD`JxS9E~J~z3H63N6hnxP!|d3*_Z z-St}&G5BV)y__xELb&*Ta*>of4XM#@k!9+Hy6GV?jL2y}U)2oz7>g1ykk}S%SaPi_ z4GHj+4_h(h8XIR3{Dlpjo&}vRvP!2o9#nRBdZbrPHlFcMP`1@T#V0TI3N`pYOwWv` zkvxN?3`v6W632BNx!i%l{pdwN|y{E`nlfdie6L$NNjP}dKiiuyqZx+$`S zYn1Dg~?JvX^YTZjXgk5)~YlEoj5bZR1;*J^pK9mJnrC+hSa5Gm;FVwSB9+t-T zhcJbqFQhfyx@8V$mrTG*wS`FV70|5IKvluBj3A0$PNhU1r>{Kb>J4U?D;#gI_eAVT zOHSRee~Qwy=kCIn70=|xTC@T=zypbuZkVyGUz-B8KL39DOvJ4$I;qihZ`Z|$G_x3g zQK=J~QUI}2$0=*J!oXenPT?3b044Ykf*9@+a>*|ryV?X*Ri-;aN|v_-&plu0um`vE zJJM;!W)N4l0XRBHABXPT0|kg9(=u~dg+PjS zc36+lZ9v+?OBv{gz|6sE}g*j5>zv{Ss!O+ zb#oCtEY`qWkZAEw$vL}c!|(5ZB}cJOVK1uIoTZE2uW%57Jc?^d|R-@@w<8@ zpUd8yAJ}_pS!hk6jCg3&hLl#NZBEuFVv+m^fV|kNj0iA zC{eNF|6rN|c+;21r8YYsxUCR)6K?ovCoZ(i>u6~nmx8*j>E0D#ZTV4uT9-5dU#?z$ zY*B6U?aFp@(22_=3!13yT!K@$uut2;vP6v-3$1A`c|FFwVU3M8%AzJ$&YuL+ zWZb0nR#=@MMD5W?L>ApVXlkVG>F45Ky?zMN)jawkKpKePDW>ElJ!E2yJd zFb3Yyh+>Bq*pX&Nm<}`kAv6c{5?COK!4DI9;t@sZ9rXB@$Fgs=CFlp(F@L+<+nR1{ zC^Bv&kzy14vM-|`4QCGAC8nG#KSCcPp;#uu8l({qXN1pw=I=dUoQkgBmoJ}T{))sc zPU6+xY0)A!V9g0THmWdFU|{a6aXVNla5w@0kQPm)MiYnBe7rFKlLY37$7*p>GpIN` zJG{9oZlfK2{DcPa0#-?yy=#nJR?P>$LKC>wI2H}0#+#frqEEEEct9`1MrR6jIr;C4 zG2k0qDyNC)YyV0Sbo{neSK7(K)0*@`qOV1wRZDukH0H9dlVN8I79+DxY6Kh8>mvh) zS2}Q)`PgCWu!na6wYa4H$r`f%SEaq47^nVslWOLz zoA)u)#>zDc2>13k+i7o%>eidO1N+Pn8w zBt(>%GgAsmjfq^&w7ihS$`>?$7U6tbL>`K0A-&6dSUz?jWZAk@Y*=&;Ox%r5D4 zb-FXQv(}%?#%)j_p_GeCx$pi(cyPyU`#_P|ph{r3{!GlM+2c`Z>n)?h3ij*IzOEV4 zJ;QZpEq9e+h=$Q5lMm4f1I5p!w#EXRVSZ!aI+mz0$BRRAB>IE2I+y+n3Wd22kMwUR zmzAd~Y&t_CydMnUe^vBPA{+FlFO=x8y=8NSfWj2!j-BW|1%z^y2AO`{1Ka- zziL=|Zdv;M7#vHZ+2i&)AT+kaRD%A4X4+UG2n$4+yi<`jXA9D<@An41GDPx0r?;&s zglznwMIqXW@zw(#jn#+873O`=9Y%oEkBzDA>Nd}=0J@5H`r4jPMvh6;=YD&Za_23V z3AaMG7aE7*r55$t)zpI4;YbeA--W*zqz=2Z1|C(bK^3=gVX9{#2!nkr6$QnTvFXshc6mkQ+!FkHENVb;$T{4l{-&h7SX}IZ z9X#}hp)3+<3fkX9$RDS}u&+*cf9?5DcK}2S-)RX=m3-nwT>4;&XxK>S>G20t3yZ{6 zD8|jmgd^hY;tJYU5hCBeNAxiRBIrYDb^Rt3R8^%wvw?i2kap_-he{eL<6rI>|EM+p zB2bD)kcWPc@aFSNPc2PJn^$5*CeH|Ow|-2bsMaUTzByWjU!C2dd?T~wqyi4!D~O9| zGK%l^ZoQ5pP1l9C&`WX})x8Pn0g3gE6J_nyEk9*APZM%hJP8X6(=;r^p8c*ab-s%I z`b6<;!4I`3*&ph<)Hi)6A)Ouy;Mv3iJmaenVfBn)EkD)xjQ(mfC|J!y#!5j;E4HA9 z-4F~9?nyhpZp=|krIud*rLJ&eM!_IisrhmIDoI)3x(Q-p3AXh4Iq_Z*f$kmlv*6K0 zTwPJvpb$vX=M3lLqH@XsrINo$KSx?b7kumUyich5QIDajq!%cD5U|fx%MJY3i~iJX zw3N2rQ%&MDhAZ5TwkTn;7z^nFWK`6*;}@+(QNf91sGH{-;;&}hc5^r+t|~Ct-L^K} zDYjW9n8BnRf z_i?q{x{U$#CH10bm#3;WF6?BTb0)TXQ_$zucjw`KHEB8FyPu0HJV4pT9b=4-{|m|T z**(=-$~j4_^@SSfJz54}^whMbl=M4Co4q+0bZ72OqYKpprTBGO`?#&cO1HXhE5Ht` zs`CQ1e)D!II@>hQhE_|~Xl0HgHR-b9BcXAHM(;O1ef9$$9d2|LpAZqhyACr<)>bCT z)TV*R6i_6?WKOGVRKD``kF6=x)Vwe5DAIkld$?iAl2#a3#)N|+3jz87yg7lJ?< zIqI!0;M2(=FAY}T=C{}o2Wh?^D;TSBB$gH%zcPsGvYe?qC_#Sy?1FDlaxqde3pFjS zx-E<70vxUSaq-*pk#o5>OolY6ypZv!@xK+JBwAFG^E*NIW5HoMb*y1<`ZAFB39zUJ z3`mz~40g$*5-Hl?2#n4d_IGYDz1Zk%lr2s>?v+&e#n~ILJ4So<=Hf{nAg3=sMDwiOjDwdrzA#Y;^ zgvIJw)j4B6=r~gx;Ou?3XY&t`{PcatvZD&?JV#U0dfHhyCiQX0fRfKP@-v-Ua8i3~26w{3J8v*SCPTwK zi6t<6UU9jHkNyF-0{bDBq;`RpM5>VUn?fCS2Fc_HPJg0A zfK}kMj*#dX)SxoB)$qMeUh%oRqH#d=lu`m#xyWmCh+2MWcfW_Hq8?4F z^_cbKbnzdqSGb3?o2aPHBekQ>qZajORLI?^=UeOuiRtw0PAEA5Nh@iaL1^-MY-(J$ zM}P4J#Q|7*XOoSmvbx{kk^9Z%o{ed7@F?_@xPE%tf;eQP!2|-v&ptT?s6gX1icvfG z%T~e@q+}ypxNf@EW@=5yHnooxJsF#tM_GHyq|vt7!z2;rdAhy4Nf-A$f#c?}a0Dtb zrE8rVTsJLk72nnAQF16$ZUPS{%{1!l-5O+tC!;-X2tznP{m^k8tHZv(Fs-$nEn#(Y zy(tPRRAJ={dj+LRPlKci*jE(7e>VbjQhQ3m%y!FBwV-NiQ1EX+xT7Nm8(KW~V#im@ zUNt|ua;l4-L2%kY<#JxS1*_jWUyx5jeG4lO6COH;>?>)R@GaL*`c+VG(MY$ z&Ij-sy1bv&@q-GN-|gcYiTK>N984KfV^U&#L5~)Oej<&0e`}?MSPTsAdr3VQ5yQKC zFNx^>bR2r%XbmuL<>_!SA8qzvz~jhJQ9vgrJ#b7`1A-=5AiCp`{fI>EOk6c|zF66% zCW0TwzCY-FI^d;mMIusos=n@v^U>y1KFl?Y9s=p*BLVgoep z9gG%;V$^8+^O>&$k%dV!E6u~2UPJ^1ukNx#%N*+^uBYIS~_RuB*ApSFser>HpbDNt{1 zCpVq=SN7{hCoT}VN^vl~Kbhdx;}$1ZY9`8z!xm*CC?u6z>~7KfRU4MI-#^1_n#O!x z^YSs%ZD{-2SQG$@4KNXHy^jWZd-Mex5^ZF({ayT*n!kaZD9(@#%mNONOy@u-=MZdY z)6GKLFSnFdydXlR2nzWhS2O}$t1qHo>GI)c_9s%qzffCp7VDv^qrW~yMs(`RSj`TO z?ddl6hmSpb+4H;WIz2MDUjzTL`D{)qTQ)+A*D5Ma#&>tRx==F5Dk>wl*nXMOYGjRW zdHyjcNNxc6<)tolEQ{e&S0awc2am!s>JIEegrAVgWD18a)-+wjJqPfhq-R6Ss-DHd z7XAmpmt~=dDTTn>yc}b2$h9E-4bXAB#V?y9^7yMp-?xl6)!&T>*Gdl1{Jli`xP`@1o+1C)oZfW~F!z z$LeY*k{S@1?IE~Ngccd4wpte!cB-FfXd7I1^KMC2bJbuuK2yx-SmzwLyv zl;u0*dBEEwLjPn;E(`;PV;2!BwPQl@rq$8s)vXOik_$~Z<7{A-daZ=jlq;G64q4b5 zOg2+LJ!-P-hDn>&pg`tI(c7SspqYl{v)V4^>nn%*=XExp3ZFQ+-7NjMVn_uYU%5WG zf!rfBU(@QM3rM}GrF$UC_h5BforQd~xVEGKwQ<&&yP zpjhg$hrB{yd@sUIw*lQby$-8h^Gil?_jF5Iu2KRk{$*~0Nt-_=VVUi$P!YJ5dgPl* z`w^hbe1QovLV<+s$yddrxeiug;abk=9CJvzJ$iaMCIZyHGut@f#^Am;dH%ixtk&^O zJ4&ybYk*P6v;DAMU9bMR&O!f-yt6Xq;E`#$SDO3~ch6GQ5dX(&yD-EpND_tF-VFDD z4wCf#NskW~r}9OaV7HGg2zZSPqp1(QPC0Nno*1&?1>4v>p!Q~z){cxnQ1l(J06EEG zz5hn+sG9oQXjwKURod#O)9vvxff_;8f|7~t$>x}Pt2gY`hhb?PV1}DTqV-u z^`VF9-j^(57b}F?3mX8+`g&}Tr8W|KJiBip#70tu7)kRnEqtWvc}bL(^Bul?R&@|$B9 zD$Ua|8FR?5r7BiIrCig>J>N%RMqR~O&OuL8q03H}xMVAvdkQUlt2S!Hi2=u zLvx^~F-Ir#l7Ek6ZO~SlS*ac6XenII(--D;uFK2xb1#1XmV^3eR8JoMy$tWg6$`d= zYxs{ssVuEk)FWgY9zJ<^M&(Z{UeO1oIB}tfMZn?z`CYGx|C;REZ!kP=>tXp}Bm239 z@$+#s+h6+|jzblL%*qB$1j#Pf;SYmu+X9YI_MLL9l1h;`<>;+WMW10b&HkzEY^HKC zc^|88XXUN5Mp-2I+3&x4b($P^|58Vx0AqGEWV?_1Lm?P3H9CjSf%(0o(Wmr3yo*? z8~z}VU~EYPqD(9yN@iAeZkHQ*2Lr-;%-lkvzfLNwrM+r2r*>*sc#aKJM8rp2km6}OT}tV6B10h*TIcwsr}McA!A>Ai}X;VJ*)@X_y*C@ zgX1SpqHA&SwNb*)HVz+ zmDA@l{gj~i;hf36M|;dRlx)EcuCv(%uaykvkVkAR29cWns&oxaDPQ0CpWdv~pyfz= zyq`-a%G5-m(tYd+zvlWD&oS|KMo{dLBTK1NCCd>Q#k!zz{EMk= zHjOIx8CJ;P}*YRUaxL9QiuH z)}QzJ;cUbzwPjkYHz>%(rSBhq#19WkDS}sm#96D5Xfw12Za zx^e8Y<5FNUz9ba}KxfJS(mP-W$Illec=@m$kAysYD@xb?^gXk;D1k4V?urZ7dpcik zi+p9m9jlI;K+*0mx zfs&*&#sJPO4S}a1p7?jX5;)uU%dQd@bm=tZq{%Zt3UuPuPslK513B%^)W>xY;o~nh z-4PHNfl2`x)#8|4^IH+bOEK6#l?oJBAqRx6192#_Tz01O4_ohU)G&waS}qt*_vTC0 zRvq=p)b(kj9S>U^AyC6FPQO_tJ)<*xM5zKy3ON>9!IXYJ=?@kIYF-bzp4YU^&IG0N=g+F z(WEAB_krHh?zz_-WYM3L>3+1P=n>!g;CWnnE)e`0qVc&dC&-YAF1Z;H?i>tCDHsMa z&>%6?fTM6I5O;H(b0-bhWezvG?;eN24%Hx@rVVp%aQqkC(-(aCWqzU8mY}MGb=-q) z=^L^8K;n@*-Ge)1lsI~>57|P<@%3riiF2aPFq>qarR__H-9N478Ltxa&7I20`8i~oP3uC@ANk3-a~-l*-R6ylb?BGxt8n7t(a8Wt&)Ok zs`C=U#Z)&W3gp$2Z{w8oh*y$|VbYXmI&H)fv)gPH)zvCyrj-Ro>yDK3}s_bDRwZFMxN zi!=3(VhoaU##mC_osWLZxTu!v=d3R7-KP;R0!}w`6rw=}PbUwLfPxfV4EB_4s(VWJ z3v4;@kJ?$tssLP%0q$Hy3+9%V2LiIEMRG89^C8ai^mUX#3&xTh3EJZ;x`Mmr;8r&+ zXNBOFz_KCP^!rac;OzceFC)Ytly$dK<{y-kx;^Ed7v^|f9P&v3CFZ!=8vxWzeP`lW zhGqdayX42$ukZE7s~88yS63>nOiM{hY6V!u0Qa6)e zk_C!Y!Gjh3#9!1xhCwoYPzFh*V`2W6;ODg-(iOdtKrvl5^@NieS`414p|+!x-3LXB=3|Q#q;S(>^~?DnV7j1FFvj6;zB4P6Bh3)FGXw1DVSi z3RXj&%#7@MflsAcJJ4ZriwVuGbj<4l09E|P+7yZgTT>nVpA9Ti!Zp z#92lq2NzE`_r?h^x^Ej{TQxk&thQ>Zd&H%&;Lh7q`J=vs^ zAwAPmydW_^G}ENL8V6W|R0smNrR5;J8;0NGZgPI4_xAZ!+7~`1&bKo^^F(y~YHnwQvUO2$53!FZsSADXiF*i96oL)0i)=MsOK5*L2 zxoMJ31}B!|{L~x_$m(OlClh8MPd^Fia4c2u46Y<_T6|;rlvcrafX*@Jh1Au1Ww>0o za@T-RXDou+90;c zjdqMksx~&w;cVfwK~-mYiKg$9BCqbT!!ZybOMIA=R+CfzTS1I@|wQz5NwtZ&$n`-i+ zb+WimCbTFnGPR-Za(DJB+0bxe(4%hJC09d#+8`AO^T2I(0PoDTI`7zPKpEd4=WS*B zbAtWR{E>2}4Sqc!9Tpv5+*YaWKi4FPaP}Hr$*-v|4yP6!AJbiX1>Yjhl<8Fs0Vr7G zY4PAAyHafw5H@>vu*9GkIKigccf?T)Hv9WMYo{Vm6+dxiG3fYDjDJTT^N;uTs|dqb z1qwubc})%5CtHB<<{bq=?g~mb0y>7T?&hhCRuBQ?C8Dg^9#p+Cuha5>+Lhei#^wF< zsh7xGY;qqyJOJ~x_eK~3>0vw~q8u|TFn%Us~nWw&M!|I zhgNTW0g>Teycqtcb)7qO?9zu`7oQ1D!I28d#}~)9lGfqjae^~zuWBlEuA^ozKbUO< z=de9P)N(#SIsFxBsrn*bW2cuo!@@xx0@l6%O#qL-36J3M3cAPDqU7L{;MREh%1&ds z>rwvCJx@CZIQ`Fgy@RLR)9pn%rqb3Qo@O!>8`jDKd}v163O`|0Pm!R?9ck*iMeRDg&bRivH9BA2ZDT?K)Y6gw3tkM90Pb zvs@pMttd#IKHUEi_UPc(Ez^uQ_hR~YwBjQ>;G6ocH?Ei&nC_OxGGg=u#Yyt~O1AQ% z8BF7%Z)8jc2tzGzNkd6ZumalgedW?He{R{4U#X$D-^Jmbqm#kX_-b$;Q|vtUru}$M zVQS~91J_xqJnl)Se=Yvu*nRwYp5?P?U65_!7%`ystviNw#mC3ERK^$s+l=>N-a`*SH72$Mx;8dh0lvP!fbbW#8|2*DF#)=(bv zy*5Z`v+Xqn2=@sQvp@21O)3p}NcY@TjELDSC^}2VzXiz0xZ)dR&DVdWt(`0A*(Iow z_Hk^E;upKAM`1;Y>t^`?6$qJVJIQ2W6m@X-kY4|f|E8ZKS0)NXlp~T~Ii4ikn0EQv z+zh{;EWCT{5!cUG9Fh6G`NUX%$`a;sq|bJ7{5uk&X^`^^qaN>LA@u1K0L`-f4PYN?m5 zY#|=0>8nV;Z72q@1(M zWgPbUB&vl+wlnESKxX~h0B?BpXp$H~p_BgYZex^q(8Dw0o-p($m&^6V7PhdK$_jqt%YS(r0^{Ek9{odq<sN_faZbhY{ zlXsJ$YRXcrdvU;#QG+R4_0 z95Agv_mZ8qC-K=0YqYx3y$)Gc24ZwE2WwGmpHk`%vm90vxXilWywEGV2Uy#aZYo#V z2&!KnAfngHeRbLv0wNhfuwBvBmThvdi?=1UtykH*en$^P~#GF zdxKto$$n)~Z-`WD^meK4sopSEDLMlyqPB`DuN4wXO1xP_N$BJv>`%%=5xy)>!+xX= zyG4!mA4tA^3xp2zN|~yyr+HdMynU_@@{sm+rM%4R{vNYfESM`Aw9_eUxhSH)*CN5U z(IQd7z_PEXe$K0ETL*0IV;FDeUN@S-}D0}u@ zv{JHVmpumAV+^vj2&oXp7M1J_V<%E}M#&f>$~I(%Y%_Mhd-Ob?=lOoG@Adip{`|S7 z>zYgBeV_ZB*IDj!pL1rw-6JVGld1}8z_`Uz$eLV;9xT|}l#!p4W%z#ShBod&-e4pC z9(1gp`kkSQvl~aQ!HLl`l}=}+>-c}`T?@(|U2SKJM@bmOKvQ5D+Mhc4-=2oe1BLPqhtU++3M4evW)(SkLU~HB;Mb)p*~h=7N(! zS_ftow5i*VR^1(`bdJlo7hd!T?N_Qk&CW=#8C{cGr&V&%}Kmc#uuxglV3gfurU_ zlNbfi{aeW3S+6SkcR5%(K@`N9`zzTYq5JU!Eb`K>X>@(S!t1+V-xk<3pg{RR@@q|y zPG2_{P6u7y=5}xcMs!TvG2NuspNy(*Gfp#iMvcR_?8%FEw7}z zCX-N0;gL)`#;*e4JP4G|JgYI;PXb)u7f*WWXGsh%TWrRg+_-o#no?Km71|4g$V+yF-6%74IzR_ z5hant1b)rYt*6_*kvPkc2I;W2Q|6Sbt&!20Fd2ypOk!R2{Hg&y>uDfAHn@a;Q;WA zW21WVsZa33$_GjNqR_Fej|u`YzXXH!rhly(WdwS8j@vG5txwc#!G}xUT{^K<1ZvN= zif>nR4;%iE=_mQIrj*JcmAD^J^-`umv97NcEC;cxn8r1|xwEG=;%G`}+~RhihtY=1 zSWDVb`&u8Eo71feZps2N7&==Wj7(9*{=n|-W{sPV(UctJXHQiV=Q+oY1mUw+Vo8sg z-xH5zz*>H#4HT(LsKkwdO0}^?^9yw$RRktG1wYb>@9n`>*&P>$pI?BVHM>%6OSC-u zyywA6(DdgiJ-^A#BdnC3Y8x+Ef9CRF_9LmNL;Zrc9v(S5c}SZS&Q0HYPblz?c6(_L z$mtmJP=e4DprU8B>#nECx`VVN&_$p1U#6!usR|#ZA7Z-^xqj~Rv~})J?cGoYt=OyJ{uScrdvo-IzqsCx`9UyOqi*e zYJR1R$qMKmxN`+G_OaBL!O)`GXX4NU^`H02agGXiHnVkx>#>_Z8$j34J$1bYSf{RH z>BQ|UaFzXe*c&@`uh@!er~c$U7T~Y4wg-PLyzN-(nF~>ryLD*v7-+Og@dQn*Lv{!^Fzls}0lw6< z-%8wEkzlkeROb@2WTriQyp5X8L<<~!fe)V?vGTp_k5vp|fyAe&@>R5vHq0MJ_ z)G=|Lj9li-y|E`CNKN%@f@_EHq&{EE;5@nShS6ld%(!VRHUHT5lk!P&+|y-Lebu{8 zr>g?A%e^_(^eg8#;UFiI;Gdk;_P$rrEJh=$lVWqs0F(WaCm+iO652^E7P!X+XI8RPm-%D~I zkpulnppfiN_shF(peMtVb+_Urz9UCl*M_))NU{^UUE@VPTx^3Ug&w(>Uy}ezqChK1 zZKg-IMz-UpZqr{fqs{P#8SGN`kF5RAhVqx?X7J;i%BK%mrskIHRsuIpsYJVc+6}pa zG>%Z1!QV6CIOw6XEzVK zZPPM8bIMZ#MrY=!B-!pXMX4JTeB!7p4N=6&0#fO@!!4k@1j)^QJ78l!_F+2rqQbgHetB9j4ACxtcPtM;>#g zua_y~=+ixGj$W>Jrjr+nxED-w`u3VrK!+PvGNLTw7V72H0XMLY=-ZXu^Ld7nmpnMTjorv7GdP9DBd13Q^ zl#4~rfvW2pmtmIhi%*8}eTO@Pax7%LS(vn|jf{Zb5Wi?8q1#ZXD`BA$+%o#;tO>vH zbN^%Ge3G2G&b$eV5A}W|wK!Rw0How0AaR4d!G5#ZfyOa)wz-xfk8C z-!nAb=SDXlIl{w9%M+3lri~}%t@K|V__!eSYn7)KomW4(^&tpBRb>*AqA@I!B|Y30 z`C!Xp<6{2R3J^yw{Me%kyN@z~?3s(wyN?kcx{y_WZ+}iMR2Nnl<-TWA?B=RBzhKxS zy-2S9ygQe;F?c#6X79s$mVU;gFYu(~S8YKpVY^_C)$_{BJ^Pyj;gtC=XDcjh>9s$5 zTqKc+xQ8IUan{1}qMJ=@7?`|N;W{9IkhazRVi&foJDQ)^ODQ%Tu7)d%_{UA3c0ihh zr@()%W9-byF+$t3K9oUsnyQ^YL@q4!9)?qWA5N*cg3i)&voS*%`wST&m@4+4_czFa z>#vEOZQRROslAnPeWD_AWp;-t^9aB+ z>kjsq6z=v@SJ1=1$QJ5mViu3l%DTV3rab0GE?ApJmg403GDmHr>@p=f2e%55m8%cU zf7oG0S`=xNJM8rP=Tm=7j4P3}qmbS{Qntcc1({$f(R#eadz6S|<#42vq2_ z*2Zq%%=y6od%%a+ce*!DMDN;bhfi1UPbXb6DqPES8!4B`x<4sqa{u=o$LnDSIih!8 zkL8|D6E<-nkNpDY)F!Hm8mFpBAG1FLlbG*M_NF1XZkD~C$o92L?dj{3xsj-?Z-?~l z-wJRNy_Nh;t%F2V9UY}Ds#-YTvbU9i;}Z!>_mrJ@KuzztkpCGRF>60d+BLTgd+CYG zn-{O;6A@0uYF;ACzZ}0bBv>b!AcisQ;w>AppmoxV_eD~`bx=Nr0#%&PL*Cuk?;iFN ziL5f=C!GRCqCZ-r9=><)-csUEyHqFz8lY}@h8$Ffs!{qPOb2gg>vF4y6nFfZ%z9Qh zG`nuaamZX;7Zx%Wj&17rc0*hY6wG8Oh9?ea3eG9Cm_}!Tz`0{8i=AA}KkH#}LI2;m<4Su$~t+=S|sDvHGB6KJcCP?{aC`ydY_^P#=px;fXp;=CP)49)bW;MSc0p8 zAX!j6TkwLe*DH0cgr$~3{M)|R;8r)RxBY58Pjny(1zEtlNmnlEU5R%#1}&T zV1okUmgss}s+k%eQhd&eM3k-0`6nrskw>NrpWpPh4wJh zTjKQa`>HSasfDtZ6yT*{t+UfVD*I>0Kvy|Uc$#2@A*=4f(*ck>P65et7}>au5J|9eY35)@P^X7gd<({NiX6O-1_%#E$=!zg#y0m2EoXvreyYLl4~SuI!FCo1-w*~&}vkW zWa`r1nU(HI@0oty_68f*M#FscIud@aYEYlI z3xwV0fLl#DUo&=VI74aBs?-i#Od*#M%9dMXK_TOJ*OS1wtt(4m@Ft7b>xp;wCiY8y z^$G2++Ue4_{@~eVCSvG80#3uqhIro38x1d0l*WH=pYeO6FNVnAdf8Da+V7 zMB~CVG-|*|t!3*rajMMOyD_&fz6ODda=W>ipt`uGGkDcCA3pzPjH>z$33-3{h(+yh zm%86=aWez)9a*65vm--hw3O>qZSUFkuY(vv>d`b5e{2?VZ97~$Blu7cauD-lutOjf_@XwZ+qjuJG^TjoM@{60 z+U85L`e?xG*JUM(mp+aLp7^745Xc>xnDl_p#tm6g-Ru*t)0r7gMjODva)FEUhkEji2!&g=v+x zte>!`bbGAmwGL*wh5W>WG)Nzl*0y-A2AoK{NoeP9dR7^m96nas)XBOo(tz@=yrG$N zQnXvK<-1K-B)}ko`?0e$=+irH3nctq?y#d zijR5lQXhu+v7q28>!d(k2divzb4>5AWk2lef$mD<{o}sB%a8lwl`r)?kxIQ#vQIo5 zyhLJ}smrwL#BJ|g4^yj;3Eh8qCEgqDouP26Rog9`&H~=T#v^~0BX(E|8T%?ZY!L}C zB3;$LL73=h$rg+pPRrlTet$K+S|N1{OcazL2g-j_l(}@%p+`tvTiAP*=D;@A#ov{LS-K`%i`c zRA-ORvcYO-9WjcLiQG6+8{Puo0-%u~%u7M!X-55P#jh`ZW@JRYd$-^}dP$wE~rbmFTlro%dSAH}iz`_1>Z z@4-Zs3o_L5e9*<8lg+lSZK^IcF38hIHtz4ylNOaz;Q~l8{}fMnF=?6lQUBvJSQY&#_~0d8g`ZM5(yRWnH}WBin{LW7>D_f}9^{pR_~MM8$t z3!+z&M_KsAELdRDIoqA*jVs*}z#Wx=SCeSj?lg$6%3cYrDcbFrr`Y(UciQqd=2W`2 z7_EF4!}SEEW{XT{_#)4RZ?kMJFU+jWu!(p#?#Jv93CL-(Dj41|u#S@AouHZs->p8k zkFgquH#e-^w+NetCN(`2^{heGlyOe9%P9%Ief|;6M8a9T4YIv5OWLj@DA_w>U4LJd z^}f!uNnB&~oofC%JYqf0xQWhjv zq-u-hv^>f!G%<;L`1we5^Yr$d!rH2^ZtQ)W;kfw)%r&W|>AtY{Ypd=hs?93W(sN@@ z7q4Ef56-+NrxU)~BIq9kdPQg;0hy>#6?w3>6XN>kNe_>kLq z_*0S(^`qg%hNYR995%H%cGv&duSbfSy~TpWN^8A}cn5UFfO`o)xyAhL-Y?0tikZyH zanYJCQPuB~nDLETHS(B)Mb#YbQcL5n@R`u{Z{|%}RbfNyRUr!{HH29QD?7EY)Xtst znea;k$Lr?VR=SRoVMqlJ`^|?-EvYwB;iv72H;hvDg;s2)wgllT)s35KoJnM0-er7ehr;|dcf4;Nu)L{DIjNNY4gIRl*HvkHAFgsVbHR`^- zr~O^pbN-QwdAKj0qDy(B9$n8*KNhMAvn^R4TWJY-fWP*V>%KrzPED}jzML$_Q&J15 zhb}p)IK+AtpL{&pw%K~R>!Eq)M45%8qHS{%Qu7&X2156Uw*8dAwQTjl7f#(&5t)e3!4pc?KJIpE9`tHREBMAR8$Lb;r-l z-uiC4A-%6;WWgjWZ@M|qAsZ5|^sOPtZu674M`yR@_M75*O9>0VzTwJl@uF)zW}c0Z zwf)^t&ZVisqEdbK^w+NoK)-|%OXT(DUDCVo$45VY>2ML0if~ikCip$Z<_xGVg}N&L z?Y15%vPfN$d4cpg`Gk1!N{2>KwdB@9TxBbY+>>wMm8#4WxrfWMW!S32r*?wdy;D*x zJ6H2kGhAZ4rUw{yXEVG-+cJ`Gju)fjvY(M{Ehb}LMg0n&2$K*D{hbur42=oRczNj? zPYsnC3s>D|PQw+&5Y!7|_~eUY_%LXle%qQD zYdMe87E1488sS8-D?!X*SrT5J^j=NfM(PDE z3>(Z2WJ}qFf0u{dFNw~nJ}zZTply6f5iBv$uDiNN;YHk@TrZObOi=E3D#eRnO)S|* zr7~wMq6P$;_Tf{@asjcfyuKvwYi1?iyr&Oa+>I}raV^mZYU}>=rK+r~32uJtO@^A> zRUcMuk5B3hHU!L>7qu;cVf?|_0QkShnHzN7NJTbe6F zdWKh4?TRIfc6k`4Bn?#M`Le1nOZblL$oi$G%_r6>-h#?LdBVP5s!DyAhx4Wf z{n(PE#)C_Ocg2~tx0Cs9hk>z#(_l(RN^2Co>QB7Cze0yDoBGgp+Tl@`^Ftt_I+tn} zR(DCWY<6qqA=}YAZUM`#x=rQCu*Nw}-Nrg#L!u7a$bt07xc^hbr=cGbMrM;sGX56#?qpRe+(AkXPb{uS9f zZ8Rq|LTky}dfCnJeAhDD_=#(5^IuBh{FkuCmepQoTC4+DfL;{^-vIyAo4%3@GnIxHFysk%>V|c8 zoOjEX?A^Olo)h8ba*UssUbq~$tM`9z9q`Sx65Ij8kV>Ql%s>XMzrQY-pvq#pCc_F`VaRCSX73u7#-6ynmNmB(*O2W6dJrYaX$|_@4;Al z;Fwec=g+P4t6pg!t>40wHVsvKN|oTM)~V1%CD^N$3SrGIJt|VnO zZjvfNi(>kUy<2vN?{YgGeJCw2?Dn4}b5QfQ&**_Qlk=cAm3bp6D}FNuN|wYI*3R*z zxjBz3%*z;KXo+%vkt3&tsV1Up8@t4diY1AoLC;UfxpXF75)gwCtGTq@o;<17*bhzn zD&IN#^@b)gL(F2nnK<>&_HL^BKYj7~?335srV0fJ7VrnJ3w{;VjE7uHuq)T1V>=;w z-l{s~f)$G75@j1ueIefl#&V_R#TF}n6K-_q8|={B3qzGF3KOAzfK1b;TfaZDWzK3V zTuTkR{iUUH7(TB-ochnkAYe7mC6a7@1Umn@ZG_e3$L>7TVN@ zl65Jme&bOiF#dE9F!x%Ap^bBUC!O-{+SeH{HZmEEw>%pCw!q{Cx_Ve_68&i%5I z0KvePf7WupA$G=tva^C5%gqt4%yQr5Mz^3FfUTzYIl$kFd;^L-BhTTx4sJs`DQ7@M zi+l450l2{Me?25I;qEPp!0SA|`;9X&oa1`97zZ9&SSrF`V5C>PzejE{loNg$Gy%T> za>}cbdxx!-ig0L8Eb;G176K_SP)Rv}kWWFLx9u;QlsG*yMZBiw2XtWY*;0P#hd0q_ z2vAKc=WT|c=`rsFPdo!U?HwI7foXf&-gqp#&cY8|Dx-3 zK|ve(pH19k&^Z7tU(qq7jvOzA*#XCaq{WTqTT&_wDBo-I*Uwo_eq=s{Wwpbk)Lk5- z)Fr(d0}7?C6iSZ_A8?HK?@vP@IV1kX&nY~fwEgtzM0#3|*pt_V4GcQQCXW|@`A=rk z+(F+}`{(moL;lcP9cRI(&KBPKl?FxyxAiP!t;QCI65&w@{K zMp-t8)`hMOb{Ixc{qs@ZH;xG^q|0ER2QO0zJ)oQpCK6`F&u(b$ULOy}+q}E`FA`D` z&i~@hOSnJ*#=+~GC51iQ!-<-EXYIf#0aJc|sfnEF@(*VtM&CF-Qb{Rre4>K-XQ3j> zLgG09L;GFezEoZU$;cy2wNx0jFQKSY|G;b$6>(dOqJlF{Lp7?RQDSEUH* z&nx{2MT7pP=Kp@fX-<<%;roAk71mNv{okKs@`;mTB>wAjUW=Ck4E*=!95eNy?Eb$$ zr{IYM5ZnLD)=aGd_y7BI&K6Go|BpqMYP-F1|AOHkStmye$^S>{f8Inq`RY(@7I4IA z-ON+gE#sSe$w!O4fQFqa#&^ycC|Y;6zdo<$u$@$gY(k@j{}$wax1C}LtN zI3MBUHCon|d-OrV;w zK`1VsbYfGiK70KLgAP|5i#S)t_A2jr#rDI;y4CGyE0#X-^&9lpox1FW=Ok}r?%ww5 zxJ0eo>e|Di_Rf*M@}wjE>Vd*xu^vU-CmAwNXwRXc#(&3WYnZ=3Bb@tm@ zed5-h>jn7-mkgD^w!zMcOYF@g#>Be7%5piPB^AIj4pH5oX7_gVdsr%{Vtfb8wFxkp zhkh^oBpILMfRNIT7*i;%i~}y@k0I;V435*CXxzdyrQMoBhIrgVa3kyxQh4thcCb2K`pi0e;Atw67&960e7Q(;F7_?!U)#9&iFDG>6_%Te9rtjf z$&I5dGXf%~I?a|rU)^G@+_6M3)@bx4Rji z!s|eLcqXeXa)j)_iWkLOA30UC`UJMqA9k*0D(?Z}2Xclk>uUuyHmM?Nlk&U>0-@UU zDMxgF@oXfzTj5R{GM@jhbsj|$^=3blv~-bh3_4vGT}L+@IilegjBUQZxk*i@P+$!; z%u%*8geV(AZ`ZvV%l_$hLC_fbinH?}tQ7F^p#fsmz!slH;iHe*s?7I<__s4O+2<91 z^R=@&T&d2Ug(|dfEq}DeaqDr(%2{1ABZGqmOJAlJqy28AC5~s{QEX&*f z#bUG{yJ`f#*uTNZr#-j!g)TSQlR+NY7iAylimi>0=fi%!k^t2e<-`5>8$Y4gJx4F- zfSfl9&trLkHrG>AEsQ}IXxlli7u&0RO+!;pS!$`UBjlSd@0T?3YDe3FjwA7LLW>n@ z+dkhD;{NP^4ea0kf9=0psH*bktn?T}UVDxJojP?2hv>@mT={GJS{l$L8C4vxw#COJ0na~bqdRB%rD5&wsT zm;Aj4D(&Q2R^lM($8Je${q^{V*o=?9x@ekQB(m?tGia1(5DNQuEOloj%h3f@VQ7)+4r#A*gqN9#=pQdsQXq@d=eMTKFG-1Uzb0BW&>K6ix&!nsNVXw z+ST2n&rN1gd^i)E!>HrxnsGL`oF(HPboFnOC|jZa*&da6;snl-C7#`1+0>uiQdxLf zsr=52gKzk7+(&_+^bz)R?iuj#Y0357S%m8spZ+tggy55pV9*+>gzQ6(ukRihV0HQm z>XD?%f9Yc{xS&ZC^5;SM98K_~`g`w{P3;8elB_JMB|Y^js}8O?$XVQ(dz4Z3QY)iK z#{&Suxb0P2HPY>&_Sic{Fak^jF+@)D%j#-Z&IX=lXHsASDY!tq@1{>Nn7RYn1V~^$ z!Cr%cF(Fl$C#N4a3N8Ml9tBYtK_uR$0s6pNYY^Q_Fhu(B@(YjXUp)k+KEsD&{>z2l zgh3~y`EbamFNr0wX77dFa7(4ot|$hDT5D#*XUgJ++;s>54qzCz0XW{eC~(J(-kD(f z`KEaQNJ6w<`IGYi?|f~?W^YHRDrPmYOpeNe6A-v*lL+pfXGmGNoU5vy0EVdD&w0{D^$N0$$`-7F1(-thh( zkiAyd?@xtpj_|-yVeS1ifG2a#5aTHCL+oHhIsPK0+i^Q=5UJkX2}p4ZFtk%-#_3A3 z;HF9?-yGIe{W(*h{9xL*;=zoAPxxM3kHA1WHs@SnBD`-kb*tI8Uk0m$e`!w|<7ihO zwmQ_&6H$S#LICzC{vXyO)rz9Y6URI0GFFXxrTq=H-JCOMyiN+sHB3RF$dku#Hy=Op zBuoz|JpDr(q&=Is%K4CZO~0RHylTH)cL%%Yvy9yfTo*G1Fs9I!JMCKzX!A{^2AuMc z@aTm&Dj7rl2rW?DeB(&Qv$0g#G zNk{Y~vZILr?L5BhXoqyel5b|=OCwgVvcnbuOvnHxP9F{^_@hw&n}Tl6XfuT&1Y3~V zoEz03Ek&iyI=KX8#e0TCyJSdkAX&2Ku%drujw0r;&DM9Z&5lMR<9D;5Y>I*?Z)-kO zs*UQ^3ldenZQXCCqf_EO#e#q83dge5kBg+Soajh`_kMDmPz}y%0DRE~=7pa;;!VqU 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

r459&8e|b-Svi1~4M)j9} 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