piker/README.rst

116 lines
4.2 KiB
ReStructuredText
Raw Normal View History

2018-01-20 18:19:15 +00:00
piker
2018-02-15 18:33:53 +00:00
-----
2018-11-23 16:04:21 +00:00
Trading gear for hackers.
2018-01-27 06:52:24 +00:00
2019-03-22 02:46:20 +00:00
|travis|
2018-04-11 04:10:45 +00:00
2019-02-26 06:14:58 +00:00
``piker`` is an attempt at a pro-grade, broker agnostic, next-gen FOSS toolset for real-time
2020-05-12 02:43:30 +00:00
trading and financial analysis targetted at hardcore Linux users.
2019-02-26 06:14:58 +00:00
2020-05-12 02:43:30 +00:00
It tries to use as much bleeding edge tech as possible including (but not limited to):
2019-02-26 06:14:58 +00:00
2020-06-03 16:09:55 +00:00
- Python 3.7+ for glue_ and business logic
2020-07-08 19:42:51 +00:00
- trio_ for structured concurrency
- tractor_ for distributed, multi-core, real-time streaming
2020-06-02 14:32:04 +00:00
- marketstore_ for historical and real-time tick data persistence and sharing
- techtonicdb_ for L2 book storage
2020-05-12 02:43:30 +00:00
- Qt_ for pristine high performance UIs
2020-07-08 19:42:51 +00:00
- pyqtgraph_ for real-time charting
- ``numpy`` for `fast numerics`_
2019-02-26 06:14:58 +00:00
2018-04-11 04:10:45 +00:00
.. |travis| image:: https://img.shields.io/travis/pikers/piker/master.svg
:target: https://travis-ci.org/pikers/piker
2019-03-22 02:46:20 +00:00
.. _trio: https://github.com/python-trio/trio
.. _tractor: https://github.com/goodboy/tractor
2020-05-12 02:43:30 +00:00
.. _marketstore: https://github.com/alpacahq/marketstore
2020-06-02 14:32:04 +00:00
.. _techtonicdb: https://github.com/0b01/tectonicdb
2020-05-12 02:43:30 +00:00
.. _Qt: https://www.qt.io/
2020-06-03 16:09:55 +00:00
.. _glue: https://numpy.org/doc/stable/user/c-info.python-as-glue.html#using-python-as-glue
2020-07-08 19:42:51 +00:00
.. _fast numerics: https://zerowithdot.com/python-numpy-and-pandas-performance/
2019-03-22 02:46:20 +00:00
2020-05-12 02:43:30 +00:00
Focus and Features:
*******************
2020-06-02 14:32:04 +00:00
- 100% federated: running your code on your hardware with your
broker's data feeds, privately, **is the point** (this is not a web-based *I
2020-05-12 02:43:30 +00:00
don't know how to run my own system* project).
2020-06-02 14:32:04 +00:00
- Asset class, broker, exchange agnostic.
- Built on a highly reliable `structured concurrent actor model
<tractor>`_ with built in async streaming and scalability protocols
allowing for a distributed architecture from the ground up.
2020-06-01 18:43:39 +00:00
- Privacy: your orders, indicators, algos are all run client side and
are shared only with the (groups of) traders you specify.
2020-05-12 02:43:30 +00:00
- Production grade, highly attractive native UIs that feel and fit like
a proper pair of skinny jeans; only meant to be used with a proper
tiling window manager (no, we are not ignorant enough to roll our own).
- Sophisticated charting capable of processing large data sets in real-time
while sanely displaying complex models and strategy systems.
- Built-in support for *hipstery* indicators and studies that you
probably haven't heard of but that the authors **know** generate alpha
when paired with the right strategies.
2020-06-01 18:43:39 +00:00
- Emphasis on collaboration through sharing of data, ideas, and processing
2020-06-02 14:32:04 +00:00
power. We will not host your code in the cloud nor ask you to
participate in any lame "alpha competitions".
2020-05-12 02:43:30 +00:00
- Adoption is very low priority, especially if you're not an experienced
2020-06-01 18:43:39 +00:00
trader; the system is not built for sale it is built for *people*.
- No, we will never have a "corporation friendly license"; if you intend to use
this code base we must know about it.
2020-05-12 02:43:30 +00:00
Fitting with these tenets, we're always open to new framework suggestions and ideas.
2019-03-22 02:46:20 +00:00
Building the best looking, most reliable, keyboard friendly trading platform is the dream.
Feel free to pipe in with your ideas and quiffs.
2018-01-27 06:52:24 +00:00
2019-02-26 06:14:58 +00:00
2018-01-27 06:52:24 +00:00
Install
*******
2019-03-22 02:46:20 +00:00
``piker`` is currently under heavy pre-alpha development and as such should
2018-01-27 06:52:24 +00:00
be cloned from this repo and hacked on directly.
2018-02-15 18:33:53 +00:00
A couple bleeding edge components are being used atm pertaining to
2020-07-08 19:42:51 +00:00
new components within `trio`_.
2019-04-30 17:19:04 +00:00
2018-02-15 18:33:53 +00:00
For a development install::
2018-02-12 15:55:04 +00:00
git clone git@github.com:pikers/piker.git
cd piker
2019-04-30 17:19:04 +00:00
pipenv install --pre -e .
2018-03-28 19:22:39 +00:00
pipenv shell
2018-02-12 15:55:04 +00:00
2019-03-22 02:46:20 +00:00
Broker Support
**************
2020-07-08 19:42:51 +00:00
For live data feeds the set of supported brokers is:
- Questrade_ which comes with effectively free L1
- IB_ via ib_insync
- Webull_ via the reverse engineered public API
- Kraken_ for crypto over their public websocket API
2019-03-22 02:46:20 +00:00
If you want your broker supported and they have an API let us know.
.. _Questrade: https://www.questrade.com/api/documentation
2020-07-08 19:42:51 +00:00
.. _IB: https://interactivebrokers.github.io/tws-api/index.html
.. _Webull: https://www.kraken.com/features/api#public-market-data
.. _Kraken: https://www.kraken.com/features/api#public-market-data
2019-03-22 02:46:20 +00:00
2020-07-08 19:42:51 +00:00
Check out some charts
*********************
Bet you weren't expecting this from the foss::
2018-03-21 21:32:32 +00:00
2020-07-08 19:42:51 +00:00
piker chart spy.arca
2018-03-21 21:32:32 +00:00
2018-02-12 15:55:04 +00:00
2020-07-08 19:42:51 +00:00
It is also possible to run a specific broker's data feed as a top
level micro-service daemon::
2018-01-27 06:52:24 +00:00
2020-07-08 19:42:51 +00:00
pikerd -l info -b ib
2018-04-18 18:03:59 +00:00
Then start the client app as normal::
2020-07-08 19:42:51 +00:00
piker chart -b ib ES.GLOBEX
2018-04-18 18:03:59 +00:00
2018-03-28 19:22:39 +00:00
.. _pipenv: https://docs.pipenv.org/