Fix issues (#263)

OKGroup/Huobi: Fix order history/active orders issues
This commit is contained in:
Vadim Zhuk
2019-03-28 04:06:42 +02:00
committed by Adrian Gallagher
parent b048539f4c
commit 866efd069d
2 changed files with 34 additions and 36 deletions

View File

@@ -409,31 +409,28 @@ func (h *HUOBI) GetActiveOrders(getOrdersRequest *exchange.GetOrdersRequest) ([]
side = strings.ToLower(string(getOrdersRequest.OrderSide))
}
var allOrders []OrderInfo
var orders []exchange.OrderDetail
for _, c := range getOrdersRequest.Currencies {
resp, err := h.GetOpenOrders(h.ClientID, c.Lower().String(), side, 500)
if err != nil {
return nil, err
}
allOrders = append(allOrders, resp...)
}
var orders []exchange.OrderDetail
for _, order := range allOrders {
symbol := currency.NewPairDelimiter(order.Symbol,
h.ConfigCurrencyPairFormat.Delimiter)
orderDate := time.Unix(order.CreatedAt, 0)
for _, order := range resp {
orderDate := time.Unix(order.CreatedAt, 0)
orders = append(orders, exchange.OrderDetail{
ID: fmt.Sprintf("%v", order.ID),
Exchange: h.Name,
Amount: order.Amount,
Price: order.Price,
OrderDate: orderDate,
ExecutedAmount: order.FilledAmount,
RemainingAmount: (order.Amount - order.FilledAmount),
CurrencyPair: symbol,
})
orders = append(orders, exchange.OrderDetail{
ID: fmt.Sprintf("%v", order.ID),
Exchange: h.Name,
Amount: order.Amount,
Price: order.Price,
OrderDate: orderDate,
ExecutedAmount: order.FilledAmount,
RemainingAmount: (order.Amount - order.FilledAmount),
CurrencyPair: c,
})
}
}
exchange.FilterOrdersByTickRange(&orders, getOrdersRequest.StartTicks,
@@ -450,9 +447,9 @@ func (h *HUOBI) GetOrderHistory(getOrdersRequest *exchange.GetOrdersRequest) ([]
}
states := "partial-canceled,filled,canceled"
var allOrders []OrderInfo
for _, currency := range getOrdersRequest.Currencies {
resp, err := h.GetOrders(currency.Lower().String(),
var orders []exchange.OrderDetail
for _, c := range getOrdersRequest.Currencies {
resp, err := h.GetOrders(c.Lower().String(),
"",
"",
"",
@@ -463,23 +460,19 @@ func (h *HUOBI) GetOrderHistory(getOrdersRequest *exchange.GetOrdersRequest) ([]
if err != nil {
return nil, err
}
allOrders = append(allOrders, resp...)
}
var orders []exchange.OrderDetail
for _, order := range allOrders {
symbol := currency.NewPairDelimiter(order.Symbol,
h.ConfigCurrencyPairFormat.Delimiter)
orderDate := time.Unix(order.CreatedAt, 0)
for _, order := range resp {
orderDate := time.Unix(order.CreatedAt, 0)
orders = append(orders, exchange.OrderDetail{
ID: fmt.Sprintf("%v", order.ID),
Exchange: h.Name,
Amount: order.Amount,
Price: order.Price,
OrderDate: orderDate,
CurrencyPair: symbol,
})
orders = append(orders, exchange.OrderDetail{
ID: fmt.Sprintf("%v", order.ID),
Exchange: h.Name,
Amount: order.Amount,
Price: order.Price,
OrderDate: orderDate,
CurrencyPair: c,
})
}
}
exchange.FilterOrdersByTickRange(&orders, getOrdersRequest.StartTicks,

View File

@@ -382,6 +382,7 @@ func (o *OKGroup) GetActiveOrders(getOrdersRequest *exchange.GetOrdersRequest) (
func (o *OKGroup) GetOrderHistory(getOrdersRequest *exchange.GetOrdersRequest) (resp []exchange.OrderDetail, err error) {
for _, currency := range getOrdersRequest.Currencies {
spotOpenOrders, err := o.GetSpotOrders(GetSpotOrdersRequest{
Status: strings.Join([]string{"filled", "cancelled", "failure"}, "|"),
InstrumentID: exchange.FormatExchangeCurrency(o.Name, currency).String(),
})
if err != nil {
@@ -389,9 +390,13 @@ func (o *OKGroup) GetOrderHistory(getOrdersRequest *exchange.GetOrdersRequest) (
}
for _, openOrder := range spotOpenOrders {
resp = append(resp, exchange.OrderDetail{
ID: openOrder.OrderID,
Price: openOrder.Price,
Amount: openOrder.Size,
CurrencyPair: currency,
Exchange: o.Name,
OrderSide: exchange.OrderSide(openOrder.Side),
OrderType: exchange.OrderType(openOrder.Type),
ExecutedAmount: openOrder.FilledSize,
OrderDate: openOrder.Timestamp,
Status: openOrder.Status,