{ "cells": [ { "cell_type": "markdown", "id": "497d9b9dc9634500812f180231b90e8e", "metadata": {}, "source": [ "# Call prices and all Greeks across strikes\n", "\n", "Minimal example: compute **call** and **greeks** for a range of strikes and print a table." ] }, { "cell_type": "code", "execution_count": null, "id": "a58dfe9237aa417481c613c2041a682e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
call pricedeltagammathetavegarhoddeltavannavommalambda
strike
70.029.72340.98530.00100.40070.9689-14.8617-0.9830-0.167930.79063.3150
75.024.84500.97260.0030-0.11263.0474-12.4225-0.9655-0.423162.97553.9146
80.020.10700.94090.0072-1.03317.1761-10.0535-0.9248-0.764889.15094.6796
85.015.65240.87990.0133-2.341213.2711-7.8262-0.8510-1.012087.29865.6215
90.011.65530.78480.0200-3.771820.0245-5.8277-0.7425-0.954855.07166.7333
95.08.27010.66100.0254-4.919625.4251-4.1350-0.6087-0.524916.08777.9927
100.05.58110.52290.0279-5.460227.8591-2.7906-0.46710.1393-0.69659.3697
105.03.58200.38800.0269-5.307926.8977-1.7910-0.33540.790715.334910.8329
110.02.18920.27050.0233-4.612823.2827-1.0946-0.22601.226052.293212.3540
115.01.27720.17760.0183-3.641118.3330-0.6386-0.14341.372889.068213.9091
120.00.71320.11040.0133-2.644513.2937-0.3566-0.08611.2783110.142115.4797
125.00.38250.06520.0090-1.78648.9702-0.1913-0.04911.0457111.438717.0515
130.00.19770.03680.0057-1.13265.6829-0.0989-0.02680.773997.653918.6141
\n", "
" ], "text/plain": [ " call price delta gamma theta vega rho ddelta vanna \\\n", "strike \n", "70.0 29.7234 0.9853 0.0010 0.4007 0.9689 -14.8617 -0.9830 -0.1679 \n", "75.0 24.8450 0.9726 0.0030 -0.1126 3.0474 -12.4225 -0.9655 -0.4231 \n", "80.0 20.1070 0.9409 0.0072 -1.0331 7.1761 -10.0535 -0.9248 -0.7648 \n", "85.0 15.6524 0.8799 0.0133 -2.3412 13.2711 -7.8262 -0.8510 -1.0120 \n", "90.0 11.6553 0.7848 0.0200 -3.7718 20.0245 -5.8277 -0.7425 -0.9548 \n", "95.0 8.2701 0.6610 0.0254 -4.9196 25.4251 -4.1350 -0.6087 -0.5249 \n", "100.0 5.5811 0.5229 0.0279 -5.4602 27.8591 -2.7906 -0.4671 0.1393 \n", "105.0 3.5820 0.3880 0.0269 -5.3079 26.8977 -1.7910 -0.3354 0.7907 \n", "110.0 2.1892 0.2705 0.0233 -4.6128 23.2827 -1.0946 -0.2260 1.2260 \n", "115.0 1.2772 0.1776 0.0183 -3.6411 18.3330 -0.6386 -0.1434 1.3728 \n", "120.0 0.7132 0.1104 0.0133 -2.6445 13.2937 -0.3566 -0.0861 1.2783 \n", "125.0 0.3825 0.0652 0.0090 -1.7864 8.9702 -0.1913 -0.0491 1.0457 \n", "130.0 0.1977 0.0368 0.0057 -1.1326 5.6829 -0.0989 -0.0268 0.7739 \n", "\n", " vomma lambda \n", "strike \n", "70.0 30.7906 3.3150 \n", "75.0 62.9755 3.9146 \n", "80.0 89.1509 4.6796 \n", "85.0 87.2986 5.6215 \n", "90.0 55.0716 6.7333 \n", "95.0 16.0877 7.9927 \n", "100.0 -0.6965 9.3697 \n", "105.0 15.3349 10.8329 \n", "110.0 52.2932 12.3540 \n", "115.0 89.0682 13.9091 \n", "120.0 110.1421 15.4797 \n", "125.0 111.4387 17.0515 \n", "130.0 97.6539 18.6141 " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "import volkit as vk\n", "\n", "# Parameters (edit these) -----------------------------\n", "F = 100.0 # futures price\n", "T = 0.50 # years\n", "r = 0.02 # continuous compounding\n", "sigma = 0.20 # Black vol (per √year)\n", "\n", "# Strike grid -----------------------------------------\n", "K = np.arange(70.0, 131.0, 5.0) # 70,75,...,130\n", "\n", "# Table ------------------------------------------------\n", "df = pd.DataFrame({\n", " \"strike\": K,\n", " \"call price\": vk.price_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", " \"delta\": vk.delta_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", " \"gamma\": vk.gamma_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", " \"theta\": vk.theta_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", " \"vega\": vk.vega_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", " \"rho\": vk.rho_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", " \"ddelta\": vk.dual_delta_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", " \"vanna\": vk.vanna_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", " \"vomma\": vk.vomma_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", " \"lambda\": vk.lambda_euro_future(F, K, T, r, sigma, cp=\"call\"),\n", "\n", "}).set_index('strike')\n", "df.round(4)\n" ] } ], "metadata": { "kernelspec": { "display_name": "volkit-eeDo8oXc-py3.11", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.8" } }, "nbformat": 4, "nbformat_minor": 5 }