Metadata-Version: 2.0
Name: clikraken
Version: 0.3.0
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 2.0
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Office/Business :: Financial :: Investment
Requires-Dist: arrow
Requires-Dist: colorlog
Requires-Dist: krakenex
Requires-Dist: tabulate

clikraken
=========

Command-line client for the Kraken exchange

This command line client allows you to get useful public and private
information from Kraken's API and displays it in formatted tables.

Moreover you can place or cancel simple orders (only simple 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
*alpha* 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!**

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.py [-h] [-V] [--raw]
                        {generate_settings,ticker,t,depth,d,last_trades,lt,balance,bal,place,p,cancel,x,olist,ol,clist,cl}
                        ...

    clikraken - Command line client for the Kraken exchange

    positional arguments:
      {generate_settings,ticker,t,depth,d,last_trades,lt,balance,bal,place,p,cancel,x,olist,ol,clist,cl}
                            available subcommands
        generate_settings   [clikraken] Print default settings.ini to stdout
        ticker (t)          [public] Get the Ticker
        depth (d)           [public] Get the current market depth data
        last_trades (lt)    [public] Get the last trades
        balance (bal)       [private] Get your current balance
        place (p)           [private] Place an order
        cancel (x)          [private] Cancel an order
        olist (ol)          [private] Get a list of your open orders
        clist (cl)          [private] Get a list of your closed orders

    optional arguments:
      -h, --help            show this help message and exit
      -V, --version         show program version
      --raw                 output raw json results from the API
      --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.py place [-h] [-p PAIR] [-t {market,limit}] [-s STARTTM]
                              [-e EXPIRETM] [-q] [-v]
                              {sell,buy} volume [price]

    positional arguments:
      {sell,buy}
      volume
      price

    optional arguments:
      -h, --help            show this help message and exit
      -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)
      -q, --viqc            volume in quote currency (default: False)
      -v, --validate        validate inputs only. do not submit order (default:
                            False)

Usage examples
~~~~~~~~~~~~~~

Notice: Without the ``-p`` option, default currency pair is taken from
the settings file or the aforementionned environment variable,
defaulting to ``XETHZEUR`` if neither of those exists.

::

    clikraken ticker
    clikraken balance
    clikraken depth

    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

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

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 was developped and tested with Python 3.4, later 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 7. 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.

-  `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 Licence.
-  `colorlog <https://github.com/borntyping/python-colorlog>`__ is
   licensed under the MIT Licence.

Development dependencies
~~~~~~~~~~~~~~~~~~~~~~~~

Only needed for packaging clikraken.

-  ``pip install pypandoc twine wheel``



