diff --git a/core/candle.go b/core/candle.go
index d0624ea..c53f5ed 100644
--- a/core/candle.go
+++ b/core/candle.go
@@ -185,53 +185,53 @@ func HashString(input string) string {
 	return hashHex[:23]
 }
 
-func (cl *Candle) ToStruct(core *Core) error {
+func (cl *Candle) ToStruct(core *Core) (*Candle, error) {
 	// cl.Timestamp
+	ncd := Candle{}
 
 	// 将字符串转换为 int64 类型的时间戳
 	ts, err := strconv.ParseInt(cl.Data[0].(string), 10, 64)
 	if err != nil {
 		fmt.Println("Error parsing timestamp:", err)
-		return err
+		return nil, err
 	}
-	cl.Timestamp = time.Unix(ts/1000, (ts%1000)*1000000) // 纳秒级别
+	ncd.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
+		return nil, err
 	}
-	cl.Open = op
+	ncd.Open = op
 	hi, err := strconv.ParseFloat(cl.Data[2].(string), 64)
 	if err != nil {
 		fmt.Println("Error parsing string to float64:", err)
-		return err
+		return nil, err
 	}
-	cl.High = hi
+	ncd.High = hi
 	lo, err := strconv.ParseFloat(cl.Data[3].(string), 64)
 	if err != nil {
 		fmt.Println("Error parsing string to float64:", err)
-		return err
+		return nil, err
 	}
-	cl.Low = lo
+	ncd.Low = lo
 	clse, err := strconv.ParseFloat(cl.Data[4].(string), 64)
 
 	if err != nil {
 		fmt.Println("Error parsing string to float64:", err)
-		return err
+		return nil, err
 	}
-	cl.Close = clse
-	cl.VolCcy, err = strconv.ParseFloat(cl.Data[6].(string), 64)
+	ncd.Close = clse
+	ncd.VolCcy, err = strconv.ParseFloat(cl.Data[6].(string), 64)
 	if err != nil {
 		fmt.Println("Error parsing string to float64:", err)
-		return err
+		return nil, err
 	}
 	if cl.Data[6].(string) == "1" {
-		cl.Confirm = true
+		ncd.Confirm = true
 	} else {
-		cl.Confirm = false
+		ncd.Confirm = false
 	}
-	cl.Data = nil
-	return nil
+	return &ncd, nil
 }
 
 func (mx *MaX) SetToKey() ([]interface{}, error) {
@@ -258,8 +258,8 @@ func (mx *MaX) SetToKey() ([]interface{}, error) {
 func (core *Core) SaveUniKey(period string, keyName string, extt time.Duration, tsi int64, cl *Candle) {
 	did := cl.InstId + cl.Period + cl.Data[0].(string)
 	cl.Id = HashString(did)
-	cl.ToStruct(core)
-	cd, _ := json.Marshal(cl)
+	ncd, _ := cl.ToStruct(core)
+	cd, _ := json.Marshal(ncd)
 	wg := WriteLog{
 		Content: cd,
 		Tag:     "sardine.log.candle." + cl.Period,
diff --git a/tunas b/tunas
index aae3c01..af61749 100755
Binary files a/tunas and b/tunas differ