feat: 添加use_default_coins开关,简化默认币种配置

- 新增use_default_coins配置项:true=使用默认8个主流币种,false=使用API币种池
- 更直观的配置方式,新手可直接设置true快速开始
- 优先级:use_default_coins > coin_pool_api_url > 缓存 > 默认列表
- 更新所有语言版本README(en/zh-CN/ru/uk)添加配置说明
- 更新config.json.example示例文件
This commit is contained in:
nobody
2025-10-29 12:59:12 +08:00
parent 7a0612b2db
commit ccfa48688b
8 changed files with 63 additions and 10 deletions

View File

@@ -250,10 +250,11 @@ Create `config.json` file (use `config.json.example` as template):
- `binance_api_key/secret_key`: Each trader uses independent Binance account - `binance_api_key/secret_key`: Each trader uses independent Binance account
- `initial_balance`: Initial balance (for calculating P/L%) - `initial_balance`: Initial balance (for calculating P/L%)
- `scan_interval_minutes`: Decision cycle (recommended 3-5 minutes) - `scan_interval_minutes`: Decision cycle (recommended 3-5 minutes)
- `coin_pool_api_url`: AI500 coin pool API (optional, if empty, uses default mainstream coins) - `use_default_coins`: **true** = Use default 8 mainstream coins | **false** = Use API coin pool (recommended for beginners: true)
- `coin_pool_api_url`: AI500 coin pool API (optional, ignored when use_default_coins=true)
- `oi_top_api_url`: OI Top open interest API (optional, if empty, OI Top data is skipped) - `oi_top_api_url`: OI Top open interest API (optional, if empty, OI Top data is skipped)
**Default Coin List** (used when APIs are not configured): **Default Coin List** (when `use_default_coins: true`):
- BTC, ETH, SOL, BNB, XRP, DOGE, ADA, HYPE - BTC, ETH, SOL, BNB, XRP, DOGE, ADA, HYPE
### 5. Run the System ### 5. Run the System

View File

@@ -173,12 +173,27 @@ cd ..
"initial_balance": 1000.0 "initial_balance": 1000.0
} }
], ],
"use_default_coins": false,
"coin_pool_api_url": "http://x.x.x.x:xxx/api/ai500/list?auth=ВАШ_AUTH", "coin_pool_api_url": "http://x.x.x.x:xxx/api/ai500/list?auth=ВАШ_AUTH",
"oi_top_api_url": "http://x.x.x.x:xxx/api/oi/top?auth=ВАШ_AUTH", "oi_top_api_url": "http://x.x.x.x:xxx/api/oi/top?auth=ВАШ_AUTH",
"api_server_port": 8080 "api_server_port": 8080
} }
``` ```
**Примечания к конфигурации:**
- `traders`: Настройте 1-N трейдеров (один AI или соревнование нескольких AI)
- `id`: Уникальный идентификатор трейдера (используется для директории логов)
- `ai_model`: "qwen" или "deepseek"
- `binance_api_key/secret_key`: Каждый трейдер использует независимый аккаунт Binance
- `initial_balance`: Начальный баланс (для расчета P/L%)
- `scan_interval_minutes`: Цикл принятия решений (рекомендуется 3-5 минут)
- `use_default_coins`: **true** = Использовать 8 основных монет по умолчанию | **false** = Использовать API пул монет (рекомендуется для новичков: true)
- `coin_pool_api_url`: API пула монет AI500 (опционально, игнорируется при use_default_coins=true)
- `oi_top_api_url`: API открытого интереса OI Top (опционально, если пусто, данные OI Top пропускаются)
**Список монет по умолчанию** (когда `use_default_coins: true`):
- BTC, ETH, SOL, BNB, XRP, DOGE, ADA, HYPE
### 5. Запуск системы ### 5. Запуск системы
**Запуск backend (система AI торговли + API сервер):** **Запуск backend (система AI торговли + API сервер):**

View File

@@ -173,12 +173,27 @@ cd ..
"initial_balance": 1000.0 "initial_balance": 1000.0
} }
], ],
"use_default_coins": false,
"coin_pool_api_url": "http://x.x.x.x:xxx/api/ai500/list?auth=ВАШ_AUTH", "coin_pool_api_url": "http://x.x.x.x:xxx/api/ai500/list?auth=ВАШ_AUTH",
"oi_top_api_url": "http://x.x.x.x:xxx/api/oi/top?auth=ВАШ_AUTH", "oi_top_api_url": "http://x.x.x.x:xxx/api/oi/top?auth=ВАШ_AUTH",
"api_server_port": 8080 "api_server_port": 8080
} }
``` ```
**Примітки до конфігурації:**
- `traders`: Налаштуйте 1-N трейдерів (один AI або змагання кількох AI)
- `id`: Унікальний ідентифікатор трейдера (використовується для директорії логів)
- `ai_model`: "qwen" або "deepseek"
- `binance_api_key/secret_key`: Кожен трейдер використовує незалежний акаунт Binance
- `initial_balance`: Початковий баланс (для розрахунку P/L%)
- `scan_interval_minutes`: Цикл прийняття рішень (рекомендується 3-5 хвилин)
- `use_default_coins`: **true** = Використовувати 8 основних монет за замовчуванням | **false** = Використовувати API пул монет (рекомендується для новачків: true)
- `coin_pool_api_url`: API пулу монет AI500 (опціонально, ігнорується при use_default_coins=true)
- `oi_top_api_url`: API відкритого інтересу OI Top (опціонально, якщо порожньо, дані OI Top пропускаються)
**Список монет за замовчуванням** (коли `use_default_coins: true`):
- BTC, ETH, SOL, BNB, XRP, DOGE, ADA, HYPE
### 5. Запуск системи ### 5. Запуск системи
**Запуск backend (система AI торгівлі + API сервер):** **Запуск backend (система AI торгівлі + API сервер):**

View File

@@ -250,10 +250,11 @@ cd ..
- `binance_api_key/secret_key`: 每个trader使用独立的币安账户 - `binance_api_key/secret_key`: 每个trader使用独立的币安账户
- `initial_balance`: 初始余额用于计算盈亏% - `initial_balance`: 初始余额用于计算盈亏%
- `scan_interval_minutes`: 决策周期建议3-5分钟 - `scan_interval_minutes`: 决策周期建议3-5分钟
- `coin_pool_api_url`: AI500币种池API可选留空时使用默认主流币种 - `use_default_coins`: **true** = 使用默认8个主流币种 | **false** = 使用API币种池新手推荐true
- `coin_pool_api_url`: AI500币种池API可选当use_default_coins=true时忽略
- `oi_top_api_url`: OI Top持仓量API可选留空时跳过OI Top数据 - `oi_top_api_url`: OI Top持仓量API可选留空时跳过OI Top数据
**默认币种列表**API未配置时使用 **默认币种列表** `use_default_coins: true`
- BTCETHSOLBNBXRPDOGEADAHYPE - BTCETHSOLBNBXRPDOGEADAHYPE
### 5. 运行系统 ### 5. 运行系统

View File

@@ -21,6 +21,7 @@
"scan_interval_minutes": 3 "scan_interval_minutes": 3
} }
], ],
"use_default_coins": false,
"coin_pool_api_url": "http://x.x.x.x:x/api/ai500/list?auth=", "coin_pool_api_url": "http://x.x.x.x:x/api/ai500/list?auth=",
"oi_top_api_url": "http://x.x.x.x:x/api/oi/top?auth=", "oi_top_api_url": "http://x.x.x.x:x/api/oi/top?auth=",
"api_server_port": 8080, "api_server_port": 8080,

View File

@@ -23,6 +23,7 @@ type TraderConfig struct {
// Config 总配置 // Config 总配置
type Config struct { type Config struct {
Traders []TraderConfig `json:"traders"` Traders []TraderConfig `json:"traders"`
UseDefaultCoins bool `json:"use_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"`

View File

@@ -34,6 +34,12 @@ func main() {
log.Printf("✓ 配置加载成功,共%d个trader参赛", len(cfg.Traders)) log.Printf("✓ 配置加载成功,共%d个trader参赛", len(cfg.Traders))
fmt.Println() fmt.Println()
// 设置是否使用默认主流币种
pool.SetUseDefaultCoins(cfg.UseDefaultCoins)
if cfg.UseDefaultCoins {
log.Printf("✓ 已启用默认主流币种列表BTC、ETH、SOL、BNB、XRP、DOGE、ADA、HYPE")
}
// 设置币种池API URL // 设置币种池API URL
if cfg.CoinPoolAPIURL != "" { if cfg.CoinPoolAPIURL != "" {
pool.SetCoinPoolAPI(cfg.CoinPoolAPIURL) pool.SetCoinPoolAPI(cfg.CoinPoolAPIURL)

View File

@@ -26,15 +26,17 @@ var defaultMainstreamCoins = []string{
// CoinPoolConfig 币种池配置 // CoinPoolConfig 币种池配置
type CoinPoolConfig struct { type CoinPoolConfig struct {
APIURL string APIURL string
Timeout time.Duration Timeout time.Duration
CacheDir string CacheDir string
UseDefaultCoins bool // 是否使用默认主流币种
} }
var coinPoolConfig = CoinPoolConfig{ var coinPoolConfig = CoinPoolConfig{
APIURL: "", APIURL: "",
Timeout: 30 * time.Second, // 增加到30秒 Timeout: 30 * time.Second, // 增加到30秒
CacheDir: "coin_pool_cache", CacheDir: "coin_pool_cache",
UseDefaultCoins: false, // 默认不使用
} }
// CoinPoolCache 币种池缓存 // CoinPoolCache 币种池缓存
@@ -76,8 +78,19 @@ func SetOITopAPI(apiURL string) {
oiTopConfig.APIURL = apiURL oiTopConfig.APIURL = apiURL
} }
// SetUseDefaultCoins 设置是否使用默认主流币种
func SetUseDefaultCoins(useDefault bool) {
coinPoolConfig.UseDefaultCoins = useDefault
}
// GetCoinPool 获取币种池列表(带重试和缓存机制) // GetCoinPool 获取币种池列表(带重试和缓存机制)
func GetCoinPool() ([]CoinInfo, error) { func GetCoinPool() ([]CoinInfo, error) {
// 优先检查是否启用默认币种列表
if coinPoolConfig.UseDefaultCoins {
log.Printf("✓ 已启用默认主流币种列表")
return convertSymbolsToCoins(defaultMainstreamCoins), nil
}
// 检查API URL是否配置 // 检查API URL是否配置
if strings.TrimSpace(coinPoolConfig.APIURL) == "" { if strings.TrimSpace(coinPoolConfig.APIURL) == "" {
log.Printf("⚠️ 未配置币种池API URL使用默认主流币种列表") log.Printf("⚠️ 未配置币种池API URL使用默认主流币种列表")