This commit is contained in:
yanweidong
2026-01-27 19:06:01 +08:00
parent 9b7f6ed2cf
commit 30cedbcadb
2 changed files with 101 additions and 0 deletions

77
cmd/args/main.go Normal file
View 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
// 读取JSONC:\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)
}
}
}

View 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"
}