Tyler Goodlet
3ebb7ab6b1
Only activate Qt hidpi detection on windows for now
2021-04-10 14:18:40 -04:00
goodboy
feb8d5bbad
Merge pull request #153 from wattygetlood/windows_patches
...
Windows patches
2021-04-06 11:55:51 -04:00
Tyler Goodlet
6891309abd
Fix import
2021-04-03 12:22:14 -04:00
Tyler Goodlet
fb996bfffb
Change subpkg name in cli
2021-04-03 12:22:14 -04:00
Tyler Goodlet
20a9617c18
Use open pikerd from chart entrypoint
2021-04-03 12:22:14 -04:00
Tyler Goodlet
d4395dbcbc
Make default view more zooomed in
2021-03-31 14:26:32 -04:00
Tyler Goodlet
f75b3108ce
Size execution arrows to dpi
2021-03-31 14:26:13 -04:00
Tyler Goodlet
0dfa92230d
Size level line markers to dpi aware font size
2021-03-31 14:25:51 -04:00
Tyler Goodlet
54d36f26f0
Base anchor contents labels based on dpi-aware font bounding rect
2021-03-31 14:25:17 -04:00
Tyler Goodlet
3f7d9c5c15
Base axis text offset on dpi-aware font size
2021-03-31 14:24:39 -04:00
Tyler Goodlet
3bd87caf4b
Hip shot: try making low dpi font sizes "just work"
2021-03-29 17:52:32 -04:00
wattygetlood
c39c4f11db
Forcinng trio spawner seems to work?
2021-03-28 17:24:30 -04:00
Tyler Goodlet
07a5bf4b7c
Use low dpi inches on 96 dpi
2021-03-19 09:33:47 -04:00
Tyler Goodlet
77fbde1115
Override the inverse transform func from pg
2021-03-19 00:40:39 -04:00
Tyler Goodlet
6fa1d4dc88
Show xhair even if order is filled while line is hovered
2021-03-18 21:57:08 -04:00
Tyler Goodlet
5610807b8e
Move marker factory funcs to new mod
2021-03-18 16:59:22 -04:00
Tyler Goodlet
55de079320
Add low dpi settings and different default view bars counts
2021-03-18 13:40:31 -04:00
Tyler Goodlet
67c5563090
Enable marker-on-select through order mode
2021-03-18 13:33:10 -04:00
Tyler Goodlet
68f75b582a
More fixes for kivy shit
2021-03-18 13:32:34 -04:00
Tyler Goodlet
cd5da45abf
Show order line marker on hover
2021-03-18 13:28:28 -04:00
Tyler Goodlet
2c7d8cdbb0
Support hiding only "half" the xhair
2021-03-18 13:27:49 -04:00
Tyler Goodlet
e1dc2b9225
Enable daemon debug through top level kwarg
2021-03-17 08:36:34 -04:00
Tyler Goodlet
aaca2b2f33
Tweak L1 labels to have more spaces
2021-03-17 08:26:28 -04:00
Tyler Goodlet
17b66e685f
Experiment with zoom focal @ L1 edge
2021-03-17 08:25:58 -04:00
Tyler Goodlet
d1c8c2a072
More level line reworking
...
- break (custom) graphics item style marker drawing into separate func
but keep using it since it still seems oddly faster then the
QGraphicsPathItem thing..
- unfactor hover handler; it was uncessary
- make both the graphics path item and custom graphics items approaches
both work inside ``.paint()``
2021-03-16 19:36:05 -04:00
Tyler Goodlet
adf6437449
Move margin settings to class scope
2021-03-16 15:59:44 -04:00
Tyler Goodlet
61198818dc
Fix label snap on line highlight bug
2021-03-14 12:28:11 -04:00
Tyler Goodlet
cf2f001bcc
Add save last datum toggle to y-label
2021-03-13 21:06:53 -05:00
Tyler Goodlet
776395791a
Pass action to line editor
2021-03-13 19:31:22 -05:00
Tyler Goodlet
c75dacb239
Support func ops on field data, extend anchor logics
2021-03-13 19:29:52 -05:00
Tyler Goodlet
c71a3e0fc5
Level line look and feel rework
...
Add support for drawing ``QPathGraphicsItem`` markers but don't use them
since they seem to be shitting up when combined with the infinite line
(bounding rect?): weird artifacts and whatnot. The only way to avoid
said glitches seems to be to update inside the infinite line's
`.paint()` but that slows stuff down.. Instead stick with the manual
paint job use the same pin point: left of the L1 spread graphics - where
the lines now also extend to.
Further stuff:
- Pin the y-label to a line's value on hover.
- Disable x-dimension line moving
- Rework the labelling to be more minimal
2021-03-13 17:31:15 -05:00
Tyler Goodlet
887c305d46
Allow y-label pinning on cross hair hide
2021-03-13 17:29:35 -05:00
Tyler Goodlet
9798689961
Lengthen label arrow a tad
2021-03-13 17:28:57 -05:00
Tyler Goodlet
396f6b2a0d
Fix type annot
2021-03-12 07:41:47 -05:00
Tyler Goodlet
18ab81a967
Make crosshair lines a milder gray
2021-03-11 21:44:35 -05:00
Tyler Goodlet
624617d8e1
Don't run brokerds in debug mode by default
2021-03-11 21:44:10 -05:00
Tyler Goodlet
d016abcd0d
Adjust right axis anchor closure to include l1 label size
2021-03-11 21:43:29 -05:00
Tyler Goodlet
4a1df686a5
Update max l1 label size on chart
2021-03-11 21:42:38 -05:00
Tyler Goodlet
a51d5c536e
Add a couple more grays
2021-03-11 21:41:13 -05:00
Tyler Goodlet
31c14a2f9f
Add l1 label size tracking to chart widget
2021-03-11 21:40:50 -05:00
Tyler Goodlet
ea8120156f
Add position line updating to order mode
2021-03-11 21:40:06 -05:00
Tyler Goodlet
98bfee028a
Add a position line api
...
Add a line which shows the current average price position with and arrow
marker denoting the direction (long or short). Required some further
rewriting of the infinite line from pyqtgraph including:
- adjusting marker (arrow) placement to be offset from axis + l1 labels
- fixing the hover event to not require the `.movable` attribute to be
set
2021-03-11 21:35:09 -05:00
Tyler Goodlet
7075a968b4
Create an order mode module
2021-03-08 09:05:37 -05:00
Tyler Goodlet
fff9efe4aa
Snap level line movements to tick size
2021-03-07 22:16:46 -05:00
Tyler Goodlet
e71bcb363c
Drop stage line cacheing; the complexity isn't worth it.
2021-03-07 16:07:23 -05:00
Tyler Goodlet
de5a69c59c
Add mouse drag order update support to UI
2021-03-07 16:01:42 -05:00
Tyler Goodlet
6851bacd0a
Add drag start/end callback support, remove from cursor hovered on delete
2021-03-07 15:50:50 -05:00
Tyler Goodlet
a1a1dec885
Move L1 labels into lone module
2021-03-01 14:48:08 -05:00
Tyler Goodlet
9f9b5480a6
More explicit private var name
2021-02-24 12:05:09 -05:00
Tyler Goodlet
948e133cae
Split out ems daemon, client api and paper engine into new mods
2021-02-22 18:37:57 -05:00
Tyler Goodlet
a9bbc223bb
Add a new exchange subpackage
2021-02-22 17:28:34 -05:00
Tyler Goodlet
e6ea053d40
Get kivy/questrade shit working again
2021-02-21 12:32:40 -05:00
Tyler Goodlet
f724798336
Fix incorrect bounding rect calc
2021-02-21 12:02:20 -05:00
Tyler Goodlet
4b0e5662a5
Add default order lot sizes by asset type
2021-02-21 12:01:48 -05:00
Tyler Goodlet
6fb1945360
Fix and pass through piker loglevel correctly
2021-02-21 11:50:33 -05:00
Tyler Goodlet
aa4a2ef64f
Bump up font size one more time
2021-02-21 11:49:27 -05:00
Tyler Goodlet
c2890b8197
Port level line to xhair methods
2021-02-21 11:48:51 -05:00
Tyler Goodlet
d5b41e12c5
Add crosshair hide/show convenience methods
2021-02-21 11:45:24 -05:00
Tyler Goodlet
71745ddcd4
Even smaller text fill on axes
2021-02-21 11:44:58 -05:00
Tyler Goodlet
1ac4cc3dd3
Use new field label api for L1
2021-02-16 06:42:48 -05:00
Tyler Goodlet
b794855ad3
Port order mode to new order line api
2021-02-11 23:42:57 -05:00
Tyler Goodlet
d91f07c947
Drop old candlestick graphics code
2021-02-11 23:42:17 -05:00
Tyler Goodlet
aec8f1d25c
Hide y-label on level line mouse over
2021-02-11 23:41:40 -05:00
Tyler Goodlet
bf78c13df4
Attempt px perfection on crosshair lines placement
2021-02-11 14:03:47 -05:00
Tyler Goodlet
f51e503e47
Support arbitrary fields (with update) in labels
...
This turned into a larger endeavour then intended but now we're using our
own label system on level lines to be able to display things nicely
**pinned wherever we want in the UI**. Keep the old ``LevelLabel`` for
now for the L1 graphics but we'll likely replace this as well since i'm
pretty sure the new label type (which wraps `QGraphicsTextItem`) is more
performant anyway.
2021-02-11 13:59:50 -05:00
Tyler Goodlet
cbf259f3f3
Add hidpi issue regarding it being borky
2021-02-11 11:49:33 -05:00
Tyler Goodlet
ca576ca3cf
Add label delete method
2021-02-11 11:49:01 -05:00
Tyler Goodlet
0edca84b3d
Yet another font size tweak
2021-02-11 11:48:40 -05:00
Tyler Goodlet
dd1aed627e
Tidy axis code
2021-02-11 11:48:19 -05:00
Tyler Goodlet
21e1561a57
Add a sane label type..smh
2021-02-11 00:12:37 -05:00
Tyler Goodlet
386cd9404d
Drop hidpi detection? it doesn't seem to yield benefits
2021-02-08 07:07:04 -05:00
Tyler Goodlet
ac84087755
Fix stage line updating, size up arrow heads?
2021-02-08 07:06:00 -05:00
Tyler Goodlet
0449734c53
Drop YSticky for level lines stuff
2021-02-08 07:04:08 -05:00
Tyler Goodlet
1ef2d18a41
Try to make crosshair lines px perfect
2021-02-08 07:03:28 -05:00
Tyler Goodlet
708ed89894
Hard code font inches
2021-02-08 07:01:26 -05:00
Tyler Goodlet
890f932400
Use through lot digits, drop YSticky
2021-02-08 07:00:51 -05:00
Tyler Goodlet
d7f806c57b
Add arrowheads to labels
...
For labels that want it add nice arrow paths that point just over the
respective axis. Couple label text offset from the axis line based on
parent 'tickTextOffset' setting. Drop `YSticky` it was not enough
meat to bother with.
2021-02-08 06:40:11 -05:00
Tyler Goodlet
a8c4829cb6
Start using `tick_size` throughout charting
...
The min tick size is the smallest step an instrument can move in value
(think the number of decimals places of precision the value can have).
We start leveraging this in a few places:
- make our internal "symbol" type expose it as part of it's api
so that it can be passed around by UI components
- in y-axis view box scaling, use it to keep the bid/ask spread (L1 UI)
always on screen even in the case where the spread has moved further
out of view then the last clearing price
- allows the EMS to determine dark order live order submission offsets
2021-02-06 11:35:12 -05:00
Tyler Goodlet
03541bd368
Drop unneeded .hide(); add more comments
2021-01-26 22:16:18 -05:00
Tyler Goodlet
cfc36e7928
Snap y-cursor-label to min tick
2021-01-26 22:15:45 -05:00
Tyler Goodlet
5a0612e6a8
Factor some line and label steps
2021-01-26 13:34:29 -05:00
Tyler Goodlet
8501a9be4f
Lol actually fix screen wakeup lookup..
2021-01-26 12:26:43 -05:00
Tyler Goodlet
a232e8bc39
Display order size on order lines in order mode
2021-01-26 11:36:44 -05:00
Tyler Goodlet
25ec5faaef
Drop removed show_label kwarg
2021-01-26 11:28:24 -05:00
Tyler Goodlet
b9d9dbfc4a
Support size fields on order lines; avoid overlap with L1 lines
2021-01-26 11:27:50 -05:00
Tyler Goodlet
cc5af7319f
Slightly lighter sell red, try to fix screen stuff...
2021-01-22 23:02:23 -05:00
Tyler Goodlet
18fafb501d
Use dashed lines for dark orders
2021-01-22 23:01:12 -05:00
Tyler Goodlet
f072e2551b
Snap y-axis crosshair to min tick(s)
2021-01-22 22:59:00 -05:00
Tyler Goodlet
50d2d8517b
Add support for dotted style level lines
2021-01-22 22:57:42 -05:00
Tyler Goodlet
5327d7be5e
Add screen acquire timeout loop
2021-01-22 16:46:39 -05:00
Tyler Goodlet
f82127de31
Add "live order" submission using ctl-<action key>
2021-01-19 20:48:58 -05:00
Tyler Goodlet
7811119736
Support toggling level line highlighting
2021-01-19 20:47:55 -05:00
Tyler Goodlet
e6724b6559
Move order mode handling into charting code
2021-01-18 20:28:37 -05:00
Tyler Goodlet
5acd780eb6
Get live mode correct and working
2021-01-15 21:10:08 -05:00
Tyler Goodlet
3e959ec260
Add fill handler to order mode
2021-01-15 21:10:08 -05:00
Tyler Goodlet
c835cc10e0
Get "live" order mode mostly workin
2021-01-15 21:10:08 -05:00
Tyler Goodlet
f9d4df7378
Start higher level order mode API
2021-01-15 21:10:08 -05:00
Tyler Goodlet
53c0816c5f
Add color properties for level line and label
2021-01-15 21:10:08 -05:00
Tyler Goodlet
c1266a7a1d
Add buy/sell colors
2021-01-15 21:10:08 -05:00
Tyler Goodlet
e51670a573
Try dynamically loading screen
2021-01-15 21:10:08 -05:00
Tyler Goodlet
5503a5705a
Drop old line
2021-01-15 21:10:08 -05:00
Tyler Goodlet
39e4953a6a
Get order cancellation working
2021-01-07 22:08:25 -05:00
Tyler Goodlet
282cc85ba0
Create an "order mode"
...
Our first major UI "mode" (yes kinda like the modes in emacs) that has
handles to a client side order book api, line and arrow editors, and
interacts with a spawned `emsd` (the EMS daemon actor).
Buncha cleaning and fixes in here for various thingers as well.
2021-01-07 12:03:18 -05:00
Tyler Goodlet
8d66a17daf
Add a "lines editor" api/component
2021-01-05 13:37:03 -05:00
Tyler Goodlet
24536ad769
Get roundtrip alert uuids workin; stage order book api
2021-01-05 08:02:14 -05:00
Tyler Goodlet
d0a3deae09
Pass symbol type further down chart stack
2021-01-04 14:46:47 -05:00
Tyler Goodlet
267c8c6bd3
Go back to manual label contents check for now
2021-01-04 14:45:12 -05:00
Tyler Goodlet
7b5a72909e
Start a "real" alert looking msg
2021-01-03 17:23:45 -05:00
Tyler Goodlet
616a74865b
Better highlighted yellow
2021-01-03 17:23:23 -05:00
Tyler Goodlet
6e2328d351
More comments?
2021-01-03 17:23:06 -05:00
Tyler Goodlet
97b2f86cfe
Add preliminary support for alert line management
2021-01-03 11:12:51 -05:00
Tyler Goodlet
88d48bd188
Port to `Cursor`
2021-01-03 11:10:08 -05:00
Tyler Goodlet
08aa5984ec
Rename crosshair (type) to cursor
...
Since the "crosshair" is growing more and more UX implementation details
it probably makes sense to call it what it is; a python level mouse
abstraction. Add 2 internal sets: `_hovered` for allowing mouse hovered
objects to register themselves to other cursor aware components, and
`_trackers` for allowing scene items to "track" cursor movements via
a `on_tracked_source()` callback.
2021-01-03 10:46:28 -05:00
Tyler Goodlet
14dad08d98
Extend level line interaction
...
Support tracking the mouse cursor using a new `on_tracked_sources()`
callback method. Make hovered highlight a bit thicker and highlight when
click-dragged. Add a delete method for removing from the scene along
with label.
2021-01-03 10:43:53 -05:00
Tyler Goodlet
edbbcbf954
Add alert yellow
2021-01-03 10:39:06 -05:00
Tyler Goodlet
d492f5c35a
Define our own mouse clicked handler
2021-01-01 17:49:23 -05:00
Tyler Goodlet
a55d72f8d6
Create and "EMS" module for order execution/routing actor(s)
2021-01-01 17:49:02 -05:00
Tyler Goodlet
80d48e5ece
Dynamically override .boundingRect() after startup
2021-01-01 13:23:05 -05:00
Tyler Goodlet
e474d8c309
Remove horizontal crosshair on "a" hotkey
2021-01-01 13:05:50 -05:00
Tyler Goodlet
7a53f19eeb
Highlight level line label on hover
2021-01-01 13:05:16 -05:00
Tyler Goodlet
d602cbc985
Avoid active_plot race
2021-01-01 12:59:31 -05:00
Tyler Goodlet
bd85214017
Add draft order actor architecture
2021-01-01 12:40:05 -05:00
Tyler Goodlet
81b10b9dfc
Add initial y-axis zoom
2020-12-30 12:55:02 -05:00
Tyler Goodlet
f3a0b1e91e
Use pixel buffers on axis labels
2020-12-29 18:05:36 -05:00
Tyler Goodlet
1e09b0f08f
Type annot paint methods
2020-12-29 18:05:36 -05:00
Tyler Goodlet
98c3bb8aee
Add a pyqtgraph profiling toggle to chart CLI
2020-12-29 18:05:36 -05:00
Tyler Goodlet
a68fff4139
Break specialized graphics into specific mods
2020-12-29 18:05:36 -05:00
Tyler Goodlet
575b3a0605
Adjust imports
2020-12-29 18:05:36 -05:00
Tyler Goodlet
916396fbfe
Move fast curve graphics to new mod
2020-12-29 18:05:36 -05:00
Tyler Goodlet
19e3db8f61
Move OHLC items into new module
2020-12-29 18:05:36 -05:00
Tyler Goodlet
b4c28cb086
Start a new graphics sub-package
2020-12-29 18:05:36 -05:00
Tyler Goodlet
5d30f351af
Remove use of `tractor.run()`
2020-12-29 18:05:36 -05:00
Tyler Goodlet
b467e8fd8d
Try cache mode on a bunch of "static" graphics
2020-12-29 18:05:36 -05:00
Tyler Goodlet
588213a230
Add an experimental "fast appendable curve" graphic
2020-12-29 18:05:36 -05:00
Tyler Goodlet
93e76fa12c
Comment some unneeded PDI optimization flags
2020-12-29 18:05:36 -05:00
Tyler Goodlet
cac797a7fc
Add initial pixel buffer caching usage
...
Leverages `QGraphicsItem.cacheMode` to speed up interactivity via
less `.paint()` calls (on mouse interaction) and redraws of the
underlying path when there are no transformations (other then a shift).
In order to keep the "flat bar on new time period" UX, a couple special
methods have to be triggered to get a redraw of the pixel buffer when
appending new data.
Use `QPainterPath.controlPointRect()` over `.boundingRect()` since
supposedly it's a lot faster. Drop all use of `QPicture` (since it seems
to conflict with the pixel buffer stuff?) and it doesn't give any
measurable speedup when drawing the "last bar" lines.
Oh, and add some profiling for now.
2020-12-29 18:05:36 -05:00
Tyler Goodlet
bd73d02cfb
Avoid loading volume FSPs on symbols without any data
2020-12-28 14:43:17 -05:00
Tyler Goodlet
bc96c5847c
Port to new tractor api
2020-12-21 13:02:43 -05:00
Tyler Goodlet
714c757e3e
Add vwap back to fsp conf on feature branch
2020-12-21 13:02:43 -05:00
Tyler Goodlet
c01382294e
Add signal backfilling via trio task respawn
2020-12-21 13:02:43 -05:00
Tyler Goodlet
833a442ac0
Disable vwap in conf, feature delay
2020-12-19 16:57:58 -05:00
Tyler Goodlet
b72d7d3085
Drop profile calls on OHLC bars for now
2020-12-19 16:52:04 -05:00
Tyler Goodlet
df686755da
Drop legacy "historical" QPicture cruft
2020-12-19 16:51:11 -05:00
Tyler Goodlet
618c2f8e0a
More general salutation
2020-12-19 16:51:03 -05:00
Tyler Goodlet
db6f77481b
Stick with slightly smaller fonts
2020-12-19 16:50:54 -05:00
Tyler Goodlet
7ce27107df
Fix axes for shm primary indexing
2020-12-19 16:50:49 -05:00
Tyler Goodlet
c8537d59a8
Port charting to new shm primary indexing
2020-12-19 16:50:38 -05:00
Tyler Goodlet
9930430721
Close app on last window exit
...
Use a system triggered SIGINT on app close to tear down the streaming
stack and terminate the `trio`/`tractor` runtimes deterministically.
2020-12-19 16:50:29 -05:00
Tyler Goodlet
6d50ad75a7
Ensure right bar x index is an int
2020-12-19 16:49:57 -05:00
Tyler Goodlet
2568a2d2e9
First draft, make graphics work on shm primary index
...
This is a bit hacky (what with array indexing semantics being relative
to the primary index's "start" value but it works. We'll likely want
to somehow wrap this index finagling into an API soon.
2020-12-19 16:49:43 -05:00