https://github.com/jonaskello/backcel
Portfolio backtesting engine using local Excel files
https://github.com/jonaskello/backcel
backtest portfolio
Last synced: about 1 month ago
JSON representation
Portfolio backtesting engine using local Excel files
- Host: GitHub
- URL: https://github.com/jonaskello/backcel
- Owner: jonaskello
- License: mit
- Created: 2026-04-21T08:27:51.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-21T11:24:45.000Z (about 2 months ago)
- Last Synced: 2026-04-21T11:26:14.939Z (about 2 months ago)
- Topics: backtest, portfolio
- Language: Python
- Homepage: https://jonaskello.github.io/backcel/
- Size: 5.03 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π Backcel
**The Private, Browser-Native Portfolio Backtester.**
`Backcel` is a backtesting engine built with **Marimo** and **WebAssembly (WASM)**. It allows you to run complex portfolio simulations directly in your browser using local Excel filesβ**no data ever leaves your machine.**
> [!CAUTION]
> **Experimental Version**: This project is currently in an early experimental stage. Features may change rapidly, and you may encounter bugs. It is provided "as-is" for testing and feedback.
---
### β¨ Key Features
* **π 100% Client-Side Privacy**: Built with WASM, the app runs entirely in your browser. Your financial data is processed locally and never uploaded to a server.
* **π Excel-Driven Workflow**: Seamlessly use your existing `.xlsx` files for portfolios and assets data.
* **π Multi-Currency Support**: Automatic currency conversion for global portfolio analysis.
* **π Proxy Data Integration**: Fill historical gaps with proxy asset data to ensure robust long-term backtests.
* **π Zero Installation**: Starts from a static web page. No Python environment or complex setup required for the end-user.
* **π Open Source**: Transparent and community-driven. Audit the code or customize the logic to fit your specific needs.
---
### π Quick Start
1. **Launch the App**: Open the hosted [WASM application](https://jonaskello.github.io/backcel/) in a **Chromium-based browser** (such as Google Chrome, Microsoft Edge, Brave, or Opera, needed for local folders feature).
2. **Mount Your Data**: Click the **π Mount Folder** button to grant the app secure access to your local Excel directory.
3. **Provide Files**: If you mounted an empty dir, press the **β¬οΈ Download Example Files** to fill your dir with example files.
4. **Run Backtest**: Click the **π Run Backtest** button and watch the results generate in real-time.
---
### π Data Requirements
To run a backtest, you must provide at least one Excel file named `main.xlsx` within your mounted folder. That file **must** contain a sheet named `main`, which acts as the configuration hub for all your backtest settings.
* **Quick Start**: The easiest way to get started is to mount an empty folder and click **π₯ Download example files**. This will populate your folder with a valid template.
* **Custom Data**: For detailed information about the required columns, date formats, and portfolio definitions, see the [**Data Documentation (DATA.md)**](DATA.md).
---
### β οΈ Disclaimer
**Not Financial Advice**: `Backcel` is an educational and analytical tool for historical backtesting purposes only. It does not provide investment advice, and the results generated do not guarantee future performance. Always consult with a qualified financial professional before making investment decisions. Use this software at your own risk.
---
### π Tech Stack
* **[Marimo](https://marimo.io/)**: For the reactive, notebook-based UI.
* **[Pyodide](https://pyodide.org/)**: To execute Python at near-native speeds in the browser via WASM.
* **[Anywidget](https://anywidget.dev/)**: For specialized browser-native components.
---
### π» Developer Setup
If you want to contribute or run the development environment locally using `uv`:
```bash
# Clone the repository
git clone [https://github.com/your-username/backcel.git](https://github.com/your-username/backcel.git)
cd backcel
# Sync dependencies and run the marimo editor
uv sync
uv run marimo edit main.py