36 lines
854 B
Go
36 lines
854 B
Go
package rule
|
|
|
|
import (
|
|
"time"
|
|
|
|
"git.apinb.com/quant/gostock/internal/logic/types"
|
|
)
|
|
|
|
type UpDate struct {
|
|
Key string
|
|
Name string
|
|
}
|
|
|
|
func NewUpDate() *UpDate {
|
|
return &UpDate{
|
|
Key: "UpDate",
|
|
Name: "上市时间",
|
|
}
|
|
}
|
|
|
|
func (r *UpDate) Run(lastdate string) *types.RuleResult {
|
|
// 计算上市不足半年的股票
|
|
if lastdate == "" {
|
|
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: -1, Desc: "无上市时间"}
|
|
}
|
|
lastDate, err := time.Parse("20060102", lastdate)
|
|
if err != nil {
|
|
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: -1, Desc: "上市时间格式错误"}
|
|
}
|
|
|
|
if time.Now().Sub(lastDate) < time.Hour*24*365/2 {
|
|
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: -1, Desc: "上市时间不足6个月"}
|
|
}
|
|
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: 1, Desc: "上市超过半年"}
|
|
}
|