texus/private/order.go
2024-12-02 14:03:35 +08:00

108 lines
3.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
// }