108 lines
3.8 KiB
Go
108 lines
3.8 KiB
Go
![]() |
package private
|
|||
|
|
|||
|
import (
|
|||
|
"phyer.click/tunas/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
|
|||
|
// }
|