mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-01 15:10:44 +00:00
order: slight optimizations (#917)
* order: slight optimizations * orders: add benchmarks, small optimize and change order side to uin8 for comparitive optimizations. * orders: continue to convert string type -> uint * orders/backtester: interim move type to orders package, later can expand or deprecate. * orders: handle errors * orders: optimize filters and remove error returns when its clearly not needed * orders: remove log call * backtester: zero value check * orders/futures: zero value -> flag * linter: fix * linter: more fixes * linters: rides again * glorious: nits * common: Add zero value unix check for time values; also addresses glorious nits * glorious scott: nits Co-authored-by: Ryan O'Hara-Reid <ryan.oharareid@thrasher.io>
This commit is contained in:
@@ -5,7 +5,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -666,10 +665,12 @@ func (b *Bittrex) ConstructOrderDetail(orderData *OrderData) (order.Detail, erro
|
||||
orderData.ID,
|
||||
err)
|
||||
}
|
||||
orderType := order.Type(strings.ToUpper(orderData.Type))
|
||||
orderType, err := order.StringToOrderType(orderData.Type)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "%s %v", b.Name, err)
|
||||
}
|
||||
|
||||
var orderStatus order.Status
|
||||
|
||||
switch orderData.Status {
|
||||
case order.Open.String():
|
||||
switch orderData.FillQuantity {
|
||||
@@ -778,7 +779,8 @@ func (b *Bittrex) GetActiveOrders(ctx context.Context, req *order.GetOrdersReque
|
||||
|
||||
resp := make([]order.Detail, 0, len(orderData))
|
||||
for i := range orderData {
|
||||
pair, err := currency.NewPairDelimiter(orderData[i].MarketSymbol,
|
||||
var pair currency.Pair
|
||||
pair, err = currency.NewPairDelimiter(orderData[i].MarketSymbol,
|
||||
format.Delimiter)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys,
|
||||
@@ -788,12 +790,17 @@ func (b *Bittrex) GetActiveOrders(ctx context.Context, req *order.GetOrdersReque
|
||||
orderData[i].ID,
|
||||
err)
|
||||
}
|
||||
orderType := order.Type(strings.ToUpper(orderData[i].Type))
|
||||
|
||||
orderSide, err := order.StringToOrderSide(orderData[i].Direction)
|
||||
var orderType order.Type
|
||||
orderType, err = order.StringToOrderType(orderData[i].Type)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "%s %v", b.Name, err)
|
||||
}
|
||||
|
||||
var orderSide order.Side
|
||||
orderSide, err = order.StringToOrderSide(orderData[i].Direction)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "GetActiveOrders - %s - cannot get order side - %s\n", b.Name, err.Error())
|
||||
continue
|
||||
}
|
||||
|
||||
resp = append(resp, order.Detail{
|
||||
@@ -812,8 +819,11 @@ func (b *Bittrex) GetActiveOrders(ctx context.Context, req *order.GetOrdersReque
|
||||
}
|
||||
|
||||
order.FilterOrdersByType(&resp, req.Type)
|
||||
order.FilterOrdersByTimeRange(&resp, req.StartTime, req.EndTime)
|
||||
order.FilterOrdersByCurrencies(&resp, req.Pairs)
|
||||
err = order.FilterOrdersByTimeRange(&resp, req.StartTime, req.EndTime)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "%s %v", b.Name, err)
|
||||
}
|
||||
order.FilterOrdersByPairs(&resp, req.Pairs)
|
||||
|
||||
b.WsSequenceOrders = sequence
|
||||
return resp, nil
|
||||
@@ -836,18 +846,21 @@ func (b *Bittrex) GetOrderHistory(ctx context.Context, req *order.GetOrdersReque
|
||||
|
||||
var resp []order.Detail
|
||||
for x := range req.Pairs {
|
||||
formattedPair, err := b.FormatExchangeCurrency(req.Pairs[x], req.AssetType)
|
||||
var formattedPair currency.Pair
|
||||
formattedPair, err = b.FormatExchangeCurrency(req.Pairs[x], req.AssetType)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
orderData, err := b.GetOrderHistoryForCurrency(ctx, formattedPair.String())
|
||||
var orderData []OrderData
|
||||
orderData, err = b.GetOrderHistoryForCurrency(ctx, formattedPair.String())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for i := range orderData {
|
||||
pair, err := currency.NewPairDelimiter(orderData[i].MarketSymbol,
|
||||
var pair currency.Pair
|
||||
pair, err = currency.NewPairDelimiter(orderData[i].MarketSymbol,
|
||||
format.Delimiter)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys,
|
||||
@@ -857,17 +870,22 @@ func (b *Bittrex) GetOrderHistory(ctx context.Context, req *order.GetOrdersReque
|
||||
orderData[i].ID,
|
||||
err)
|
||||
}
|
||||
orderType := order.Type(strings.ToUpper(orderData[i].Type))
|
||||
var orderType order.Type
|
||||
orderType, err = order.StringToOrderType(orderData[i].Type)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "%s %v", b.Name, err)
|
||||
}
|
||||
|
||||
orderSide, err := order.StringToOrderSide(orderData[i].Direction)
|
||||
var orderSide order.Side
|
||||
orderSide, err = order.StringToOrderSide(orderData[i].Direction)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "GetActiveOrders - %s - cannot get order side - %s\n", b.Name, err.Error())
|
||||
continue
|
||||
}
|
||||
orderStatus, err := order.StringToOrderStatus(orderData[i].Status)
|
||||
|
||||
var orderStatus order.Status
|
||||
orderStatus, err = order.StringToOrderStatus(orderData[i].Status)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "GetActiveOrders - %s - cannot get order status - %s\n", b.Name, err.Error())
|
||||
continue
|
||||
}
|
||||
|
||||
detail := order.Detail{
|
||||
@@ -890,8 +908,11 @@ func (b *Bittrex) GetOrderHistory(ctx context.Context, req *order.GetOrdersReque
|
||||
}
|
||||
|
||||
order.FilterOrdersByType(&resp, req.Type)
|
||||
order.FilterOrdersByTimeRange(&resp, req.StartTime, req.EndTime)
|
||||
order.FilterOrdersByCurrencies(&resp, req.Pairs)
|
||||
err = order.FilterOrdersByTimeRange(&resp, req.StartTime, req.EndTime)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "%s %v", b.Name, err)
|
||||
}
|
||||
order.FilterOrdersByPairs(&resp, req.Pairs)
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
|
||||
Reference in New Issue
Block a user