Error on zero-size orders received by paper engine
parent
8792c97de6
commit
02f53d0c13
|
@ -23,6 +23,7 @@ from contextlib import asynccontextmanager
|
|||
from datetime import datetime
|
||||
from operator import itemgetter
|
||||
import itertools
|
||||
from pprint import pformat
|
||||
import time
|
||||
from typing import (
|
||||
Any,
|
||||
|
@ -438,15 +439,21 @@ async def handle_order_requests(
|
|||
case {'action': ('buy' | 'sell')}:
|
||||
order = BrokerdOrder(**request_msg)
|
||||
account = order.account
|
||||
|
||||
# error on bad inputs
|
||||
reason = None
|
||||
if account != 'paper':
|
||||
log.error(
|
||||
'This is a paper account,'
|
||||
' only a `paper` selection is valid'
|
||||
)
|
||||
reason = f'Paper account only. No account found: `{account}` ?'
|
||||
|
||||
elif order.size == 0:
|
||||
reason = 'Invalid size: 0'
|
||||
|
||||
if reason:
|
||||
log.error(reason)
|
||||
await ems_order_stream.send(BrokerdError(
|
||||
oid=order.oid,
|
||||
symbol=order.symbol,
|
||||
reason=f'Paper only. No account found: `{account}` ?',
|
||||
reason=reason,
|
||||
))
|
||||
continue
|
||||
|
||||
|
|
Loading…
Reference in New Issue