From 68659e1660b82a14867bf257332e55e195eaa493 Mon Sep 17 00:00:00 2001 From: itfisher Date: Wed, 29 Oct 2025 22:38:04 +0800 Subject: [PATCH 1/6] fix docker build error --- Dockerfile | 2 +- start.sh | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index d7327035..3c280d7c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Multi-stage build for NOFX AI Trading System -FROM golang:1.24-alpine AS backend-builder +FROM golang:1.25-alpine AS backend-builder # Install build dependencies including TA-Lib RUN apk add --no-cache \ diff --git a/start.sh b/start.sh index 1a4971e5..09c1c61e 100755 --- a/start.sh +++ b/start.sh @@ -36,7 +36,7 @@ check_docker() { exit 1 fi - if ! command -v docker-compose &> /dev/null; then + if ! command -v docker compose &> /dev/null; then print_error "Docker Compose 未安装!请先安装 Docker Compose" exit 1 fi @@ -64,7 +64,7 @@ start() { print_info "重新构建镜像..." docker-compose up -d --build else - docker-compose up -d + docker compose up -d fi print_success "服务已启动!" @@ -78,30 +78,30 @@ start() { # 停止服务 stop() { print_info "正在停止服务..." - docker-compose stop + docker compose stop print_success "服务已停止" } # 重启服务 restart() { print_info "正在重启服务..." - docker-compose restart + docker compose restart print_success "服务已重启" } # 查看日志 logs() { if [ -z "$2" ]; then - docker-compose logs -f + docker compose logs -f else - docker-compose logs -f "$2" + docker compose logs -f "$2" fi } # 查看状态 status() { print_info "服务状态:" - docker-compose ps + docker compose ps echo "" print_info "健康检查:" curl -s http://localhost:8080/health | jq '.' || echo "后端未响应" @@ -113,7 +113,7 @@ clean() { read -p "确认删除?(yes/no): " confirm if [ "$confirm" == "yes" ]; then print_info "正在清理..." - docker-compose down -v + docker compose down -v print_success "清理完成" else print_info "已取消" @@ -124,7 +124,7 @@ clean() { update() { print_info "正在更新..." git pull - docker-compose up -d --build + docker compose up -d --build print_success "更新完成" } From 963057a8975c059459da4ad7a3c087a5b34ec313 Mon Sep 17 00:00:00 2001 From: itfisher Date: Wed, 29 Oct 2025 22:59:59 +0800 Subject: [PATCH 2/6] fix docker build error --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 09c1c61e..c83b3865 100755 --- a/start.sh +++ b/start.sh @@ -62,7 +62,7 @@ start() { if [ "$1" == "--build" ]; then print_info "重新构建镜像..." - docker-compose up -d --build + docker compose up -d --build else docker compose up -d fi From 687293dde69c6f7680c2888f49ee70dd5024227f Mon Sep 17 00:00:00 2001 From: itfisher Date: Wed, 29 Oct 2025 23:10:47 +0800 Subject: [PATCH 3/6] fix health check --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index a4b35310..61ea53e9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,7 +19,7 @@ services: networks: - nofx-network healthcheck: - test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health"] + test: ["CMD", "curl", "-f", "http://localhost:8080/health"] interval: 30s timeout: 10s retries: 3 From 3e02cacbe2f5ab596793f04e9efaa173b6d8cf45 Mon Sep 17 00:00:00 2001 From: itfisher Date: Wed, 29 Oct 2025 23:18:50 +0800 Subject: [PATCH 4/6] fix level rage --- decision/engine.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/decision/engine.go b/decision/engine.go index 21967df9..4892c155 100644 --- a/decision/engine.go +++ b/decision/engine.go @@ -55,17 +55,17 @@ type OITopData struct { // Context 交易上下文(传递给AI的完整信息) type Context struct { - CurrentTime string `json:"current_time"` - RuntimeMinutes int `json:"runtime_minutes"` - CallCount int `json:"call_count"` - Account AccountInfo `json:"account"` - Positions []PositionInfo `json:"positions"` - CandidateCoins []CandidateCoin `json:"candidate_coins"` - MarketDataMap map[string]*market.Data `json:"-"` // 不序列化,但内部使用 - OITopDataMap map[string]*OITopData `json:"-"` // OI Top数据映射 - Performance interface{} `json:"-"` // 历史表现分析(logger.PerformanceAnalysis) - BTCETHLeverage int `json:"-"` // BTC/ETH杠杆倍数(从配置读取) - AltcoinLeverage int `json:"-"` // 山寨币杠杆倍数(从配置读取) + CurrentTime string `json:"current_time"` + RuntimeMinutes int `json:"runtime_minutes"` + CallCount int `json:"call_count"` + Account AccountInfo `json:"account"` + Positions []PositionInfo `json:"positions"` + CandidateCoins []CandidateCoin `json:"candidate_coins"` + MarketDataMap map[string]*market.Data `json:"-"` // 不序列化,但内部使用 + OITopDataMap map[string]*OITopData `json:"-"` // OI Top数据映射 + Performance interface{} `json:"-"` // 历史表现分析(logger.PerformanceAnalysis) + BTCETHLeverage int `json:"-"` // BTC/ETH杠杆倍数(从配置读取) + AltcoinLeverage int `json:"-"` // 山寨币杠杆倍数(从配置读取) } // Decision AI的交易决策 @@ -222,7 +222,7 @@ func buildSystemPrompt(accountEquity float64) string { sb.WriteString("# ⚖️ 硬约束(风险控制)\n\n") sb.WriteString("1. **风险回报比**: 必须 ≥ 1:3(冒1%风险,赚3%+收益)\n") sb.WriteString("2. **最多持仓**: 3个币种(质量>数量)\n") - sb.WriteString(fmt.Sprintf("3. **单币仓位**: 山寨%.0f-%.0f U(20x杠杆) | BTC/ETH %.0f-%.0f U(50x杠杆)\n", + sb.WriteString(fmt.Sprintf("3. **单币仓位**: 山寨%.0f-%.0f U(2x杠杆) | BTC/ETH %.0f-%.0f U(5x杠杆)\n", accountEquity*0.8, accountEquity*1.5, accountEquity*5, accountEquity*10)) sb.WriteString("4. **保证金**: 总使用率 ≤ 90%\n\n") From 9422c35f7b2b1fc55399b68f31cbd0a9a8d40dd1 Mon Sep 17 00:00:00 2001 From: itfisher Date: Wed, 29 Oct 2025 23:38:41 +0800 Subject: [PATCH 5/6] improve go build time --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3c280d7c..67c9f22d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,7 +34,7 @@ RUN go mod download COPY . . # Build the application -RUN CGO_ENABLED=1 GOOS=linux go build -a -installsuffix cgo -o nofx . +RUN CGO_ENABLED=1 GOOS=linux go build -trimpath -ldflags="-s -w" -o nofx . # Frontend build stage FROM node:18-alpine AS frontend-builder From 093e9b58e7190e57ca32e98fef1da04311e43149 Mon Sep 17 00:00:00 2001 From: itfisher Date: Thu, 30 Oct 2025 10:14:39 +0800 Subject: [PATCH 6/6] improve go build time --- start.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/start.sh b/start.sh index c83b3865..1a4971e5 100755 --- a/start.sh +++ b/start.sh @@ -36,7 +36,7 @@ check_docker() { exit 1 fi - if ! command -v docker compose &> /dev/null; then + if ! command -v docker-compose &> /dev/null; then print_error "Docker Compose 未安装!请先安装 Docker Compose" exit 1 fi @@ -62,9 +62,9 @@ start() { if [ "$1" == "--build" ]; then print_info "重新构建镜像..." - docker compose up -d --build + docker-compose up -d --build else - docker compose up -d + docker-compose up -d fi print_success "服务已启动!" @@ -78,30 +78,30 @@ start() { # 停止服务 stop() { print_info "正在停止服务..." - docker compose stop + docker-compose stop print_success "服务已停止" } # 重启服务 restart() { print_info "正在重启服务..." - docker compose restart + docker-compose restart print_success "服务已重启" } # 查看日志 logs() { if [ -z "$2" ]; then - docker compose logs -f + docker-compose logs -f else - docker compose logs -f "$2" + docker-compose logs -f "$2" fi } # 查看状态 status() { print_info "服务状态:" - docker compose ps + docker-compose ps echo "" print_info "健康检查:" curl -s http://localhost:8080/health | jq '.' || echo "后端未响应" @@ -113,7 +113,7 @@ clean() { read -p "确认删除?(yes/no): " confirm if [ "$confirm" == "yes" ]; then print_info "正在清理..." - docker compose down -v + docker-compose down -v print_success "清理完成" else print_info "已取消" @@ -124,7 +124,7 @@ clean() { update() { print_info "正在更新..." git pull - docker compose up -d --build + docker-compose up -d --build print_success "更新完成" }