Metadata-Version: 2.1
Name: minitrade
Version: 0.1.26
Summary: A personal automated trading system
Home-page: https://dodid.github.io/minitrade/
License: AGPL-3.0-or-later
Keywords: finance,investing,trading,algorithmic-trading,backtesting,backtesting-frameworks,interactive-brokers
Author: Wei Wu
Author-email: dodid@outlook.com
Requires-Python: >=3.10,<3.11
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Requires-Dist: akshare (>=1.10.83,<2.0.0)
Requires-Dist: apscheduler (>=3.10.3,<4.0.0)
Requires-Dist: bokeh (>=2.4.3,<3.0.0)
Requires-Dist: click (>=8.1.6,<9.0.0)
Requires-Dist: fastapi[all] (>=0.92.0,<0.93.0)
Requires-Dist: mailjet-rest (>=1.3.4,<2.0.0)
Requires-Dist: matplotlib (>=3.7.2,<4.0.0)
Requires-Dist: minitrade-scikit-optimize (>=0.9.2,<0.10.0)
Requires-Dist: nanoid (>=2.0.0,<3.0.0)
Requires-Dist: numpy (>=1.25.2,<2.0.0)
Requires-Dist: pandas (>=1.5.3,<2.0.0)
Requires-Dist: pandas-market-calendars (==4.2.1)
Requires-Dist: pandas-ta (>=0.3.14b,<0.4.0)
Requires-Dist: psutil (>=5.9.5,<6.0.0)
Requires-Dist: pydantic (>=1.10.12,<2.0.0)
Requires-Dist: pypika (>=0.48.9,<0.49.0)
Requires-Dist: python-telegram-bot[socks] (>=20.4,<21.0)
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Requires-Dist: scikit-learn (>=1.3.0,<2.0.0)
Requires-Dist: scipy (>=1.11.1,<2.0.0)
Requires-Dist: seaborn (>=0.12.2,<0.13.0)
Requires-Dist: selenium (>=4.11.2,<5.0.0)
Requires-Dist: streamlit (>=1.25.0,<2.0.0)
Requires-Dist: tqdm (>=4.66.1,<5.0.0)
Requires-Dist: watchdog (>=2.3.1,<3.0.0)
Requires-Dist: yfinance (>=0.2,<0.3)
Project-URL: Repository, https://github.com/dodid/minitrade
Description-Content-Type: text/markdown

[![Static Badge](https://img.shields.io/badge/Documentation-blue)](https://dodid.github.io/minitrade/)
[![Build Status](https://img.shields.io/github/actions/workflow/status/dodid/minitrade/test_code.yml?branch=main)](https://github.com/dodid/minitrade/actions)
[![Backtesting on PyPI](https://img.shields.io/pypi/v/minitrade.svg?color=blue)](https://pypi.org/project/minitrade)
[![PyPI downloads](https://img.shields.io/pypi/dd/minitrade.svg?color=skyblue)](https://pypi.org/project/minitrade)


# Minitrade

**Minitrade** is a personal trading system that supports both strategy backtesting and automated order execution. It builds on top of [Backtesting.py](https://github.com/kernc/backtesting.py), and provides enhanced features such as:

- **Multi-asset rebalancing strategy backtest**
- Automated strategy execution and order submission
- Web-based management UI
- Notification and control on mobile

With Minitrade, you can set up a private and fully automated stock trading system for as low as $5/mo.

## Installation

    $ pip install minitrade
    $ minitrade init

Minitrade requires `python=3.10.*`. Check out [Installation](https://dodid.github.io/minitrade/install/) for more details.

## Usage

### Backtesting

| ![Minitrade backtesting](https://imgur.com/YkLPeTv.jpg) |
| ------------------------------------------------------- |

### Trading

| ![Minitrade web UI - history](<https://imgur.com/ittnlk7.png>) |
| -------------------------------------------------------------- |
| ![Minitrade web UI - orders](<https://imgur.com/2DAZ2W1.png>)  |

See more in [Documentation](https://dodid.github.io/minitrade/).

## Limitations

As a backtesting framework:

- Multi-asset strategy only supports long positions and market order. 

As a trading system:

- Tested only on Linux
- Support only daily bar
- Support only long positions
- Support only Interactive Brokers

## Contributing

Check out [how to contribute](CONTRIBUTING.md).

## License

[AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.en.html)

