Skip to main content

Criptocurrency trading framework

Project description

TradingKit

This file shows the basic usage for TradingKit, for more docs, please see the Wiki

stable coverage Conventional Commits

Requirements

  • python 3.7+
  • python virtual environment (venv)
  • pip

Installation

the recommended (and unique supported way) to install TradingKit si via pip.

Instructions for unix

# clone repo
git clone git@github.com:logictraders/tradingkit.git
cd tradingkit

# create and activate virtual environment (venv)
python -m venv venv
source venv/bin/activate

# install the package for development
pip install -e .

Instructions for windows

# TODO...

Creating strategies

In order to create new strategies you need 5 steps

Create separate project

Create new python3.7+ project, no need to do anymore in this step.

Install virtualenv and dependencies

To do this step need to install previously TradingKit with the installation steps described above.

cd my_project
python -m venv venv
source venv/bin/activate
pip install ccxt
pip install -e ../tradingkit

Creating strategy class

create a class extending from tradingkit.strategy.strategy.Strategy

# File my_project/my_strategy.py
import logging
import ccxt.Exchange

from tradingkit.pubsub.event.trade import Trade
from tradingkit.pubsub.event.book import Book
from tradingkit.pubsub.event.order import Order
from tradingkit.pubsub.core.event import Event
from tradingkit.strategy.strategy import Strategy


class MyStrategy(Strategy):

    def __init__(self, exchange: Exchange, config):
        super().__init__(exchange, config)
        # do whatever initializations you need

    def on_event(self, event: Event):
        if isinstance(event, Trade):
            logging.info("Order event happened!")
            # do whatever you need with the exchange
            self.exchange.create_order(...)
        if isinstance(event, Book):
            logging.info("Book event happened!")
            # do whatever you need with the exchange
            self.exchange.create_order(...)
        if isinstance(event, Order):
            logging.info("Order event happened!")
            # do whatever you need with the exchange
            self.exchange.create_order(...)

Create main config file

create system/config.json file

{
    "strategy": {
        "class": "my_strategy.MyStrategy",
        "arguments": ["@bridge", "@config"]
    },
    "config": {
        "symbol": "%env(SYMBOL)%"
    }
}

create .env file to add some env vars

# File .env
SYMBOL=BTC/EUR

Configure dev environment

create system/config.dev.json file

{
    "exchange": "@testex",
    "feeder": "@backtest_feeder"
}

Configure live environment

create system/config.live.json file

{
    "exchange": "@kraken",
    "feeder": "@kraken_feeder"
}

create .env.live.local file to add your bitmex credentials credentials

# File .env.live.local
KRAKEN_KEY=xxxxxxxxxxxxxxxxxxx
KRAKEN_SECRET=yyyyyyyyyyyyyyyyyyyy

Run dev (backtest)

tk run -e dev -y 2020 -m 1 --plot

Run live

tk run -e live --plot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tradingkit-1.1.5.tar.gz (26.2 kB view hashes)

Uploaded Source

Built Distribution

tradingkit-1.1.5-py3-none-any.whl (42.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page