FinCraftr began as a way to consolidate my learning in computational finance by turning theory into code. Coming from a computer science background, I found financial models and terminology unfamiliar, so I built FinCraftr as a toolkit to ground my understanding by implementing pricing methods directly in Python and C++.
Motivation
I wasn’t aiming to develop execution algorithms right away—FinCraftr was more of an educational endeavour. I worked through Argimiro Arratia’s Computational Finance, translating formulas and models into implementations. By doing so, I created a library that doubled as both a personal learning aid and an open‑source resource for others exploring the same domain.
Features & Technical Details
- Asset Coverage: Early modules support fixed‑income securities (bonds, discounting functions), equities, and simple derivatives (options via put‑call parity, forward pricing).
- Discounting & PV/DV01: Functions for present value and sensitivity measures (like DV01) are implemented in both Python and C++.
- Cross‑Language Parity: The project enforces parity between the Python and C++ APIs, so the same function calls yield consistent outputs. This was managed by defining a shared mathematical core and exposing thin language‑specific wrappers.
- Data Structures: Careful handling of types and precision ensured numerical stability across languages; bindings and tests validated consistency.
Results & Observations
FinCraftr gave me a practical foothold in quantitative finance. Implementing discount curves, discrete and continuous compounding, and risk metrics provided context for why these calculations matter. Testing parity between Python and C++ reinforced best practices for API design and type safety.
Future Work
Planned extensions include support for more exotic instruments, volatility modelling, and integration with analytics frameworks for scenario analysis and risk aggregation. The long‑term vision is to make FinCraftr a flexible cross‑language toolkit that can slot into research workflows or production environments.
Reflections
FinCraftr is as much a record of my learning process as it is a library. By encoding mathematical models into code, I turned abstract finance into something I could test, run, and extend. It taught me how to navigate the overlap of theory, computation, and engineering.