55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
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/logic/types"
|
|
)
|
|
|
|
var (
|
|
ServiceKey = "gostock"
|
|
)
|
|
|
|
func main() {
|
|
log.Println("Hello Cli!")
|
|
config.New(ServiceKey)
|
|
impl.NewImpl()
|
|
|
|
var okStocks []string
|
|
for _, code := range strategy.GetStocks() {
|
|
if ok, desc := RuleFilter(code); ok {
|
|
okStocks = append(okStocks, code)
|
|
log.Println(code, desc)
|
|
} else {
|
|
log.Println(code, "OK")
|
|
}
|
|
}
|
|
|
|
log.Println("共选出", len(okStocks), "支标的!")
|
|
|
|
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),
|
|
}
|
|
|
|
for _, re := range result {
|
|
if re.Score <= 0 {
|
|
return false, re.Desc
|
|
}
|
|
}
|
|
|
|
return true, "通过"
|
|
}
|