deving
This commit is contained in:
77
cmd/args/main.go
Normal file
77
cmd/args/main.go
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
24
internal/models/stock_args.go
Normal file
24
internal/models/stock_args.go
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import "git.apinb.com/bsm-sdk/core/database"
|
||||||
|
|
||||||
|
// StockBasic 股票参数配置表
|
||||||
|
type StockArgs struct {
|
||||||
|
ID uint `gorm:"primarykey"`
|
||||||
|
TsCode string `gorm:"type:varchar(50);not null;index;comment:TS代码"`
|
||||||
|
Config string `gorm:"type:varchar(1000);not null;index;comment:配置项"`
|
||||||
|
RsiPeriod int
|
||||||
|
RsiOversold int
|
||||||
|
RsiOverbought int
|
||||||
|
EmaFast int
|
||||||
|
EmaSlow int
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
database.AppendMigrate(&StockArgs{})
|
||||||
|
}
|
||||||
|
|
||||||
|
// TableName 设置表名
|
||||||
|
func (StockArgs) TableName() string {
|
||||||
|
return "stock_args"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user