[ANN] Hedgehog.jl - Derivatives Pricing in Julia

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.

Related Packages

Some comparison with packages offering similar tools is provided in the ReadMe here. In general, Hedgehog tries to differentiate from what is currently offered by modularity, generality of the sensitivity suite through AD and integration with top scientific Julia packages like DifferentialEquations.jl.

Contributions

Contributions, ideas, suggestions are very welcome! Feel free to reach out to me (Alessandro Combi) via Zulip for questions, or opening an Issue/PRs with new payoffs or methods, bug fixes.

:backhand_index_pointing_right: GitHub: GitHub - aleCombi/Hedgehog.jl: A derivatives pricing library with AD sensitivities and calibration

10 Likes

I’ve just gone over the documentation, this looks very nice! Typically it is customary to also include in the ReadMe a list of alternative packages to help users identify in what regards your method stands out, perhaps it is nice to do that here!

I’m currently supervising a few BSc thesis projects on autodiff and option pricing. They’ll probably implement the methods from scratch, but if it comes up, would you welcome PRs/issues with new features (models/payoffs/methods improvements)?

2 Likes

@JADekker thanks for the nice words and your suggestions. I just added a section in the ReadMe with some alternative packages and comparisons: you can find it here.

Collaborations are very welcome, even simply by reaching out to me via Zulip, or opening Issues/PRs. I also added a few words about it in the readme here.

2 Likes

Thanks, I’ll keep it in mind!

1 Like