Metadata-Version: 1.1
Name: clikraken
Version: 0.8.4
Summary: Command-line client for the Kraken exchange
Home-page: https://github.com/zertrin/clikraken
Author: Marc Gallet
Author-email: zertrin@gmail.com
License: Apache License, Version 2.0
Description: .. figure:: https://img.shields.io/maintenance/no/2019
           :alt: Maintenance
        
           Maintenance
        
        |Appveyor Build status| |PyPI Package latest release| |Wheel available|
        |Supported Versions| |Supported implementations| |GitHub license|
        
        clikraken
        =========
        
        *Note: As of 2019, I do not intend to maintain this tool further myself.
        Feel free to fork it if you want. If a well maintained fork appears, let
        me know so I can link to it from here.*
        
        **Command-line client for the Kraken exchange**
        
        This command line client allows you to get useful public and private
        information from `Kraken’s API <https://www.kraken.com/help/api>`__ and
        displays it in formatted tables.
        
        Moreover you can place or cancel simple orders (only simple or leveraged
        buy/sell market/limit orders are currently implemented).
        
        It is mainly oriented as an alternative to manually entering orders on
        Kraken’s webpages, to save some time and eliminate mouse clicks. It is
        not optimized for automated use.
        
        See package on PyPI: https://pypi.python.org/pypi/clikraken
        
        **WARNING**: This software is currently in development. I consider it in
        *beta* state, which means that it works well enough for me but hasn’t
        been thoroughly tested. There are probably undetected bugs left. **Use
        at your own risk!**
        
        See list of changes in the `Changelog <CHANGELOG.md>`__.
        
        List of supported Kraken API endpoints
        --------------------------------------
        
        +----------+----------------------------+---------------------------+
        | API Type | `API                       | used by clikraken command |
        |          | Endpoint <https://www.k    |                           |
        |          | raken.com/features/api>`__ |                           |
        +==========+============================+===========================+
        | public   | ``AssetPairs``             | asset_pairs (ap)          |
        +----------+----------------------------+---------------------------+
        | public   | ``Depth``                  | depth (d)                 |
        +----------+----------------------------+---------------------------+
        | public   | ``OHLC``                   | ohlc (oh)                 |
        +----------+----------------------------+---------------------------+
        | public   | ``Ticker``                 | ticker (t)                |
        +----------+----------------------------+---------------------------+
        | public   | ``Trades``                 | last_trades (lt)          |
        +----------+----------------------------+---------------------------+
        | private  | ``AddOrder``               | place (p)                 |
        +----------+----------------------------+---------------------------+
        | private  | ``Balance``                | balance (bal)             |
        +----------+----------------------------+---------------------------+
        | private  | ``CancelOrder``            | cancel (x)                |
        +----------+----------------------------+---------------------------+
        | private  | ``ClosedOrders``           | clist (cl)                |
        +----------+----------------------------+---------------------------+
        | private  | ``DepositAddresses``       | deposit_addresses (da)    |
        +----------+----------------------------+---------------------------+
        | private  | ``DepositMethods``         | deposit_methods (dm)      |
        +----------+----------------------------+---------------------------+
        | private  | ``Ledgers``                | ledgers (lg)              |
        +----------+----------------------------+---------------------------+
        | private  | ``OpenOrders``             | olist (ol)                |
        +----------+----------------------------+---------------------------+
        | private  | ``OpenPositions``          | positions (pos)           |
        +----------+----------------------------+---------------------------+
        | private  | ``QueryLedgers``           | ledgers (lg)              |
        +----------+----------------------------+---------------------------+
        | private  | ``QueryOrders``            | olist (ol) / clist (cl)   |
        +----------+----------------------------+---------------------------+
        | private  | ``QueryTrades``            | trades (tr)               |
        +----------+----------------------------+---------------------------+
        | private  | ``TradeBalance``           | trade_balance (tbal)      |
        +----------+----------------------------+---------------------------+
        | private  | ``TradesHistory``          | trades (tr)               |
        +----------+----------------------------+---------------------------+
        
        Note: any API endpoint listed at https://www.kraken.com/features/api but
        not in the above list has not been implemented in clikraken (yet).
        
        Installation
        ------------
        
        Step 0: Create a virtualenv (optional)
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        You can install it in a virtualenv if you wish to keep this program and
        dependencies isolated from the rest of your system, but that’s not
        mandatory.
        
        ::
        
           mkdir -p ~/.venv  # or any folder of your choice
           pyvenv ~/.venv/clikraken
        
        And activate it:
        
        ::
        
           source ~/.venv/clikraken/bin/activate
        
        Step 1: Install clikraken
        ~~~~~~~~~~~~~~~~~~~~~~~~~
        
        ::
        
           pip install clikraken
        
        If everything went well, ``clikraken --version`` should output the
        program’s version without error.
        
        Step 2: Add your API key in the file ``~/.config/clikraken/kraken.key``
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        You will need it to perform private queries to the Kraken API.
        
        (Create the config folder if needed: ``mkdir -p ~/.config/clikraken``)
        
        ::
        
           keykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykey
           secretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecret
        
        You should probably change the permissions to this file to protect it:
        ``chmod 600 ~/.config/clikraken/kraken.key``
        
        Alternatively, you can set a path in the environment variable
        ``CLIKRAKEN_API_KEYFILE`` to override the default keyfile location.
        
        Step 3 (optional): Generate a settings file and adapt it to your needs
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        clikraken looks for settings in ``~/.config/clikraken/settings.ini`` per
        default.
        
        If the settings file doesn’t exist yet, default settings are assumed.
        You can see the default settings by calling
        ``clikraken generate_settings``. Currently these settings are mostly
        useful for defining the default currency pair to use if the option
        ``--pair`` (or ``-p``) is not provided. *The current built-in default
        pair is XETHZEUR* (Ethereum/Euro). You may want to change that if you
        are mostly trading with another currency pair. Alternatively, you can
        set the environment variable ``CLIKRAKEN_DEFAULT_PAIR`` to override the
        default currency pair.
        
        You can generate your ``settings.ini`` by doing the following:
        
        ::
        
           mkdir -p ~/.config/clikraken # only if the folder doesn't exist yet
           clikraken generate_settings > ~/.config/clikraken/settings.ini
        
        Alternatively, you can set a path in the environment variable
        ``CLIKRAKEN_USER_SETTINGS_PATH`` to override the default user settings
        file location.
        
        Usage
        -----
        
        If installed in a virtualenv, don’t forget to activate it first:
        ``source ~/.venv/clikraken/bin/activate`` (When you are done using
        clikraken, you can deactivate the virtualenv with ``deactivate``.)
        
        This command line client works by calling subcommands with their
        respective options and arguments (similar to git).
        
        Get help to see the available subcommands:
        
        ::
        
           clikraken --help
        
        Output:
        
        ::
        
           usage: clikraken [-h] [-V] [--debug] [--raw] [--csv]
                            [--csvseparator CSVSEPARATOR] [--cron]
                            {generate_settings,asset_pairs,ap,ticker,t,depth,d,last_trades,lt,ohlc,oh,balance,bal,trade_balance,tbal,place,p,cancel,x,olist,ol,positions,pos,clist,cl,ledgers,lg,trades,tr,deposit_methods,dm,deposit_addresses,da}
                            ...
        
           clikraken - Command line client for the Kraken exchange
        
           positional arguments:
             {generate_settings,asset_pairs,ap,ticker,t,depth,d,last_trades,lt,ohlc,oh,balance,bal,trade_balance,tbal,place,p,cancel,x,olist,ol,positions,pos,clist,cl,ledgers,lg,trades,tr,deposit_methods,dm,deposit_addresses,da}
                                   available subcommands
               generate_settings   [clikraken] Print default settings.ini to stdout
               asset_pairs (ap)    [public] Get the list of available asset pairs
               ticker (t)          [public] Get the ticker
               depth (d)           [public] Get the current market depth data
               last_trades (lt)    [public] Get the last trades
               ohlc (oh)           [public] Get ohlc data
               balance (bal)       [private] Get your current balance
               trade_balance (tbal)
                                   [private] Get your current trade balance
               place (p)           [private] Place an order
               cancel (x)          [private] Cancel orders
               olist (ol)          [private] Get a list of your open orders
               positions (pos)     [private] Get a list of your open positions
               clist (cl)          [private] Get a list of your closed orders
               ledgers (lg)        [private] Get ledgers info
               trades (tr)         [private] Get trades history
               deposit_methods (dm)
                                   [private] Get deposit methods
               deposit_addresses (da)
                                   [private] Get deposit addresses
        
           optional arguments:
             -h, --help            show this help message and exit
             -V, --version         show program version
             --debug               debug mode
             --raw                 output raw json results from the API
             --csv                 output results from the API as CSV
             --csvseparator CSVSEPARATOR
                                   separator character to use with CSV output
             --cron                activate cron mode (tone down errors due to timeouts
                                   or unavailable Kraken service)
        
           To get help about a subcommand use: clikraken SUBCOMMAND --help
           For example:
               clikraken place --help
        
           Current default currency pair: XETHZEUR.
        
           Create or edit the setting file /home/zertrin/.config/clikraken/settings.ini to change it.
           If the setting file doesn't exist yet, you can create one by doing:
               clikraken generate_settings > /home/zertrin/.config/clikraken/settings.ini
        
           You can also set the CLIKRAKEN_DEFAULT_PAIR environment variable
           which has precedence over the settings from the settings file.
        
        Each subcommand has different optional arguments, to get information on
        how to use a subcommand:
        
        ::
        
           clikraken SUBCOMMAND --help
        
        For example, the ``place`` subcommand has the following help:
        
        ::
        
           usage: clikraken place [-h] [-l LEVERAGE] [-p PAIR] [-t {market,limit}]
                                    [-s STARTTM] [-e EXPIRETM] [-r USERREF] [-q] [-T]
                                    [-v]
                                    {sell,buy} volume [price]
        
           positional arguments:
             {sell,buy}
             volume
             price
        
           optional arguments:
             -h, --help            show this help message and exit
             -l LEVERAGE, --leverage LEVERAGE
                                   leverage for margin trading (default: none)
             -p PAIR, --pair PAIR  asset pair (default: XETHZEUR)
             -t {market,limit}, --ordertype {market,limit}
                                   order type. Currently implemented: [limit, market].
                                   (default: limit)
             -s STARTTM, --starttm STARTTM
                                   scheduled start time (default: 0)
             -e EXPIRETM, --expiretm EXPIRETM
                                   expiration time (default: 0)
             -r USERREF, --userref USERREF
                                   user reference id. 32-bit signed number. (optional)
                                   (default: None)
             -q, --viqc            volume in quote currency (default: False)
             -T, --nopost          disable 'post-only' option (for limit taker orders)
                                   (default: False)
             -v, --validate        validate inputs only. do not submit order (default:
                                   False)
        
        Usage examples
        ~~~~~~~~~~~~~~
        
        Notice: Without the ``-p`` option, the default currency pair is taken
        from the settings file or the aforementioned environment variable,
        defaulting to ``XETHZEUR`` if neither of those exists.
        
        ::
        
           clikraken ticker
           clikraken balance
           clikraken depth
           clikraken ohlc --interval 15 --since 1508513700
        
           clikraken place buy -t limit 0.42 11.1337
           clikraken place buy -t market 0.1
        
           # without the -t option, defaults to limit orders
           clikraken place sell 0.5 13.3701
        
           clikraken cancel OUQUPX-9FBMJ-DL7L6W
        
        Using leverage (maximum multiplier allowed depends on the currency pair
        chosen):
        
        ::
        
           # open a short position with 5:1 leverage
           clikraken place sell 0.1 -l 5
        
           clikraken positions
           clikraken trade_balance
        
           # to close an open position the same volume and leverage should be used
           clikraken place buy -t limit 0.1 1492.0 -l 5
        
        Examples in another currency pair:
        
        ::
        
           # BTC/EUR currency pair
           clikraken ticker -p XXBTZEUR
           clikraken depth -p XXBTZEUR
           clikraken place buy 0.08 587.12 -p XXBTZEUR
           clikraken olist -p XXBTZEUR
        
           # ETH/BTC currency pair
           clikraken ticker -p XETHXXBT
           clikraken depth -p XETHXXBT
           clikraken last_trades -p XETHXXBT
        
        Global options examples:
        
        ::
        
           # format the output as CSV data
           clikraken --csv ohlc
        
           # change the separator character for output in CSV format
           clikraken --csv --csvseparator "|" ohlc
           clikraken --csv --csvseparator "\t" ohlc
        
           # output the raw JSON output from Kraken API
           clikraken --raw ticker
        
        Store the results in a file:
        
        ::
        
           # store the results as CSV file
           clikraken --csv ohlc > /path/to/my/results.csv
        
        Upgrade
        -------
        
        ::
        
           pip install -U clikraken
        
        Attribution
        -----------
        
        clikraken code is licensed under the Apache license, Version 2.0. See
        the ``LICENSE`` file. For the full text, see
        `here <https://www.apache.org/licenses/LICENSE-2.0>`__.
        
        Requirements
        ------------
        
        Python 3.4+
        
        clikraken is tested with Python 3.4 to 3.6. Future Python versions
        should be compatible but haven’t been tested yet.
        
        There is no plan to support Python 2 at all and it’s unlikely that
        Python 3.0 to 3.3 will ever be supported. Sorry!
        
        clikraken has been tested on Linux (Debian Jessie) and Windows. I guess
        it should work with other systems but your mileage may vary.
        
        Dependencies
        ~~~~~~~~~~~~
        
        The dependencies should be automatically installed when installing
        clikraken with pip. But if working in a fresh environment (for example
        after cloning the source code to develop), you may need to install these
        manually with pip.
        
        -  ``pip install -r requirements.txt``
        
        The following modules are used by clikraken.
        
        -  `krakenex <https://github.com/veox/python3-krakenex>`__ is licensed
           under the LGPLv3 license.
        -  `arrow <https://github.com/crsmithdev/arrow/blob/master/LICENSE>`__
           is licensed under the Apache License, Version 2.0.
        -  `tabulate <https://pypi.python.org/pypi/tabulate>`__ is licensed
           under the MIT License.
        -  `colorlog <https://github.com/borntyping/python-colorlog>`__ is
           licensed under the MIT License.
        
        Development dependencies
        ~~~~~~~~~~~~~~~~~~~~~~~~
        
        The development dependencies are only needed for developing, testing and
        packaging clikraken.
        
        -  GNU Make if using the provided Makefile
        -  ``pip install -r requirements_dev.txt``
        
        Quickstart for developing on clikraken
        --------------------------------------
        
        Setup
        ~~~~~
        
        -  Clone this repository and cd into it.
        -  Preferably create and activate a fresh virtualenv.
        
           -  ``python3 -m venv /path/to/your/venv``
           -  ``source /path/to/your/venv/bin/activate`` (for windows, omit
              ``source``)
        
        -  If make is available: ``make setup_dev``
        -  Otherwise:
        
           -  ``pip install -r requirements.txt``
           -  ``pip install -r requirements_dev.txt``
           -  ``python setup.py develop``
        
        Tests
        ~~~~~
        
        Tests can be run by calling ``tox``.
        
        Contributors
        ------------
        
        Special thanks to @t0neg, @citec and @melko for their contributions to
        clikraken.
        
        .. |Appveyor Build status| image:: https://ci.appveyor.com/api/projects/status/jom3ee762u02q2fo/branch/master?svg=true
           :target: https://ci.appveyor.com/project/zertrin/clikraken/branch/master
        .. |PyPI Package latest release| image:: https://img.shields.io/pypi/v/clikraken.svg
           :target: https://pypi.python.org/pypi/clikraken
        .. |Wheel available| image:: https://img.shields.io/pypi/wheel/clikraken.svg
           :target: https://pypi.python.org/pypi/clikraken
        .. |Supported Versions| image:: https://img.shields.io/pypi/pyversions/clikraken.svg
           :target: https://pypi.python.org/pypi/clikraken
        .. |Supported implementations| image:: https://img.shields.io/pypi/implementation/clikraken.svg
           :target: https://pypi.python.org/pypi/clikraken
        .. |GitHub license| image:: https://img.shields.io/badge/license-Apache%202-blue.svg
           :target: https://raw.githubusercontent.com/zertrin/clikraken/master/LICENSE
        
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Office/Business :: Financial :: Investment
