Trading and backtesting framework for Python
Project description
TradingKit
This file shows the basic usage for TradingKit, for more docs, please see the Wiki
Requirements
- python 3.7+
- pip
Installation
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.1.5
python3 setup.py install
Creating strategies
In order to create new strategies you need 4 steps
Create separate project
Create new python3.7+ project, no need to do anymore in this step.
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
tradingkit-1.2.2.tar.gz
(4.6 MB
view hashes)
Built Distribution
Close
Hashes for tradingkit-1.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97bc3707b59bdee5fedbebc04ad4f5eabc11335dcdc494560976c05b68a7cb4a |
|
MD5 | a3cb4d537755ffe4fc3f1c3d77c4bb9b |
|
BLAKE2b-256 | 7ec9354ecdc5e8b18647730f7bc52140bba4ed94e7133b6af6e2ea6e0c966b2c |