package rule import ( "fmt" "log" "git.apinb.com/bsm-sdk/core/utils" "git.apinb.com/quant/gostock/internal/impl" "git.apinb.com/quant/gostock/internal/models" ) var ( MinRoe float64 = 0 ) func (r *RuleFactory) RunRoe(code string) { log.Println("RunRoe:", r.Model.Code) var data models.StockFinaIndicator err := impl.DBService.Where("ts_code = ?", code).Order("period desc").Limit(1).First(&data).Error if err != nil { r.Model.GtRoe = -1 r.Model.ValRoe = -1 r.Model.AddDesc("最近无财报,无ROE值!") return } data.Roe = utils.FloatRound(data.Roe, 2) r.Model.ValRoe = data.Roe if data.Roe < MinRoe { r.Model.GtRoe = -1 r.Model.AddDesc(fmt.Sprintf("ROE=%.2f 低于%.2f", data.Roe, MinRoe)) return } r.Model.GtRoe = 1 r.Model.AddDesc(fmt.Sprintf("ROE=%.2f 高于%.2f", data.Roe, MinRoe)) return }