Expose the default mainstream currency settings to the configuration file

This commit is contained in:
SkywalkerJi
2025-10-30 10:01:45 +08:00
parent 557de33915
commit 7f7ad141a4
4 changed files with 38 additions and 2 deletions

View File

@@ -60,6 +60,16 @@
"altcoin_leverage": 5 "altcoin_leverage": 5
}, },
"use_default_coins": true, "use_default_coins": true,
"default_coins": [
"BTCUSDT",
"ETHUSDT",
"SOLUSDT",
"BNBUSDT",
"XRPUSDT",
"DOGEUSDT",
"ADAUSDT",
"HYPEUSDT",
],
"coin_pool_api_url": "", "coin_pool_api_url": "",
"oi_top_api_url": "", "oi_top_api_url": "",
"api_server_port": 8080, "api_server_port": 8080,

View File

@@ -52,6 +52,7 @@ type LeverageConfig struct {
type Config struct { type Config struct {
Traders []TraderConfig `json:"traders"` Traders []TraderConfig `json:"traders"`
UseDefaultCoins bool `json:"use_default_coins"` // 是否使用默认主流币种列表 UseDefaultCoins bool `json:"use_default_coins"` // 是否使用默认主流币种列表
DefaultCoins []string `json:"default_coins"` // 默认主流币种池
CoinPoolAPIURL string `json:"coin_pool_api_url"` CoinPoolAPIURL string `json:"coin_pool_api_url"`
OITopAPIURL string `json:"oi_top_api_url"` OITopAPIURL string `json:"oi_top_api_url"`
APIServerPort int `json:"api_server_port"` APIServerPort int `json:"api_server_port"`
@@ -78,6 +79,20 @@ func LoadConfig(filename string) (*Config, error) {
config.UseDefaultCoins = true 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 { if err := config.Validate(); err != nil {
return nil, fmt.Errorf("配置验证失败: %w", err) return nil, fmt.Errorf("配置验证失败: %w", err)

View File

@@ -34,10 +34,13 @@ func main() {
log.Printf("✓ 配置加载成功,共%d个trader参赛", len(cfg.Traders)) log.Printf("✓ 配置加载成功,共%d个trader参赛", len(cfg.Traders))
fmt.Println() fmt.Println()
// 设置默认主流币种列表
pool.SetDefaultCoins(cfg.DefaultCoins)
// 设置是否使用默认主流币种 // 设置是否使用默认主流币种
pool.SetUseDefaultCoins(cfg.UseDefaultCoins) pool.SetUseDefaultCoins(cfg.UseDefaultCoins)
if 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 // 设置币种池API URL

View File

@@ -12,7 +12,7 @@ import (
"time" "time"
) )
// defaultMainstreamCoins 默认主流币种池(当AI500和OI Top都失败时使用 // defaultMainstreamCoins 默认主流币种池(从配置文件读取
var defaultMainstreamCoins = []string{ var defaultMainstreamCoins = []string{
"BTCUSDT", "BTCUSDT",
"ETHUSDT", "ETHUSDT",
@@ -83,6 +83,14 @@ func SetUseDefaultCoins(useDefault bool) {
coinPoolConfig.UseDefaultCoins = useDefault coinPoolConfig.UseDefaultCoins = useDefault
} }
// SetDefaultCoins 设置默认主流币种列表
func SetDefaultCoins(coins []string) {
if len(coins) > 0 {
defaultMainstreamCoins = coins
log.Printf("✓ 已设置默认币种池(共%d个币种: %v", len(coins), coins)
}
}
// GetCoinPool 获取币种池列表(带重试和缓存机制) // GetCoinPool 获取币种池列表(带重试和缓存机制)
func GetCoinPool() ([]CoinInfo, error) { func GetCoinPool() ([]CoinInfo, error) {
// 优先检查是否启用默认币种列表 // 优先检查是否启用默认币种列表