package main import ( "fmt" "git.apinb.com/bsm-sdk/core/utils" "git.apinb.com/quant/gostock/internal/config" "git.apinb.com/quant/gostock/internal/impl" "git.apinb.com/quant/gostock/internal/models" "github.com/jedib0t/go-pretty/v6/table" ) var ( ServiceKey = "gostock" ) func main() { config.New(ServiceKey) impl.NewImpl() fmt.Println("") run() fmt.Println("") } func run() { tw := table.NewWriter() tw.SetStyle(table.StyleLight) tw.AppendHeader(table.Row{"ID", "Code", "Name", "OpenDate", "OpenPrice", "TodayPrice", "PNL", "PNLRate"}) var data []models.MockPosition impl.DBService.Where("status=?", 0).Find(&data) for _, item := range data { var stock models.StockBasic impl.DBService.Where("ts_code=?", item.Code).First(&stock) var daily models.StockDaily impl.DBService.Model(&models.StockDaily{}).Where("ts_code=?", item.Code).Order("id desc").Limit(1).First(&daily) pnl := utils.FloatRound(daily.High-item.OpenPrice, 2) pnlRate := utils.FloatRound(pnl/item.OpenPrice*100, 2) tw.AppendRow(table.Row{item.ID, item.Code, stock.Name, item.CreatedAt.Format("2006-01-02"), item.OpenPrice, daily.High, pnl, pnlRate}) } fmt.Println(tw.Render()) }