From 2a39f1a422ecef0aafd1ba16dbb87b54a21dbedb Mon Sep 17 00:00:00 2001 From: Mikko Ohtamaa Date: Fri, 4 Mar 2022 13:26:04 +0100 Subject: [PATCH] Update README --- LICENSE.txt | 15 +++++++++++++++ README.md | 37 ++++++++++++++++++------------------- docs/testing.md | 3 +++ pyproject.toml | 2 +- 4 files changed, 37 insertions(+), 20 deletions(-) create mode 100644 LICENSE.txt diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 000000000..06d9ffd64 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,15 @@ +Trade Executor framework for Python +Copyright (C) 2022 Market Software Ltd. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . \ No newline at end of file diff --git a/README.md b/README.md index 1636f3097..326f26164 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,27 @@ -# Trade executor for Trading Strategy oracles +# Trade Executor -# Features +A trade executor is a Python framework to execute trades. It is designed for live trading and backtesting +of algorithmic trading strategies on decentralised markets. -- Maintain the strategy state -- Listen to external events to perform a duty cycle -- Download historical datasets for the decision -- Run a strategy ticks +## Features -# Architecture +- Live trading, paper trading and backtesting +- Maintain the strategy state on disk +- Webhooks to tick trading strategy ticks +- Manual confirmation of trades when needed -- Each strategy is deployed with an executor -- Each executor runs in its own process -- Strategy state can be serialized to a file or read from on-chain -- Executor open a WebHook port to accept ongoing signals +## Supported exchanges, blockchains and strategy types -# Executable strategy definition +- All EVM compatible blockchains: Ethereum mainnet, BNB chain, Polygon, Avalanche, etc. +- All Uniswap v2 compatible exchanges: SushiSwap, PancakeSwap, Trader Joe, QuickSwap, etc. +- Portfolio rebalancing strategies via [QSTrade](https://github.com/tradingstrategy-ai/qstrader/) -- Strategy must be a single Python module -- Strategy cannot have Python dependencies outside what `tradeexecutor` has -- Strategy module must export a class `` +## More information -# Execeutionn modes +- Visit [Trading Strategy website to learn about algorithmic trading on decentralised exchanges](https://tradingstrategy.gi) +- [Join the Discord for any questions](https://tradingstrategy.ai/community) +- For technical information see [docs](./docs) -# Running - -Most of the options are passed as environment variables. +## License +- AGPL \ No newline at end of file diff --git a/docs/testing.md b/docs/testing.md index 57bd10800..e472190c6 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -25,6 +25,9 @@ pytest Some tests provide interactivity. By default everything runs non-interactively. But to test the user interface you might want to run the tests with user input enabled. +Tests that use this feature include +- `test_cli_approval` + ```shell USER_INTERACTION=true pytest ``` \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 132789e26..40e0182c3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "tradeexecutor" version = "0.1.0" -description = "Trade executor for portfolio management on decentralised finance" +description = "Trade executor for algorithmic trading on decentralised exchanges" authors = ["Mikko Ohtamaa "] license = "APGL"