{ "cells": [ { "cell_type": "markdown", "id": "b2a2a749-e56d-4030-89b0-8f2a841714c7", "metadata": {}, "source": [ "# 10-Finance Tutorial- Option Pricing with qGANs\n", "### Modified for Quantum Rings toolkit for Qiskit 2.x" ] }, { "cell_type": "code", "execution_count": 1, "id": "bffc2d08-c7a6-42c8-a0be-7f5e77237175", "metadata": {}, "outputs": [], "source": [ "# this code is at:\n", "# https://qiskit-community.github.io/qiskit-finance/tutorials/10_qgan_option_pricing.html\n", "\n", "# Modified for use with Quantum Rings toolkit" ] }, { "cell_type": "code", "execution_count": 2, "id": "69c30c92-9588-44bd-8b45-856343c30f7c", "metadata": {}, "outputs": [], "source": [ "#\n", "# Setup your account\n", "# You can also save your account locally using the class method QrRuntimeService.save_account(...) and\n", "# invoke the QrRuntimeService class constructor without any arguments.\n", "#\n", "\n", "import os\n", "my_token = os.environ[\"QR_TOKEN\"]\n", "my_name = os.environ[\"QR_ACCOUNT\"]\n", "\n", "#\n", "# Set the backend of your choice, depending upon the task and your hardware configuration.\n", "# See SDK documentation for additional help.\n", "#\n", "\n", "my_backend = \"scarlet_quantum_rings\"" ] }, { "cell_type": "code", "execution_count": 3, "id": "ce1ebd93-57c7-4349-b82a-7ce360c669ae", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "from qiskit.circuit import ParameterVector\n", "from qiskit.circuit.library import TwoLocal\n", "from qiskit.quantum_info import Statevector\n", "\n", "from qiskit_algorithms import IterativeAmplitudeEstimation, EstimationProblem\n", "#from qiskit_aer.primitives import Sampler\n", "from qiskit_finance.applications.estimation import EuropeanCallPricing\n", "from qiskit_finance.circuit.library import NormalDistribution\n", "\n", "from quantumrings.toolkit.qiskit import QrRuntimeService\n", "from quantumrings.toolkit.qiskit import QrSamplerV2 as Sampler\n", "\n", "#\n", "# Acquire Quantum Rings Backend\n", "#\n", "\n", "qr_services = QrRuntimeService(name = my_name, token = my_token)\n", "qr_backend = qr_services.backend(name = my_backend, precision = \"single\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "db4d9f70-8455-435b-8ce3-1e9244bdfc44", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\vkasi\\AppData\\Local\\Temp\\ipykernel_25440\\78081676.py:13: DeprecationWarning: The class ``qiskit.circuit.library.n_local.two_local.TwoLocal`` is deprecated as of Qiskit 2.1. It will be removed in Qiskit 3.0. Use the function qiskit.circuit.library.n_local instead.\n", " var_form = TwoLocal(num_qubits, \"ry\", \"cz\", entanglement=\"circular\", reps=1)\n" ] } ], "source": [ "# Set upper and lower data values\n", "bounds = np.array([0.0, 7.0])\n", "# Set number of qubits used in the uncertainty model\n", "num_qubits = 3\n", "\n", "# Load the trained circuit parameters\n", "g_params = [0.29399714, 0.38853322, 0.9557694, 0.07245791, 6.02626428, 0.13537225]\n", "\n", "# Set an initial state for the generator circuit\n", "init_dist = NormalDistribution(num_qubits, mu=1.0, sigma=1.0, bounds=bounds)\n", "\n", "# construct the variational form\n", "var_form = TwoLocal(num_qubits, \"ry\", \"cz\", entanglement=\"circular\", reps=1)\n", "\n", "# keep a list of the parameters so we can associate them to the list of numerical values\n", "# (otherwise we need a dictionary)\n", "theta = var_form.ordered_parameters\n", "\n", "# compose the generator circuit, this is the circuit loading the uncertainty model\n", "g_circuit = init_dist.compose(var_form)" ] }, { "cell_type": "code", "execution_count": 5, "id": "d35dd09f-9ba6-424d-b970-f777004cefca", "metadata": {}, "outputs": [], "source": [ "# set the strike price (should be within the low and the high value of the uncertainty)\n", "strike_price = 2\n", "\n", "# set the approximation scaling for the payoff function\n", "c_approx = 0.25" ] }, { "cell_type": "code", "execution_count": 6, "id": "e7cdc395-8b75-4c5a-b567-6c7433694ac2", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "<>:26: SyntaxWarning: invalid escape sequence '\\$'\n", "<>:27: SyntaxWarning: invalid escape sequence '\\%'\n", "<>:26: SyntaxWarning: invalid escape sequence '\\$'\n", "<>:27: SyntaxWarning: invalid escape sequence '\\%'\n", "C:\\Users\\vkasi\\AppData\\Local\\Temp\\ipykernel_25440\\2221175606.py:26: SyntaxWarning: invalid escape sequence '\\$'\n", " plt.xlabel(\"Spot Price at Maturity $S_T$ (\\$)\", size=15)\n", "C:\\Users\\vkasi\\AppData\\Local\\Temp\\ipykernel_25440\\2221175606.py:27: SyntaxWarning: invalid escape sequence '\\%'\n", " plt.ylabel(\"Probability ($\\%$)\", size=15)\n" ] }, { "data": { "image/png": "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YtC9+omEjWvi/T1NP38rkSeJCdEXMW23A1bNy+sf4Kfm83XFlDqCLVlERETk9trenpdX5tvNt0Xr9ry8K+oDbYrCZRhkERERkUcoZuW8vK4MsAS7C4mIiMhjhNyel7fi/gRcKROG1CIBaFAtHjuPRCMkIRPFzyer6eTcAYMsIiIi8jj+HjAvL7sLiYiIiByAQRYRERGRAzDIIiIiInIABllEREREDsAgi4iIiMgBGGQREREROQCDLCIiIiIHYJBFRERE5AAMsoiIiIgcgEEWERERkQMwyCIiIiJyAAZZRERERA7AIIuIiIjIARhkERERETkAgywiIiIiB2CQRUREROQADLKIiIiIHIBBFhEREZEDMMgiIiIicgAGWUREREQOwCCLiIiIyAEYZBERERE5AIMsIiIiIgdgkEVERETkAAyyiIiIiByAQRYRERGRAzDIIiIiInIABllEREREDsAgi4iIiMgBGGQREREROQCDLCIiIiIHYJBFRERE5AAMsoiIiIgcgEEWERERka8HWcnJyXj77bcRGxuL0NBQxMTEYMCAATh37pzV+7p27RqGDBmCihUrIiQkRN0PHToU169fN/mYzMxMTJ48GXXr1kVYWBiio6Px8MMP48CBAzZeGREREXkbjwmyUlJS0K5dO4wZMwaJiYno3r07ypcvj5kzZ6Jhw4Y4fvy4xfu6fPkymjZtiilTpiAwMBAPPvggChcujE8++QTNmjXD1atX8zwmKysLvXv3xrBhw3D27Fl06dIFtWvXxrx589CkSRNs3rzZzldMREREnsxjgqyxY8di48aNaNGiBQ4fPoyffvoJmzZtwkcffYT4+HjVomUpabE6evQoevbsiUOHDql97d27Fy+//LLatwRSxmbMmIH58+ejWrVqOHjwoAquVq9ejV9++QVJSUl47LHHkJGRYeerJiIiIk/lEUFWWloaPvvsM/XvqVOnIiIiInudBET16tXDmjVrsG3btnz3df78ecyZMwfBwcGYNm2aaskymDhxouoCnD17Ni5dupTrcZMmTVL3EyZMQKlSpbKXP/TQQ+jWrZsK2n7//Xe7XC8RERF5Po8IstatW4eEhARUqVJFdQ0a69Wrl7pfuHBhvvv6888/Vddf69atcwVLQnKzunbtqnKvlixZkr38xIkTKu9K8rCkm9CW4xMREZFv8Igga9euXeq+UaNG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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Evaluate trained probability distribution\n", "values = [\n", " bounds[0] + (bounds[1] - bounds[0]) * x / (2**num_qubits - 1) for x in range(2**num_qubits)\n", "]\n", "uncertainty_model = g_circuit.assign_parameters(dict(zip(theta, g_params)))\n", "amplitudes = Statevector.from_instruction(uncertainty_model).data\n", "\n", "x = np.array(values)\n", "y = np.abs(amplitudes) ** 2\n", "\n", "# Sample from target probability distribution\n", "N = 100000\n", "log_normal = np.random.lognormal(mean=1, sigma=1, size=N)\n", "log_normal = np.round(log_normal)\n", "log_normal = log_normal[log_normal <= 7]\n", "log_normal_samples = []\n", "for i in range(8):\n", " log_normal_samples += [np.sum(log_normal == i)]\n", "log_normal_samples = np.array(log_normal_samples / sum(log_normal_samples))\n", "\n", "# Plot distributions\n", "plt.bar(x, y, width=0.2, label=\"trained distribution\", color=\"royalblue\")\n", "plt.xticks(x, size=15, rotation=90)\n", "plt.yticks(size=15)\n", "plt.grid()\n", "plt.xlabel(\"Spot Price at Maturity $S_T$ (\\$)\", size=15)\n", "plt.ylabel(\"Probability ($\\%$)\", size=15)\n", "plt.plot(\n", " log_normal_samples,\n", " \"-o\",\n", " color=\"deepskyblue\",\n", " label=\"target distribution\",\n", " linewidth=4,\n", " markersize=12,\n", ")\n", "plt.legend(loc=\"best\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 7, "id": "21fe465a-485a-480a-9fdf-6841288f0bd8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Analytically calculated expected payoff w.r.t. the target distribution: 1.0597\n", "Analytically calculated expected payoff w.r.t. the trained distribution: 0.9805\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAHOCAYAAACPapPhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUd9JREFUeJzt3QmczdX/x/H32HeyZY1CaaNIJSHZk2RLaUGpFKW0qghpR9rr16pFiajshkSljRYtRFmylS37zv0/Puf7v9MYMwxm5nu/9/t6Ph73ce/ce+fO+X5nue8553POSYhEIhEBAAAEWDa/GwAAAHC0CDQAACDwCDQAACDwCDQAACDwCDQAACDwCDQAACDwCDQAACDwCDQAACDwCDQAACDwCDRAjElISNjvki1bNhUpUkR169bVq6++qqAs7v3nn3+qdevWKl68uDsGO5bPPvvMPbZ371717dtXlSpVUq5cudxjnTt3PujrLVmy5IBzk/JyqNeIdW+++aY7jn79+vndFCBwcvjdAACp69SpU9Kbv4WDL7/8Ul988YWmTZum9957T7Fs3759ateunX788Uede+65qlKligs1pUqVco8//fTTeuihh1SmTBm1adNGefLk0fnnn5+u186fP7977dSk9zX8YoFr2LBhmj59ui644AK/mwPEFQINEMP/rSeXmJioiy66SO+//76uvPJKXXzxxYpV1ptiYcZ6lWbOnHnA4x999JG7/vzzz3XCCScc1mtbj0/KcxMvrEfLAqAdI4DDw5ATEBCNGzfW1VdfvV8giFXLly9312mFlUM9HlaFCxdW1apVCTTAESDQAAFy5plnuutly5a56w0bNujZZ59V06ZNVaFCBeXOnVvFihVTs2bNXI9OSqeddpqr0fj9999TfX173ezZs+v4448/oFbn7bffdkM6hQoVUr58+VStWjU9+uij2rFjx37Ps9evX7++u23DK9H6FhtisSEXu7148eKk50Yv1quTUawGxV4zrZ6cihUruseTs/qeaB3O+vXrddNNN6l06dLunNp5e/3119P8enbebr31Vp144onKmzevihYtqrPOOkv9+/fXpk2bko7Vzodp0KBBqsd+sBqabdu2uWE6a4t9DQs/9erVcz12hzpGq72y75d9ng373Xjjje5nB4gnDDkBAbJ582Z3bW+y5uuvv3ZvpPbmddJJJ6l27dr666+/NGXKFHexN7Jrr7026fPtjcyeb/c/+eSTB7y+vWlb/UvXrl33e8O3z/vf//7nal0uvPBCF2gsANx3330aO3aspk6d6u6L1v78/fffmjx5siv6jda1JO95GDVqlLZu3ZpUJ2QKFCigWGBv9HYet2zZ4obM1q5d64bNrrvuuqRzk5wNm11yySXu8+z70LJlS23fvl3z5893waRVq1Y644wz3LFaDZTVQ1kAjdYTpefY7ftuIWjOnDkqUaKEG2608/fpp5+6r//VV1+5uqTU3H333e4xC5SVK1d2tVj2vZw3b55mzJhxQLADAisCIKbYr2Vqv5r79u2L1K5d2z12//33u/sWLVoU+eqrrw547vfffx8pUqRIpFChQpHNmzcn3b9hw4ZIvnz5IiVKlIjs3Llzv8/Zu3dv5Ljjjotkz549smLFiqT7R40a5b5mmTJlIgsWLNjvtc4//3z32B133LHfa02fPt3d36lTp1SPsUKFCqke48EsXrzYfY597qE8+OCD7rlvvPFGur9+tM12ufzyyyM7duxIemzMmDHufjs/ya1bt86dS3vsySefdOcwuVmzZkX++eefpI/tfNhz7Wulxtprj1v7k+vRo4e7v0GDBpFNmzYl3T9v3rxIyZIl3WNjx45N9RhLlSoVmT9/ftL9a9asiVSuXNk9Nm3atFTbAQQRQ05AjLNZTgsXLnQ9LfafuPXOdOnSxT1mQ0NWRJra0FT37t3dcIfNqImyYYrLL79ca9as0ccff7zf51iPjvXutGjRws0+inrmmWfc9YMPPuhmKyV/reeff979h//yyy8fMPSUWZYuXZrmtO2MYENqzz33XFIvmLn00kvdUI+dn+RDY9bTZefShvjuvPNON5MrOevpKVmy5FG1x3piXnvtNffaL7zwggoWLJj0mPV6PfDAA+52Wj00NkxlvXdR1kvWrVs3dzu1gm0gqBhyAmJUam/Q9mZmdRg2lJM88NhU7lmzZmnVqlXauXOnu99CUPLrKHszs6GlV155Re3bt0+63z42N9xwQ9J9u3fvdsNaxmZWpWR1GXb56aefkqZoZ7aDTdvOCDVr1nR1SClZfcwvv/zizrENLRkbaosOyWUWG2ayISyrybEAk5IVitswog0l2ZBYylDVpEmTVI/F2LEA8YJAA8SoaH2JvUFZr8Hpp5/u1mw55phj9pstZPUUFigOVXcTVatWLdWoUcO9GVtxrvXy/PPPP64Wply5cq63IWrdunXatWuX+6/egkRq7M3dvv6KFSuUFTJ72radg9REe0aigTF5cXbygJnRVq5c6a6jISolW3TRess2btyof//994AwltrxpHYsQNAx5ATEKHvTtov1pgwdOtQVpSYPM8YKVC1MtG3bVt98840rTLUeGyvFsWEgk9rKwtZLY/fbUIaxXh/rjbFhLZvldDiCWFRqPRlpSdnDEQQH+x4E8XiAI8FPOhBQVlthU7OPPfZYjRgxQmeffbb7Tz36BrZo0aI0P7djx46u1+eNN97Qnj17XC2IfZ6FpuTsv33bmsBm+tjXS020pqRs2bKKFdZmYzOVUrLAZ7OwMkL58uXdtc1cyizReiarHUqN9cxYkLUp2SkDLxAmBBogoOyNzHoabK2UlL0q1tsyZsyYND/Xho+uuuoqN5xh03qtzsamEh933HH7PS9nzpxJdTGprXdiNSXWQ2TTjm1qcqywc2IWLFhwwGNWJG3nJyM0atTIXds06MMJWhYiD6emx8KK1dKkrIcy77zzjruuU6cOvTEINX76gYCy2TPWI2OhwgpCk/dA3HPPPam+mScXneny1FNPuevrr78+1efdcsst7trWVEne62O1OT169HBDV1YUa2vUxApbcC76Zp98VpLVDFkBbUaxIT+r6Zk4caIbFkw5vGcF1atXrz6gtyWthQ3TCp82FGjh1WauJe8ps+/xwIED3e2MPC4giAg0QEDlyJHD9a7Yf/u2Mq/NZrEp2bZ42ksvveTe/A7GiozPO+88d9sWebMF4VJjM4ps5pMVINvUZStCvuyyy1whrC3MZj04AwYMUCyxtl1zzTWuSNZ6jmzhO+tNsWO2Y7BVlTOCrQg8cuRIV2R7++23u6/boUMH9/VsirtN244W9Ro7x1bvYlO8bSq4BSK7WPH1wdiKzNZTY0OMtl2EnX+bXl+9enU3fGZhJq3vHxAWBBogwGylXivotanT1ktjM5fsTc56Bmya76HYqr/G1rWxgJQWKzB+66233Po2FmJsRpT1ED388MNutdroKsGxxKah33vvva5WyFYttp6a3r17Z/hO5bYCrw27RQutbZ8t+15Y75kFveQzoCyUWK/RKaec4tb9saJsu6SciZaSBSY777aVgvUIffLJJ26FYPseDx8+PM01aIAwSbDV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4fnz52vEiBHKnj27Cz0AgHT4+mvp4oulHTu863fesYW//G4VEFOO6jdi4cKFevXVVzVs2DC33YENL9WoUcNtRNmxY0fly5fvgM9p3769PvjgA1csDAA4hO+/l5o1k7ZulRo1kkaOlHLl8rtVQHwFmpNOOskVBOfNm1ddunRxQeass8465OcVLlxYu217ewBA2n79VWrSRNq4UTr/fK8gOE8ev1sFxN+Q0ymnnKKnn35aK1eudD016Qkzxp7LVG4AOIiFC70eGdsfr1Ytafx4KX9+v1sFxGcPzS+//JJxLQEAeJYulRo2lGxbmWrVpEmTpEKF/G4VENMokQeAWLJypXThhdKyZVLVqlJiolS0qN+tAmJehpTJb9u2TdOnT3dFwja7KbX9nKzWxhbXAwCkYfVqr2dm0SLphBOkqVNtcS+/WwWEI9C8+eabbgG9TZs2Jd1ngcYCTMqPCTQAkIb1670C4PnzbV8Zado0qWxZv1sFhGPIaerUqbruuutcWLnvvvtUu3Ztd//LL7+su+66yy2kZ2GmR48eet0WgQIAHMj+IWzeXPrpJ+nYY70wU7Gi360CwhNoBg8e7MKMDTc99NBDqlKlirv/+uuvd/s5/frrr7rttttcmKlZs2ZGtRkA4se2bd5ied9+KxUr5g0znXii360CwhVovvvuO5177rmqXr16qo/nyJFDgwYNcvs72a7cAIBkbOVf287g88+9WUy2V9Npp/ndKiB8gWbLli067rjjkj7OnTu3u7bC4KQvkC2bzjnnHH1uv7AAAI8tLnrZZd4sJltfZuJEiZ5swJ9AU6pUKa23Qrb/V7p0aXe9YMGC/Z5nz9m+ffvRfCkAiB+2W/ZVV0ljx3or/9r1eef53SogvIGmatWqbqp2lO2qbUXATzzxRNLU7VmzZunTTz912yQAQOjZKunXXSd98IGUM6c0erTUoIHfrQLCHWhatGihxYsX61srZpMtn9BQ1apV06hRo1S2bFlXCNygQQO3zYEVBwNAqNk/ej16SMOGSdmzSyNGeLObAPgbaK655hpNnDjRFf26F8uWTePHj1fjxo21evVq/fDDD27H7YEDB+oq614FgDCHmbvukl580VYald56S2rd2u9WAXHjqBbWs12zmzZtut991jMzadIkt3rwxo0bXdjJbv+JAECY9etna114t195RerY0e8WAXHliALN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5Mgvv/yS6mPPPPNMpGjRokk/G9FL69at3e9OPLjrrrsiOXPmjHz33Xf73f/ee++5vwepvTfYfd26dYvEi4T/P6YKFSpE7r///si8efMisYYemoNYuXKlS9qWuq0Hpl27du5j27Xb/gsxW7du1fLly/X9999r5MiR+vnnn3Xssce6/1jD8h9KWmrXrq1vv/1We/fuVVDZ97dWrVr6/fff3Rb2yVlPxaBBg9SjR48DPq9Lly566623An3sUb/88otq1qyp3bt3u94X652y82E9MMOHD1e9evXc49YrU7x4cX322Wd655133BLo9vtwwgknKMhOPPHEdD1vxYoV2rFjhztHUdaLZecq6LJly+Z+pl977bUD/mu35e7td+Oss85yPXf//vuv66my353TTz/d/Q0I+nYA9vNtx7Vo0aKk+6w3qnLlytq+fbvat2/vzk/FihVd76z9DgwZMsR9zrBhw3TVVVcpHn4GoqK9s/Z+ePXVV+vyyy9XyZIl5Tu/E1Usu/baa10qfeqpp9L9OYMHD3afc91110XC7txzzw38f6wDBgxw388aNWpEvvrqq8i2bdvcf6pdu3ZN+k/U/ntLrYcm6Mcedc0117hz8OKLLybd99Zbb7n7jj/++EiTJk0iu3fvPuC/dnv8tttui8TLf6YH6509WK9tPLBj6dKly373/fXXX5FcuXK53rgpU6bs99jq1asjderUccc/dOjQSNBZD1SLFi32u8+Oy87L3XffnernWA9mnjx5Iueff34kHtix2t+CiRMnRjp27BgpUKBA0s+49V7Z+Xn//fcj27dv962NBJqDKFOmjHtTPlz2Ofa5YRcPgaZ69eqRwoULR/7+++9Uh2GOOeYYd4wWcPbt2xeXgca6mG2IKaXTTjvNHeMXX3xxwGMWcOx34PTTT48EXYkSJdyQmg0f/PHHH5ElS5akeon+vKe8P14DTTS0Pvroo6l+jg292zDteeedFwk6O44rrrhiv/tuvvlm9/22YJcWK0EoWLBgJB5/BrZu3er+sbF/aHLkyJEUbgoVKuSeN23atCxvI7OcDsK6Dq0L8XBZkbB9brzInj37EV2sSDDo/vjjD5133nluGDGliy66SLNmzVL58uX1+uuvuyGXeCwI/fvvv3XqqacecP/JJ5/srm1YIaUcOXK4+5csWaKgmz9/vhsyePnll9W6dWs3tGS/4ykvefLkcc9PeX+8WrBggRt6sKH41NjfThuqmTdvnoLOivtt6DW56Pc7X758aX5e3rx5Dxiqjhf58uVzw02TJ0/WsmXL3PB79erV3YSZN998U40bN3bnrXfv3gecu8xCoDkI+2bYWPC2bdvS/Tn2XPsce5OLF//fk+dqRg7nknwWTFBZDUyhQoXSfLxq1ar68ssv3fWHH36oVq1auTqKeBL9w51StI4srfNj9TS7du1S0NmsNvsDnZiY6H6/rWbohhtucPURYWaz3szB/tZZoLNamqC7+OKL9euvv2r8+PFJ9zVq1Mj9XRw1alSa/wjYPzzR4B/PSpUqpV69erlaUpsJee+997r3T6svffzxx3XGGWdkSTsINAdh/3FbYXDTpk3d1LxDsefYc+0HuWPHjooXVvxp4cSmq1sBXHovZ599toLO/iAf6r8LOz9ffPGFK4qcNGmSmjVrpk2bNileWLGf9UqkZL02F154YZqfZ1PcLdTEi4YNG7qfhTvvvNMFHAuxb7/9tsLCliGwdXail2LFiiUVx6Zlw4YNOuaYYxR09gZtx2HFr9ZTZ9PUmzdv7v6Buf322zV48GD3826seH7q1Knu78DGjRt14403KkyqVq2qRx55RIsXL3ZT2bt27arChQtnzRfP8kGuALHiJhsXj44NVqlSJdKhQ4fIHXfcEenTp4+72G27zx6LFg7Wrl07smPHjki8aNOmjTs2qxkJWw2NFYbbMfz++++HfO6WLVvcmHn05yXox578+58vX77Izp070/05Vk9ktSd169aNxKOffvopUqtWraSlGuznI56nbSf/mU55effdd1P9nL1797qp/meddVYkHsyePTtSvHhxd8xWF1OvXr1Iu3btXEFs9FxYoWzyJQxS1h0FWcJRHM/h/O04GjmyJjYFt6vdpt899NBDev755109hV1MdDgl+fiopVCbwvvAAw8EfppictbTMmbMGDf90upG0isexo4vueQSvfHGG3rqqaf04osvHvS5NgQzceJE91/cRx99FBdDbqZOnTqaOXOmW4rApuKnx5QpU7R27drYXoTrKNgyDlYj9swzz6hPnz6uduBgtRRBZ8Nsaf08Wy1NamyhReutjpfF5aL1QH379tW7777rSgtSig6v2c/D3XffrSuuuMKHlsYeK0HICqxDk07WjWi1Ej/99JPrbrXuV2OrQtpY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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Evaluate payoff for different distributions\n", "payoff = np.array([0, 0, 0, 1, 2, 3, 4, 5])\n", "ep = np.dot(log_normal_samples, payoff)\n", "print(\"Analytically calculated expected payoff w.r.t. the target distribution: %.4f\" % ep)\n", "ep_trained = np.dot(y, payoff)\n", "print(\"Analytically calculated expected payoff w.r.t. the trained distribution: %.4f\" % ep_trained)\n", "\n", "# Plot exact payoff function (evaluated on the grid of the trained uncertainty model)\n", "x = np.array(values)\n", "y_strike = np.maximum(0, x - strike_price)\n", "plt.plot(x, y_strike, \"ro-\")\n", "plt.grid()\n", "plt.title(\"Payoff Function\", size=15)\n", "plt.xlabel(\"Spot Price\", size=15)\n", "plt.ylabel(\"Payoff\", size=15)\n", "plt.xticks(x, size=15, rotation=90)\n", "plt.yticks(size=15)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "id": "50d2d2b2-a933-4f70-b27a-fab16467e707", "metadata": {}, "outputs": [], "source": [ "# construct circuit for payoff function\n", "european_call_pricing = EuropeanCallPricing(\n", " num_qubits,\n", " strike_price=strike_price,\n", " rescaling_factor=c_approx,\n", " bounds=bounds,\n", " uncertainty_model=uncertainty_model,\n", ")" ] }, { "cell_type": "code", "execution_count": 9, "id": "6090ffb1-53c0-4cbf-8676-c7b5e28b2e6c", "metadata": {}, "outputs": [], "source": [ "# set target precision and confidence level\n", "epsilon = 0.01\n", "alpha = 0.05\n", "\n", "problem = european_call_pricing.to_estimation_problem()\n", "# construct amplitude estimation\n", "ae = IterativeAmplitudeEstimation(\n", " epsilon_target=epsilon, alpha=alpha, sampler=Sampler(backend = qr_backend, options={\"shots\": 100, \"seed\": 75})\n", ")" ] }, { "cell_type": "code", "execution_count": 10, "id": "313811b0-2a7a-4304-b555-488427bb805b", "metadata": {}, "outputs": [], "source": [ "result = ae.estimate(problem)" ] }, { "cell_type": "code", "execution_count": 11, "id": "ea07a29a-3b62-40cd-9385-73522da546f0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Exact value: \t0.9805\n", "Estimated value: \t1.0142\n", "Confidence interval:\t[0.9372, 1.0911]\n" ] } ], "source": [ "conf_int = np.array(result.confidence_interval_processed)\n", "print(\"Exact value: \\t%.4f\" % ep_trained)\n", "print(\"Estimated value: \\t%.4f\" % (result.estimation_processed))\n", "print(\"Confidence interval:\\t[%.4f, %.4f]\" % tuple(conf_int))" ] }, { "cell_type": "code", "execution_count": 12, "id": "a2ba9268-5e19-43df-9129-c5415c6a3f12", "metadata": {}, "outputs": [], "source": [ "# Example output:\n", "\n", "# Exact value: \t0.9805\n", "# Estimated value: \t1.0353\n", "# Confidence interval:\t[0.9209, 1.1497]" ] }, { "cell_type": "code", "execution_count": 13, "id": "c79f5e67-e629-4a33-940d-43ace950e128", "metadata": {}, "outputs": [ { "data": { "text/html": [ "

Version Information

SoftwareVersion
qiskit2.2.1
qiskit_aer0.17.1
qiskit_optimization0.7.0
qiskit_finance0.4.1
qiskit_ibm_runtime0.40.1
qiskit_algorithms0.4.0
System information
Python version3.12.9
OSWindows
Thu Oct 16 11:29:53 2025 Mountain Daylight Time
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "

Quantum Rings Version Information

SoftwareVersion
QuantumRingsLib0.11.0
quantumrings-toolkit-qiskit0.1.10
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "

This code is a part of a Qiskit project

© Copyright IBM 2017, 2025.

This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

Modifications Copyright Quantum Rings Inc, 2025
Modified from the originals
Added support for Quantum Rings QrEstimatorV2 class.

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import tutorial_magics\n", "\n", "%qiskit_version_table\n", "%quantumrings_version_table\n", "%qiskit_copyright" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.9" } }, "nbformat": 4, "nbformat_minor": 5 }