dev ing
This commit is contained in:
45
internal/logic/strategy/rule/roe.go
Normal file
45
internal/logic/strategy/rule/roe.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package rule
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"git.apinb.com/quant/gostock/internal/impl"
|
||||
"git.apinb.com/quant/gostock/internal/logic/types"
|
||||
"git.apinb.com/quant/gostock/internal/models"
|
||||
)
|
||||
|
||||
var (
|
||||
MinRoe = 0
|
||||
)
|
||||
|
||||
type Roe struct {
|
||||
Key string
|
||||
Name string
|
||||
}
|
||||
|
||||
func NewRoe() *Roe {
|
||||
return &Roe{
|
||||
Key: "Roe",
|
||||
Name: "年化净资产收益率",
|
||||
}
|
||||
}
|
||||
|
||||
func (r *Roe) Run(code string) *types.RuleResult {
|
||||
|
||||
var data []models.StockDaily
|
||||
impl.DBService.Where("ts_code = ?", code).Order("trade_date desc").Limit(LastDay).Find(&data)
|
||||
|
||||
check := true
|
||||
for _, row := range data {
|
||||
if row.Close < MinPrice {
|
||||
check = false
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !check {
|
||||
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: -1, Desc: fmt.Sprintf("最近%d天, 有价格低于%.2f", LastDay, MinPrice)}
|
||||
}
|
||||
|
||||
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: 1, Desc: fmt.Sprintf("最近%d天, 价格均高于%.2f", LastDay, MinPrice)}
|
||||
}
|
||||
Reference in New Issue
Block a user