From 72e04d9f2266756f140f5b89b856dfe112a749ae Mon Sep 17 00:00:00 2001 From: zhangkun Date: Tue, 3 Dec 2024 12:54:33 +0800 Subject: [PATCH] candle writetolog tostruct --- core/candle.go | 55 ++++++++++++++++++++++++++++++++++++++++++++----- tunas | Bin 7624494 -> 7624494 bytes 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/core/candle.go b/core/candle.go index f72619f..a7ddf8b 100644 --- a/core/candle.go +++ b/core/candle.go @@ -17,11 +17,16 @@ import ( ) type Candle struct { - core *Core - InstId string - Period string - Data []interface{} - From string + core *Core + InstId string + Period string + Data []interface{} + From string + Timestamp time.Time + Open float64 + High float64 + Low float64 + Close float64 } type MaX struct { @@ -178,6 +183,45 @@ func Daoxu(arr []interface{}) { } } +func (cl *Candle) ToStruct(core *Core) error { + // cl.Timestamp + + // 将字符串转换为 int64 类型的时间戳 + ts, err := strconv.ParseInt(cl.Data[0].(string), 10, 64) + if err != nil { + fmt.Println("Error parsing timestamp:", err) + return err + } + cl.Timestamp = time.Unix(ts/1000, (ts%1000)*1000000) // 纳秒级别 + op, err := strconv.ParseFloat(cl.Data[1].(string), 64) + if err != nil { + fmt.Println("Error parsing string to float64:", err) + return err + } + cl.Open = op + hi, err := strconv.ParseFloat(cl.Data[2].(string), 64) + if err != nil { + fmt.Println("Error parsing string to float64:", err) + return err + } + cl.High = hi + lo, err := strconv.ParseFloat(cl.Data[3].(string), 64) + if err != nil { + fmt.Println("Error parsing string to float64:", err) + return err + } + cl.Low = lo + clse, err := strconv.ParseFloat(cl.Data[4].(string), 64) + + if err != nil { + fmt.Println("Error parsing string to float64:", err) + return err + } + cl.Close = clse + cl.Data = nil + + return nil +} func (cl *Candle) SetToKey(core *Core) ([]interface{}, error) { data := cl.Data tsi, err := strconv.ParseInt(data[0].(string), 10, 64) @@ -239,6 +283,7 @@ func (core *Core) SaveUniKey(period string, keyName string, extt time.Duration, if len(refRes) != 0 { return } + cl.ToStruct(core) cd, _ := json.Marshal(cl) wg := WriteLog{ Content: cd, diff --git a/tunas b/tunas index b4bb2baef8620448e1c1067e04fce8e979c89a5d..a4ed47539f5fefa4df6546dbb220a0838d35cfc7 100755 GIT binary patch delta 681 zcmb8pxl$8x0D$q~h+Imz1QZmxL=?zo_rJ?7A|#N5kVrrvLO6F5!GJ7;BO@ubNXx{6 zikdECmv^9J#wQ>>&%oy+Q2feo<|`C#D+>5~;ato_bw&96v)YOgOw3QEY~Ap>+}YsI zr0q*DyE95mjilrLy;axT(Q)cbn(+p-bITt)_e}?uc3p?@Na!qTg+tlwPR35!nee{y zyX4H3oMk9S1uEgd6I7uZHK;`$p5htm@xN_ABbv~R7Cc8Q+R%;{c!>^l;uT(_3vbYk z9`vFQ{dkK3yu%>g;{%2;j1jmX!40`saw=E9281OvRp^>3%jT#q31M2MrX~zSwTy%; zOp(+iT{bVT^Ga8xdrX#cH+cmDDm08jhk-GC#5g`-0+aB-iz!UQ2R{M`Vg{k&O@8(+ z{rIO#o<{!sE9=a89AQN88FPqY9t-$_MJ!<%F?_`eRuRV<*0F(2Y+)NFEF_S`H|$^+ a-;u%|_VEJ;uyKeZq;ZUsqQ`N1zwiJsDfzAd delta 681 zcmb8pyHXQj0EXe=5J5l!CE&qD6!}975q6Zr36k~-gw@h z{av*etM(eyq7L=2;Q<=Zh=*uGGg|Nnt+@NPp&cD~j3?+s7oMUUJ$Q!a=tUo1pdT+W zfL9pAYYgEHhVd5fFoIExVH^{1K!OaVQnfoTe+?UMQ!gbIPX?S=