Only update y-range from L1 mxmn when last index in view

We still have to always keep track of the last max and min
though.
marketstore_backup
Tyler Goodlet 2022-04-12 11:40:48 -04:00
parent 229d269ae4
commit b02a43466f
1 changed files with 20 additions and 8 deletions

View File

@ -372,13 +372,14 @@ def graphics_update_cycle(
mx = mx_in_view + tick_margin
mn = mn_in_view - tick_margin
profiler('maxmin call')
liv = r > i_step # the last datum is in view
# don't real-time "shift" the curve to the
# left under the following conditions:
if (
i_diff > 0 # no new sample step
and xpx < update_uppx # chart is zoomed out very far
and r >= i_step # the last datum is in view
and liv
):
# TODO: we should track and compute whether the last
# pixel in a curve should show new data based on uppx
@ -394,7 +395,7 @@ def graphics_update_cycle(
if (
# if zoomed out alot don't update the last "bar"
(xpx < update_uppx or i_diff > 0)
and r >= i_step
and liv
):
# TODO: make it so this doesn't have to be called
# once the $vlm is up?
@ -546,7 +547,10 @@ def graphics_update_cycle(
l1.bid_label.fields['level']: l1.bid_label,
}.get(price)
if label is not None:
if (
label is not None
# and liv
):
label.update_fields(
{'level': price, 'size': size}
)
@ -555,19 +559,27 @@ def graphics_update_cycle(
# the relevant L1 queue?
# label.size -= size
# elif ticktype in ('ask', 'asize'):
elif typ in _tick_groups['asks']:
elif (
typ in _tick_groups['asks']
# TODO: instead we could check if the price is in the
# y-view-range?
# and liv
):
l1.ask_label.update_fields({'level': price, 'size': size})
# elif ticktype in ('bid', 'bsize'):
elif typ in _tick_groups['bids']:
elif (
typ in _tick_groups['bids']
# TODO: instead we could check if the price is in the
# y-view-range?
# and liv
):
l1.bid_label.update_fields({'level': price, 'size': size})
# check for y-range re-size
if (
(mx > vars['last_mx']) or (mn < vars['last_mn'])
and not chart._static_yrange == 'axis'
and r > i_step # the last datum is in view
and liv
):
main_vb = chart.view
if (