rcalxrc08

Mathematical Engineer · Quant · Climber

rcalxrc08

Hi! I work as a quant, which mostly means pricing derivatives, computing their sensitivities and making the numbers come out fast and right. In my spare time I write open source Julia packages around the same topics: option pricing, Monte Carlo, Fourier methods, calibration and automatic differentiation.

When I'm away from the keyboard I'm usually climbing.

Mountain ridges drawn from Brownian paths, with a climbing route to the summit
Ridges drawn from Brownian paths, and a route to the top.

01

Open source projects

Each figure is computed by the package itself when its documentation is built.

The hero figure of the documentation of FinancialToolbox.jl

FinancialToolbox.jl

Black & Scholes in closed form

Pricing, Greeks and implied volatility under the Black and Black & Scholes models, with the syntax of the Matlab Financial Toolbox.

  • blsprice, blsdelta, blsvega, blsvanna, …
  • Implied volatility with the 2024 Let's Be Rational: machine precision in at most two Householder steps.
  • Float32, BigFloat, complex numbers, AD; one GPU kernel per broadcast.
  • Black–Scholes
  • Implied vol
  • Greeks
The hero figure of the documentation of FinancialMonteCarlo.jl

FinancialMonteCarlo.jl

Monte Carlo pricing for equity derivatives

Simulation of Black & Scholes, Heston and Lévy models, and every payoff from forwards to American options.

  • Models: Black & Scholes, Heston, Kou, Merton, NIG, VG, mixtures; Gaussian copulas.
  • Payoffs: European, barrier, Asian, Bermudan, American (Longstaff–Schwartz), positions.
  • Threads, processes and CUDA; Greeks with seven AD backends.
  • Monte Carlo
  • Lévy processes
  • GPU
The hero figure of the documentation of FinancialFFT.jl

FinancialFFT.jl

Fourier methods for option pricing

Fourier pricers on the characteristic function of the model, for the models and payoffs of FinancialMonteCarlo.jl.

  • Methods: Lewis, COS, Carr–Madan, Carr–Madan–Lewis.
  • Densities of the log-return by FFT inversion or COS expansion.
  • Every method differentiable by eight AD backends, and on CUDA.
  • FFT
  • COS method
  • Characteristic functions
The hero figure of the documentation of VibratoMonteCarlo.jl

VibratoMonteCarlo.jl

Smooth Monte Carlo Greeks of any order

Estimators that are C∞ in every parameter, so automatic differentiation gives Greeks of any order, even on discontinuous payoffs.

  • Estimators: likelihood ratio, Vibrato, and the original Vibrato Saltando.
  • The Spectral Theorem (original): every n-th order Black–Scholes Greek from 2n + 1 prices.
  • European, binary and American options on Black & Scholes, Heston and Lévy models.
  • Greeks
  • Vibrato
  • original research
Heston calibrated to the DAX surface

FinancialCalibrator.jl

Differentiable calibration to volatility surfaces

Calibrates the models of FinancialMonteCarlo.jl to an implied volatility surface, with any pricing method, and differentiates the result.

  • Optim.jl search, then a Levenberg–Marquardt polish to a stationary point.
  • Calibrated parameters differentiable in the quotes by the implicit function theorem: ForwardDiff, Zygote, Mooncake, Enzyme.
  • CPU or CUDA; a DAX sample surface and CBOE delayed quotes.
  • Calibration
  • Implicit differentiation
  • GPU
The patterns of PatternVectors.jl

PatternVectors.jl

Structured vectors, stored as patterns

An immutable AbstractVector that stores a few values and the rule for where they go: Simpson weights, alternating signs, boundary values.

  • A tiny isbits object: O(1) memory, ready for a GPU kernel.
  • Broadcasts evaluated once per distinct value; fused with dense arrays.
  • Gradients on the pattern values with Zygote, Mooncake and Enzyme.
  • Arrays
  • GPU
  • Automatic differentiation