Test the idea. Trade the evidence.
A refreshingly simple backtesting and live simulation platform for retail investors
📜 Overview
| General Information | |
|---|---|
| Repository | |
| Build | |
| Code |
💡 Introduction
Backtide is an open-source backtesting platform for Python, built for retail investors who want to test trading ideas without drowning in complexity. A Rust-powered core keeps historical and live simulations fast, while sensible defaults let you go from raw multi-exchange data to validated strategies in just a few lines of code. Run the same strategy objects against historical bars or public exchange WebSockets, without connecting a brokerage account.
❗ Why you should use Backtide?
- Fast — Rust-powered engine runs backtests in a fraction of a second.
- Simple — Sensible defaults mean a working backtest in minutes, not hours of configuration.
- Flexible — Every parameter is exposed and customizable when you need full control.
- Multi-exchange — Stocks, ETFs, forex and crypto from Yahoo, Binance, Kraken and more.
- Batteries included — Built-in strategies and technical indicators out of the box.
- Strategy studies — Rank parameter combinations and validate them with walk-forward testing.
- Rich analytics — 20+ plots cover PnL, returns, drawdown and more.
- Live simulation — Apply strategies to Binance, Coinbase, or Kraken WebSocket candles with local simulated fills.
- Interactive UI — A packaged Vue app configures, runs, and analyzes backtests and live sessions visually.
- Simple installation — Python wheels include the Rust extension and production frontend; users do not need Rust or Node.js.
- Open source — MIT-licensed, community-driven and free forever.
Installation
Install the wheel and launch the local application:
pip install backtide
backtide launch
That single Python installation includes the compiled backend and web frontend.
📈 Performance
Based on comprehensive benchmarks:
Data download & storage
| Operation | Performance | Use Case |
|---|---|---|
| OHLC download (1 symbol - 1m)* | ~33ms | Data ingestion |
| OHLC download (1 symbol - 1d)* | ~31ms | Data ingestion |
| Batch insert (100 bars) | ~20ms | Bulk processing |
| Batch insert (10k bars) | ~45ms | Bulk processing |
| Historical read (1000 bars) | ~1.5ms | Backtesting |
| Historical read (1M bars) | ~711ms | Backtesting |
*Downloads hit real network endpoints. Yahoo Finance applies rate limits, so these numbers are meant as a reference, not as a real benchmark.
Backtest (11k bars)
| Strategy | Performance | Use Case |
|---|---|---|
| Buy & Hold | ~1.1ms | Backtesting |
| ROC Rotation | ~1.1ms | Backtesting |
| RSRS Rotation | ~1.1ms | Backtesting |
| Multi-BB Rotation | ~1.2ms | Backtesting |
| ROC | ~1.3ms | Backtesting |
| Triple RSI Rotation | ~1.5ms | Backtesting |
| VCP | ~1.5ms | Backtesting |
| RSRS | ~1.7ms | Backtesting |
| Double Top | ~2.2ms | Backtesting |
| Momentum | ~4.1ms | Backtesting |
| SMA Naive | ~4.2ms | Backtesting |
| Alpha RSI Pro | ~4.5ms | Backtesting |
| Turtle Trading | ~4.6ms | Backtesting |
| Risk Averse | ~4.9ms | Backtesting |
| BB Mean Reversion | ~5.5ms | Backtesting |
| MACD | ~6.3ms | Backtesting |
| Adaptive RSI | ~7.4ms | Backtesting |
| SMA Crossover | ~7.7ms | Backtesting |
| Hybrid Alpha RSI | ~7.9ms | Backtesting |
| RSI | ~8.8ms | Backtesting |
📘 Documentation
| Relevant links | |
|---|---|
| ⭐ About | Learn more about the package. |
| 🚀 Getting started | New to backtide? Here's how to get you started! |
| 👨💻 User guide | How to use backtide and its features. |
| 🎛️ API Reference | The detailed reference for backtide's API. |
| ❔ FAQ | Get answers to frequently asked questions. |
| 🔧 Contributing | Do you wan to contribute to the project? Read this before creating a PR. |
| 🌳 Dependencies | Which other packages does backtide depend on? |
| 📃 License | Copyright and permissions under the MIT license.__ |
Metadata
Release files for backtide 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| backtide-0.3.0.tar.gz | 3.0 MB | Details |
Built distributions (wheels)
Total release size: 305.7 MB
Release files / backtide-0.3.0.tar.gz
| Download URL | backtide-0.3.0.tar.gz |
|---|---|
| Size | 3.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
49186d53a6d31857103e6c0beb4e63b0e0ca3f586b88c376ab32681e6efa6982
|
|
BLAKE2b-256 checksum How to use checksums |
1e49376019db6b74ce892d24f903d0cf640cbb249a9b9c5b39f2f636f570865f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
| Download URL | backtide-0.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 24.6 MB |
| Tags | Linux glibc 2.28+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
9c7cfb706c2aa9f3d2169ba7620ee8f183231818789d5c57ea8f2903fd0d7bc0
|
|
BLAKE2b-256 checksum How to use checksums |
7184bb26f074ad77465997169b5df5e1853e10ec2f5beeb22718ee1bde86c901
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | backtide-0.3.0-cp314-cp314t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 24.6 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
981363289042063eb2c4b388a785160e901a60b21b8c625d128afe950bec402e
|
|
BLAKE2b-256 checksum How to use checksums |
3e19d54e55d97e9586344a9d701107583eec7d2699f395d930bb58942eb4af22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp314-cp314-win_amd64.whl
| Download URL | backtide-0.3.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 17.9 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
788361bc5d14df2032894920ead09437659c97ff34cb19f2119ee71aaa205fea
|
|
BLAKE2b-256 checksum How to use checksums |
4d9cfb22ad4984e16657d8383123cfc472532d00a3f0a8117e1a3efbead0ce39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | backtide-0.3.0-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 24.6 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4fb8ac56b6ca088188b114feb8b3c586ba1f62e89a99d784df62a3e4ed6570b4
|
|
BLAKE2b-256 checksum How to use checksums |
327e46b753cb1b79abeec86b5b0749b048eb70839954648dffc64b6179b15b57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | backtide-0.3.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 20.9 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1331dabad24ba3c726ed221fe742a7677a68a373b515dd4cc8f0b209da98193c
|
|
BLAKE2b-256 checksum How to use checksums |
ea38b690329d00267a68ff79bf8cc969d707a6ce36b7fba19554e7e055707cd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp313-cp313-win_amd64.whl
| Download URL | backtide-0.3.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 17.9 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8a83672ec2fb740373dd004232088f5a3fe50d1c62de5d80d926ded90ea1a91e
|
|
BLAKE2b-256 checksum How to use checksums |
60468dc2419d9de58c14e95ee72a579370a52dd5971571bd0af5e2f1419f85fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | backtide-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 24.6 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2f96b10ff4c76fb6be2c7f0cd25089cfd53a252db6c7904349effc6c9c60556b
|
|
BLAKE2b-256 checksum How to use checksums |
89e4f89eab7f090703f8a35ccf6d062b5f73a78842f50295cf45509daf201a67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | backtide-0.3.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 20.9 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4ddbc9b2b2d413bc359f8041aa7b5c070a6cbd1052e6f30dcb96ff60e2c03686
|
|
BLAKE2b-256 checksum How to use checksums |
cbe80e442b75f1871fcda22f7bef2eb56a61a0ce751b8e2a48585fcab51c90dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp312-cp312-win_amd64.whl
| Download URL | backtide-0.3.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 17.9 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7b55c071c447aeed633355b85b5bc6869c00d0bd7c22bcee65d8448ae82c2cb5
|
|
BLAKE2b-256 checksum How to use checksums |
973375af71ff6cf5b34bf211de9ab94705efc6d388c7424f77be17f5ada2d08a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | backtide-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 24.6 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8ab51a095f0d005ba8d5e4a15b2491889fc9fb237569c1e1cf0c00f368f76da0
|
|
BLAKE2b-256 checksum How to use checksums |
02cb6d04398ceb13c10c1d5a98a3661d32f73638810148d19ccaefc10b367a6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | backtide-0.3.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 20.9 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7dd9780996580a756c7b0ac22548db1604aafe97ea98e9cc4d58d268d4ffefc2
|
|
BLAKE2b-256 checksum How to use checksums |
0ae71deb85c380bbdbad8288b22e20efa2698657ddec1dd8b5129b813c048418
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp311-cp311-win_amd64.whl
| Download URL | backtide-0.3.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 17.9 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
475f0230177cb015b0d0a1e29853bf790936d27ad471ea24c25d105612972a29
|
|
BLAKE2b-256 checksum How to use checksums |
bf112eb7269f83097d62eeea033660ee61653319a8045a0f03946a4725b7273b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | backtide-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 24.6 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
94a2a4c8d6a03a05fbeb7685783db9a843bc52cfe7599c90e97fe4aa1d2801b4
|
|
BLAKE2b-256 checksum How to use checksums |
36e9c035fcb237a05848fd36ca20820c7c27b69e50be729f3491e2362f279c23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / backtide-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | backtide-0.3.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 20.9 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d422ca56a699ccba3beae5ece22fcf0b8642c392b8bdf870f80dd71071543e25
|
|
BLAKE2b-256 checksum How to use checksums |
a4a8226e719eea7f267cca2bdf6d5b4c2c33c5eae81d7fbfef80fcfd5bd96aaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|