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.
- 🔒 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
.xlsxfiles 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.
- Launch the App: Open the hosted WASM application in a Chromium-based browser (such as Google Chrome, Microsoft Edge, Brave, or Opera, needed for local folders feature).
- Mount Your Data: Click the 📁 Mount Folder button to grant the app secure access to your local Excel directory.
- Provide Files: If you mounted an empty dir, press the ⬇️ Download Example Files to fill your dir with example files.
- Run Backtest: Click the 🚀 Run Backtest button and watch the results generate in real-time.
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).
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.
- Marimo: For the reactive, notebook-based UI.
- Pyodide: To execute Python at near-native speeds in the browser via WASM.
- Anywidget: For specialized browser-native components.
If you want to contribute or run the development environment locally using uv:
# 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