Tyler Goodlet
fe0d66e847
Drop removed module import
2021-08-26 17:04:59 -04:00
Tyler Goodlet
310d8f485e
Add disclaimer to old data mod
2021-08-26 17:04:59 -04:00
Tyler Goodlet
68ce5b3550
Add lifo cache to new module; drop "utils", bleh
2021-08-26 17:04:59 -04:00
Tyler Goodlet
a0660e553f
Start top level cacheing apis module
2021-08-26 17:04:59 -04:00
Tyler Goodlet
89b2089562
Fixup missing ib section handling; drop `.api` subsection
2021-08-24 10:27:25 -04:00
Tyler Goodlet
d5394ac677
Fix TWS triggered trades msg packing
2021-08-24 10:26:41 -04:00
Tyler Goodlet
a10d20c041
Add ib config section support
2021-07-27 07:09:01 -04:00
Tyler Goodlet
9c24bb6480
Make json resp log debug level
2021-07-07 07:07:01 -04:00
Tyler Goodlet
588b5c317c
Drop unseralizable "sec tag" for now
2021-06-14 00:02:23 -04:00
Tyler Goodlet
95f466b93d
Fix to msg attr access
2021-06-10 12:02:26 -04:00
goodboy
689bc0cde0
Merge pull request #190 from pikers/ems_to_bidir_streaming
...
Ems to bidir streaming
2021-06-10 08:45:44 -04:00
Tyler Goodlet
a9cbacd8aa
Move details assignements to static declaration
2021-06-10 08:24:51 -04:00
Tyler Goodlet
8e8a005128
Fix attr accesses on msg type
2021-06-09 12:22:02 -04:00
Konstantine Tsafatinos
90e5a10a66
modify error string to format: <name>.<provider>
2021-06-09 12:02:05 -04:00
Tyler Goodlet
db92683ede
Port ib orders to new msgs and bidir streaming api
2021-06-08 14:33:41 -04:00
Tyler Goodlet
02459cd964
Use new top level portal import
2021-06-08 14:31:14 -04:00
Konstantine Tsafatinos
099bf260f5
fix unknown kraken symbol raised error
2021-06-01 18:01:45 -04:00
Tyler Goodlet
9792b9aa7d
Drop search pause config; use default
2021-05-28 14:11:02 -04:00
Tyler Goodlet
51a8308105
Lower connection timeout duration
2021-05-28 14:11:02 -04:00
Tyler Goodlet
ff856a6ee3
Woops, make unsub pairs a list
2021-05-28 14:11:02 -04:00
Tyler Goodlet
19711bf024
Reconnect slow binance conns instead of error
2021-05-28 14:11:02 -04:00
Tyler Goodlet
d0e3f5a51c
Port binance and kraken to "reliable" ws API
2021-05-28 14:11:02 -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
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
44f4fdf043
Type annot the internal symbol cache
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
a4627c2b04
Send blank packet on no match to avoid blocking search stream
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
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
fd8dc4f1a3
Make -b a multi-option for backends
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
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
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
ad494db213
Make search routine a tractor context
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
c26f4d9877
Add kraken fuzzy symbol search
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
Tyler Goodlet
7b8c482719
Add reconnect logic help link
2021-05-24 12:16:49 -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
3375735914
Port kivy monitor to new tractor stream api
2021-04-29 09:10:11 -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
ddae08493b
Manage the send mem chan lifetime
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
24bda8636e
Port quest to new client api
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
5fc2aba3ed
Drop some more old cruft
2021-04-10 14:18:40 -04:00
Tyler Goodlet
a82f43e3a5
Rework data feed API to allow for caching streams
...
Move all feed/stream agnostic logic and shared mem writing into a new
set of routines inside the ``data`` sub-package. This lets us move
toward a more standard API for broker and data backends to provide
cache-able persistent streams to client apps.
The data layer now takes care of
- starting a single background brokerd task to start a stream for as
symbol if none yet exists and register that stream for later lookups
- the existing broker backend actor is now always re-used if possible
if it can be found in a service tree
- synchronization with the brokerd stream's startup sequence is now
oriented around fast startup concurrency such that client code gets
a handle to historical data and quote schema as fast as possible
- historical data loading is delegated to the backend more formally by
starting a ``backfill_bars()`` task
- write shared mem in the brokerd task and only destruct it once requested
either from the parent actor or further clients
- fully de-duplicate stream data by using a dynamic pub-sub strategy
where new clients register for copies of the same quote set per symbol
This new API is entirely working with the IB backend; others will need
to be ported. That's to come shortly.
2021-04-10 14:18:40 -04:00
Tyler Goodlet
f17a26c948
Don't mistakenly alias options to underlyingn for positions
2021-04-10 14:18:40 -04:00
Tyler Goodlet
0d4073dbd2
Move quote stream setup into a cacheing func
2021-04-10 14:18:40 -04:00
Tyler Goodlet
aa61bf5a65
Use mem-chans for quote streams; clone for multiple consumers
2021-04-10 14:18:40 -04:00
Tyler Goodlet
6265ae8057
Add position event relay to ib broker backend
2021-03-11 21:38:31 -05:00
Tyler Goodlet
2cabe1831c
Attempt to handle existing order updates with ib backend
2021-03-06 16:33:56 -05:00
Tyler Goodlet
8997b6029b
Drop cruft
2021-03-01 12:02:07 -05:00
Tyler Goodlet
72c4a4366b
Tag TWS trade events
2021-03-01 12:01:48 -05:00
Tyler Goodlet
1142a538ea
Don't forward errors without an order id
2021-02-22 10:45:01 -05:00
Tyler Goodlet
e6ea053d40
Get kivy/questrade shit working again
2021-02-21 12:32:40 -05:00
Tyler Goodlet
add63734f1
Add an auto-reconnect websocket API
2021-02-19 18:42:50 -05:00
Tyler Goodlet
bbd54e8f95
Report asset types, tick sizes, and order actions from ib
2021-02-19 17:23:37 -05:00
Tyler Goodlet
0c184b1b41
Port ib to new provide new tick size fields in symbol info
2021-02-06 14:37:24 -05:00
Tyler Goodlet
69df73afc3
Deliver symbol info from kraken; start using pydantic
2021-02-06 14:23:27 -05:00
Tyler Goodlet
708086cbcb
Convert contractsto dicts on errors
2021-01-26 13:34:49 -05:00
Tyler Goodlet
b4a4f12aa4
Send init message with kraken
2021-01-22 22:55:49 -05:00
Tyler Goodlet
10e47e349c
Include symbol deats in feed init message from ib
...
Async spawn a deats getter task whenever we load a symbol data feed.
Pass these symbol details in the first message delivered by the feed at
open. Move stream loop into a new func.
2021-01-22 17:11:53 -05:00
Tyler Goodlet
794665db70
Drop log msg
2021-01-18 20:28:52 -05:00
Tyler Goodlet
2bf95d7ec7
Fix clients map typing annot
2021-01-15 21:10:08 -05:00
Tyler Goodlet
bdc02010cf
Finally, sanely normalize local trades event data
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
ee8caa80d4
Add order cancellation and error support
2021-01-15 21:10:08 -05:00
Tyler Goodlet
12aebcc89c
Expose "proxy" api a little better
2021-01-15 21:10:08 -05:00
Tyler Goodlet
280739b51a
Add trades data streaming support
2021-01-15 21:10:08 -05:00
Tyler Goodlet
dba8457be9
Trigger kraken sample increment after startup
2021-01-07 12:17:10 -05:00
Tyler Goodlet
268f207a6c
Shadow 'close' field with 'last'
2021-01-05 08:02:48 -05:00
Tyler Goodlet
c7ff0804db
Graph snap quote immediately on ib spin up
2021-01-04 14:43:59 -05:00
Tyler Goodlet
5fddb581ab
Kill backfiller on "no history" error
2021-01-01 12:34:50 -05:00
Tyler Goodlet
d7f80d8ddb
Add note about shm limit
2020-12-29 18:05:36 -05:00
Tyler Goodlet
42761438f6
Pass backfiller explicit symbol str, don't require volume ticks
2020-12-26 18:04:32 -05:00
Tyler Goodlet
f27d639552
Port kraken to declare "wap" field
2020-12-19 16:53:51 -05:00
Tyler Goodlet
fda9fcbc55
Add historical backfilling to ib backend
2020-12-19 16:50:08 -05:00
Tyler Goodlet
c1109ee3fb
Add license headers to pertinent files
2020-11-06 12:23:14 -05:00
Tyler Goodlet
be4a3df7ba
Add L1 spread streaming to kraken
2020-11-06 11:35:40 -05:00
Tyler Goodlet
9c3850874d
Add all L1 tick types for ib
2020-11-05 08:18:55 -05:00
Tyler Goodlet
987c13c584
Classify L1 tick types
2020-11-03 16:22:04 -05:00
Tyler Goodlet
1640906b09
Write shm volume (facepalm), update open=close on first volume
2020-11-03 08:14:37 -05:00
Tyler Goodlet
307c501763
Add symbol field to ib quotes
2020-10-29 17:21:41 -04:00
Tyler Goodlet
da0789e184
Add symbol field to kraken quotes
2020-10-29 17:08:25 -04:00
Tyler Goodlet
454b445b4b
Add better shared mem writer task checking
...
If you have a common broker feed daemon then likely you don't want to
create superfluous shared mem buffers for the same symbol. This adds an
ad hoc little context manger which keeps a bool state of whether
a buffer writer task currently is running in this process. Before we
were checking the shared array token cache and **not** clearing it when
the writer task exited, resulting in incorrect writer/loader logic on
the next entry..
Really, we need a better set of SC semantics around the shared mem stuff
presuming there's only ever one writer per shared buffer at given time.
Hopefully that will come soon!
2020-10-15 15:02:42 -04:00