Files
gostock/internal/logic/restful/starter.go
2026-02-12 20:38:22 +08:00

51 lines
1.6 KiB
Go

package restful
import (
"log"
"git.apinb.com/quant/gostock/internal/impl"
"git.apinb.com/quant/gostock/internal/logic/mock"
"git.apinb.com/quant/gostock/internal/logic/strategy"
"git.apinb.com/quant/gostock/internal/logic/strategy/rule"
"git.apinb.com/quant/gostock/internal/models"
"github.com/gin-gonic/gin"
)
func Starter(ctx *gin.Context) {
log.Println("Strategy START.")
ymd := models.GetYmd()
for _, code := range strategy.GetStocks() {
strategy.InitCacheByCode(code)
model := models.NewStratModel("selector", code, ymd)
stratRule := rule.NewRule(model)
{
stratRule.RunUpDate(strategy.Cache[code].Basic.ListDate)
stratRule.RunST(strategy.Cache[code].Basic.Name)
stratRule.RunIndustry(strategy.Cache[code].Basic.Industry)
stratRule.RunPrice(code)
stratRule.RunAmount(code)
stratRule.RunRoe(code)
stratRule.RunRsi(code)
// 过滤无需AI分析
if model.UpDateDay > 180 && model.StScore > 0 && model.IndustryScore > 1 && model.GtPrice > 0 && model.GtAmount > 0 && model.GtRoe > 0 && model.ScoreRsi > 0 {
model.AiScore = 0 // 待分析
} else {
model.AiScore = -2
model.AddDesc("无需AI分析")
}
}
model.Save()
}
// 加入资金流向特大的标地
var codes []string
impl.DBService.Model(&models.MoneyTotal{}).Where("is_greater_pervious = ? and last3_day_mf_amount>", true, 100000).Pluck("code", &codes)
impl.DBService.Model(&models.StratModel{}).Where("ai_score=-2 and code in ?", codes).Update("ai_score", 0)
strategy.BootAiStart("selector", ymd)
log.Println("Strategy END.")
mock.Run("selector", ymd)
}