Skip to content

Commit 34866ce

Browse files
authored
Merge pull request #983 from c9s/fix/add-quantity-check
2 parents c374a56 + a515fff commit 34866ce

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

pkg/backtest/exchange.go

+10
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ import (
4848
var log = logrus.WithField("cmd", "backtest")
4949

5050
var ErrUnimplemented = errors.New("unimplemented method")
51+
var ErrNegativeQuantity = errors.New("order quantity can not be negative")
52+
var ErrZeroQuantity = errors.New("order quantity can not be zero")
5153

5254
type Exchange struct {
5355
sourceName types.ExchangeName
@@ -176,6 +178,14 @@ func (e *Exchange) SubmitOrder(ctx context.Context, order types.SubmitOrder) (cr
176178
return nil, fmt.Errorf("matching engine is not initialized for symbol %s", symbol)
177179
}
178180

181+
if order.Quantity.Sign() < 0 {
182+
return nil, ErrNegativeQuantity
183+
}
184+
185+
if order.Quantity.IsZero() {
186+
return nil, ErrZeroQuantity
187+
}
188+
179189
createdOrder, _, err = matching.PlaceOrder(order)
180190
if createdOrder != nil {
181191
// market order can be closed immediately.

0 commit comments

Comments
 (0)