package private import ( "github.com/phyer/texus/utils" ) type OrderResp struct { Arg ArgResp `json:"arg"` Data []*OrderDataResp `json:"data"` } type ArgResp struct { Channel string `json:"channel"` InstType string `json:"instType"` InstId string `json:"instId"` } type OrderDataResp struct { InstType string `json:"instType"` InstId string `json:"instId"` OrdId string `json:"ordId"` ClOrdId string `json:"clOrdId"` Tag string `json:"tag"` Px string `json:"Px"` Sz string `json:"sz"` NotionalUsd string `json:"notionalUsd"` OrdType string `json:"ordType"` Side string `json:"side"` PosSide string `json:"posSide"` TdMode string `json:"tdMode"` TgtCcy string `json:"tgtCcy"` FillSz string `json:"fillSz"` FillPx string `json:"fillPx"` TradeId string `json:"tradeId"` AccFillSz string `json:"accFillSz"` FillNotionalUsd string `json:"FillNotionalUsd"` FillTime string `json:"fillTime"` FillFee string `json:"fillFee"` FillFeeCcy string `json:"fillFeeCcy"` ExecType string `json:"execType"` Source string `json:"source"` State string `json:"state"` AvgPx string `json:"avgPx"` Lever string `json:"lever"` TpTriggerPxstring string `json:"tpTriggerPxstring"` TpTriggerPxType string `json:"tpTriggerPxType"` TpOrdPx string `json:"tpOrdPx"` SlTriggerPx string `json:"slTriggerPx"` SlTriggerPxType string `json:"slTriggerPxType"` SlOrdPx string `json:"slOrdPx"` FeeCcy string `json:"feeCcy"` Fee string `json:"fee"` RebateCcy string `json:"rebateCcy"` Rebate string `json:"rebate"` TgtCcystring string `json:"tgtCcystring"` Pnl string `json:"pnl"` Category string `json:"category"` UTime string `json:"uTime"` CTime string `json:"cTime"` ReqId string `json:"reqId"` AmendResult string `json:"amendResult"` Code string `json:"code"` Msg string `json:"msg"` } type Order struct { CTime int64 `json:"cTime,number"` // 订单创建时间 UTime int64 `json:"uTime,number"` // 订单状态更新时间 InstId string `json:"instId"` OrdId string `json:"ordId"` ClOrdId string `json:"clOrdId"` // 自定义订单ID Px float64 `json:"px,number"` // 委托价格 Side string `json:"side"` //交易方向 sell, buy Sz float64 `json:"sz,number"` // 委托总量 AccFillSz float64 `json:"accFillSz,number"` //累计成交数量 AvgPx float64 `json:"avgPx,number"` //成交均价 State string `json:"state"` //订单状态 TgtCcy string `json:"tgtCcy"` // 限定了size的单位,两个选项:base_ccy: 交易货币 ;quote_ccy:计价货币(美元) // canceled:撤单成功 // live:等待成交 // partially_filled:部分成交 // filled:完全成交 } func (orderResp *OrderResp) Convert() ([]*Order, error) { orderList := []*Order{} for _, v := range orderResp.Data { // fmt.Println("v.Sz:", v.Sz, reflect.TypeOf(v.Sz).Name()) curOrder := Order{} curOrder.CTime = utils.ToInt64(v.CTime) curOrder.UTime = utils.ToInt64(v.UTime) curOrder.InstId = v.InstId curOrder.OrdId = v.OrdId curOrder.ClOrdId = v.ClOrdId curOrder.Side = v.Side curOrder.Px = utils.ToFloat64(v.Px) curOrder.Sz = utils.ToFloat64(v.Sz) curOrder.AccFillSz = utils.ToFloat64(v.AccFillSz) curOrder.AvgPx = utils.ToFloat64(v.AvgPx) curOrder.State = v.State orderList = append(orderList, &curOrder) } return orderList, nil } // func (order *Order) Process(cr *core.Core) error { // return nil // }