Tyler Goodlet
ea3d96e7ed
Accept arbitrary QEvent subscriptions via a set
2021-05-28 13:30:26 -04:00
Tyler Goodlet
7fa9f3f542
Add `Client.search_symbols()` to all backends, use it in `piker search`
2021-05-28 12:29:58 -04:00
Tyler Goodlet
c56c7b8540
Increase min debounce period, stop searching on user nav selection
2021-05-28 10:16:00 -04:00
Tyler Goodlet
50aff72f8e
Don't require map (yet) in backend modules
2021-05-27 13:05:23 -04:00
Tyler Goodlet
ec6ea32dda
Don't pass through linked charts x-axis handle
2021-05-27 13:05:23 -04:00
Tyler Goodlet
e88e5b8ce2
Decrease binance search debounce period
2021-05-27 13:05:23 -04:00
Tyler Goodlet
3e39e9620c
Add a no data available error
2021-05-27 13:05:23 -04:00
Tyler Goodlet
7dfc7f7fa2
Factor chart selection into widget, cleanups, add resource links
2021-05-27 13:05:23 -04:00
Tyler Goodlet
ab3adcee9e
Get basic switch-on-click mouse support working
2021-05-27 13:05:23 -04:00
Tyler Goodlet
607e1a8299
Add per-provider-async searching with status updates
2021-05-27 13:05:23 -04:00
Tyler Goodlet
89beb92866
Add api for per-section filling/clearing
...
Makes it so we can move toward separate provider results fills in an
async way, on demand.
Also,
- add depth 1 iteration helper method
- add section finder helper method
- fix last selection loading to be mostly consistent
2021-05-27 13:05:23 -04:00
Tyler Goodlet
c478ddaed0
Disable cursor blink globally
2021-05-27 13:05:23 -04:00
Tyler Goodlet
924960a359
Add label to search bar
2021-05-27 13:05:23 -04:00
Tyler Goodlet
46d88965d3
Get LIFO sort on cache syms working properly
2021-05-27 13:05:23 -04:00
Tyler Goodlet
44f4fdf043
Type annot the internal symbol cache
2021-05-27 13:05:23 -04:00
Tyler Goodlet
59475cfd81
Store lowercase symbols within piker data internals
2021-05-27 13:05:23 -04:00
Tyler Goodlet
af9dcf9230
Use an ordered dict to get LIFO cache sorting on sym selection
2021-05-27 13:05:23 -04:00
Tyler Goodlet
9bfc230dde
Speedup: load provider searches async at startup
2021-05-27 13:05:23 -04:00
Tyler Goodlet
c9cf72d554
Add remote context allocation api to service daemon
...
This allows for more deterministically managing long running sub-daemon
services under `pikerd` using the new context api from `tractor`.
The contexts are allocated in an async exit stack and torn down at root
daemon termination. Spawn brokerds using this method by changing the
persistence entry point to be a `@tractor.context`.
2021-05-27 13:05:23 -04:00
Tyler Goodlet
27d704b32e
To avoid feed breakage, just give up on history after too many throttles for now
2021-05-27 13:05:23 -04:00
Tyler Goodlet
82cdb176e1
Make ctrl-l highlight current text in edit
2021-05-27 13:05:23 -04:00
Tyler Goodlet
0cd3cb3328
Drop old todo
2021-05-27 13:05:23 -04:00
Tyler Goodlet
212882a5a5
Don't try to show xhair if no active plot
2021-05-27 13:05:23 -04:00
Tyler Goodlet
307afb1935
Clean some key handling
2021-05-27 13:05:23 -04:00
Tyler Goodlet
67498c60af
More UX features
...
- load previous search state on open
- show cached on empty search bar
- allow ctrl-u/d to navigate provider "sections"
2021-05-27 13:05:23 -04:00
Tyler Goodlet
8129fcc648
Ignore key auto-repeats
2021-05-27 13:05:23 -04:00
Tyler Goodlet
a4627c2b04
Send blank packet on no match to avoid blocking search stream
2021-05-27 13:05:23 -04:00
Tyler Goodlet
07d8bf1453
Add a `.select_first()` view method + more cleaning
2021-05-27 13:05:23 -04:00
Tyler Goodlet
d5e83e61d4
Reorder, drop some cruft
2021-05-27 13:05:23 -04:00
Tyler Goodlet
9d2c8a9526
Factor selection details into completer view methods
2021-05-27 13:05:23 -04:00
Tyler Goodlet
43d73b4a7c
Info log the current provider search
2021-05-27 13:05:23 -04:00
Tyler Goodlet
ddc2c8975a
Ignore whitespace patterns in ib search
2021-05-27 13:05:23 -04:00
Tyler Goodlet
64c1d9a965
Support ctrl-space to open search pane
2021-05-27 13:05:23 -04:00
Tyler Goodlet
d8a200aadc
Increase completion-tree width, support ctrl-space toggle
2021-05-27 13:05:23 -04:00
Tyler Goodlet
2471ce446e
Require `<symbol>.<provider>` format to cli
2021-05-27 13:05:23 -04:00
Tyler Goodlet
c9311dd7d0
Few more derivs symbols
2021-05-27 13:05:23 -04:00
Tyler Goodlet
6f3b799960
Skip ib exchanges we haven't tested yet
2021-05-27 13:05:23 -04:00
Tyler Goodlet
42fda2a9e6
Drop old code
2021-05-27 13:05:23 -04:00
Tyler Goodlet
e77a51f16e
Support multi-provider cache symbol switching
2021-05-27 13:05:23 -04:00
Tyler Goodlet
1bd0ee8746
Support loading multi-brokerds search at startup
2021-05-27 13:05:23 -04:00
Tyler Goodlet
fd8dc4f1a3
Make -b a multi-option for backends
2021-05-27 13:05:23 -04:00
Tyler Goodlet
59377da0ad
Load pause configs from backends on feed opens
2021-05-27 13:05:23 -04:00
Tyler Goodlet
bbd5883e52
Add search pause configs to backends
2021-05-27 13:05:23 -04:00
Tyler Goodlet
b2ff09f193
Support min and max keyboard pauses
...
Some providers do well with a "longer" debounce period (like ib) since
searching them too frequently causes latency and stalls. By supporting
both a min and max debounce period on keyboard input we can only send
patterns to the slower engines when that period is triggered via
`trio.move_on_after()` and continue to relay to faster engines when the
measured period permits. Allow search routines to register their "min
period" such that they can choose to ignore patterns that arrive before
their heuristically known ideal wait.
2021-05-27 13:05:23 -04:00
Tyler Goodlet
63363d750c
Port chart to multi-search api
2021-05-27 13:05:23 -04:00
Tyler Goodlet
cb102f692c
Top level widget `.focus()`
2021-05-27 13:05:23 -04:00
Tyler Goodlet
c9c686c98d
Register context-stream with multi-search for each feed
2021-05-27 13:05:23 -04:00
Tyler Goodlet
0163a582a5
Move search machinery to ui module, add fast cached chart selection
2021-05-27 13:05:23 -04:00
Tyler Goodlet
82ece83d33
Drop commented cruft
2021-05-27 13:05:23 -04:00
Tyler Goodlet
b39fd5e1fc
Use per-provider indented tree layout for results
2021-05-27 13:05:23 -04:00
Tyler Goodlet
25dbe60c77
Flip to ctrl-l to pop out search/list
2021-05-27 13:05:23 -04:00
Tyler Goodlet
51c61587d2
Make list pop out next to primary y-axis
2021-05-27 13:05:23 -04:00
Tyler Goodlet
2c24c9ef2d
Compose search bar and view under parent widget
2021-05-27 13:05:23 -04:00
Tyler Goodlet
f19f4348e0
Decouple symbol search from feed type
2021-05-27 13:05:22 -04:00
Tyler Goodlet
e5e9a7c582
Add symbol searching for ib backend
...
Obviously this only supports stocks to start, it looks like we might
actually have to hard code some of the futures/forex/cmdtys that don't
have a search.. so lame. Special throttling is added here since the api
will grog out at anything more then 1Hz.
Additionally, decouple the bar loading request error handling from the
shm pushing loop so that we can always recover from a historical bars
throttle-error even if it's on the first try for a new symbol.
2021-05-27 13:05:22 -04:00
Tyler Goodlet
25d7122cb6
Throttle requests using a static "typing paused period"
2021-05-27 13:05:22 -04:00
Tyler Goodlet
ef1b0911f3
Add symbol search to ib
2021-05-27 13:05:22 -04:00
Tyler Goodlet
82a8e0a7b6
Accept lower case sym requests in kraken backend
2021-05-27 13:05:22 -04:00
Tyler Goodlet
5766dd518d
Enforce lower case symbols across providers
2021-05-27 13:05:22 -04:00
Tyler Goodlet
478b114708
First draft completion in background task
2021-05-27 13:05:22 -04:00
Tyler Goodlet
c9efbcc6d2
Drop completion list from startup
2021-05-27 13:05:22 -04:00
Tyler Goodlet
431fdd3f9c
Add initial working symbol search with async completions
2021-05-27 13:05:22 -04:00
Tyler Goodlet
ad494db213
Make search routine a tractor context
2021-05-27 13:05:22 -04:00
Tyler Goodlet
a5826e6e22
Up the kb event queue size
2021-05-27 13:05:22 -04:00
Tyler Goodlet
534553a6f5
Add client side multi-provider feed symbol search
2021-05-27 13:05:22 -04:00
Tyler Goodlet
4b818ea2f2
Add initial symbol search api for kraken
2021-05-27 13:05:22 -04:00
Tyler Goodlet
be39e9bdf5
Load async kb search handler at startup
2021-05-27 13:05:22 -04:00
Tyler Goodlet
60d44f30ee
Make search kb handling async
2021-05-27 13:05:22 -04:00
Tyler Goodlet
2861f321ce
Add async keyboard cloner sub-sys
2021-05-27 13:05:22 -04:00
Tyler Goodlet
5e1b15f319
Repair indents from rebasing
2021-05-27 13:05:22 -04:00
Tyler Goodlet
821d5ab9ec
Bring back in and merge tractor stream api patch
2021-05-27 13:05:22 -04:00
Tyler Goodlet
da0cb9b2ac
Call search focus directly
2021-05-27 13:05:22 -04:00
Tyler Goodlet
0e83906f11
Initial WIP search completer; still a mess
2021-05-27 13:05:22 -04:00
Tyler Goodlet
c26f4d9877
Add kraken fuzzy symbol search
2021-05-27 13:05:22 -04:00
Tyler Goodlet
157f6ab02b
Drop lingering chart focus call
2021-05-27 13:05:22 -04:00
Tyler Goodlet
1f9f2b873a
Super fast switching, just hide loaded charts
2021-05-27 13:05:22 -04:00
Tyler Goodlet
0627f7dcee
First draft: symbol switching via QLineEdit widget
2021-05-27 13:05:22 -04:00
Tyler Goodlet
27aed85404
Handle no matching symbols case
2021-05-27 13:05:22 -04:00
Tyler Goodlet
9cad59366f
Extract min tick info from symbol data
2021-05-25 08:46:10 -04:00
Tyler Goodlet
165d6257fa
Get symbol search working for binance
2021-05-25 08:46:04 -04:00
goodboy
9c821c8cfd
Merge pull request #181 from pikers/syseng_tweaks
...
Syseng tweaks
2021-05-25 08:39:06 -04:00
Tyler Goodlet
9e367432fd
Minimize update to Qt reported display's refresh rate
2021-05-25 06:56:18 -04:00
Tyler Goodlet
e623c58754
Naively throttle graphics updates to 60 FPS
2021-05-25 06:33:22 -04:00
Tyler Goodlet
f51e12819a
Attach to order client *after* feed connection to speed up the startup time
2021-05-24 12:27:23 -04:00
Tyler Goodlet
319eacd8c1
Use compact async with tuple syntax from py3.9
2021-05-24 12:26:50 -04:00
Tyler Goodlet
efd93d058a
Breakout fsp rt loop as non-closure for readability
2021-05-24 12:26:44 -04:00
Tyler Goodlet
f6f4a0cd8d
Use tractor settings for qtractor
2021-05-24 12:26:34 -04:00
Tyler Goodlet
74b4b4b130
Expose registry port as dict
2021-05-24 12:26:28 -04:00
Tyler Goodlet
dcc60524cb
Add remote context allocation api to service daemon
...
This allows for more deterministically managing long running sub-daemon
services under `pikerd` using the new context api from `tractor`.
The contexts are allocated in an async exit stack and torn down at root
daemon termination. Spawn brokerds using this method by changing the
persistence entry point to be a `@tractor.context`.
2021-05-24 12:26:11 -04:00
Tyler Goodlet
435e005d6e
Drop quantdum legend item
2021-05-24 12:23:02 -04:00
Tyler Goodlet
0b36bacfb6
Avoid weird `pydantic` runtime warning
2021-05-24 12:22:17 -04:00
Tyler Goodlet
2635ade908
Reminder to remove msgpack-numpy
2021-05-24 12:20:48 -04:00
Tyler Goodlet
9b59471dc1
Pass debug flag down to any daemons
2021-05-24 12:20:20 -04:00
Tyler Goodlet
6e70bc4fa7
New tractor non-default port
2021-05-24 12:19:38 -04:00
Tyler Goodlet
4d03d62641
Don't submit limits on alerts
2021-05-24 12:17:16 -04:00
Tyler Goodlet
ecd94ce24d
Better indexing logic?
2021-05-24 12:17:08 -04:00
Tyler Goodlet
7b8c482719
Add reconnect logic help link
2021-05-24 12:16:49 -04:00
Tyler Goodlet
9c3f8ff050
Only do context unsubs in main feed bus path
2021-05-24 12:16:26 -04:00
Tyler Goodlet
a7cee86fea
Just de-lint imports
2021-05-24 12:16:15 -04:00
goodboy
372b0dbace
Merge pull request #170 from guilledk/binance_backend
...
Add Binance backend
2021-05-24 10:54:55 -04:00
Tyler Goodlet
b6d8c300d4
Slap in brokers.toml template if none exists
2021-05-22 15:11:39 -04:00
Guillermo Rodriguez
a0dfdd935f
Post @goodboy review commit
2021-05-21 22:23:35 -03:00
Tyler Goodlet
7b26bd45e2
Get binance OHLC history and quote format correct
...
This gets the binance provider meeting the data feed schema requirements
of both the OHLC sampling/charting machinery as well as proper
formatting of historical OHLC history.
Notably,
- spec a minimal ohlc dtype based on the kline endpoint
- use a dataclass to parse out OHLC bar datums and pack into np.ndarray/shm
- add the ``aggTrade`` endpoint to get last clearing (traded) prices,
validate with ``pydantic`` and then normalize these into our tick-quote
format for delivery over the feed stream api.
- a notable requirement is that the "first" quote from the feed must
contain a 'last` field so the clearing system can start up correctly.
2021-05-21 15:35:36 -04:00
Tyler Goodlet
2ef5a52521
Fix broken import in ib backend
2021-05-20 19:34:45 -04:00
Guillermo Rodriguez
432bd96474
Added missing toml dependency to setup.py
...
Pinned qdarkstyle to 2.8.1
Updated arrow timestamp api used in kraken backend
2021-05-16 18:53:54 -03:00
Guillermo Rodriguez
604e195bc0
Got rid of websocket OHLC API, and added l1 tick streaming
2021-05-07 10:59:08 -03:00
Guillermo Rodriguez
7e493625f6
Finally backfilling is working, still need to work on realtime updates!
2021-05-05 10:17:52 -03:00
Guillermo Rodriguez
d327584039
Rough translation of kraken backend to binance API, still missing some
...
important parts
2021-05-04 22:52:53 -03:00
Tyler Goodlet
c08f192f77
Move charting to new tractor stream api
...
This required a fsp task spawning logic rework which ended up being
cleaner just spawning tasks in a loop sequentially instead of trying
a 2-phase spawn-then-initialize approach.
This also includes changes from the symbol search branch hacked in.
Mostly it includes isolating the main chart startup-sequence to a
function that can be run in a new task every time a new symbol is
requested by the selector/searcher. The actual search functionality
obviously isn't in here yet but minor changes are included as part of
pulling out the `tractor` stream api patch from the symbol search dev
branch.
2021-04-29 11:28:00 -04:00
Tyler Goodlet
d3b50b9920
Port clearing engine to new tractor stream api
2021-04-29 09:10:36 -04:00
Tyler Goodlet
56db2c812d
Port fsp engine to new tractor stream api
2021-04-29 09:10:28 -04:00
Tyler Goodlet
0d9f091a34
Port data feed to new tractor stream api
2021-04-29 09:10:18 -04:00
Tyler Goodlet
3375735914
Port kivy monitor to new tractor stream api
2021-04-29 09:10:11 -04:00
Tyler Goodlet
8a140b5ae8
Pass loglevel as named arg to pikerd
2021-04-15 11:20:30 -04:00
Tyler Goodlet
7d6bc4d856
Move feed api(s) into new submodule
...
Also add a --pdb flag to chart app.
2021-04-15 10:43:29 -04:00
Tyler Goodlet
0b10c8d6d6
Make standalone mode work again
2021-04-15 08:23:08 -04:00
Tyler Goodlet
feeabb3d28
Add --pdb flag to pikerd to enable service debug mode
2021-04-14 12:57:46 -04:00
Tyler Goodlet
7f580ad356
Pass through kwargs
2021-04-14 12:56:08 -04:00
Tyler Goodlet
9622254cdb
Hack broadcast chan for order submissions, smh
2021-04-14 11:02:14 -04:00
Tyler Goodlet
4774881812
Handle predicate not yet inserted to exec loop
2021-04-10 14:34:29 -04:00
Tyler Goodlet
9a15cd48f0
Just symbol info in window title
2021-04-10 14:18:40 -04:00
Tyler Goodlet
598aec579f
Avoid token checking type mismatches
2021-04-10 14:18:40 -04:00
Tyler Goodlet
fa7fadebac
Report sym on unexpected open
2021-04-10 14:18:40 -04:00
Tyler Goodlet
3147a49384
Move sample-broadcast routine into sampling module
2021-04-10 14:18:40 -04:00
Tyler Goodlet
71d02db126
Rename "buffer" to "sampling"
2021-04-10 14:18:40 -04:00
Tyler Goodlet
1523637979
Always update L1 labels
2021-04-10 14:18:40 -04:00
Tyler Goodlet
3506bbe05c
Nest async withs
2021-04-10 14:18:40 -04:00
Tyler Goodlet
a18a4b5a4c
Call the app what it is
2021-04-10 14:18:40 -04:00
Tyler Goodlet
20c99733b6
Let cli pass through actor name
2021-04-10 14:18:40 -04:00
Tyler Goodlet
47f823ab22
Always close emsd data connection on close
2021-04-10 14:18:40 -04:00
Tyler Goodlet
1281755d65
Don't use mem chan cloning, it doesn't actually broadcast
2021-04-10 14:18:40 -04:00
Tyler Goodlet
ddae08493b
Manage the send mem chan lifetime
2021-04-10 14:18:40 -04:00
Tyler Goodlet
28a961ebc0
Add a maybe-startup-runtime manager
2021-04-10 14:18:40 -04:00
Tyler Goodlet
100e27ac12
Task lock bus loading, always close feed stream on disconnect
2021-04-10 14:18:40 -04:00
Tyler Goodlet
8069bbe105
Drop old incrementer func
2021-04-10 14:18:40 -04:00
Tyler Goodlet
ce4144aace
Deliver and utilise broker backend OHLC sample rate in init msg
2021-04-10 14:18:40 -04:00
Tyler Goodlet
c05fc8991a
Rework ohlc sampling to launch from .start()
...
Avoid bothering with a trio event and expect the caller to do manual shm
registering with the write loop. Provide OHLC sample period indexing
through a re-branded pub-sub func ``iter_ohlc_periods()``.
2021-04-10 14:18:40 -04:00
Tyler Goodlet
a8a3f098cf
Drop lingering prints
2021-04-10 14:18:40 -04:00
Tyler Goodlet
5a970dad72
Port kraken backend to new data feed api
2021-04-10 14:18:40 -04:00
Tyler Goodlet
29b73b41fb
Slight rename; fix predicate is None bug
2021-04-10 14:18:40 -04:00
Tyler Goodlet
24bda8636e
Port quest to new client api
2021-04-10 14:18:40 -04:00
Tyler Goodlet
30dabbab44
Support backend volume summing; handle disconnects
2021-04-10 14:18:40 -04:00
Tyler Goodlet
1d013126b9
Fix type annot
2021-04-10 14:18:40 -04:00
Tyler Goodlet
b2eacb85d4
Don't hold lock on initial client construction
2021-04-10 14:18:40 -04:00
Tyler Goodlet
3ebb7ab6b1
Only activate Qt hidpi detection on windows for now
2021-04-10 14:18:40 -04:00
Tyler Goodlet
4f51ca74f4
Broadcast all tick types to subs, not just trades
2021-04-10 14:18:40 -04:00
Tyler Goodlet
5fc2aba3ed
Drop some more old cruft
2021-04-10 14:18:40 -04:00
Tyler Goodlet
8ccf987d52
Fix typo
2021-04-10 14:18:40 -04:00
Tyler Goodlet
7cc395b5bf
Open data feed in ems main entrypoint
2021-04-10 14:18:40 -04:00
Tyler Goodlet
14c5fc24ec
Port to new setup routine name
2021-04-10 14:18:40 -04:00