I’m excited to share that Hedgehog.jl is now available from Julia Registry.
What is it?
Hedgehog.jl is a modular, composable library for derivatives pricing in Julia. It’s built to help you price options, compute sensitivities, and calibrate models with clean, extensible building blocks.
Features
- Price European and American options under various models
- Compute Greeks via finite differences, AD (
ForwardDiff.jl
), or closed-form - Calibrate models to market quotes
- Work with volatility surfaces and rate curves
Design
Hedgehog’s interface follows the SciML-style solve(problem, method)
pattern, with clear separation between payoffs, market data, and pricing engines. It’s designed to be extensible — new models and methods can plug in easily.
Quick Example
using Hedgehog, Dates
strike = 100.0
reference_date = Date(2023, 1, 1)
expiry = reference_date + Year(1)
payoff = VanillaOption(strike, expiry, European(), Call(), Spot())
market = BlackScholesInputs(reference_date, 0.05, 100.0, 0.20)
problem = PricingProblem(payoff, market)
solution = solve(problem, BlackScholesAnalytic())
price = solution.price
Under the Hood
- Pricing methods: analytical, binomial trees, Monte Carlo (leveraging
DifferentialEquations.jl
), Fourier - Greeks via
ForwardDiff.jl
or FD - Vol surfaces and calibration tools
- MIT licensed and fully documented
Roadmap
Next steps include support for exotic payoffs (barriers, Asians), PDE pricing methods, and expanded interest rate modeling.
GitHub: GitHub - aleCombi/Hedgehog.jl: A derivatives pricing library with AD sensitivities and calibration