Criptocurrency trading framework
Project description
TradingKit
This file shows the basic usage for TradingKit, for more docs, please see the Wiki
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for tradingkit-1.1.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f8f4ae5aa497746fc3d3fe44950ac72b2356ebb6cedb31b0e40e71b774cd963 |
|
MD5 | 8e285c9f746d91e44d82ffdc7b0cc53c |
|
BLAKE2b-256 | 5d4b5f11b75e7d13571346489c896db8ab0503c1bdcdeddeab9e6236eaf3724b |