2 Star 3 Fork 10

王布衣 / engine

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
feature_aggregation.go 2.19 KB
一键复制 编辑 原始数据 按行查看 历史
王布衣 提交于 2024-01-31 09:46 . 新增多空趋势信号及周期
package factors
import (
"gitee.com/quant1x/engine/cache"
"gitee.com/quant1x/gox/logger"
"sync"
)
var (
__l5Once sync.Once
// 历史数据
__l5History *Cache1D[*History] = nil
// 基本面F10
__l5F10 *Cache1D[*F10] = nil
// 扩展交易特征
__l5Misc *Cache1D[*Misc] = nil
// 平台
__l5Box *Cache1D[*Box] = nil
)
func init() {
__l5Once.Do(lazyInitFeatures)
}
func lazyInitFeatures() {
// 历史数据
__l5History = NewCache1D[*History](cacheL5KeyHistory, NewHistory)
err := cache.Register(__l5History)
if err != nil {
logger.Fatalf("%+v", err)
}
// 基本面F10
__l5F10 = NewCache1D[*F10](cacheL5KeyF10, NewF10)
err = cache.Register(__l5F10)
if err != nil {
logger.Fatalf("%+v", err)
}
// 扩展信息
__l5Misc = NewCache1D[*Misc](cacheL5KeyMisc, NewMisc)
err = cache.Register(__l5Misc)
if err != nil {
logger.Fatalf("%+v", err)
}
// 平台
__l5Box = NewCache1D[*Box](cacheL5KeyBox, NewBox)
err = cache.Register(__l5Box)
if err != nil {
logger.Fatalf("%+v", err)
}
}
func GetL5History(securityCode string, date ...string) *History {
__l5Once.Do(lazyInitFeatures)
data := __l5History.Get(securityCode, date...)
if data == nil {
return nil
}
return *data
}
func GetL5F10(securityCode string, date ...string) *F10 {
__l5Once.Do(lazyInitFeatures)
data := __l5F10.Get(securityCode, date...)
if data == nil {
return nil
}
return *data
}
// GetL5Misc 获取扩展信息
func GetL5Misc(securityCode string, date ...string) (exchange *Misc) {
__l5Once.Do(lazyInitFeatures)
v := __l5Misc.Get(securityCode, date...)
if v == nil {
return nil
}
return *v
}
// UpdateL5Misc 更新当日exchange
func UpdateL5Misc(misc *Misc) {
__l5Once.Do(lazyInitFeatures)
__l5Misc.Set(misc.Code, misc, cache.DefaultCanReadDate())
}
// RefreshL5Misc 刷新缓存
func RefreshL5Misc() {
__l5Once.Do(lazyInitFeatures)
__l5Misc.Apply(nil)
}
func FilterL5Misc(f func(v *Misc) bool, date ...string) []*Misc {
__l5Once.Do(lazyInitFeatures)
__l5Misc.Checkout(date...)
return __l5Misc.Filter(f)
}
// GetL5Box 获取平台数据
func GetL5Box(securityCode string, date ...string) *Box {
__l5Once.Do(lazyInitFeatures)
v := __l5Box.Get(securityCode, date...)
if v == nil {
return nil
}
return *v
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/quant1x/engine.git
git@gitee.com:quant1x/engine.git
quant1x
engine
engine
v1.5.0

搜索帮助

344bd9b3 5694891 D2dac590 5694891