From 24ae99a42d0bf5c04910d59466236212fd9f2e6e Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Fri, 5 May 2023 15:03:28 +0000 Subject: automatic import of python-tradingkit --- .gitignore | 1 + python-tradingkit.spec | 511 +++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 513 insertions(+) create mode 100644 python-tradingkit.spec create mode 100644 sources 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 - 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 -- cgit v1.2.3