diff --git a/config.json.example b/config.json.example index f897a555..4df4314e 100644 --- a/config.json.example +++ b/config.json.example @@ -60,6 +60,16 @@ "altcoin_leverage": 5 }, "use_default_coins": true, + "default_coins": [ + "BTCUSDT", + "ETHUSDT", + "SOLUSDT", + "BNBUSDT", + "XRPUSDT", + "DOGEUSDT", + "ADAUSDT", + "HYPEUSDT", + ], "coin_pool_api_url": "", "oi_top_api_url": "", "api_server_port": 8080, diff --git a/config/config.go b/config/config.go index d89a17fa..7c3626ae 100644 --- a/config/config.go +++ b/config/config.go @@ -52,6 +52,7 @@ type LeverageConfig struct { type Config struct { Traders []TraderConfig `json:"traders"` UseDefaultCoins bool `json:"use_default_coins"` // 是否使用默认主流币种列表 + DefaultCoins []string `json:"default_coins"` // 默认主流币种池 CoinPoolAPIURL string `json:"coin_pool_api_url"` OITopAPIURL string `json:"oi_top_api_url"` APIServerPort int `json:"api_server_port"` @@ -78,6 +79,20 @@ func LoadConfig(filename string) (*Config, error) { config.UseDefaultCoins = true } + // 设置默认币种池 + if len(config.DefaultCoins) == 0 { + config.DefaultCoins = []string{ + "BTCUSDT", + "ETHUSDT", + "SOLUSDT", + "BNBUSDT", + "XRPUSDT", + "DOGEUSDT", + "ADAUSDT", + "HYPEUSDT", + } + } + // 验证配置 if err := config.Validate(); err != nil { return nil, fmt.Errorf("配置验证失败: %w", err) diff --git a/main.go b/main.go index d1347535..66cbfca4 100644 --- a/main.go +++ b/main.go @@ -34,10 +34,13 @@ func main() { log.Printf("✓ 配置加载成功,共%d个trader参赛", len(cfg.Traders)) fmt.Println() + // 设置默认主流币种列表 + pool.SetDefaultCoins(cfg.DefaultCoins) + // 设置是否使用默认主流币种 pool.SetUseDefaultCoins(cfg.UseDefaultCoins) if cfg.UseDefaultCoins { - log.Printf("✓ 已启用默认主流币种列表(BTC、ETH、SOL、BNB、XRP、DOGE、ADA、HYPE)") + log.Printf("✓ 已启用默认主流币种列表(共%d个币种): %v", len(cfg.DefaultCoins), cfg.DefaultCoins) } // 设置币种池API URL diff --git a/pool/coin_pool.go b/pool/coin_pool.go index 6675013c..72ce5c72 100644 --- a/pool/coin_pool.go +++ b/pool/coin_pool.go @@ -12,7 +12,7 @@ import ( "time" ) -// defaultMainstreamCoins 默认主流币种池(当AI500和OI Top都失败时使用) +// defaultMainstreamCoins 默认主流币种池(从配置文件读取) var defaultMainstreamCoins = []string{ "BTCUSDT", "ETHUSDT", @@ -83,6 +83,14 @@ func SetUseDefaultCoins(useDefault bool) { coinPoolConfig.UseDefaultCoins = useDefault } +// SetDefaultCoins 设置默认主流币种列表 +func SetDefaultCoins(coins []string) { + if len(coins) > 0 { + defaultMainstreamCoins = coins + log.Printf("✓ 已设置默认币种池(共%d个币种): %v", len(coins), coins) + } +} + // GetCoinPool 获取币种池列表(带重试和缓存机制) func GetCoinPool() ([]CoinInfo, error) { // 优先检查是否启用默认币种列表