package main import ( "log" "git.apinb.com/quant/gostock/internal/config" "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/models" ) var ( ServiceKey = "gostock" ) func main() { log.Println("Hello Cli!") config.New(ServiceKey) impl.NewImpl() var okStocks []string for _, code := range strategy.GetStocks() { basic := strategy.GetBasic(code) if ok, desc := RuleFilter(basic); ok { okStocks = append(okStocks, code) log.Println(code, basic.Name, "===>", "OK!") } else { log.Println(code, basic.Name, desc) } } log.Println("共选出", len(okStocks), "支标的!") log.Println("Done!") } func RuleFilter(basic *models.StockBasic) (bool, string) { if re := rule.NewUpDate().Run(basic.ListDate); re.Score <= 0 { return false, re.Desc } if re := rule.NewST().Run(basic.Name); re.Score <= 0 { return false, re.Desc } 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, "" }