package main import ( "io/ioutil" "log" "git.apinb.com/quant/gostock/internal/config" "git.apinb.com/quant/gostock/internal/impl" "git.apinb.com/quant/gostock/internal/models" "github.com/bitly/go-simplejson" ) var ( ServiceKey = "gostock" ) func main() { log.Println("Hello Cli!") config.New(ServiceKey) impl.NewImpl() var stocks []models.StockBasic impl.DBService.Find(&stocks) for _, stock := range stocks { var args models.StockArgs // 读取JSON:C:\Users\Administrator\Documents\stock-main\stock\reports\r_000001.SZ.json jsonBytes, err := ioutil.ReadFile("C:\\Users\\Administrator\\Documents\\stock-main\\stock\\reports\\r_" + stock.TsCode + ".json") if err != nil { log.Println(err) continue } js, err := simplejson.NewJson(jsonBytes) if err != nil { log.Println(err) continue } args.TsCode = stock.TsCode c, err := js.Get("comparison").Encode() if err == nil { args.Config = string(c) } rsi_period, err := js.Get("strategies").Get("rsi").Get("best_params").Get("rsi_period").Int() if err == nil { args.RsiPeriod = rsi_period } rsi_oversold, err := js.Get("strategies").Get("rsi").Get("best_params").Get("rsi_oversold").Int() if err == nil { args.RsiOversold = rsi_oversold } rsi_overbought, err := js.Get("strategies").Get("rsi").Get("best_params").Get("rsi_overbought").Int() if err == nil { args.RsiOverbought = rsi_overbought } ema_fast, err := js.Get("strategies").Get("ema").Get("best_params").Get("ema_fast").Int() if err == nil { args.EmaFast = ema_fast } ema_slow, err := js.Get("strategies").Get("ema").Get("best_params").Get("ema_slow").Int() if err == nil { args.EmaSlow = ema_slow } var cnt int64 impl.DBService.Model(&models.StockArgs{}).Where("ts_code = ?", stock.TsCode).Count(&cnt) if cnt > 0 { impl.DBService.Model(&models.StockArgs{}).Where("ts_code = ?", stock.TsCode).Updates(args) } else { impl.DBService.Create(&args) } } }