Call prices and all Greeks across strikes

Minimal example: compute call and greeks for a range of strikes and print a table.

import numpy as np
import pandas as pd
import volkit as vk

# Parameters (edit these) -----------------------------
F = 100.0     # futures price
T = 0.50      # years
r = 0.02      # continuous compounding
sigma = 0.20  # Black vol (per √year)

# Strike grid -----------------------------------------
K = np.arange(70.0, 131.0, 5.0)  # 70,75,...,130

# Table ------------------------------------------------
df = pd.DataFrame({
    "strike": K,
    "call price": vk.price_euro_future(F, K, T, r, sigma, cp="call"),
    "delta": vk.delta_euro_future(F, K, T, r, sigma, cp="call"),
    "gamma": vk.gamma_euro_future(F, K, T, r, sigma, cp="call"),
    "theta": vk.theta_euro_future(F, K, T, r, sigma, cp="call"),
    "vega": vk.vega_euro_future(F, K, T, r, sigma, cp="call"),
    "rho": vk.rho_euro_future(F, K, T, r, sigma, cp="call"),
    "ddelta": vk.dual_delta_euro_future(F, K, T, r, sigma, cp="call"),
    "vanna": vk.vanna_euro_future(F, K, T, r, sigma, cp="call"),
    "vomma": vk.vomma_euro_future(F, K, T, r, sigma, cp="call"),
    "lambda": vk.lambda_euro_future(F, K, T, r, sigma, cp="call"),

}).set_index('strike')
df.round(4)
call price delta gamma theta vega rho ddelta vanna vomma lambda
strike
70.0 29.7234 0.9853 0.0010 0.4007 0.9689 -14.8617 -0.9830 -0.1679 30.7906 3.3150
75.0 24.8450 0.9726 0.0030 -0.1126 3.0474 -12.4225 -0.9655 -0.4231 62.9755 3.9146
80.0 20.1070 0.9409 0.0072 -1.0331 7.1761 -10.0535 -0.9248 -0.7648 89.1509 4.6796
85.0 15.6524 0.8799 0.0133 -2.3412 13.2711 -7.8262 -0.8510 -1.0120 87.2986 5.6215
90.0 11.6553 0.7848 0.0200 -3.7718 20.0245 -5.8277 -0.7425 -0.9548 55.0716 6.7333
95.0 8.2701 0.6610 0.0254 -4.9196 25.4251 -4.1350 -0.6087 -0.5249 16.0877 7.9927
100.0 5.5811 0.5229 0.0279 -5.4602 27.8591 -2.7906 -0.4671 0.1393 -0.6965 9.3697
105.0 3.5820 0.3880 0.0269 -5.3079 26.8977 -1.7910 -0.3354 0.7907 15.3349 10.8329
110.0 2.1892 0.2705 0.0233 -4.6128 23.2827 -1.0946 -0.2260 1.2260 52.2932 12.3540
115.0 1.2772 0.1776 0.0183 -3.6411 18.3330 -0.6386 -0.1434 1.3728 89.0682 13.9091
120.0 0.7132 0.1104 0.0133 -2.6445 13.2937 -0.3566 -0.0861 1.2783 110.1421 15.4797
125.0 0.3825 0.0652 0.0090 -1.7864 8.9702 -0.1913 -0.0491 1.0457 111.4387 17.0515
130.0 0.1977 0.0368 0.0057 -1.1326 5.6829 -0.0989 -0.0268 0.7739 97.6539 18.6141