{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["<img src=\"http://hilpisch.com/tpq_logo.png\" alt=\"The Python Quants\" width=\"35%\" align=\"right\" border=\"0\"><br>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["# Python for Algorithmic Trading\n", "\n", "**Chapter 01 — Python and Algorithmic Trading**"]}, {"cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["CPU times: user 923 ms, sys: 10.2 ms, total: 933 ms\n", "Wall time: 932 ms\n"]}], "source": ["%%time\n", "import random\n", "from math import exp, sqrt\n", "\n", "S0 = 100\n", "r = 0.05\n", "T = 1.0\n", "sigma = 0.2\n", "\n", "values = []\n", "\n", "for _ in range(1000000):\n", " ST = S0 * exp((r - 0.5 * sigma ** 2) * T +\n", " sigma * random.gauss(0, 1) * sqrt(T))\n", " values.append(ST)"]}, {"cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["CPU times: user 97.3 ms, sys: 22 ms, total: 119 ms\n", "Wall time: 119 ms\n"]}], "source": ["%%time\n", "import numpy as np\n", "\n", "S0 = 100\n", "r = 0.05\n", "T = 1.0\n", "sigma = 0.2\n", "\n", "ST = S0 * np.exp((r - 0.5 * sigma ** 2) * T +\n", " sigma * np.random.standard_normal(1000000) * np.sqrt(T))"]}, {"cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": ["%matplotlib inline\n", "from pylab import mpl, plt\n", "plt.style.use('seaborn')\n", "mpl.rcParams['font.family'] = 'serif'"]}, {"cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [{"data": {"text/plain": ["['../pyalgo.cfg']"]}, "execution_count": 4, "metadata": {}, "output_type": "execute_result"}], "source": ["import configparser\n", "c = configparser.ConfigParser()\n", "c.read('../pyalgo.cfg')"]}, {"cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [{"data": {"image/png": "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\n", "text/plain": ["<Figure size 720x432 with 1 Axes>"]}, "metadata": {}, "output_type": "display_data"}], "source": ["import quandl as q\n", "q.ApiConfig.api_key = c['quandl']['api_key']\n", "d = q.get('BCHAIN/MKPRU')\n", "d['SMA'] = d['Value'].rolling(100).mean()\n", "d.loc['2013-1-1':].plot(title='BTC/USD exchange rate',\n", " figsize=(10, 6));\n", "# plt.savefig('../../images/ch01/bitcoin_xr.png')"]}, {"cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [{"data": {"text/html": ["<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>Value</th>\n", " <th>SMA</th>\n", " </tr>\n", " <tr>\n", " <th>Date</th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>2020-04-29</th>\n", " <td>7790.66</td>\n", " <td>7990.4138</td>\n", " </tr>\n", " <tr>\n", " <th>2020-04-30</th>\n", " <td>7765.33</td>\n", " <td>7981.0335</td>\n", " </tr>\n", " <tr>\n", " <th>2020-05-01</th>\n", " <td>8777.63</td>\n", " <td>7982.5451</td>\n", " </tr>\n", " <tr>\n", " <th>2020-05-02</th>\n", " <td>8628.77</td>\n", " <td>7981.6102</td>\n", " </tr>\n", " <tr>\n", " <th>2020-05-03</th>\n", " <td>8824.66</td>\n", " <td>7983.2674</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>"], "text/plain": [" Value SMA\n", "Date \n", "2020-04-29 7790.66 7990.4138\n", "2020-04-30 7765.33 7981.0335\n", "2020-05-01 8777.63 7982.5451\n", "2020-05-02 8628.77 7981.6102\n", "2020-05-03 8824.66 7983.2674"]}, "execution_count": 6, "metadata": {}, "output_type": "execute_result"}], "source": ["d.tail()"]}, {"cell_type": "markdown", "metadata": {}, "source": ["<img src=\"http://hilpisch.com/tpq_logo.png\" alt=\"The Python Quants\" width=\"35%\" align=\"right\" border=\"0\"><br>\n", "\n", "<a href=\"http://tpq.io\" target=\"_blank\">http://tpq.io</a> | <a href=\"http://twitter.com/dyjh\" target=\"_blank\">@dyjh</a> | <a href=\"mailto:training@tpq.io\">training@tpq.io</a>"]}], "metadata": {"anaconda-cloud": {}, "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.7.6"}}, "nbformat": 4, "nbformat_minor": 4}