Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( Application = "stock" MinVersion = "0.0.1" // 版本号 )
View Source
var CmdBackTesting = &cmder.Command{ Use: "backtesting", Short: "回测", Run: func(cmd *cmder.Command, args []string) { tracker.BackTesting(days, topN) }, }
CmdBackTesting 回测
View Source
var CmdPrint = &cmder.Command{ Use: "print", Example: Application + " print sh000001", Short: "打印K线概要", Run: func(cmd *cmder.Command, args []string) { tradeDate := cache.DefaultCanReadDate() if len(flagDate.Value) > 0 { tradeDate = trading.FixTradeDate(flagDate.Value) } keywords := "" code := "" for _, m := range printModules { if len(m.Value) > 0 { keywords = m.Name code = m.Value break } } if len(keywords) > 0 { plugins := cache.PluginsWithName(cache.PluginMaskFeature, keywords) if len(plugins) == 0 { fmt.Printf("没有找到名字是[%s]的数据插件\n", keywords) } else { handlePrintData(code, tradeDate, plugins[0]) } } else { if len(args) != 1 { fmt.Println(cmd.Help()) return } securityCode := args[0] printKline(securityCode, tradeDate) } }, }
CmdPrint 打印命令
View Source
var CmdRepair = &cmder.Command{ Use: "repair", Example: Application + " repair --all", 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]) base.UpdateTickStartDate(dates[0]) if flagAll.Value { handleRepairAll(dates) } else if flagBaseData.Value { keywords := []string{} for _, m := range repairBases { if m.Value { keywords = append(keywords, m.Name) break } } if len(keywords) == 0 { handleRepairAllDataSets(dates) } else { plugins := cache.PluginsWithName(cache.PluginMaskBaseData, keywords...) if len(plugins) == 0 { fmt.Printf("没有找到名字是[%s]的数据插件\n", strings.Join(keywords, ",")) } else { handleRepairDataSetsWithPlugins(dates, plugins) } } } else if flagFeatures.Value { keywords := []string{} for _, m := range repairFeatures { if m.Value { keywords = append(keywords, m.Name) break } } if len(keywords) == 0 { handleRepairAllFeatures(dates) } else { plugins := cache.PluginsWithName(cache.PluginMaskFeature, keywords...) if len(plugins) == 0 { fmt.Printf("没有找到名字是[%s]的数据插件\n", strings.Join(keywords, ",")) } else { handleRepairFeaturesWithPlugins(dates, plugins) } } } else { fmt.Println("Error: 非全部修复, 必须携带--features或--base") _ = cmd.Usage() } }, }
CmdRepair 补登历史数据
View Source
var CmdRule = &cmder.Command{ Use: "rule", Short: "规则", Args: func(cmd *cmder.Command, args []string) error { return nil }, PreRun: func(cmd *cmder.Command, args []string) { }, Run: func(cmd *cmder.Command, args []string) { rules.PrintRuleList() }, }
CmdRule 规则
View Source
var CmdSafes = &cmder.Command{ Use: "safe", Example: Application + " safe --code=sh000001 --type=1", Short: "黑白名单", Run: func(cmd *cmder.Command, args []string) { if len(safesSecurityCode) == 0 { fmt.Println("证券代码不能为空") return } trader.AddCodeToBlackList(safesSecurityCode, trader.SecureType(safesSecureType)) }, }
CmdSafes 安全类-黑白名单
View Source
var CmdService = &cobra.Command{ Use: "service", Example: Application + " service install | uninstall | remove | start | stop | list | status", Short: "守护进程/服务", Run: func(cmd *cobra.Command, args []string) { if len(args) > 0 { serviceCommand = args[0] } daemonKind := daemon.SystemDaemon serviceName := Application switch runtime.GOOS { case "darwin": daemonKind = daemon.UserAgent case "windows": serviceName = "Quant1X-Stock" } srv, err := daemon.New(serviceName, serviceDescription, daemonKind) if err != nil { logger.Errorf("Error: %+v", err) fmt.Println("Error: ", err) os.Exit(1) } service := &Service{srv} replacer := strings.NewReplacer("${ROOT_PATH}", cache.GetRootPath(), "${LOG_PATH}", cache.GetLoggerPath()) properties := replacer.Replace(propertyList) _ = service.daemon.SetTemplate(properties) status, err := service.Manage() if err != nil { logger.Errorf("Error: %+v", err) fmt.Println(status, "\nError: ", err) os.Exit(1) } fmt.Println(status) }, }
CmdService 守护进程
View Source
var CmdUpdate = &cmder.Command{ Use: "update", Example: Application + " update --all", Args: func(cmd *cmder.Command, args []string) error { return nil }, Short: "更新股市数据", Long: `更新股市数据`, Run: func(cmd *cmder.Command, args []string) { fmt.Println() currentDate := cache.DefaultCanUpdateDate() cacheDate, featureDate := cache.CorrectDate(currentDate) if flagAll.Value { handleUpdateAll(cacheDate, featureDate) } else if flagBaseData.Value { keywords := []string{} for _, m := range updateBases { if m.Value { keywords = append(keywords, m.Name) break } } handleUpdateBaseDataWithKeywords(cacheDate, featureDate, keywords...) } else if flagFeatures.Value { keywords := []string{} for _, m := range updateFeatures { if m.Value { keywords = append(keywords, m.Name) break } } handleUpdateFeaturesWithKeywords(cacheDate, featureDate, keywords...) } else { fmt.Println("Error: 非全部更新, 必须携带--features或--base") _ = cmd.Usage() } }, }
CmdUpdate 更新数据
View Source
var CmdVersion = &cmder.Command{ Use: "version", Short: "显示版本号", Run: func(cmd *cmder.Command, args []string) { fmt.Println(MinVersion) }, }
CmdVersion 版本
Functions ¶
func UpdateApplicationName ¶ added in v0.2.3
func UpdateApplicationName(name string)
UpdateApplicationName 更新应用(Application)名称
func UpdateApplicationVersion ¶ added in v0.1.5
func UpdateApplicationVersion(v string)
UpdateApplicationVersion 更新版本号
Types ¶
Click to show internal directories.
Click to hide internal directories.