Always cast ems `requid` values to `int`
parent
016b669d63
commit
1510383738
|
@ -41,7 +41,6 @@ from ib_insync.contract import (
|
||||||
from ib_insync.order import (
|
from ib_insync.order import (
|
||||||
Trade,
|
Trade,
|
||||||
OrderStatus,
|
OrderStatus,
|
||||||
Order,
|
|
||||||
)
|
)
|
||||||
from ib_insync.objects import (
|
from ib_insync.objects import (
|
||||||
Fill,
|
Fill,
|
||||||
|
@ -123,10 +122,11 @@ async def handle_order_requests(
|
||||||
f'An IB account number for name {account} is not found?\n'
|
f'An IB account number for name {account} is not found?\n'
|
||||||
'Make sure you have all TWS and GW instances running.'
|
'Make sure you have all TWS and GW instances running.'
|
||||||
)
|
)
|
||||||
await ems_order_stream.send(BrokerdError(
|
await ems_order_stream.send(
|
||||||
oid=request_msg['oid'],
|
BrokerdError(
|
||||||
symbol=request_msg['symbol'],
|
oid=request_msg['oid'],
|
||||||
reason=f'No account found: `{account}` ?',
|
symbol=request_msg['symbol'],
|
||||||
|
reason=f'No account found: `{account}` ?',
|
||||||
))
|
))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -147,6 +147,14 @@ async def handle_order_requests(
|
||||||
# validate
|
# validate
|
||||||
order = BrokerdOrder(**request_msg)
|
order = BrokerdOrder(**request_msg)
|
||||||
|
|
||||||
|
# XXX: by default 0 tells ``ib_insync`` methods that
|
||||||
|
# there is no existing order so ask the client to create
|
||||||
|
# a new one (which it seems to do by allocating an int
|
||||||
|
# counter - collision prone..)
|
||||||
|
reqid = order.reqid
|
||||||
|
if reqid is not None:
|
||||||
|
reqid = int(reqid)
|
||||||
|
|
||||||
# call our client api to submit the order
|
# call our client api to submit the order
|
||||||
reqid = client.submit_limit(
|
reqid = client.submit_limit(
|
||||||
oid=order.oid,
|
oid=order.oid,
|
||||||
|
@ -155,12 +163,7 @@ async def handle_order_requests(
|
||||||
action=order.action,
|
action=order.action,
|
||||||
size=order.size,
|
size=order.size,
|
||||||
account=acct_number,
|
account=acct_number,
|
||||||
|
reqid=reqid,
|
||||||
# XXX: by default 0 tells ``ib_insync`` methods that
|
|
||||||
# there is no existing order so ask the client to create
|
|
||||||
# a new one (which it seems to do by allocating an int
|
|
||||||
# counter - collision prone..)
|
|
||||||
reqid=order.reqid,
|
|
||||||
)
|
)
|
||||||
if reqid is None:
|
if reqid is None:
|
||||||
await ems_order_stream.send(BrokerdError(
|
await ems_order_stream.send(BrokerdError(
|
||||||
|
@ -182,7 +185,7 @@ async def handle_order_requests(
|
||||||
|
|
||||||
elif action == 'cancel':
|
elif action == 'cancel':
|
||||||
msg = BrokerdCancel(**request_msg)
|
msg = BrokerdCancel(**request_msg)
|
||||||
client.submit_cancel(reqid=msg.reqid)
|
client.submit_cancel(reqid=int(msg.reqid))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
log.error(f'Unknown order command: {request_msg}')
|
log.error(f'Unknown order command: {request_msg}')
|
||||||
|
|
Loading…
Reference in New Issue