2 Star 12 Fork 13

王布衣/engine

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
command.go 2.42 KB
Copy Edit Raw Blame History
王布衣 authored 2023-12-18 05:04 +08:00 . 优化部分代码
package command
import (
"fmt"
"gitee.com/quant1x/engine/models"
"gitee.com/quant1x/gox/runtime"
"gitee.com/quant1x/pandas/stat"
cmder "github.com/spf13/cobra"
goruntime "runtime"
"strings"
)
var (
strategyNumber = 0 // 策略编号
businessDebug = runtime.Debug() // 业务调试开关
cpuAvx2 = false // AVX2加速状态
cpuNum = goruntime.NumCPU() / 2 // cpu数量
)
var engineCmd = &cmder.Command{
Use: Application,
Run: func(cmd *cmder.Command, args []string) {
model, err := models.CheckoutStrategy(strategyNumber)
if err != nil {
fmt.Println(err)
return
}
barIndex := 1
models.ExecuteStrategy(model, &barIndex)
},
PersistentPreRun: func(cmd *cmder.Command, args []string) {
// 重置全局调试状态
runtime.SetDebug(businessDebug)
// AVX2 加速
stat.SetAvx2Enabled(cpuAvx2)
// 设置CPU最大核数
runtime.GoMaxProcs(cpuNum)
},
PersistentPostRun: func(cmd *cmder.Command, args []string) {
//
},
}
// 初始化全部子命令
func initSubCommands() {
initPrint()
initRepair()
initUpdate()
initRules()
initSafes()
initBackTesting()
}
// GlobalFlags engine支持的全部命令
func GlobalFlags() *cmder.Command {
initSubCommands()
engineCmd.Flags().IntVar(&strategyNumber, "strategy", models.DefaultStrategy, models.UsageStrategyList())
engineCmd.Flags().IntVar(&models.CountDays, "count", 0, "统计多少天")
engineCmd.Flags().IntVar(&models.CountTopN, "top", models.AllStockTopN(), "输出前排几名")
engineCmd.PersistentFlags().BoolVar(&businessDebug, "debug", businessDebug, "打开业务调试开关, 慎重使用!")
engineCmd.PersistentFlags().BoolVar(&cpuAvx2, "avx2", false, "Avx2 加速开关")
engineCmd.PersistentFlags().IntVar(&cpuNum, "cpu", cpuNum, "设置CPU最大核数")
engineCmd.AddCommand(CmdVersion, CmdPrint, CmdBackTesting, CmdRules)
engineCmd.AddCommand(CmdUpdate, CmdRepair, CmdService, CmdSafes)
return engineCmd
}
func parseFlagError(err error) (flag, value string) {
before, _, ok := strings.Cut(err.Error(), "flag:")
if !ok {
return
}
before = strings.TrimSpace(before)
//_, err1 := fmt.Sscanf(before, "invalid argument \"%s\" for \"--%s\"", &value, &flag)
//if err1 != nil {
// return
//}
arr := strings.Split(before, "\"")
if len(arr) != 5 {
return
}
value = strings.TrimSpace(arr[1])
flag = strings.TrimSpace(arr[3])
arr = strings.Split(flag, "-")
flag = arr[len(arr)-1]
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/quant1x/engine.git
git@gitee.com:quant1x/engine.git
quant1x
engine
engine
v0.8.5

Search