2 Star 14 Fork 16

王布衣/engine

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
command_repair.go 2.74 KB
一键复制 编辑 原始数据 按行查看 历史
王布衣 提交于 2023-10-10 17:33 +08:00 . 调整更新和修复子命令
package command
import (
"fmt"
"gitee.com/quant1x/engine/cache"
"gitee.com/quant1x/engine/storages"
"gitee.com/quant1x/gotdx/trading"
"gitee.com/quant1x/gox/logger"
"gitee.com/quant1x/gox/progressbar"
cmder "github.com/spf13/cobra"
"strings"
"time"
)
// CmdRepair 补登历史数据
var CmdRepair = &cmder.Command{
Use: "repair",
Example: Application + " repair --all",
//Args: args.MinimumNArgs(0),
Args: func(cmd *cmder.Command, args []string) error {
return nil
},
Short: "修复股市数据",
Long: `修复股市数据`,
Run: func(cmd *cmder.Command, args []string) {
beginDate := trading.FixTradeDate(flagStartDate.Value)
endDate := cache.DefaultCanReadDate()
if len(flagEndDate.Value) > 0 {
endDate = trading.FixTradeDate(flagEndDate.Value)
}
dates := trading.TradeRange(beginDate, endDate)
count := len(dates)
fmt.Printf("修复数据: %s => %s"+strings.Repeat("\r\n", 2), dates[0], dates[count-1])
if flagAll.Value {
handleRepairAll(dates)
} else if flagBaseData.Value {
handleRepairDataSet(dates)
} else if flagFeatures.Value {
handleRepairFeatures(dates)
}
},
}
func init() {
commandInit(CmdRepair, &flagAll)
commandInit(CmdRepair, &flagBaseData)
commandInit(CmdRepair, &flagFeatures)
commandInit(CmdRepair, &flagStartDate)
commandInit(CmdRepair, &flagEndDate)
}
func handleRepairAll(dates []string) {
moduleName := "修复全部数据"
count := len(dates)
fmt.Println()
fmt.Println()
barIndex := 1
bar := progressbar.NewBar(barIndex, "执行["+moduleName+"]", count)
for _, date := range dates {
cacheDate, featureDate := cache.CorrectDate(date)
barIndex++
storages.RepairFeatures(&barIndex, cacheDate, featureDate)
_ = cacheDate
_ = featureDate
bar.Add(1)
}
logger.Info("任务执行完毕.", time.Now())
fmt.Println()
}
func handleRepairDataSet(dates []string) {
fmt.Println()
moduleName := "补登数据集合"
logger.Info(moduleName + ", 任务开始")
count := len(dates)
barIndex := 1
bar := progressbar.NewBar(barIndex, "执行["+moduleName+"]", count)
for _, date := range dates {
cacheDate, featureDate := cache.CorrectDate(date)
barIndex++
storages.RepairBaseData(&barIndex, cacheDate, featureDate)
bar.Add(1)
}
logger.Info(moduleName+", 任务执行完毕.", time.Now())
fmt.Println()
}
func handleRepairFeatures(dates []string) {
moduleName := "补登特征数据"
logger.Info(moduleName + ", 任务开始")
count := len(dates)
barIndex := 1
bar := progressbar.NewBar(barIndex, "执行["+moduleName+"]", count)
for _, date := range dates {
cacheDate, featureDate := cache.CorrectDate(date)
barIndex++
storages.RepairFeatures(&barIndex, cacheDate, featureDate)
bar.Add(1)
}
logger.Info(moduleName+", 任务执行完毕.", time.Now())
fmt.Println()
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/quant1x/engine.git
git@gitee.com:quant1x/engine.git
quant1x
engine
engine
v0.1.8

搜索帮助