Finmetry
This project is developed for my personal use. I am developing this to keep the documentation, architecture and pipeline consistent so that I can focus more on developing strategies instead of developing pipelines.
Visit Finmetry guide for further steps.
This project is solely developed for my personal use. I am publishing this only to keep myself updated and to remove the headache of setting up the framework again and again.
Finmetry is a research-first quantitative trading framework designed to keep strategy logic, execution logic, and accounting logic strictly separated.
It exists to eliminate repeated reinvention of trading pipelines, so you can focus on researching strategies, not rebuilding infrastructure.
What Finmetry Is (and Is Not)
Finmetry is:
- a framework for systematic trading research
- equally suited for backtesting and live trading
- opinionated by design
- built around explicit, auditable abstractions
Finmetry is not:
- a strategy library
- a signal generator
- a black-box trading system
If you want flexibility at the cost of correctness, this framework will feel restrictive. That restriction is intentional.
The Core Trading Loop
Every strategy in finmetry follows the same explicit loop:
Market Data → Strategy → Orders → Portfolio → Execution → Accounting
Each stage is implemented as a separate module with strict responsibilities.
This guarantees that:
- strategies remain stateless
- execution assumptions are explicit
- accounting is consistent
- backtests can be trusted
- live trading reuses the same abstractions
Major Modules
Finmetry is organized into the following conceptual modules:
Client Handling
Handles interaction with external systems such as broker APIs and live data feeds. Keeps the rest of the framework broker-agnostic.
Stocks
Manages symbols, historical data, and OHLCV storage. Acts as the foundation for all market data access.
Strategy
Consumes immutable market snapshots and emits order intent only. Strategies never manage cash, positions, or execution details.
Orders
Orders are the contract between strategy, portfolio, and execution. They represent intent, not outcome.
Executioners
Simulate (or connect to) market reality: slippage, brokerage, partial fills, or live execution.
Portfolio
The single source of truth for positions, cash, and PnL. All state mutation happens here.
Backtesting
Pure orchestration. Iterates over time and wires everything together without adding logic.
Final Note
I have built this for my personal use in mind.
Metadata
Release files for finmetry 2.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| finmetry-2.0.7.tar.gz | 17.6 kB | Without provenance | Details for finmetry-2.0.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| finmetry-2.0.7-py3-none-any.whl | Python 3 | none | any | Details for finmetry-2.0.7-py3-none-any.whl |
Total release size: 35.5 kB
Release files / finmetry-2.0.7.tar.gz
| Download URL | finmetry-2.0.7.tar.gz |
|---|---|
| Size | 17.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8322b7221216f655a446b8fb4253dfbbeea52268502ee7e3245be2656105b497
|
|
BLAKE2b-256 checksum How to use checksums |
f8b60108a111d7f2193cc1bad77656e1d78ad60a07366ef184a6a6abb671f768
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / finmetry-2.0.7-py3-none-any.whl
| Download URL | finmetry-2.0.7-py3-none-any.whl |
|---|---|
| Size | 17.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f91f0b973e7c345c8801a09cf088d9b25878e5c4b895afdccf3df5bf5bcb55fe
|
|
BLAKE2b-256 checksum How to use checksums |
f70feef984b0fec3561aa67e5f74e801ce8f41afe9f161f43afcffebde381b84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for finmetry 2.0.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.