Merge pull request #1447 from c9s/edwin/bitget/fix-price

FIX: [bitget] fix price is zero when order not executed
This commit is contained in:
bailantaotao 2023-12-12 20:59:55 +08:00 committed by GitHub
commit a6d9b6661d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 13 deletions

View File

@ -430,6 +430,11 @@ func (o *Order) toGlobalOrder() (types.Order, error) {
}
}
price := o.Price
if orderType == types.OrderTypeMarket {
price = o.PriceAvg
}
return types.Order{
SubmitOrder: types.SubmitOrder{
ClientOrderID: o.ClientOrderId,
@ -437,7 +442,7 @@ func (o *Order) toGlobalOrder() (types.Order, error) {
Side: side,
Type: orderType,
Quantity: qty,
Price: o.PriceAvg,
Price: price,
TimeInForce: timeInForce,
},
Exchange: types.ExchangeBitget,

View File

@ -924,6 +924,7 @@ func TestOrder_toGlobalOrder(t *testing.T) {
// }
t.Run("limit buy", func(t *testing.T) {
newO := o
newO.Price = fixedpoint.NewFromFloat(0.49998)
newO.OrderType = v2.OrderTypeLimit
res, err := newO.toGlobalOrder()
@ -935,7 +936,7 @@ func TestOrder_toGlobalOrder(t *testing.T) {
Side: types.SideTypeBuy,
Type: types.OrderTypeLimit,
Quantity: newO.Size,
Price: newO.PriceAvg,
Price: newO.Price,
TimeInForce: types.TimeInForceGTC,
},
Exchange: types.ExchangeBitget,
@ -983,6 +984,7 @@ func TestOrder_toGlobalOrder(t *testing.T) {
newO := o
newO.OrderType = v2.OrderTypeLimit
newO.Side = v2.SideTypeSell
newO.Price = fixedpoint.NewFromFloat(0.48710)
res, err := newO.toGlobalOrder()
assert.NoError(t, err)
@ -993,7 +995,7 @@ func TestOrder_toGlobalOrder(t *testing.T) {
Side: types.SideTypeSell,
Type: types.OrderTypeLimit,
Quantity: newO.Size,
Price: newO.PriceAvg,
Price: newO.Price,
TimeInForce: types.TimeInForceGTC,
},
Exchange: types.ExchangeBitget,

View File

@ -125,6 +125,7 @@ func TestStream(t *testing.T) {
})
t.Run("private test", func(t *testing.T) {
s.SetPrivateChannelSymbols([]string{"BTCUSDT"})
err := s.Connect(context.Background())
assert.NoError(t, err)

View File

@ -488,16 +488,18 @@ type Order struct {
// Size is base coin when orderType=limit; quote coin when orderType=market
Size fixedpoint.Value `json:"size"`
// Buy amount, returned when buying at market price
Notional fixedpoint.Value `json:"notional"`
OrderType v2.OrderType `json:"orderType"`
Force v2.OrderForce `json:"force"`
Side v2.SideType `json:"side"`
AccBaseVolume fixedpoint.Value `json:"accBaseVolume"`
PriceAvg fixedpoint.Value `json:"priceAvg"`
Status v2.OrderStatus `json:"status"`
CreatedTime types.MillisecondTimestamp `json:"cTime"`
UpdatedTime types.MillisecondTimestamp `json:"uTime"`
FeeDetail []struct {
Notional fixedpoint.Value `json:"notional"`
OrderType v2.OrderType `json:"orderType"`
Force v2.OrderForce `json:"force"`
Side v2.SideType `json:"side"`
AccBaseVolume fixedpoint.Value `json:"accBaseVolume"`
PriceAvg fixedpoint.Value `json:"priceAvg"`
// The Price field is only applicable to limit orders.
Price fixedpoint.Value `json:"price"`
Status v2.OrderStatus `json:"status"`
CreatedTime types.MillisecondTimestamp `json:"cTime"`
UpdatedTime types.MillisecondTimestamp `json:"uTime"`
FeeDetail []struct {
FeeCoin string `json:"feeCoin"`
Fee string `json:"fee"`
} `json:"feeDetail"`