This file shows the basic usage for TradingKit, for more docs, please see the Wiki
- python 3.7+
- pip
the recommended way to install TradingKit si via PyPi.
Install from PyPi
pip3 install tradingkit
Install from Source
git clone https://github.com/logictraders/tradingkit
cd tradingkit
# Optional, uncomment the line below if you want a specific version
# git checkout v1.2.5
python3 setup.py install
In order to create new strategies you need 4 steps
Create new python3.7+ project, no need to do anymore in this step.
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 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
create system/config.dev.json
file
{
"exchange": "@testex",
"feeder": "@backtest_feeder"
}
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
tk run -e dev -y 2020 -m 1 --plot
tk run -e live --plot