Adjust order mode to use `Flume.get_index()`

multi_symbol_input
Tyler Goodlet 2022-11-24 15:04:16 -05:00
parent 8d592886fa
commit bc7fe6114d
1 changed files with 21 additions and 17 deletions

View File

@ -930,7 +930,6 @@ async def process_trade_msg(
) -> tuple[Dialog, Status]: ) -> tuple[Dialog, Status]:
get_index = mode.chart.get_index
fmsg = pformat(msg) fmsg = pformat(msg)
log.debug(f'Received order msg:\n{fmsg}') log.debug(f'Received order msg:\n{fmsg}')
name = msg['name'] name = msg['name']
@ -965,6 +964,9 @@ async def process_trade_msg(
oid = msg.oid oid = msg.oid
dialog: Dialog = mode.dialogs.get(oid) dialog: Dialog = mode.dialogs.get(oid)
fqsn = dialog.symbol.front_fqsn()
flume = mode.feed.flumes[fqsn]
match msg: match msg:
case Status( case Status(
resp='dark_open' | 'open', resp='dark_open' | 'open',
@ -1034,10 +1036,11 @@ async def process_trade_msg(
# should only be one "fill" for an alert # should only be one "fill" for an alert
# add a triangle and remove the level line # add a triangle and remove the level line
req = Order(**req) req = Order(**req)
index = flume.get_index(time.time())
mode.on_fill( mode.on_fill(
oid, oid,
price=req.price, price=req.price,
arrow_index=get_index(time.time()), arrow_index=index,
) )
mode.lines.remove_line(uuid=oid) mode.lines.remove_line(uuid=oid)
msg.req = req msg.req = req
@ -1065,15 +1068,8 @@ async def process_trade_msg(
action = order.action action = order.action
details = msg.brokerd_msg details = msg.brokerd_msg
# TODO: some kinda progress system # TODO: put the actual exchange timestamp?
mode.on_fill( # NOTE: currently the ``kraken`` openOrders sub
oid,
price=details['price'],
pointing='up' if action == 'buy' else 'down',
# TODO: put the actual exchange timestamp
arrow_index=get_index(
# TODO: note currently the ``kraken`` openOrders sub
# doesn't deliver their engine timestamp as part of # doesn't deliver their engine timestamp as part of
# it's schema, so this value is **not** from them # it's schema, so this value is **not** from them
# (see our backend code). We should probably either # (see our backend code). We should probably either
@ -1083,8 +1079,16 @@ async def process_trade_msg(
# a true backend one? This will require finagling # a true backend one? This will require finagling
# with how each backend tracks/summarizes time # with how each backend tracks/summarizes time
# stamps for the downstream API. # stamps for the downstream API.
index = flume.get_index(
details['broker_time'] details['broker_time']
), )
# TODO: some kinda progress system
mode.on_fill(
oid,
price=details['price'],
arrow_index=index,
pointing='up' if action == 'buy' else 'down',
) )
# TODO: append these fill events to the position's clear # TODO: append these fill events to the position's clear