This commit is contained in:
yanweidong
2026-01-28 21:55:50 +08:00
parent fb6d088e86
commit 59528e88b7
2 changed files with 33 additions and 18 deletions

View File

@@ -7,7 +7,7 @@ import (
"git.apinb.com/quant/gostock/internal/impl" "git.apinb.com/quant/gostock/internal/impl"
"git.apinb.com/quant/gostock/internal/logic/strategy" "git.apinb.com/quant/gostock/internal/logic/strategy"
"git.apinb.com/quant/gostock/internal/logic/strategy/rule" "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 ( var (
@@ -21,11 +21,12 @@ func main() {
var okStocks []string var okStocks []string
for _, code := range strategy.GetStocks() { 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) okStocks = append(okStocks, code)
log.Println(code, desc) log.Println(code, basic.Name, "===>", "OK!")
} else { } else {
log.Println(code, "OK") log.Println(code, basic.Name, desc)
} }
} }
@@ -34,21 +35,25 @@ func main() {
log.Println("Done!") log.Println("Done!")
} }
func RuleFilter(code string) (bool, string) { func RuleFilter(basic *models.StockBasic) (bool, string) {
basic := strategy.GetBasic(code) if re := rule.NewUpDate().Run(basic.ListDate); re.Score <= 0 {
result := []*types.RuleResult{ return false, re.Desc
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),
} }
for _, re := range result { if re := rule.NewST().Run(basic.Name); re.Score <= 0 {
if re.Score <= 0 { return false, re.Desc
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, ""
} }

View File

@@ -2,6 +2,8 @@ package impl
import ( import (
"git.apinb.com/bsm-sdk/core/cache/redis" "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/bsm-sdk/core/with"
"git.apinb.com/quant/gostock/internal/config" "git.apinb.com/quant/gostock/internal/config"
"gorm.io/gorm" "gorm.io/gorm"
@@ -15,7 +17,15 @@ var (
func NewImpl() { func NewImpl() {
// 初始化 Redis 缓存 // 初始化 Redis 缓存
RedisService = with.RedisCache(config.Spec.Cache) 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) with.Logger(config.Spec.Log)
} }