summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-tradingkit.spec511
-rw-r--r--sources1
3 files changed, 513 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..6e49676 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/tradingkit-1.11.7.tar.gz
diff --git a/python-tradingkit.spec b/python-tradingkit.spec
new file mode 100644
index 0000000..e1197f1
--- /dev/null
+++ b/python-tradingkit.spec
@@ -0,0 +1,511 @@
+%global _empty_manifest_terminate_build 0
+Name: python-tradingkit
+Version: 1.11.7
+Release: 1
+Summary: Trading and backtesting framework for Python
+License: MIT
+URL: https://github.com/logictraders/tradingkit
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/aa/4e/9a594d184116b90ab4906219664375a298987be85ab21601ea554ad0ea45/tradingkit-1.11.7.tar.gz
+BuildArch: noarch
+
+Requires: python3-ccxt
+Requires: python3-docopt
+Requires: python3-dateutil
+Requires: python3-plotly
+Requires: python3-pandas
+Requires: python3-setuptools
+Requires: python3-numpy
+Requires: python3-requests
+Requires: python3-chardet
+Requires: python3-dotenv
+Requires: python3-websocket-client
+Requires: python3-coverage
+Requires: python3-websockets
+
+%description
+# TradingKit
+This file shows the basic usage for TradingKit, for more docs, please see the [Wiki](https://github.com/Logictraders/tradingkit/wiki)
+
+![PyPI](https://img.shields.io/pypi/v/tradingkit)
+![coverage](https://img.shields.io/badge/coverage-37%25-orange)
+[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)
+
+## Requirements
+- python 3.7+
+- pip
+
+## Installation
+the recommended way to install TradingKit si via **PyPi**.
+
+### Install from [PyPi](https://pypi.org/project/tradingkit/)
+```bash
+pip3 install tradingkit
+```
+
+### Install from [Source](https://github.com/logictraders/tradingkit)
+```bash
+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
+```
+
+## 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`
+```python
+# 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
+```json
+{
+ "strategy": {
+ "class": "my_strategy.MyStrategy",
+ "arguments": ["@bridge", "@config"]
+ },
+ "config": {
+ "symbol": "%env(SYMBOL)%"
+ }
+}
+```
+create `.env` file to add some env vars
+```bash
+# File .env
+SYMBOL=BTC/EUR
+```
+
+
+### Configure dev environment
+create `system/config.dev.json` file
+```json
+{
+ "exchange": "@testex",
+ "feeder": "@backtest_feeder"
+}
+```
+
+### Configure live environment
+create `system/config.live.json` file
+```json
+{
+ "exchange": "@kraken",
+ "feeder": "@kraken_feeder"
+}
+```
+create `.env.live.local` file to add your bitmex credentials credentials
+```bash
+# 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
+```
+
+### Available configurations
+Injectable modules:
+
+| Module Type| Key |Module | Description | Arguments |
+|------------|------------|:-----------------------------|:-------------------------------------|---------------|
+| Exchange |exchange |kraken |Kraken exchange API |apikey, secret |
+| Exchange |exchange |bitmex |Bitmex exchange API |apikey, secret |
+| Exchange |exchange |bitmex_testnet |Bitmex testnet exchange API |apikey, secret |
+| Exchange |exchange |testex |kraken exchange simulator |balances, fees |
+| Exchange |exchange |bitmex_backtest |bitmex exchange simulator |balances, fees |
+| Feeder |feeder |kraken_backtest_feeder |feeder used for kraken simulations |exchange, symbol, since8601, to8601|
+| Feeder |feeder |bitmex_funding_backtest_feeder|feeder used for bitmex simulations |exchange, symbol, since8601, to8601|
+| Feeder |feeder |bitmex_testnet_feeder |feeder used for bitmex-testnet live strategies |apikey, secret |
+| Feeder |feeder |bitmex_feeder |feeder used for bitmex live strategies |apikey, secret |
+| Feeder |feeder |kraken_feeder |feeder used for kraken live strategies |apikey, secret |
+| Feeder |feeder |outlier_trade_filter |feeder used to reduce back_test outlier trade data|MAX_PRICE_CHANGE_SINGLE_TRADE|
+| Bridge |bridge |bridge |exchange interface for simulator and real exchange|exchange |
+| Plotter |plotter |highstock |plotter used to show simulation result on chart ||
+| Plotter |plotter |plotly |plotter used to show simulation result on chart ||
+
+
+%package -n python3-tradingkit
+Summary: Trading and backtesting framework for Python
+Provides: python-tradingkit
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-tradingkit
+# TradingKit
+This file shows the basic usage for TradingKit, for more docs, please see the [Wiki](https://github.com/Logictraders/tradingkit/wiki)
+
+![PyPI](https://img.shields.io/pypi/v/tradingkit)
+![coverage](https://img.shields.io/badge/coverage-37%25-orange)
+[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)
+
+## Requirements
+- python 3.7+
+- pip
+
+## Installation
+the recommended way to install TradingKit si via **PyPi**.
+
+### Install from [PyPi](https://pypi.org/project/tradingkit/)
+```bash
+pip3 install tradingkit
+```
+
+### Install from [Source](https://github.com/logictraders/tradingkit)
+```bash
+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
+```
+
+## 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`
+```python
+# 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
+```json
+{
+ "strategy": {
+ "class": "my_strategy.MyStrategy",
+ "arguments": ["@bridge", "@config"]
+ },
+ "config": {
+ "symbol": "%env(SYMBOL)%"
+ }
+}
+```
+create `.env` file to add some env vars
+```bash
+# File .env
+SYMBOL=BTC/EUR
+```
+
+
+### Configure dev environment
+create `system/config.dev.json` file
+```json
+{
+ "exchange": "@testex",
+ "feeder": "@backtest_feeder"
+}
+```
+
+### Configure live environment
+create `system/config.live.json` file
+```json
+{
+ "exchange": "@kraken",
+ "feeder": "@kraken_feeder"
+}
+```
+create `.env.live.local` file to add your bitmex credentials credentials
+```bash
+# 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
+```
+
+### Available configurations
+Injectable modules:
+
+| Module Type| Key |Module | Description | Arguments |
+|------------|------------|:-----------------------------|:-------------------------------------|---------------|
+| Exchange |exchange |kraken |Kraken exchange API |apikey, secret |
+| Exchange |exchange |bitmex |Bitmex exchange API |apikey, secret |
+| Exchange |exchange |bitmex_testnet |Bitmex testnet exchange API |apikey, secret |
+| Exchange |exchange |testex |kraken exchange simulator |balances, fees |
+| Exchange |exchange |bitmex_backtest |bitmex exchange simulator |balances, fees |
+| Feeder |feeder |kraken_backtest_feeder |feeder used for kraken simulations |exchange, symbol, since8601, to8601|
+| Feeder |feeder |bitmex_funding_backtest_feeder|feeder used for bitmex simulations |exchange, symbol, since8601, to8601|
+| Feeder |feeder |bitmex_testnet_feeder |feeder used for bitmex-testnet live strategies |apikey, secret |
+| Feeder |feeder |bitmex_feeder |feeder used for bitmex live strategies |apikey, secret |
+| Feeder |feeder |kraken_feeder |feeder used for kraken live strategies |apikey, secret |
+| Feeder |feeder |outlier_trade_filter |feeder used to reduce back_test outlier trade data|MAX_PRICE_CHANGE_SINGLE_TRADE|
+| Bridge |bridge |bridge |exchange interface for simulator and real exchange|exchange |
+| Plotter |plotter |highstock |plotter used to show simulation result on chart ||
+| Plotter |plotter |plotly |plotter used to show simulation result on chart ||
+
+
+%package help
+Summary: Development documents and examples for tradingkit
+Provides: python3-tradingkit-doc
+%description help
+# TradingKit
+This file shows the basic usage for TradingKit, for more docs, please see the [Wiki](https://github.com/Logictraders/tradingkit/wiki)
+
+![PyPI](https://img.shields.io/pypi/v/tradingkit)
+![coverage](https://img.shields.io/badge/coverage-37%25-orange)
+[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)
+
+## Requirements
+- python 3.7+
+- pip
+
+## Installation
+the recommended way to install TradingKit si via **PyPi**.
+
+### Install from [PyPi](https://pypi.org/project/tradingkit/)
+```bash
+pip3 install tradingkit
+```
+
+### Install from [Source](https://github.com/logictraders/tradingkit)
+```bash
+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
+```
+
+## 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`
+```python
+# 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
+```json
+{
+ "strategy": {
+ "class": "my_strategy.MyStrategy",
+ "arguments": ["@bridge", "@config"]
+ },
+ "config": {
+ "symbol": "%env(SYMBOL)%"
+ }
+}
+```
+create `.env` file to add some env vars
+```bash
+# File .env
+SYMBOL=BTC/EUR
+```
+
+
+### Configure dev environment
+create `system/config.dev.json` file
+```json
+{
+ "exchange": "@testex",
+ "feeder": "@backtest_feeder"
+}
+```
+
+### Configure live environment
+create `system/config.live.json` file
+```json
+{
+ "exchange": "@kraken",
+ "feeder": "@kraken_feeder"
+}
+```
+create `.env.live.local` file to add your bitmex credentials credentials
+```bash
+# 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
+```
+
+### Available configurations
+Injectable modules:
+
+| Module Type| Key |Module | Description | Arguments |
+|------------|------------|:-----------------------------|:-------------------------------------|---------------|
+| Exchange |exchange |kraken |Kraken exchange API |apikey, secret |
+| Exchange |exchange |bitmex |Bitmex exchange API |apikey, secret |
+| Exchange |exchange |bitmex_testnet |Bitmex testnet exchange API |apikey, secret |
+| Exchange |exchange |testex |kraken exchange simulator |balances, fees |
+| Exchange |exchange |bitmex_backtest |bitmex exchange simulator |balances, fees |
+| Feeder |feeder |kraken_backtest_feeder |feeder used for kraken simulations |exchange, symbol, since8601, to8601|
+| Feeder |feeder |bitmex_funding_backtest_feeder|feeder used for bitmex simulations |exchange, symbol, since8601, to8601|
+| Feeder |feeder |bitmex_testnet_feeder |feeder used for bitmex-testnet live strategies |apikey, secret |
+| Feeder |feeder |bitmex_feeder |feeder used for bitmex live strategies |apikey, secret |
+| Feeder |feeder |kraken_feeder |feeder used for kraken live strategies |apikey, secret |
+| Feeder |feeder |outlier_trade_filter |feeder used to reduce back_test outlier trade data|MAX_PRICE_CHANGE_SINGLE_TRADE|
+| Bridge |bridge |bridge |exchange interface for simulator and real exchange|exchange |
+| Plotter |plotter |highstock |plotter used to show simulation result on chart ||
+| Plotter |plotter |plotly |plotter used to show simulation result on chart ||
+
+
+%prep
+%autosetup -n tradingkit-1.11.7
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-tradingkit -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.11.7-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..7ede58e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+c289788b2edd548bb8341a6192969283 tradingkit-1.11.7.tar.gz