volkit.pricing

volkit.pricing.price_euro_future(F, K, T, r, sigma, cp=1)[source]

Price of a European option on a futures contract (Black-76).

Parameters:
  • F (float or array-like) – Futures price today.

  • K (float or array-like) – Strike price.

  • T (float or array-like) – Time to maturity in years.

  • r (float or array-like) – Continuously-compounded risk-free rate (annualized).

  • sigma (float or array-like) – Black volatility per √year (e.g., 0.20 for 20%).

  • cp ({+1, -1, 'c', 'p', 'call', 'put'}, optional) – Call/put flag (broadcastable). Default is +1 (call).

Returns:

Option present value(s), broadcasted to the common shape.

Return type:

numpy.ndarray

volkit.pricing.delta_euro_future(F, K, T, r, sigma, cp=1)[source]

Futures delta ∂V/∂F.

Returns:

Delta with broadcasted shape.

Return type:

numpy.ndarray

volkit.pricing.gamma_euro_future(F, K, T, r, sigma, cp=1)[source]

Futures gamma ∂²V/∂F².

Returns:

Gamma with broadcasted shape.

Return type:

numpy.ndarray

volkit.pricing.vega_euro_future(F, K, T, r, sigma, cp=1)[source]

Vega ∂V/∂σ (per 1.00 volatility, not per 1%).

Returns:

Vega with broadcasted shape.

Return type:

numpy.ndarray

volkit.pricing.theta_euro_future(F, K, T, r, sigma, cp=1)[source]

Theta ∂V/∂T (calendar time theta, holding F constant).

Returns:

Theta with broadcasted shape (per year).

Return type:

numpy.ndarray

volkit.pricing.rho_euro_future(F, K, T, r, sigma, cp=1)[source]

Rho ∂V/∂r (assumes F independent of r).

Returns:

Rho with broadcasted shape.

Return type:

numpy.ndarray

volkit.pricing.dual_delta_euro_future(F, K, T, r, sigma, cp=1)[source]

Strike sensitivity ∂V/∂K (a.k.a. dual delta).

Returns:

Dual delta with broadcasted shape.

Return type:

numpy.ndarray

volkit.pricing.vanna_euro_future(F, K, T, r, sigma, cp=1)[source]

Vanna ∂²V/(∂F ∂σ).

Returns:

Vanna with broadcasted shape.

Return type:

numpy.ndarray

volkit.pricing.vomma_euro_future(F, K, T, r, sigma, cp=1)[source]

Vomma (volga) ∂²V/∂σ².

Returns:

Vomma with broadcasted shape.

Return type:

numpy.ndarray

volkit.pricing.lambda_euro_future(F, K, T, r, sigma, cp=1)[source]

Elasticity (leverage) λ = (F/V) * delta.

Returns:

Elasticity with broadcasted shape.

Return type:

numpy.ndarray