2 Star 7 Fork 10

王布衣/engine

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
task_kline.go 1.58 KB
一键复制 编辑 原始数据 按行查看 历史
王布衣 提交于 2023-12-13 06:00 . 调整util工具包
package services
import (
"gitee.com/quant1x/engine/datasets/base"
"gitee.com/quant1x/engine/market"
"gitee.com/quant1x/engine/models"
"gitee.com/quant1x/gotdx/trading"
"gitee.com/quant1x/gox/coroutine"
"gitee.com/quant1x/gox/logger"
"gitee.com/quant1x/gox/progressbar"
"gitee.com/quant1x/gox/runtime"
"runtime/debug"
)
// 任务 - 实时更新K线
func jobRealtimeKLine() {
funcName := "jobRealtimeKLine"
updateInRealTime, status := trading.CanUpdateInRealtime()
// 14:30:00~15:01:00之间更新数据
if updateInRealTime && IsTrading(status) {
realtimeUpdateOfKLine()
} else {
if runtime.Debug() {
realtimeUpdateOfKLine()
} else {
logger.Infof("%s, 非尾盘交易时段: %d", funcName, status)
}
}
}
// 更新K线
func realtimeUpdateOfKLine() {
defer func() {
if err := recover(); err != nil {
s := string(debug.Stack())
logger.Errorf("err=%v, stack=%s", err, s)
}
}()
barIndex := barIndexRealtimeKLine
//mapSnapshot := models.GetAllSnapshotsV2()
allCodes := market.GetCodeList()
//var wg sync.WaitGroup
wg := coroutine.NewRollingWaitGroup(5)
bar := progressbar.NewBar(barIndex, "执行[实时更新K线]", len(allCodes))
for _, code := range allCodes {
updateKLine := func(waitGroup *coroutine.RollingWaitGroup, securityCode string) {
defer waitGroup.Done()
bar.Add(1)
//if snapshot, ok := mapSnapshot[securityCode]; ok {
// base.BasicKLineForSnapshot(snapshot)
//}
snapshot := models.GetTickFromMemory(securityCode)
if snapshot != nil {
base.BasicKLineForSnapshot(*snapshot)
}
}
wg.Add(1)
go updateKLine(wg, code)
}
wg.Wait()
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/quant1x/engine.git
git@gitee.com:quant1x/engine.git
quant1x
engine
engine
v0.7.9

搜索帮助