Pass order size to ems

basic_orders
Tyler Goodlet 2021-02-11 11:47:34 -05:00
parent 21e1561a57
commit 02edfdf846
1 changed files with 12 additions and 9 deletions

View File

@ -138,7 +138,7 @@ class PaperBoi:
symbol: str,
price: float,
action: str,
size: int = _DEFAULT_SIZE,
size: float,
) -> int:
"""Place an order and return integer request id provided by client.
@ -266,7 +266,7 @@ async def exec_loop(
symbol=sym,
action=cmd['action'],
price=round(submit_price, 2),
size=_DEFAULT_SIZE,
size=cmd['size'],
)
# register broker request id to ems id
book._broker2ems_ids[reqid] = oid
@ -420,7 +420,7 @@ async def _ems_main(
client_actor_name: str,
broker: str,
symbol: str,
mode: str = 'dark', # ('paper', 'dark', 'live')
_mode: str = 'dark', # ('paper', 'dark', 'live')
) -> None:
"""EMS (sub)actor entrypoint providing the
execution management (micro)service which conducts broker
@ -463,7 +463,7 @@ async def _ems_main(
ctx,
broker,
symbol,
mode,
_mode,
)
await n.start(
@ -505,13 +505,14 @@ async def _ems_main(
sym = cmd['symbol']
trigger_price = cmd['price']
size = cmd['size']
brokers = cmd['brokers']
broker = brokers[0]
mode = cmd.get('exec_mode', mode)
exec_mode = cmd.get('exec_mode', _mode)
broker = brokers[0]
last = book.lasts[(broker, sym)]
if mode == 'live' and action in ('buy', 'sell',):
if exec_mode == 'live' and action in ('buy', 'sell',):
# register broker id for ems id
order_id = await client.submit_limit(
@ -519,7 +520,7 @@ async def _ems_main(
symbol=sym,
action=action,
price=round(trigger_price, 2),
size=_DEFAULT_SIZE,
size=size,
)
book._broker2ems_ids[order_id] = oid
@ -528,7 +529,7 @@ async def _ems_main(
# handle sending the ems side acks back to
# the cmd sender from here
elif mode in ('dark', 'paper') or action in ('alert'):
elif exec_mode in ('dark', 'paper') or action in ('alert'):
# TODO: if the predicate resolves immediately send the
# execution to the broker asap? Or no?
@ -608,12 +609,14 @@ class OrderBook:
uuid: str,
symbol: 'Symbol',
price: float,
size: float,
action: str,
exec_mode: str,
) -> str:
cmd = {
'action': action,
'price': price,
'size': size,
'symbol': symbol.key,
'brokers': symbol.brokers,
'oid': uuid,