Skip to content

Commit 6127e6f

Browse files
committed
add order params ActivationPrice, PriceRate, ClosePosition for BinanceFutures
1 parent 74259fd commit 6127e6f

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

api.go

+22
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ type PlaceOrderParameter struct {
110110
PriceType string
111111
ClientOId string
112112
TimeInForce string
113+
114+
ActivationPrice float64
115+
CallbackRate float64
116+
ClosePosition bool
113117
}
114118

115119
// 订单选项
@@ -162,6 +166,24 @@ func OrderTimeInForceOption(timeInForce string) PlaceOrderOption {
162166
}
163167
}
164168

169+
func OrderActivationPriceOption(activationPrice float64) PlaceOrderOption {
170+
return func(p *PlaceOrderParameter) {
171+
p.ActivationPrice = activationPrice
172+
}
173+
}
174+
175+
func OrderCallbackRateOption(callbackRate float64) PlaceOrderOption {
176+
return func(p *PlaceOrderParameter) {
177+
p.CallbackRate = callbackRate
178+
}
179+
}
180+
181+
func OrderClosePositionOption(closePosition bool) PlaceOrderOption {
182+
return func(p *PlaceOrderParameter) {
183+
p.ClosePosition = closePosition
184+
}
185+
}
186+
165187
func ParsePlaceOrderParameter(opts ...PlaceOrderOption) *PlaceOrderParameter {
166188
p := &PlaceOrderParameter{}
167189
for _, opt := range opts {

exchanges/binancefutures/binancefutures.go

+11-1
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,10 @@ func (b *BinanceFutures) PlaceOrder(symbol string, direction Direction, orderTyp
183183
service := b.client.NewCreateOrderService().
184184
Symbol(symbol).
185185
Quantity(fmt.Sprint(size)).
186-
ReduceOnly(params.ReduceOnly)
186+
ReduceOnly(params.ReduceOnly).
187+
ActivationPrice(fmt.Sprint(params.ActivationPrice)).
188+
CallbackRate(fmt.Sprint(params.CallbackRate)).
189+
ClosePosition(params.ClosePosition)
187190
var side futures.SideType
188191
if direction == Buy {
189192
side = futures.SideTypeBuy
@@ -360,6 +363,8 @@ func (b *BinanceFutures) convertOrder(order *futures.Order) (result *Order) {
360363
result.Status = b.orderStatus(order.Status)
361364
result.Time = time.Unix(order.Time/int64(1e3), 0)
362365
result.UpdateTime = time.Unix(order.UpdateTime/int64(1e3), 0)
366+
result.ActivatePrice = order.ActivatePrice
367+
result.PriceRate = order.PriceRate
363368
return
364369
}
365370

@@ -381,6 +386,9 @@ func (b *BinanceFutures) convertOrder1(order *futures.CreateOrderResponse) (resu
381386
}
382387
result.ReduceOnly = order.ReduceOnly
383388
result.Status = b.orderStatus(order.Status)
389+
result.ActivatePrice = order.ActivatePrice
390+
result.PriceRate = order.PriceRate
391+
result.ClosePosition = order.ClosePosition
384392
return
385393
}
386394

@@ -401,6 +409,8 @@ func (b *BinanceFutures) convertOrder2(order *futures.CancelOrderResponse) (resu
401409
}
402410
result.ReduceOnly = order.ReduceOnly
403411
result.Status = b.orderStatus(order.Status)
412+
result.ActivatePrice = order.ActivatePrice
413+
result.PriceRate = order.PriceRate
404414
return
405415
}
406416

models.go

+4
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@ type Order struct {
210210
Pnl float64 `json:"pnl"` // 盈亏
211211
UpdateTime time.Time `json:"update_time"` // 更新时间
212212
Status OrderStatus `json:"status"` // 委托状态
213+
214+
ActivatePrice string `json:"activatePrice"`
215+
PriceRate string `json:"priceRate"`
216+
ClosePosition bool `json:"closePosition"`
213217
}
214218

215219
// IsOpen 是否活跃委托

0 commit comments

Comments
 (0)