Commit Graph

1577 Commits (3b0fbacefce5b446c186e34301d12b497a3e022b)

Author SHA1 Message Date
Tyler Goodlet 3b0fbacefc Use filled rect for current step
A `QRectF` is easier to make and draw (i think?) so use that and fill it
on volume events for decent sleek real-time look. Adjust the step array
generator to allow for an endpoints flag. Comment and/or clean out all
the old path filling calls that gave us perf issues..
2021-10-29 16:13:28 -04:00
Tyler Goodlet b579fbc668 Add test logic for range based volume curve filling 2021-10-29 16:13:28 -04:00
Tyler Goodlet e1e521fdc1 Bleh, try a bunch of stuff for step filling
Turns out the performance of updating and refilling step curves > 1k ish
points is super slow :sadkek:. Disabling the fill basically returns
normal performance, so it seems maybe we'll stick with unfilled volume
"bars" for now. The other tricky bit is getting the path to extend and
fill which is particularly slow if you use the `QPainterPath.united()`
(what `+` set op does) operation which seems to require an entire redraw
of the curve each paint iteration. Removing the pixel buffer cache makes
things that much worse too..

One technique i tried was only setting a `._fill` flag when so many
datums are in view (< 1k as determined by the chart widget), and this
helps, but under high load (trade rates) you still see more lag then
without the fill which makes me say screw it and let's stick with
unfilled bars for now. Trying go to get performant filled curves will be
an exercise for an aspiring graphics eng :P
2021-10-29 16:13:28 -04:00
Tyler Goodlet fc1563dd90 Add last step updates and path fill support 2021-10-29 16:13:28 -04:00
Tyler Goodlet 6a915c75a7 Drop rsi from display by default 2021-10-29 16:13:28 -04:00
Tyler Goodlet 2df240cdfe Add todo for new view padding testing 2021-10-29 16:13:28 -04:00
Tyler Goodlet 553f001757 Add volume plot as default
Toss in support for a "step mode" curve (unfinished atm) and use it to
plot from the `volume` field of the ohlcv shm array (if available).

changes to make it happen,
- dynamically generate the fsp sidepane form from an input config `dict`
  |_ dynamically generate the underlying `pydantic` model
  |_
- add a "volume checker" helper func that inspects the shm array
- toss in sidepane resize calls to avoid race where the ohlcv array
  is plotted too slowly compared to the volume and the chart somehow
  doesn't show..
- drop duplicate rsi2 cruft (previously used to test plots of the shm
  data)
2021-10-29 16:13:28 -04:00
Tyler Goodlet 5d6ec278a3 Invert 'c' (connection) array
In latest `pyqtgraph` it seems there's a discrepancy
since `function.arrayToQPath()` was reworked and now
we need to *not* connect the last point for each bar.
2021-10-29 16:13:28 -04:00
Tyler Goodlet 768384f163 Draft 'step' curve; couldn't get pg builtin to work 2021-10-29 16:13:28 -04:00
Tyler Goodlet 643d2618ec Draft tina install section 2021-10-29 16:13:28 -04:00
Tyler Goodlet ef7d550e94 Toss in references step mode impl 2021-10-29 16:13:28 -04:00
Tyler Goodlet 89bf0b8d21 WIP fsp output throttling - not working yet 2021-10-29 16:12:34 -04:00
Tyler Goodlet 24596022f9 Wait for a last price tick before delivering quote 2021-10-29 09:31:06 -04:00
Tyler Goodlet af0503956a Use `tractor.to_asyncio.open_channel_from()` in ib backend 2021-10-29 09:26:42 -04:00
Tyler Goodlet 980a6dde05 Add ib gateway support, loop through names 2021-10-29 09:25:44 -04:00
Tyler Goodlet a114329ad9 Pass window id to click subcmd 2021-10-29 09:25:44 -04:00
Tyler Goodlet b180fa2083 Use bottom right of window for click 2021-10-29 09:25:44 -04:00
Tyler Goodlet 7d2a970e32 Add working i3 + xdotool script for ib data reset
Start of a general solution to #128
2021-10-29 09:25:44 -04:00
Tyler Goodlet 1416d4e6ac Add actor wide client ignore set, increase history retreival to 24 requests 2021-10-29 09:25:41 -04:00
Tyler Goodlet eca9b14cd6 Add (list of) `hosts` support in config and better scan error msg 2021-10-29 09:20:52 -04:00
goodboy 91c005b3c1
Merge pull request #230 from pikers/super_basic_brokerd_status
Super basic brokerd status
2021-10-28 13:04:22 -04:00
goodboy adb5a55e3f
Merge pull request #233 from pikers/tractor_branch_pin
Pin to specific branch made for us in `tractor`
2021-10-23 14:04:31 -04:00
Tyler Goodlet 37723235ca Pin to specific branch made for us 2021-10-23 12:25:16 -04:00
Tyler Goodlet 547f6692d6 Passthrough loglevel to fsp actor 2021-09-21 16:12:23 -04:00
Tyler Goodlet 4227b2e7a0 Increase feed status label size once more 2021-09-21 15:49:51 -04:00
Tyler Goodlet 7d00244e8b WIP resize sidepanes to master plot 2021-09-21 15:49:09 -04:00
Tyler Goodlet 4d06502bc8 Accept humanized str input for order settings 2021-09-21 15:48:40 -04:00
Tyler Goodlet d3d7f8a6f8 Add `puterize()` 2021-09-21 15:48:40 -04:00
Tyler Goodlet da8bccf788 Just log error on invalid order mode settings 2021-09-21 15:48:40 -04:00
Tyler Goodlet 3e25be6321 Build out feed status label, add to top of sidepane 2021-09-21 15:48:40 -04:00
Tyler Goodlet bc42d625fc Make labels expand by default 2021-09-21 15:48:40 -04:00
Tyler Goodlet fd8be33f10 Add portal getter, store throttle rate 2021-09-21 15:48:40 -04:00
goodboy bb5916d6a9
Merge pull request #227 from pikers/chart_mod_breakup
Breakup the chart module
2021-09-18 11:59:25 -04:00
goodboy 3aadd49e07
Merge pull request #226 from pikers/account_select_icons
Account select icons
2021-09-15 11:36:16 -04:00
Tyler Goodlet 46bbfc8ef8 Breakup the chart module
Split up the rather large `.ui._chart` module into its constituents:
- a `.ui._app` for the highlevel widget composition, qtractor entry
  point and startup logic
- `.ui._display` for all the real-time graphics update tasks which
  consume the `.ui._chart` widget apis
2021-09-15 07:52:01 -04:00
Tyler Goodlet aa91055a16 Fix logic to display pnl in status label immediately 2021-09-14 18:31:49 -04:00
Tyler Goodlet 67de83afa9 Create all trackers in one pass of the accounts 2021-09-14 14:26:15 -04:00
Tyler Goodlet f4740da6a2 Drop `.accounts` field from allocator 2021-09-14 13:10:39 -04:00
Tyler Goodlet 4afafce297 Update icons from pps at order mode startup 2021-09-14 12:26:26 -04:00
Tyler Goodlet 9c60aa1928 Add account icon updater method to sidepane 2021-09-14 12:26:06 -04:00
Tyler Goodlet 9e41dfb735 Add an icon setter api to `Selection` 2021-09-14 12:25:30 -04:00
Tyler Goodlet be5a8e66d8 Only show accounts reported from clearing sys 2021-09-14 10:37:30 -04:00
Tyler Goodlet 9e15401ddc Add an accounts list setter 2021-09-14 10:36:44 -04:00
Tyler Goodlet b04645aa47 Expect `accounts: set[str]` startup msg through clearing system 2021-09-14 10:36:13 -04:00
Tyler Goodlet 75e1bf3f6e Factor combobox logic into a new `Selection` subtype 2021-09-14 10:34:36 -04:00
Tyler Goodlet 6a31c4e160 Fix missing tracker to ui update call 2021-09-13 19:08:30 -04:00
Tyler Goodlet 335e72bf32 Move icons generatino to new module 2021-09-13 18:40:12 -04:00
Tyler Goodlet 66199bfe6f Implement the pixmap mask hack for long/short pp icons 2021-09-13 17:40:14 -04:00
Tyler Goodlet 3de4b9afbb Scale down icons size, add RHS icons theory code 2021-09-13 17:39:19 -04:00
Tyler Goodlet 6ac092d618 Scale search results indent to font size 2021-09-13 08:48:11 -04:00