{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Case1-3: モンテカルロ・シミュレーションをPythonで実装\n", "Implement Monte-Carlo Simulation in Python" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2016-09-17T13:46:45.425234", "start_time": "2016-09-17T13:46:44.040168" }, "collapsed": false, "hide_input": false }, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import pandas as pd\n", "import seaborn" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2016-09-17T13:46:45.431169", "start_time": "2016-09-17T13:46:45.427205" }, "collapsed": true }, "outputs": [], "source": [ "s, t, r, sigma = 1000, 30 / 365.0, 0.001, 0.2\n", "path_of_monte_carlo = 50000" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 次の確率微分方程式にしたがう確率過程 Stを求める([幾何ブラウン運動](https://ja.wikipedia.org/wiki/幾何ブラウン運動 \"Wikipedia\")) \n", "it satisfies the following stochastic differential equation \n", "$$dS_t = \\mu S_t\\,dt + \\sigma S_t\\,dB_t$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2016-09-17T13:46:45.458169", "start_time": "2016-09-17T13:46:45.438170" }, "code_folding": [], "collapsed": true }, "outputs": [], "source": [ "def future_stock_price(s, r, sigma, t):\n", " return s*np.exp(np.random.normal((r - 0.5 * np.power(sigma, 2)) * t, sigma * np.sqrt(t)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 上記の関数を50000回実行\n", "run 50000 times" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2016-09-17T13:46:45.960171", "start_time": "2016-09-17T13:46:45.462169" }, "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 580 ms, sys: 0 ns, total: 580 ms\n", "Wall time: 578 ms\n" ] } ], "source": [ "%time stock_price_results = [future_stock_price(s, r, sigma, t) for _ in range(path_of_monte_carlo)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ヒストグラムを表示\n", "plot histgram" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2016-09-17T13:46:46.642172", "start_time": "2016-09-17T13:46:45.963174" }, "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 250 ms, sys: 0 ns, total: 250 ms\n", "Wall time: 260 ms\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nYKy354Q2/fT/07is//ul6OQxv/KmzRkwtydwJObvp//nI0lGXMbi+VzDMWaVOkZabdRr39qod+TV\nNu7qiTFj5/t5kX5VtsZlTbjg2Onuv6j63v9HLtcsjRRFRdbeN3m4c5plg++FOByOS56blZWRwEog\nSWVlw3sGdcGCebr//mH9kAAAYBSw7OnQ8ePHKyMjQydOnIgZDwQCA84CAwAAABdj2eArSZ/5zGe0\nb9++mLF9+/apqKgoSRUBAABgpLJ08F26dKneeOMN7dixQ++//76+973v6S9/+YuWLFmS7NIAAAAw\nwjgMwxjalUXDrKmpSU899ZQ++ugjXX/99XrkkUf02c9+NtllAQAAYISxfPAFAAAA4sHSSx0AAACA\neCH4AgAAwBYIvgAAALAFgi8AAABsgeALAAAAWyD4AgAAwBZGVPBduHChXC7XgP/WrVtnztm6davK\ny8s1Z84cLVmyRD6fL+Y5IpGIPB6PysrKVFhYqKqqKh09enS4X8qoFA6H5fF49PnPf16f+cxntGjR\nIm3bti1mDv1JjmAwqO9///tmb+666y61tbXFzKE3w2Pfvn267777dPPNN8vlcmnPnj0D5sSjF8Fg\nUKtXr1ZJSYmKi4u1cuVKdXV1JfS1jXQX682//du/aenSpZo7d65cLteAvkj0JpEu1J9oNKof//jH\nuv322+V2u3XLLbfooYceUnt7e8xz0J/EuNjXzpYtW/SlL31Jbrdbc+fO1Ve+8hW9++67MXOGrTfG\nCPKnP/3J+OMf/2j+98tf/tJwuVzGr371K8MwDOP555835syZY+zatcvw+XzGN7/5TaO0tNTo7u42\nn+Pxxx835s6da/zHf/yH8Yc//MG4++67jS9+8YtGJBJJ1ssaNTwej1FaWmq8+eabxpEjR4yXXnrJ\nKCgoMF566SXDMOhPMn3zm980brvtNqO5udn405/+ZDz++ONGSUmJceLECcMw6M1w2rNnj/HDH/7Q\n2L17t+FyuYzXX3895ni8evHAAw8YFRUVxjvvvGO0tLQYX/rSl4xly5YN2+sciS7Wm5deesnYsmWL\n8fzzzxsul8v44x//OOA56E3iXKg/wWDQWLx4sfHcc88Z+/fvN9544w3jb//2b42FCxcaf/3rX815\n9CcxLva109jYaOzevdv47W9/a+zbt8944IEHjMLCQuOjjz4y5wxXb0ZU8O1v48aNxuc//3nz71/4\nwheMuro68++9vb2G2+02fvrTnxqGYRhnzpwxCgsLzb8bhmF0dHQYLpfL2LNnz/AVPkpVVlYa3/3u\nd2PG/umf/slYv369YRj0J1l6e3uNT3/608arr74aM37bbbcZP/rRjwzDoDfJEAwGjZkzZw74ARGP\nXnR0dBgzZ86M6c3+/fuNmTNnGj6fL5Eva1Q4X2/Oef/99wcNvvRmeFysP+f87ne/M2bOnGm89957\nhmHQn+Fwqb3p6emJ+TwPZ29G1FKHT4pGo9q1a5duv/12SdLJkyfV3t6u0tJSc87YsWNVVFSk1tZW\nSZLP51Nvb2/MnMmTJ2v69OnmHFw+t9utffv2mf+01NLSog8++EDl5eX0J4n6+voUiUSUnp4eM56e\nnq6WlhZ6YyHx6kVra6scDkfMnOLiYqWnp9OvBKI31hIOh+VwOJSTkyOJ/ljF6dOn1djYqHHjxmn2\n7NmShrc3qXF6HcNu7969OnHihO644w5J0vHjx+VwOOR0OmPmOZ1OdXR0SJJOnDhhjvWfc+4YLl91\ndbVOnz6t2267TampZ99aa9as0fz58+X3++lPklx11VUqLCzUtm3bdOONNyo3N1cvv/yy3n//fRmG\noePHj0sa/PNOb4ZXvL6PBQIBpaenKyMjwzzucDiUnZ1NvxKI3lhHOByW1+vVwoULNXHiREn0J9ne\neOMNPfDAA4pEIsrNzdX27ds1YcIEScPbmxEbfP/1X/9VpaWlmjx5sjlmGMagcx0Ox3CVZWsvvPCC\n3njjDT355JOaMWOGWltbVVdXp7y8PE2dOpX+JNEPfvADfec739H8+fOVmpqq2bNnq7y8XMeOHbvg\n4+jN8OPrBLgyfX19+ta3vqVIJKLvf//7yS4H/+tzn/ucXnnlFXV2durFF19UdXW1XnjhBTP8DpcR\nudTh+PHjeuutt3TnnXeaY3l5eZLO/kbwSYFAQLm5uZJk/nmhObh8TzzxhL7+9a9r4cKFuuGGG3Tn\nnXdq8eLF2rZtG/1JsqlTp+q5555Ta2ur3nzzTe3cuVM9PT2aMmUKvbGQePUiNzdXvb29CoVC5nHD\nMNTZ2Um/EojeJF84HNaKFSv08ccf69lnn9X48ePNY/QnucaNG6f8/HyVlJTI6/UqJSVFP/vZzyQN\nb29GZPB96aWXlJWVpYqKCnMsJydHU6dOVXNzsznW29urlpYWFRUVSZJcLpfS09Nj5nR0dOjw4cPm\nHFyeSCSicDg8YNzhcCgajdIfi8jIyJDT6dT777+vlpYWfeELX6A3FhKvXhQWFsowjJg5Bw4c0Jkz\nZ+R2u4fp1dgPvUmuM2fO6Otf/7oCgcCA0CvRHyuJRCLq6+szc8Nw9mZELnVoamrSP/zDP5jrSM+5\n99575fV6NWvWLLlcLm3ZskUZGRlavHixJCktLU2VlZVqaGgwz3R5vV7l5+dr3rx5yXgpo0ZKSorm\nzZunp556SpMmTdKMGTPU0tKil19+Wffff78k+pNMe/fuVWdnp6ZPn64PP/xQmzZtUlFRkfm5pzfD\nJxgMqr293Txr0d7eLp/Pp5ycHE2YMCEuvZg8ebIWLVqkuro6jR8/XqmpqVq/fr3Kyso0c+bMpL12\nq7tYb7q6uvTRRx/pv//7v2UYhg4dOiRJmjhxorKzs+lNgl2oP9nZ2Vq+fLmOHDmi+vp6/fnPfzYf\nN2XKFI0fP57+JNCFejN+/Hh5PB7NmzdPeXl56uzs1L/8y78oEAjoi1/8oqRh/r52yfs/WMS+ffsM\nl8tl/P/t3D1qKlEYBmCyGm38QWwEQW1mES5ArLWyshJ0CdMLrsLGHbgAS8FSQQsR/NIJJibhwo0h\nOc8DU52PwwxvMW8xczabzcP1PM+j1WpFuVyObrf77oiLy+US0+k0Go1GVKvV6PV6sd1un3Hrf97h\ncIjxeBztdjsqlUpkWRZ5nsf1er3NyOdnLJfLyLIsSqVSNJvNmEwmcTwe72Zk8xyr1SoKhUIUi8W7\nazab3Wb+Rxan0ylGo1HU6/Wo1WoxGAxiv98/5Rl/q6+yWSwWD9fn8/ltD9l8n8/y2e12D9fenikr\nn+/xWTbn8zmGw2F0Op3bO6jf78d6vb7b41nZvER88CcFAAD8Ib/yG18AAPhXii8AAElQfAEASILi\nCwBAEhRfAACSoPgCAJAExRcAgCQovgAAJEHxBQAgCYovAABJUHwBAEjCK5AJujesuW2QAAAAAElF\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%time pd.Series(stock_price_results).hist(bins=100)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python 3", "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.5.1" }, "nav_menu": {}, "toc": { "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 6, "toc_cell": false, "toc_section_display": "block", "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 0 }