Use ``order_line()`` factor for pp tracker

fsp_feeds
Tyler Goodlet 2021-09-04 14:27:10 -04:00
parent dc7fcbe792
commit cf9de5cd50
1 changed files with 23 additions and 8 deletions

View File

@ -39,7 +39,7 @@ from ..calc import humanize
from ..clearing._messages import BrokerdPosition, Status from ..clearing._messages import BrokerdPosition, Status
from ..data._source import Symbol from ..data._source import Symbol
from ._label import Label from ._label import Label
from ._lines import LevelLine, level_line from ._lines import LevelLine, order_line
from ._style import _font from ._style import _font
from ._forms import FieldsForm, FillStatusBar, QLabel from ._forms import FieldsForm, FillStatusBar, QLabel
from ..log import get_logger from ..log import get_logger
@ -220,6 +220,8 @@ class Allocator(BaseModel):
return { return {
'size': abs(round(order_size, ndigits=ld)), 'size': abs(round(order_size, ndigits=ld)),
'size_digits': ld, 'size_digits': ld,
# TODO: incorporate multipliers for relevant derivatives
'fiat_size': round(order_size * price, ndigits=2), 'fiat_size': round(order_size * price, ndigits=2),
'slots_used': slots_used, 'slots_used': slots_used,
} }
@ -405,7 +407,6 @@ class SettingsPane:
limit_text = alloc.units_limit limit_text = alloc.units_limit
self.on_ui_settings_change('limit', limit_text) self.on_ui_settings_change('limit', limit_text)
self.update_status_ui(size=startup_size) self.update_status_ui(size=startup_size)
def update_status_ui( def update_status_ui(
@ -475,17 +476,23 @@ def position_line(
the "direction" of the position. the "direction" of the position.
''' '''
line = level_line( line = order_line(
chart, chart,
level, level,
# TODO: could we maybe add a ``action=None`` which
# would be a mechanism to check a marker was passed in?
color=color, color=color,
add_label=False,
highlight_on_hover=False, highlight_on_hover=False,
movable=False, movable=False,
hide_xhair_on_hover=False, hide_xhair_on_hover=False,
use_marker_margin=True,
only_show_markers_on_hover=False, only_show_markers_on_hover=False,
always_show_labels=True, always_show_labels=False,
# explicitly disable ``order_line()`` factory's creation
# of a level marker since we do it in this tracer thing.
show_markers=False,
) )
if marker: if marker:
@ -668,7 +675,10 @@ class PositionTracker:
def show(self) -> None: def show(self) -> None:
if self.live_pp.size: if self.live_pp.size:
self.line.show() self.line.show()
self.line.show_labels()
self._level_marker.show() self._level_marker.show()
self.pp_label.show() self.pp_label.show()
self.size_label.show() self.size_label.show()
@ -684,8 +694,9 @@ class PositionTracker:
'''Hide details (right now just size label?) of position. '''Hide details (right now just size label?) of position.
''' '''
# TODO: add remove status bar widgets here
self.size_label.hide() self.size_label.hide()
if self.line:
self.line.hide_labels()
# TODO: move into annoate module # TODO: move into annoate module
def level_marker( def level_marker(
@ -754,7 +765,11 @@ class PositionTracker:
line.set_level(price) line.set_level(price)
self._level_marker.level = price self._level_marker.level = price
self._level_marker.update() self._level_marker.update()
# line.update_labels({'size': size}) # update LHS sizing label
line.update_labels({
'size': size,
'fiat_size': round(price * size, ndigits=2)
})
line.show() line.show()
else: else: