fix bug
This commit is contained in:
@@ -1,23 +1,25 @@
|
||||
package restful
|
||||
|
||||
import (
|
||||
"git.apinb.com/bsm-sdk/core/utils"
|
||||
"git.apinb.com/quant/gostock/internal/impl"
|
||||
"git.apinb.com/quant/gostock/internal/logic/strategy"
|
||||
"git.apinb.com/quant/gostock/internal/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func Recommend(ctx *gin.Context) {
|
||||
ymd := lastYmd()
|
||||
strategy.TotalScore(ymd)
|
||||
ymdQuery := ctx.DefaultQuery("ymd", "")
|
||||
var ymd int
|
||||
if ymdQuery != "" {
|
||||
ymd = utils.String2Int(ymdQuery)
|
||||
}
|
||||
|
||||
if ymd == 0 {
|
||||
ymd = models.GetYmd()
|
||||
}
|
||||
|
||||
var stocks []string
|
||||
impl.DBService.Model(&models.StratModel{}).Where("total_score>?", 0).Pluck("code", &stocks)
|
||||
impl.DBService.Model(&models.StratModel{}).Where("status=2 and ai_score>=5 and ymd=?", ymd).Pluck("code", &stocks)
|
||||
ctx.JSON(200, stocks)
|
||||
return
|
||||
}
|
||||
func lastYmd() int {
|
||||
var ymd int
|
||||
sql := "select ymd from strat_model sm group by ymd order by ymd desc limit 1"
|
||||
impl.DBService.Raw(sql).Scan(&ymd)
|
||||
return ymd
|
||||
}
|
||||
|
||||
@@ -67,19 +67,34 @@ func Starter(ctx *gin.Context) {
|
||||
var allowStocks []*models.StratModel
|
||||
impl.DBService.Model(&models.StratModel{}).Where("status=1 and ymd=?", ymd).Find(&allowStocks)
|
||||
for _, m := range allowStocks {
|
||||
upd := map[string]any{
|
||||
"recommend_desc": "策略规则",
|
||||
}
|
||||
// CTA:RSI指标贴近下轨并成上涨趋势
|
||||
rsiResult := indicator.RunRsi(m.Code)
|
||||
impl.DBService.Model(m).Where("id=?", m.ID).Updates(map[string]any{"rsi_score": rsiResult.Score, "rsi_val_oversold": rsiResult.Oversold, "rsi_val_prve": rsiResult.Prve, "rsi_val_last": rsiResult.Last, "recommend_desc": m.RecommendDesc + "||Rsi:" + rsiResult.Desc})
|
||||
upd["rsi_score"] = rsiResult.Score
|
||||
upd["rsi_val_oversold"] = rsiResult.Oversold
|
||||
upd["rsi_val_prve"] = rsiResult.Prve
|
||||
upd["rsi_val_last"] = rsiResult.Last
|
||||
upd["total_desc"] = m.TotalDesc + "||Rsi:" + rsiResult.Desc
|
||||
|
||||
// CTA:MACD指标红绿柱及价量关系
|
||||
macdResult := indicator.RunMacd(m.Code)
|
||||
impl.DBService.Model(m).Where("id=?", m.ID).Updates(map[string]any{"macd_score": macdResult.Score, "macd_val": macdResult.Val, "recommend_desc": m.RecommendDesc + "||Macd:" + macdResult.Desc})
|
||||
upd["macd_score"] = macdResult.Score
|
||||
upd["macd_val"] = macdResult.Val
|
||||
upd["total_desc"] = upd["total_desc"].(string) + "||Macd:" + macdResult.Desc
|
||||
|
||||
// 更新数据
|
||||
impl.DBService.Model(&models.StratModel{}).Where("id=?", m.ID).Updates(upd)
|
||||
}
|
||||
|
||||
// 将满足条件的状态标记为2,待AI分析
|
||||
impl.DBService.Model(&models.StratModel{}).Where("ymd=? and rsi_score>0 and macd_score>0 and status=1", ymd).Updates(map[string]any{"status": 2})
|
||||
|
||||
// 加入资金流向特大的标的
|
||||
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).Updates(map[string]any{"ai_score": 0, "recommend_desc": "资金流向"})
|
||||
impl.DBService.Model(&models.StratModel{}).Where("ymd=? and code in ?", ymd, codes).Updates(map[string]any{"status": 2, "recommend_desc": "资金流向"})
|
||||
|
||||
// Todo: 舆论分析得出的标的
|
||||
|
||||
|
||||
Reference in New Issue
Block a user