108 lines
3.8 KiB
Go
108 lines
3.8 KiB
Go
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
|
||
// }
|