diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 2da605f..d9874da 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -7,7 +7,7 @@ import ( "git.apinb.com/quant/gostock/internal/impl" "git.apinb.com/quant/gostock/internal/logic/strategy" "git.apinb.com/quant/gostock/internal/logic/strategy/rule" - "git.apinb.com/quant/gostock/internal/logic/types" + "git.apinb.com/quant/gostock/internal/models" ) var ( @@ -21,11 +21,12 @@ func main() { var okStocks []string for _, code := range strategy.GetStocks() { - if ok, desc := RuleFilter(code); ok { + basic := strategy.GetBasic(code) + if ok, desc := RuleFilter(basic); ok { okStocks = append(okStocks, code) - log.Println(code, desc) + log.Println(code, basic.Name, "===>", "OK!") } else { - log.Println(code, "OK") + log.Println(code, basic.Name, desc) } } @@ -34,21 +35,25 @@ func main() { log.Println("Done!") } -func RuleFilter(code string) (bool, string) { - basic := strategy.GetBasic(code) - result := []*types.RuleResult{ - rule.NewUpDate().Run(basic.ListDate), - rule.NewST().Run(basic.Name), - rule.NewIdustry().Run(basic.Industry), - rule.NewPrice().Run(basic.TsCode), - rule.NewAmount().Run(basic.TsCode), +func RuleFilter(basic *models.StockBasic) (bool, string) { + if re := rule.NewUpDate().Run(basic.ListDate); re.Score <= 0 { + return false, re.Desc } - for _, re := range result { - if re.Score <= 0 { - return false, re.Desc - } + if re := rule.NewST().Run(basic.Name); re.Score <= 0 { + return false, re.Desc } - return true, "通过" + if re := rule.NewIdustry().Run(basic.Industry); re.Score <= 0 { + return false, re.Desc + } + + if re := rule.NewPrice().Run(basic.TsCode); re.Score <= 0 { + return false, re.Desc + } + + if re := rule.NewAmount().Run(basic.TsCode); re.Score <= 0 { + return false, re.Desc + } + return true, "" } diff --git a/internal/impl/impl.go b/internal/impl/impl.go index 4e05612..cbce965 100644 --- a/internal/impl/impl.go +++ b/internal/impl/impl.go @@ -2,6 +2,8 @@ package impl import ( "git.apinb.com/bsm-sdk/core/cache/redis" + "git.apinb.com/bsm-sdk/core/types" + "git.apinb.com/bsm-sdk/core/vars" "git.apinb.com/bsm-sdk/core/with" "git.apinb.com/quant/gostock/internal/config" "gorm.io/gorm" @@ -15,7 +17,15 @@ var ( func NewImpl() { // 初始化 Redis 缓存 RedisService = with.RedisCache(config.Spec.Cache) - DBService = with.Databases(config.Spec.Databases, nil) // model + + // model + DBService = with.Databases(config.Spec.Databases, &types.SqlOptions{ + MaxIdleConns: vars.SqlOptionMaxIdleConns, + MaxOpenConns: vars.SqlOptionMaxOpenConns, + ConnMaxLifetime: vars.SqlOptionConnMaxLifetime, + LogStdout: false, + Debug: false, + }) with.Logger(config.Spec.Log) }