From 4dde784047d9cf23a946d652581f67b9714f2fa8 Mon Sep 17 00:00:00 2001 From: yanweidonog Date: Fri, 27 Feb 2026 00:53:07 +0800 Subject: [PATCH] fix bug --- cmd/pnl/main.go | 6 +++--- internal/logic/strategy/boot.go | 2 +- internal/logic/strategy/indicator/macd.go | 5 +---- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/cmd/pnl/main.go b/cmd/pnl/main.go index 1425312..4e44448 100644 --- a/cmd/pnl/main.go +++ b/cmd/pnl/main.go @@ -32,7 +32,7 @@ func ClosedTable() { tw.SetTitle("已清仓列表") tw.AppendHeader(table.Row{"ID", "Code", "Name", "Open_Date", "Open_Price", "Close_Date", "Close_Price", "PNL/Per", "PNLRate(%)"}) var data []models.MockPosition - impl.DBService.Where("status=?", 1).Find(&data) + impl.DBService.Where("status=?", 1).Order("id asc").Find(&data) var tPNL, tPNLR, cost, sell float64 for idx, item := range data { @@ -62,7 +62,7 @@ func UnclosedTableByRealtime() { tw.SetTitle("未平仓列表(实时)") tw.AppendHeader(table.Row{"ID", "Code", "Name", "Open_Date", "Open_Price", "Realtime_Price", "PNL/Per", "PNLRate(%)"}) var data []models.MockPosition - impl.DBService.Where("status=?", 0).Find(&data) + impl.DBService.Where("status=?", 0).Order("id asc").Find(&data) var tPNL, tPNLR, cost, sell float64 for idx, item := range data { @@ -100,7 +100,7 @@ func UnclosedTableByDay() { tw.SetTitle("未平仓列表(日线)") tw.AppendHeader(table.Row{"ID", "Code", "Name", "Open_Date", "Open_Price", "Today_Price", "PNL/Per", "PNLRate(%)"}) var data []models.MockPosition - impl.DBService.Where("status=?", 0).Find(&data) + impl.DBService.Where("status=?", 0).Order("id asc").Find(&data) var tPNL, tPNLR, cost, sell float64 for idx, item := range data { diff --git a/internal/logic/strategy/boot.go b/internal/logic/strategy/boot.go index 51bf5ba..3f0415e 100644 --- a/internal/logic/strategy/boot.go +++ b/internal/logic/strategy/boot.go @@ -16,7 +16,7 @@ func Boot() { // 启动 AI 分析任务 func BootAiStart(key string, ymd int) error { var datas []models.StratModel - err := impl.DBService.Where("strat_key=? and ymd=? and (rsi_score>0 or macd_score>0)", key, ymd).Find(&datas).Error + err := impl.DBService.Where("strat_key=? and ymd=? and ai_score=0 and rsi_score>0 and macd_score>0", key, ymd).Find(&datas).Error if err != nil { log.Printf("Failed to query data: %v", err) return fmt.Errorf("query failed: %w", err) diff --git a/internal/logic/strategy/indicator/macd.go b/internal/logic/strategy/indicator/macd.go index 0d5a72b..36e8ec6 100644 --- a/internal/logic/strategy/indicator/macd.go +++ b/internal/logic/strategy/indicator/macd.go @@ -58,10 +58,6 @@ const ( defaultMacdSignal = 9 ) -var ( - desc []string -) - type MacdResult struct { Score int Val float64 @@ -70,6 +66,7 @@ type MacdResult struct { // RunMacd 根据MACD红绿柱及价量关系,对当前标的进行打分与描述 func RunMacd(code string) *MacdResult { + var desc []string args, _, err := GetArgConfig(code) if err != nil { return &MacdResult{Score: -1, Desc: "MACD参数错误!"}