.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/exotic_options/compound/plot_02_forward_start.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via JupyterLite. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_exotic_options_compound_plot_02_forward_start.py: Rubinstein forward-start options ================================ A forward-start option is struck at :math:`\alpha S_t` on a future date :math:`t`, the way executive options are granted at the money. Mark Rubinstein (1990) noticed that on the start date it is worth :math:`S_t` times the option on a unit spot, so today it is worth .. math:: V = S e^{-qt}\, \mathrm{BS}(1, \alpha, T - t), independent of where the price goes before :math:`t`. Its value is proportional to the spot, so it has no gamma until it starts, and a string of them is a cliquet. .. GENERATED FROM PYTHON SOURCE LINES 18-27 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from financialkit.exotic_options import forward_start_price from financialkit.options import black_scholes_price S, T, r, sigma, q = 100.0, 1.0, 0.05, 0.25, 0.02 print(f"Haug (2007), 4.3: {forward_start_price(60.0, 1.1, 0.25, 1.0, 0.08, 0.30, q=0.04):.4f}") .. rst-class:: sphx-glr-script-out .. code-block:: none Haug (2007), 4.3: 4.4065 .. GENERATED FROM PYTHON SOURCE LINES 28-30 Value against the start date, with a Monte Carlo check ------------------------------------------------------ .. GENERATED FROM PYTHON SOURCE LINES 30-46 .. code-block:: Python t = np.linspace(0.0, 0.95, 40) fig, axes = plt.subplots(1, 2, figsize=(12, 4)) for alpha in (0.9, 1.0, 1.1): axes[0].plot(t, forward_start_price(S, alpha, t, T, r, sigma, q), label=rf"$\alpha$ = {alpha}") rng = np.random.default_rng(0) for ts in (0.25, 0.5, 0.75): z = rng.standard_normal((2, 20_000)) St = S * np.exp((r - q - 0.5 * sigma**2) * ts + sigma * np.sqrt(ts) * z[0]) ST = St * np.exp((r - q - 0.5 * sigma**2) * (T - ts) + sigma * np.sqrt(T - ts) * z[1]) y = np.exp(-r * T) * np.maximum(ST - St, 0.0) axes[0].errorbar(ts, y.mean(), yerr=2 * y.std() / np.sqrt(y.size), fmt="k.", capsize=3) axes[0].set_xlabel("start date t") axes[0].set_ylabel("forward-start call") axes[0].legend() .. image-sg:: /api/gallery/exotic_options/compound/images/sphx_glr_plot_02_forward_start_001.png :alt: plot 02 forward start :srcset: /api/gallery/exotic_options/compound/images/sphx_glr_plot_02_forward_start_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 47-49 Homogeneous in the spot: no gamma before the start -------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 49-57 .. code-block:: Python Ss = np.linspace(50.0, 150.0, 100) axes[1].plot(Ss, forward_start_price(Ss, 1.0, 0.5, T, r, sigma, q), label="forward start (t = 0.5)") axes[1].plot(Ss, black_scholes_price(Ss, S, T, r, sigma, q), "--", label="vanilla call, K = 100") axes[1].set_xlabel("spot S") axes[1].legend() fig.tight_layout() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.065 seconds) .. _sphx_glr_download_api_gallery_exotic_options_compound_plot_02_forward_start.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../../../lite/lab/index.html?path=api/gallery/exotic_options/compound/plot_02_forward_start.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_02_forward_start.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_02_forward_start.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_02_forward_start.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_