├── .gitignore ├── Alphas ├── Filter_Rules.ipynb ├── Market_Return_by_Dates.ipynb ├── Market_Return_by_Payday.ipynb ├── Market_Return_by_Political_Party.ipynb ├── Retail_Crypto_Universe_Return_by_Meme_Coin.ipynb └── Retail_Crypto_Universe_Return_by_Ticker_Rank.ipynb ├── LICENSE ├── Miscellaneous ├── Continuous_Time_Finance.ipynb ├── Crypto_Degrees_of_Freedom.ipynb ├── Direction_Statistics.ipynb ├── Generating_Multivariate_Random_Numbers.ipynb ├── Grinold-Kahn Notes.md ├── Index_Pairwise_Correlations.ipynb ├── Jarque-Bera Tests.ipynb ├── Longer_Term_Crypto_Degrees_of_Freedom.ipynb ├── Normality Tests.ipynb └── S&P_500_Pairwise_Correlations.ipynb ├── README.md ├── The Market's Not Normal ├── Fundamental_Law.ipynb ├── Non_Stationarity_in_the_First_Two_Moments.ipynb ├── The_Autocorrelation_of_Variance.ipynb ├── The_Market's_Not_Normal.ipynb ├── The_Variance_is_Not_Stationary.ipynb ├── These_Two_Things_are_Not_the_Same.ipynb ├── my_library.py └── not_the_same.tex ├── my_library.py └── nlls.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .nox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | *.py,cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | cover/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | .pybuilder/ 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | # For a library or package, you might want to ignore these files since the code is 87 | # intended to run in multiple environments; otherwise, check them in: 88 | # .python-version 89 | 90 | # pipenv 91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 94 | # install all needed dependencies. 95 | #Pipfile.lock 96 | 97 | # poetry 98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 99 | # This is especially recommended for binary packages to ensure reproducibility, and is more 100 | # commonly ignored for libraries. 101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 102 | #poetry.lock 103 | 104 | # pdm 105 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 106 | #pdm.lock 107 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 108 | # in version control. 109 | # https://pdm.fming.dev/#use-with-ide 110 | .pdm.toml 111 | 112 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 113 | __pypackages__/ 114 | 115 | # Celery stuff 116 | celerybeat-schedule 117 | celerybeat.pid 118 | 119 | # SageMath parsed files 120 | *.sage.py 121 | 122 | # Environments 123 | .env 124 | .venv 125 | env/ 126 | venv/ 127 | ENV/ 128 | env.bak/ 129 | venv.bak/ 130 | 131 | # Spyder project settings 132 | .spyderproject 133 | .spyproject 134 | 135 | # Rope project settings 136 | .ropeproject 137 | 138 | # mkdocs documentation 139 | /site 140 | 141 | # mypy 142 | .mypy_cache/ 143 | .dmypy.json 144 | dmypy.json 145 | 146 | # Pyre type checker 147 | .pyre/ 148 | 149 | # pytype static type analyzer 150 | .pytype/ 151 | 152 | # Cython debug symbols 153 | cython_debug/ 154 | 155 | # PyCharm 156 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 157 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 158 | # and can be added to the global gitignore or merged into this file. For a more nuclear 159 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 160 | #.idea/ 161 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2024 Giller Investments (New Jersey), LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to use 5 | the Software, including without limitation the rights to use, copy, modify, 6 | and distribute, and to permit persons to whom the Software is furnished to do so, 7 | subject to the following conditions: 8 | 9 | The above copyright notice and the following notices shall be included in all 10 | copies or substantial portions of the Software. 11 | 12 | PERMISSION TO COMMERCIALLY EXPLOIT THIS SOFTWARE BY SELLING OR LICENSING 13 | UNMODIFIED VERSIONS OF IT TO THIRD PARTIES IS EXPLICITLY WITHHELD. THE 14 | TERM "UNMODIFIED" SHALL EXPRESSLY INCLUDE ANY MODIFICATIONS THAT A REASONABLE 15 | PERSON WOULD REGARD AS "TRIVIAL" OR "SLIGHT," SUCH AS CHANGES TO FORMATTING, 16 | PRESENTATION, SPECIFIC CHOICES OF NON-CONSEQUENTIAL WORDS, PUNCTUATION, LAYOUT ETC. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | SOFTWARE. 25 | 26 | NOTHING IN THIS SOFTWARE, OR THE DOCUMENTATION ASSOCIATED WITH IT, SHOULD BE 27 | TAKEN AS REPRESENTING INVESTMENT ADVICE, EITHER EXPLICITLY OR IMPLICITLY. 28 | THE AUTHOR EXPRESSLY AND UNAMBIGUOUSLY WITHHOLDS ANY ENDORSEMENT OF THE USE 29 | OF THIS SOFTWARE AS PART OF A TRADING OR INVESTMENT STRATEGY. ALL INVESTMENTS 30 | ARE MADE AT THE SOLE RISK OF THE INVESTOR AND YOU SHOULD CONSULT A REGISTERED 31 | INVESTMENT PROFESSIONAL FOR ANY ADVICE REGARDING SPECIFIC INVESTMENTS OR 32 | INVESTMENT STRATEGIES PRIOR TO MAKING AN INVESTMENT OF ANY KIND. 33 | -------------------------------------------------------------------------------- /Miscellaneous/Grinold-Kahn Notes.md: -------------------------------------------------------------------------------- 1 | # Grinold-Kahn Notes 2 | 3 | For asset returns $r_{it}\ :\ i\in[1,N], t\in\mathbb{Z}^+$, define the matrix $G_N(\rho)$ as the covariance matrix of returns where all pairwise correlations are equal. i.e. 4 | 5 | $$ 6 | \mathbb{V}[r_{it},r_{jt}]=\sigma_{i}\sigma_{j}\rho \Leftrightarrow V=SG_N(\rho)S\ \mathrm{where}\ G_N(\rho)=\begin{pmatrix} 7 | 1&\rho&\cdots&\rho\\ 8 | \rho&1&\cdots&\rho\\ 9 | \vdots&&\ddots&\vdots\\ 10 | \rho&\rho&\cdots&1 11 | \end{pmatrix}\ \mathrm{and} 12 | \ S_t=\begin{pmatrix} 13 | \sigma_1&0&\cdots&0\\ 14 | 0&\sigma_2&\cdots&0\\ 15 | \vdots&&\ddots&\vdots\\ 16 | 0&0&\cdots&\sigma_N 17 | \end{pmatrix}. 18 | $$ 19 | 20 | As a symmetric positive definite matrix, $G_N(\rho)$, may always be diagonalized by a similarity transformation. The eigenvalues are: 21 | 22 | 1. one eigenvalue of $1+(N-1)\rho$; and, 23 | 2. $N-1$ eigenvalues of magnitude $1-\rho$. 24 | 25 | and the associated eigenvectors are: 26 | 27 | 1. one eigenvector of all ones: $(1\,1\dots 1)^T=\mathbf{1}_N$ where $\mathbf{1}_N$ is the unit-vector of dimension $N$; and, 28 | 2. $N-1$ vectors of the form: $(1\,-1\,0 \dots 0)^T$, $(1,0\,-1\,0 \dots 0)^T$ through $(1\,0 \dots 0\,-1)^T$. 29 | -------------------------------------------------------------------------------- /Miscellaneous/Jarque-Bera Tests.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [], 7 | "authorship_tag": "ABX9TyN9PjJ29ioVj0KHDZQuwmOh", 8 | "include_colab_link": true 9 | }, 10 | "kernelspec": { 11 | "name": "python3", 12 | "display_name": "Python 3" 13 | }, 14 | "language_info": { 15 | "name": "python" 16 | } 17 | }, 18 | "cells": [ 19 | { 20 | "cell_type": "markdown", 21 | "metadata": { 22 | "id": "view-in-github", 23 | "colab_type": "text" 24 | }, 25 | "source": [ 26 | "\"Open" 27 | ] 28 | }, 29 | { 30 | "cell_type": "code", 31 | "execution_count": 1, 32 | "metadata": { 33 | "colab": { 34 | "base_uri": "https://localhost:8080/" 35 | }, 36 | "id": "s34EvR0_ax-c", 37 | "outputId": "783a5304-11b7-4494-c4a8-f60eba41ceea" 38 | }, 39 | "outputs": [ 40 | { 41 | "output_type": "stream", 42 | "name": "stdout", 43 | "text": [ 44 | "16:39:14 Starting...\n", 45 | "16:39:14 Installing yfinance into Google notebook...\n", 46 | "16:39:18 Installing arch into Google notebook...\n", 47 | "16:39:26 Initialized.\n" 48 | ] 49 | } 50 | ], 51 | "source": [ 52 | "from my_library import *" 53 | ] 54 | }, 55 | { 56 | "cell_type": "code", 57 | "source": [ 58 | "from scipy.stats import norm,gennorm,jarque_bera as jbtest\n", 59 | "from itertools import product\n", 60 | "\n", 61 | "results=pd.DataFrame()\n", 62 | "results.index=pd.MultiIndex.from_tuples(list(product(list(range(10,1001,1)),list(np.arange(one,four,0.1)))))\n", 63 | "results.index.names=[\"Sample\",\"Beta\"]\n", 64 | "\n", 65 | "for n,beta in results.index:\n", 66 | " sample=pd.Series(gennorm(beta,zero,one).rvs(n))\n", 67 | " results.loc[(n,beta),\"Mean\"]=sample.mean()\n", 68 | " results.loc[(n,beta),\"St.Dev.\"]=sample.var()\n", 69 | " results.loc[(n,beta),\"Skewness\"]=sample.skew()\n", 70 | " results.loc[(n,beta),\"Kurtosis\"]=sample.kurt()+three\n", 71 | " results.loc[(n,beta),\"JB Test\"]=jbtest(sample)[1]\n", 72 | "\n", 73 | "results[\"JB 5%\"]=results[\"JB Test\"]<0.05\n", 74 | "results[\"JB 1%\"]=results[\"JB Test\"]<0.01\n", 75 | "results[\"JB 0.1%\"]=results[\"JB Test\"]<0.001\n", 76 | "\n", 77 | "Z=(df:=results.reset_index()).pivot_table(index=\"Beta\",columns=\"Sample\",values=\"JB Test\").values\n", 78 | "X,Y=np.meshgrid(np.sort(df[\"Sample\"].unique()),np.sort(df[\"Beta\"].unique()))\n", 79 | "figure,plot=pl.subplots(figsize=(ten*GoldenRatio,ten))\n", 80 | "plot.pcolormesh(X,Y,Z,cmap='Oranges')\n", 81 | "plot.set_xscale('log')" 82 | ], 83 | "metadata": { 84 | "id": "6HqH-iEra29s", 85 | "outputId": "5c06f8ea-2496-4f38-8628-526eae659881", 86 | "colab": { 87 | "base_uri": "https://localhost:8080/", 88 | "height": 835 89 | } 90 | }, 91 | "execution_count": 14, 92 | "outputs": [ 93 | { 94 | "output_type": "display_data", 95 | "data": { 96 | "text/plain": [ 97 | "
" 98 | ], 99 | "image/png": "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Bw/WwIEDdfTRR2vGjBkd1k8mk6qtrc37AwAAAAAAAOD/jg0OTPq+r8suu0x77LGHxowZ0269UaNG6b777tPTTz+tBx98UL7va/fdd9eCBQvabXPDDTeouro692fgwIEbOk0AAAAAAAAA/wttcGDy4osv1vTp0/XII490WG/cuHE688wztf3222v8+PF64okn1LNnT911113ttpkwYYJqampyf+bPn7+h0wQAAAAAAADwv9B6/TcmW1xyySV69tln9cYbb2jAgAHr1TYWi2mHHXbQrFmz2q2TSCSUSCQ2ZGoAAADA/2Pvv8OrqPb///s5k15I6BB6lSJNOiiI9CJSpIh0EZQiFkQBOwgIAgoiIkXpXYqg0kRAmtIRlN4hoScB0jNz/zFxh21CFff5fb7363FdXFl91sysWTO8yfGIiIiIyP8B9/Ubk7Zt06dPH5YsWcK6desoWLDgfR8wOTmZP/74g7CwsPvuKyIiIiIiIiIiIv9vuK/fmOzduzdz5sxh2bJlZMiQgYiICABCQ0MJCAgAoFOnTuTOnZvhw4cDMHjwYKpWrUqRIkWIjIzk008/5dSpU7z44osP+VRERERERERERETk/4r7Ckx+9dVXANSqVcut/Ntvv6VLly4AnD59GtNM/UXMa9eu0b17dyIiIsiUKRMVKlRgy5YtlCxZ8t/NXERERERERERERP7Puq/ApG3bd22zfv16t/xnn33GZ599dl+TEhERERERERERkf+3PfD/K7eIiIiIiIiIiIjIg1JgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPM6wbdv+X0/ibqKjowkNDWV0aZMAL+M/P14O//92/KdKh/xnY18Nj36o4+UqVfChjucVEPhQxlny44F/1b/1+In/qv+NbwY8cF//sLwP1O/qoSMP1C9LyWL33cfLL+C+2p/7bed9tbete992Vh5Puue2L77c+J7aJV88e0/tLv156J7aHTwXd9c2tTo1u2ubuMN771jv/2iVu45xY+vqO9YHt+h1x/qrc8fe+QDG7ffg3w9fv21dw/YN7jjs+nmr0i3/K+r2x8t2h7261chh6VfsXJFu8adTtt52rGcLpr9eC3XplqZs9sip6bZt36Fm+oPX7pG27PKJdJt+0++9tOM2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+AF77VjM5yZgXw+HgEwY3gFY4bsws5cC04ur/cpyMzqO3L0/xCj9LIbhhZ14ExJjOf5yNQqNXw8BGcHLlzUtSlD/x3OQnIi1exZGyWcw/ELA2xeS4on9pA4B723hXLcC5BqzGXvrJCheFyPrI+AdgOGX8o1qJYNhYifcdPaIAk8ABtgWhk+Ac56HN2M2GQJ/hwJtC2vzl84eePOy8/c9w8QIzIIdcwXDNxj76nGijRAyFqxAVFQUISEPN6al35gUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjDNu27f/1JO4mOjqa0NBQznbPQojvfx9LDSr4yH86/uJF2/6zsVu0qPhQx7Mt66GOt3PNzocyTqWJK/5V/4Udm/6r/oeijAfuWyXrg13TbZcebO2/93L1++/k5XNfzaP3776v9rsORt5z28rlw+657bad4ffUrnab2vfULnzT5ntql6Ncqbu22bLq7mv/iZe63LH+4or5d5+Mcee1OWVH3B3r+7UoeMf6T5ecuG1d6/zJt60LCva947iBGfzSLf9x/83b9mnb6PZ7ddSps+mWZ234bPodbly97VhXt25Itzxj0aJpyg6vT/8+l5iwOt3yxNn90pR5V2qcbtu9Y0akKcufPzRN2ZaD0en2/6eyudLek0MRCWnKzsakXVMd21Z2y9vJSWnaRB4+7JbP3HNkmjZL+/Zyy3v/Y5t7urP7tYja/mvaMXZfd59bq/Ju+eXf73LLl83qfj4FXvvAlTaK1nGrs+a+7pY/vdV9rNzlH3WlfV6a5VZ3tEsZVzpDlkC3uuSk1PdAWI9BbnVGkdT9yb561JWOGt/XrV1oj9T18Gv/nqSnxuRb3pUxl90r41Ofrakv93Glg27Z/p9768XUTKY8ruQfn7wPQOlPp6fWB2ZNTR9Zn5o+f8s6qNrW+Xk5dR+5/O1wV3rCb7GudIcizudpoRFzU/v/vsD5mbe0qyh8yieudFh9Z73smbvYVVaubTMATixbDkDB0ctSx1v1GQDx4addRX6PNwdg/CCn7uVWqfu76eNcHLOos8bWjp3sqssb6My3WIf2AJxe7Mw131tjADAK1XK1/ahmOQC6P+Y8g2Gvjwbgxzd6A9C4TxcAEv/cCoBvb2fv3/6806/iFwsB+LVXawBO3nTWdMuqWQAIqlwXgPAflgAQez0egAI1nW9E89EazkTO/uXMrZ6zzi8PcfbHbBOcdXfh5UIs+cO5Jz2mO/fayFgAgDP9nGclT/XK2EnO8280eROA5MUfA/DXxj2UnpryHrUSAYga1gIAv8yZ8avS0OlX2rlHe16uT7CPcy7HUx7ryESDJlWyAxBYrAzLZ60FoGnblHOo2AwOO8cwGr+PHe3s/TFfvsi67RcAeLpnOwC2fTOHik86z6xt2/hkzua0PXEYvyzOMYbO+oP6uSyqdklZq0WqwJk/nLRfAMYTzj0636c8uSbsI+KVcgCsOxJHu1efd071zEHMuj0wcqasU8PkwgDnubYtm5yjfsXe46yPDSNG8mS35zAaDMJelrIXhBXFPrgVI2vKM5fnUQgMhYAQJ79jKfgGQGg28AkA4OaqGQQVL8ePc9bQ+IUWUMTZo6/PGUHIuz9CciL2GmednVr+A2vPWHTrWgueehEjSzF2d6oAwI0kg8txBs0HvkLijlX4PNGKxC1L8A7KAMDmH3+jxneHsdeOYNgH39KvRUH8OnzCyh6tabz8CMlTOwJgth1NwpQX8e32NfaGCVxc/T3JSRaZ8uXk2ukIwj6YS+K8d5iy9C9KZ7J54uPREJwFts2HGl0AEw6uhSLV4egWOOfsI6fWbiT/B1+BbwaW93ieejXy49/ufdi3ivM/LCH3yFXYJ7eClQTZCkPcDRJXjMX3pRnYaz6FXMUh4SbXv5/Cun1RNG1WATM0KzsWrmTLJZO+4wZjFG+CvelLOPMXlHwSbIszk0dxITKJim0aYTQbir1kIJSqjb1tMUalphiFa0FSLFeGtCTLRz+RPPtVzMcaYJRoCIk3sZOTmP78M3T+9CPYswp8AzCfn4idFMfKlqVoMHkJS7u25Ei0Qf8FcyDyHOxfi/HsKM71foxcb4+Hcwc49c141p+xqJ3fi7z16xF/6jA+GUIxn/2Qqc8145EQmxqt60Kxx4lZPpGAPAUw238BsVeY1rYxnV9/nuQT+/HKlA38Ajn63TKKfPAFJ4a+yuITBv03HcVOjgfbYnjN0gz4dixmiWYkjmuKV+3OxCwYSWCBIhgdJ2P4BGHN6ga1erD31VaUfWco1rYlmFVbQFAW2PsTCScP4tf1C2w7GSNDLuytkzAqPI8dcxl+n8eYkQvot2aHs46tZOzl70GFZkzq0pUebz5P5C/LWbTrOo2L+pDro7mwaylkyIxRsiFnBzYjz/BlEByGvWUiFK4GO5dh1H+L3ztVpdIHw+HINoxGgzjZuzonriZTq1dX4vdsYPTSk7yzdgvW3NcwGr4KhsGQZ5/Hx4SBG/eD6Y1hmNjR57Av7Mcs3pTxNfPT68OeGFVewJrVG+Pp/hhZHnHm7O2LffE0iZFX8es1E5ITIDgn2BY/NCtOk9kbsG9GYGTIjb2gP7/9sJUqXy7CzFsVa3E/KFqN+OVf4Js5G2br4eDlh/3HUo6PH0nhGX9BQgz2z6OZ8flcuqw/A1YyR57LT5Fv9zh7gk8g9sUD2N8PI+nmDXxav4uRowz23D4YbT6DuEjsjV9j1O0Hhom96hPMlqOxzm0Hb3+4eAgjbyXsszuY9Wo/Oq05xrDqRejbIAeBrd6EDFkxC9fHmtKW+Iiz+FVtTMLvq/B/+2dOdCxI/qcbQZHKGIVqEDO2PYHvrueHZx6hyXd7wMuXGx/VJPjDXyHmKvamrzEbvocdfR6S4rDXfg7FHses0Bm8fLHjIrEvH4bYKxghebHP/M6itwbRqv+LmLXfwlo1FKNSWxJmvIHfWz9jrR6MUf1l7BUfEL5mJSFZgwl6bgAkxBD30xSunblIWI0aGO0mQNw1jJDckBjL9ferEdTxI+fdbFsY3v7YiTEMefIxBrQriXebjzDzPYEdcxn7wDISf56O39u/AAbWifVweifHxo+icL3HIVt+zJZjsDZ/iVG6BSTcIGHqS/h2+hwjazHsuEjn79amD/YP73Nj6yoyDN4MVhKR7zxBxhHbsef2xnhuPPbpTZhFGmAtepXFk5bw7LI9LG1ejmYzfsDMURpr10w4uRuz1Tjs2KvYy9/DbD2OxM+b8OOP+2g6dSGLuram9eyVEJyDbe3KUaleebz7fI99/TxGQGas7d9iFG+Affo3sJJYOWggDQe8DlYyRpUXiHijGjk+WICRqQCGbwbnefXy4YeWZakxazsZC1YgKiqKkJCUd9JDot+YFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY8zbNu2/9eTuJvo6GhCQ0P5uIQX/l7Gf368LH7/7SXp9FKT/2zsuCP7Hup4/k80f6jjUajKQxnmt77t/1X/5H95i4O8H3yAoo+GPVC/A39EPFC/R0vluO8+pw/e37HyFM58X+29g4Lvue21MxfvuW1YpfL31O7Upt/vqV2Oornvqd3xvafu2qZkpw53Hyh/uTtWT+jz1l2H6PJk9jvWb9x54Y71mXzvPH7BXAG3rcsx4pfb1m3uUPWO4/52Of1/J3v941637XNx4dTb1v10MC7d8lp50z9OvuoVbzuWUSz9fSvu1yVpygLf/TXdtrGf1E63fM7qE2nKbncP6ldOe28Di5RM27BhvzRFibPTrh07KSlN2dQVR9KU5QpMe4gyWdzzBXumPaZ9wP1aJFy7nKaN6e3tlvfr/7Nb/vrAsm754A82pBnjylvua+vAiRtu+crVC7sfo+GL7gOc2e9Kxu/f6la1+7fjbvmqvdz7Jh/e4UovWrbXra7tqE9c6W0fvO0+zoivbpmw+zkbjd9LHf/bbq700qU73dq1/Gxsart137jSkxakzqNFST9X+pvdCW79X2+U05Xev/e8K1156jpX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A0dTvhtrdsLIUwn7xEaODHkdy4briQYVv5iPkSEP9q8TMap3ZdsLtTENOHzdoMPy3SRMaIfvS9OJG9cWw8sb37C8XA2/QLZhfxAVFUVISNq/B/0b+o1JERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8zrBt2/5fT+JuoqOjCQ0NZeUTBkHexn9+vGz+/+0lCc0S+J+Nna1MqYc63mczdz7U8RrnSn4o4+y89u9i6i2qZf9X/Seuu/TAfTs+5v9A/bYcjX2gfs3n/HzffW6ObX9f7ddvD7+v9tGJ9/4cZ/e79+fRusd2j1fMdU/tpvwccU/t+i7+6a5tzg5setc2ecZtu2P94a6P3XWMxae97lhfNdudr9ITdcvesX7Fj/tuW3cj6fb92o/46I7jXp42It3yrB3fvG2fhPVzb1u3b+vhdMtLVciXbnlidPRtx5qyOf261+enPf68rs+l27Z+yaB0yw+cuJGmrMJjYem29fIPSFPml7tA2oaPVEtTdH3xl2nKMtRtlbavb9r30+lpE9KU5R+/xS0/tE7VNG3e3em+L8yvnTNNmxaNH3XLf//TAbd8y28WuuU/btkmzRgDO5Zxy3t3meSWt38a6pbfNGuZWz5vxtRnJv8Tld3qxs/4zS3fZ9jrbvnzM75wpXO1eN79uGf+cqWNwAzukw4McSWPLVzsVlX4mYau9I6FK13pDRfc33v9xn3gSlvbl7vSsxelvrc7Pl/dlT67+Xe3/kcvJbrSj+ZPve/z98a50j1bl3alD/26x5UuOWo2AHvfSH1XPLY0db+0FvVNPVDpeq7k6E4v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+f61yTViJfaGieyZOY/yyy7yUfkw3t/8J7Ej6vP5irO82bYE3tWaQ2wUyX/8yv4NeyjbrSsEZ4ICFVnTsz0VijrfrTuPXKde+4ZQuSUr+/agbMlM5Jl8haioKEJCUr9lHwb9xqSIiIiIiIiIiIh4nAKTIiIiIiIiIiIi4nEKTIqIiIiIiIiIiIjHKTApIiIiIiIiIiIiHqfApIiIiIiIiIiIiHicApMiIiIiIiIiIiLicQpMioiIiIiIiIiIiMcpMCkiIiIiIiIiIiIed1+ByeHDh1OpUiUyZMhA9uzZad68OYcOHbprv4ULF1K8eHH8/f0pXbo0P/744wNPWERERERERERERP7vu6/A5IYNG+jduzfbtm1jzZo1JCYmUr9+fW7evHnbPlu2bKFdu3Z069aN3bt307x5c5o3b87+/fv/9eRFRERERERERETk/ybv+2m8cuVKt/y0adPInj07O3fupGbNmun2GTt2LA0bNqR///4ADBkyhDVr1jB+/HgmTpz4gNMWERERERERERGR/8v+1X9jMioqCoDMmTPfts3WrVupW7euW1mDBg3YunXrbfvEx8cTHR3t9kdERERERERERET+3/HAgUnLsnjttdd4/PHHKVWq1G3bRUREkCNHDreyHDlyEBERcds+w4cPJzQ01PUnb968DzpNERERERERERER+f+gBw5M9u7dm/379zNv3ryHOR8ABg4cSFRUlOvPmTNnHvoxRERERERERERE5H/nvv4bk3/r06cPK1asYOPGjeTJk+eObXPmzMmFCxfcyi5cuEDOnDlv28fPzw8/P78HmZqIiIiIiIiIiIj8H3BfvzFp2zZ9+vRhyZIlrFu3joIFC961T7Vq1fj555/dytasWUO1atXub6YiIiIiIiIiIiLy/4z7+o3J3r17M2fOHJYtW0aGDBlc/53I0NBQAgICAOjUqRO5c+dm+PDhALz66qs8+eSTjB49miZNmjBv3jx27NjBpEmTHvKpiIiIiIiIiIiIyP8V9/Ubk1999RVRUVHUqlWLsLAw15/58+e72pw+fZrw8HBXvnr16syZM4dJkyZRtmxZFi1axNKlS+/4f5gjIiIiIiIiIiIi/2+7r9+YtG37rm3Wr1+fpqx169a0bt36fg4lIiIiIiIiIiIi/w974P9XbhEREREREREREZEHpcCkiIiIiIiIiIiIeJwC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HTEbDwVsZ/1U6AIJN7Ai9mCE5IGkeIysxbBvXoS4KIwsRSE5gZghj+MdlAHf/uvASgQrGTv6HEbmwtgX9oF3IEZoHvD2d/bApW9iPj2UybXy0+3jfnDjGmaTj7FjLmMEZMaa1xPz+clYR1dhFmmQulknxWNtGE3i9pX4FCqN2WY8dvR5jKBs2ImxztqZ1R2jwyTs05sZ1u5FupbzJfekI84zcWQVVye8Seau72I82gLD33mP2eF7MMLKEje0Bv7vbMK+chQjSxGSxz+NVx9njzvdKQ+Z82Yl+MOt2DcvYC//EKq3xyxcz9kP550Gb19uvlseDJNJa87z6qxpmAVqYcdexb5+HjNXBaxFfTFbjUu5d6Od/S7/E1g7Z2BW7Ip19jfYOAXz+clgmM7+u38JxEZDtsKYj7bAjo2EGxec967hvCOsn4dh1hmEteoDjCf6YPiFsLV5PqotP491bC0c3ID59DDsK0fB2w97wRuY3RdgLegDlduS9N0QfN9YCYYXaxvmoHa7BhiNBzD92dp02RjBj/VzUL9JebxfWY598xKGb7Czj/kEYMdFYfgEsKpxXhosP4ZtJWH4Z3TdM7x8XPPETnbuWWge7MhT4J+J6/E2obmKEhUVRUhICA+TfmNSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPM6wbdv+X0/ibqKjowkNDWVwcS/8vYz//Hivtin5n44fse/QfzZ2nuc6P9TxTs389qGOV2Dibw9lHHv5B/+q/4nlP/6r/vuvPHjfP6MebA2/PeLVB+pnPtHnvvvs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h3X295RzS1lT53dihj3m5I2Ujzk72TmWYTrlyYlYx3/GLNrIqbeSXOcUN6wG/oN+db934Lw/vZ133Z8tslNy4WmsA0swy6Z+k9mRpzjT93HyTTsBZsq1+HUsZo2Ud3BiDHbCDee9kxSPEZwDO/Kks6YBa+mbmC3GYF/6EyPb7eNS8SOfwu+tX9zK7MhTGEHZwccfOy4q5TkwUs/fMFPzKXPBx/m7o309HCNDmKvKOrMVM2817NhrGAGZsI6v40aWCoTmKkJUVBQhIanfTg+DfmNSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPM6wbdv+X0/ibqKjowkNDWVYSS/8vYz//Hiv/3rsPx3fmt3jPxvbePq9hzrepfcaPdTxMhYp/FDGMb29/13/QmX/Vf+EfZseuK9vu8EP1vHcHw/Ubc3Hw+67T/0FO+6rfcLXne6rfVzE+Xtue+Ro5D23LVEm1z21u3jswj21Kzj3HudpJd29jXn3NWst6nvHeqPJh3cdY2TNR+9Y//b28DvWX+5T5I71WT7ZfPtK0+u2VfaRNXcc1yzTNt3y+JG1b9vHSoi/bZ3fEy3Sr0iMTbd4+KCJtx2rWwX/dMuzvzM7bWHC9XTbGjnLpVse+W6NNGUZh2xIt23EG9XSlOVo2SFN2YoxU9KUNahbPE2Zz1Pt05SZlV5I99j/dOPdCm75w/vTPitbL7n/22fPfmnv8W/fznPLZ/Bx/yQp2ekf51egfJoxjLDSbvmRTRu65bP4u4/Z7ac97v2Dc7rSy+rmdKtr+mxVt3z8Zfe9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WLFiFCtWzJWvXr06x44d47PPPmPmzJnp9hk+fDgfffTRfz01ERERERERERER+R/x2P+U+1aVK1fm6NGjt60fOHAgUVFRrj9nzpzx4OxERERERERERETkv/af/8Zkevbs2UNYWNht6/38/PDz8/PgjERERERERERERMST7jsweePGDbffdjxx4gR79uwhc+bM5MuXj4EDB3Lu3DlmzJgBwOeff07BggV59NFHiYuLY8qUKaxbt47Vq1c/vLMQERERERERERGR/1PuOzC5Y8cOnnrqKVf+jTfeAKBz585MmzaN8PBwTp8+7apPSEigX79+nDt3jsDAQMqUKcPatWvdxhAREREREREREZH//3LfgclatWph2/Zt66dNm+aWf+utt3jrrbfue2IiIiIiIiIiIiLy/67/yf/5jYiIiIiIiIiIiPz/NwUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4wzbtu3/9STuJjo6mtDQUA61DiSDj/GfHy8pMfk/Hd8vwOc/G/tyxI2HOp6P18O93ktOP5xY+Fu/n/9X/T+tnOtf9c8f/OCPTavpSx6o39IuLR6oX4lQ67775Mwbel/tJ265v3XnfR/L6s11u++57cFOZe6pXbExC+6pXczk1+6p3Zad4XdtcyX+7iedM+DO6+qpHy/cdYzYj6vfsd7/zR/vWH9zSK071n+z7vZzeGXdgdvW2T+PuvNxf12WbnnwW+mXA9grBt+2zuw0Ld1ya97L6ZYvnPz9bceqlD39e1dozpm0hUlx6bZNntI+3fLR035PU/bm4vTP+eonz6cpy/rF4TRldlTaeR3oWilNWVxy2vPKEuSVpiwhISlNWViBzG75fQevpWnzxIp/7NNJ8WnafN+4kFs+T6D7flW2XmW3vFefFWnGuPbaI2750L4T3PI/vux+7S/FuZ+39y2vpQ4//OFWZ/hlcD+Y6X59TrTP70rnHz7PrS5yTDdXOvMY93FJTnAlrUt/uVWt7/6MK338RupcX/zllFu74x0KuNIFx65KnXOO9PdBO+aKW/5IxxKudJFOnVP7N3jXld7TtqgrXfaNt1PbVOri/Lz1+nj5upJDK4a50oPW7XSlR9WtAED/Xw+l9vMLcSUnPZHTle7xa8r6MVJvkHVmq5PYNttVZrYalzpWSlv70sHUoozOPbIuOPfAzPWYq86OiwIgbkzqNU+OjQHgxqVIALJ3fjP1WI/3SenofCfaEan31Vr8PgBT5zrP9Is9mzgVIdkA2D7pW1fbSn1S9iF/59zN6j2dvE8gbmzneYj9+HEAlv9yAoA2K4+mtA9IOXjKd+vfn/Tefn8P4F5uuH+D7WqWHYDyyy4CMKG6c/1f7u3M3XxuIng536w333WuW9DHzjvZOvITABEjXiYkRyanrr+zd81oVgWAji8/g/HMUOccPm0MQOCH250pXQ/HyBDmdp72xf2p6zflGls/vIf59DAAPiofxge7nPetfcN5F9lH12KWS33G/17nk+s/So9NEU7ZzUvO6QdlAytlPzO9sS/sc8qzlQTT22kbvgsjrDwkxjrHj9iDmbca6bKSGFY5LwCDtp3ksycKAPD6tpRvguRE56eXD9aKQc5hU87l73tjx17jfO9y5P7mdOq4CTfBN8iVPdUxN/mnHMS2nPFuflybwO7jYO9yzi1x9p28U44ABvb18xiZCrqdZ+rFSVknhhfW2qGYdd/BmtsD45mhzrX5+7RWvs+5ed+Sd/Jhp49vcGrd5vEYRWph5CiFtWE0RqlnMLIUSZlzajuSE8DLlwsvFyTHxBOQFId9+RBG9pLYNy5hhORym+PYamG8+usJ8PbHWtafjwfP4v2tR8Db3+0czr+Yn1xTTqVcP2d/tOOiMPxD2dc8O2WWOmvZvnoMI1MB1/mmd+/smCsYwTmcfHx06vwTbrj2pZMdcpOvfVcmDJlCn01nU+aSeux/jonp7axnw0zNg1NmJYGXL9ae2Zjl2vNl9Zz03hKRdpjj6zAL1XbOyy/Y7RwuvFyQHF8dTfecrJXvYzZ0vovs2GsYAZmwJrfG7L4Qa89sjEK1MEJyp533rRJjiRlak8APt2Od3oKZtyp29DnsH4dgtv0SK3wPZthj7uvKOaLrmthRZzACMjn7kOlN7JDqBAzaCF4+2NdOONc8Za+zI085e3RyotPd9Em9fn/fl5R7YUedBb9gDP+M6Uz81ntym/vz9/WbeALr+FrMQnVd1+me3HIP3VhJzh5rev1jj7Uh/gb8/Z5MinPW89/nlxjjvuf/47m/4zwME/t6OPZfKzArd3etGdfYdnLaNZJww/0ZvXVO/9ataz3thLnd/fi7n31hP0aOUqnlibGp7ze3odI5r/udW3Ki67122zn+fa3+OY+k+Fver/8YIeYyRmDWe5hPorPO75ednLLO/nGdkxOwE2Mx/O/v7+53PFTMFYzALOnWRUdfJzSsEFFRUYSEhKTb5kHpNyZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4xSYFBEREREREREREY9TYFJEREREREREREQ8ToFJERERERERERER8TgFJkVERERERERERMTjFJgUERERERERERERj1NgUkRERERERERERDxOgUkRERERERERERHxOAUmRURERERERERExOMUmBQRERERERERERGPU2BSREREREREREREPE6BSREREREREREREfE4BSZFRERERERERETE4wzbtu3/9STuJjo6mtDQUK59/w4hQf7/+fF++/iD/3T8zZf+u3hw83zWQx2vyMILD3W8kZXDHso4b456698NcPHEv+q+f9a8B+5bsHj2B+oXPGjVA/Vb0qLCffepmMf7vtrvPpd0X+2bDn7/3htHnb/npkbNV++pnX1k9T212//h6/fU7kaScdc21RYdvmub9S0fuWN9Nr+7b9elvrvz9bKvHrtjvZG12F2PcTvWyY23rYv4uOMd+4aN35dueeKXrW7b5+L+g7etyz1yTbrlN0Y9m275zF+v3Hasl78el265WSqdsQyv9Aex09+b7StH0pRNb/lkum27bDiXpmxd41xpymp1bpGmbNPMJWnKNkakfRe9+WyRNGV+3b5MU5Y4q59b3rdfOs/UP875Qs+0Y2cfuemOfYzQvP+oT04zxoxaud3yxULcn5NKbZu45Q8tXuGWD49NfX6fmum+hv/5PNjhe9zyibPecKV9+6/7x1xvOZekOLcq69wOV9osUNO97shPt0wgdW5mvhru4/sGpX8sI/W+Dq+U+s4duD3crfu4aql1fRYuTT1Onsq3tEp/b4vuVxyA4O4jUvsVb+ZKX+6Teq+zjj/qSk9/MicAnTdEpDuu9WfqPPh1hjPuS4vT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TNbX18fNN98c9fX1wx0KAABlWK8BAIxsQ7leG9OfmAQAAAAARqYx/YlJAAAAAGBkkpgEAAAAABInMQkAAAAAJE5iEgAAAABI3LhNTH7605+Oww8/PC666KLhDgUAgANs2bIlFi5cGB/4wAfi1FNPjYcffni4QwIAoJcdO3bEvHnzorm5OU455ZS49957ax5j3P5W7nXr1kVbW1vcd9998cgjjwx3OAAA9LJ169ZoaWmJ5ubm2LZtW5x++unx0ksvxaGHHjrcoQEAEBFdXV3R0dERU6ZMifb29jjllFNi48aNceSRR1Y9xrj9xOTChQtj6tSpwx0GAABlzJo1K5qbmyMiYubMmTF9+vTYvn378AYFAECPurq6mDJlSkREdHR0RC6Xi1o//zgqE5Pr16+P888/P44++uhIpVKxevXqkjYrV66MY489NiZPnhzz58+Pp59+OvlAAQDGqcFcrz377LPR1dUVc+bMGeKoAQDGj8FYr+3YsSOamppi9uzZceONN8b06dNrimFUJibb29ujqakpVq5cWbb+wQcfjOXLl8fNN98czz33XDQ1NcXixYvj7bffTjhSAIDxabDWa9u3b4+lS5fGPffck0TYAADjxmCs16ZNmxbPP/98bN68Ob7//e9HS0tLTTGM+u+YTKVS8YMf/CAuvPDCnrL58+fHGWecEStWrIiIiGw2G3PmzInrrrsuvvSlL/W0W7duXaxYscJ3TAIADKGBrtc6Ojri4x//eFx11VXx+c9/fjhCBwAYFw4mv9btmmuuiXPPPbemXzQ9Kj8x2Ze9e/fGs88+G4sWLeopS6fTsWjRotiwYcMwRgYAQER167VcLheXXXZZnHvuuZKSAAAJq2a91tLSEm1tbRER0draGuvXr4+TTjqppnnGXGLyd7/7XXR1dcWMGTOKymfMmBHbtm3reb9o0aK4+OKL40c/+lHMnj1b0hIAICHVrNeefPLJePDBB2P16tXR3Nwczc3N8cILLwxHuAAA404167XXX389zj777Ghqaoqzzz47rrvuuvjQhz5U0zwTBi3iUebxxx8f7hAAAKjgrLPOimw2O9xhAABQwZlnnhmbNm06qDHG3Ccmp0+fHnV1dSVfttnS0hIzZ84cpqgAAOhmvQYAMLIltV4bc4nJSZMmxemnnx5r167tKctms7F27dpYsGDBMEYGAECE9RoAwEiX1HptVP5T7p07d8bLL7/c837z5s2xadOmOOKII+KYY46J5cuXx7Jly2LevHlx5plnxu233x7t7e1x+eWXD2PUAADjh/UaAMDINhLWa6lcLpcbtNESsm7dujjnnHNKypctWxarVq2KiIgVK1bErbfeGtu2bYvm5ua44447Yv78+QlHCgAwPlmvAQCMbCNhvTYqE5MAAAAAwOg25r5jEgAAAAAY+SQmAQAAAIDESUwCAAAAAImTmAQAAAAAEicxCQAAAAAkTmISAAAAAEicxCQAAAAAkDiJSQAAAAAgcRKTAAAAAEDiJCYBAAAAgMRJTAIAAAAAiZOYBAAAAAASJzEJAAAAACTu/wMFO6L+yL369wAAAABJRU5ErkJggg==\n" 100 | }, 101 | "metadata": {} 102 | } 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "source": [ 108 | "figure,plot=pl.subplots(figsize=(ten*GoldenRatio,ten))\n", 109 | "plot.pcolormesh(X,Y,Z,cmap='terrain')\n", 110 | "plot.set_xscale('log')\n", 111 | "plot.xaxis.set_major_formatter(CountLabels(0))" 112 | ], 113 | "metadata": { 114 | "id": "FniA_fHbfy14", 115 | "outputId": "499ec5ae-e085-4b08-e209-dce1c6ae22db", 116 | "colab": { 117 | "base_uri": "https://localhost:8080/", 118 | "height": 830 119 | } 120 | }, 121 | "execution_count": 13, 122 | "outputs": [ 123 | { 124 | "output_type": "display_data", 125 | "data": { 126 | "text/plain": [ 127 | "
" 128 | ], 129 | "image/png": "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9tUAAAAAABNCpmBzy5YtsWLFinjwwQfjvvvuixdffDHOPPPM2L9/f8V+ra2tsXv37v7b//zP/wx6/Lrrrosbb7wxbrnllnjooYfiZS97WSxevDief/757CsCAAAAAMa9I7I03rRp06D7nZ2dMX369Ni+fXu84x3vKNuvqakpZs6cWfKxQqEQ69ati09+8pNx7rnnRkTE7bffHjNmzIiNGzfGsmXLspQIAAAAAEwAQ/qOzVwuFxER06ZNq9hu37598ZrXvCbmzJkT5557bvz0pz/tf2zHjh3R29sbixYt6j/W1tYW8+fPj23btpUc78CBA5HP5wfdAAAAAICJo+5g89ChQ7Fq1ap461vfGieeeGLZdieccELceuut8e1vfzu++tWvxqFDh+Itb3lLPPXUUxER0dvbGxERM2bMGNRvxowZ/Y8VW7t2bbS1tfXf5syZU+8yAAAAAIAE1R1srlixIh599NHYsGFDxXYLFiyICy64INrb2+Od73xnfOtb34qjjz46/umf/qneqWPNmjWRy+X6b7t27ap7LAAAAAAgPZm+Y7PPypUr4+67746tW7fGMccck6nvS17ykjjllFPi8ccfj4jo/+7NPXv2xKxZs/rb7dmzJ9rb20uO0dLSEi0tLfWUDgAAAACMA5k+sVkoFGLlypVx1113xf333x9z587NPOHBgwfjP/7jP/pDzLlz58bMmTNj8+bN/W3y+Xw89NBDsWDBgszjAwAAAADjX6ZPbK5YsSLuuOOO+Pa3vx1Tp07t/w7Mtra2mDJlSkREXHDBBfHqV7861q5dGxER1157bfzRH/1RHH/88bF379747Gc/G//zP/8Tl156aUT8/i+mr1q1Kj796U/H6173upg7d25cccUVMXv27Fi6dGkDlwoAAAAAjBeZgs2bb745IiIWLlw46Phtt90WF110UURE7Ny5MyZN+r8Pgv7617+O97///dHb2xuveMUr4tRTT40f/vCH8aY3vam/zeWXXx779++P5cuXx969e+Ntb3tbbNq0KSZPnlznsgAAAACA8SxTsFkoFKq26erqGnT/+uuvj+uvv75in6amprj22mvj2muvzVIOAAAAADBB1f1X0QEAAAAARotgEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAA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NgEAAACA5Ag2AQAAAIDkCDYBAAAAgORkCjbXrl0bp512WkydOjWmT58eS5cujccee6xqv2984xvxhje8ISZPnhwnnXRSfPe73x30eKFQiCuvvDJmzZoVU6ZMiUWLFsXPf/7zbCsBAAAAACaMTMHmli1bYsWKFfHggw/GfffdFy+++GKceeaZsX///rJ9fvjDH8b5558fl1xySfz4xz+OpUuXxtKlS+PRRx/tb3PdddfFjTfeGLfccks89NBD8bKXvSwWL14czz//fP0rAwAAAADGrSOyNN60adOg+52dnTF9+vTYvn17vOMd7yjZ54YbboizzjorPvaxj0VExKc+9am477774vOf/3zccsstUSgUYt26dfHJT34yzj333IiIuP3222PGjBmxcePGWLZsWT3rAgAAAADGsSF9x2Yul4uIiGnTppVts23btli0aNGgY4sXL45t27ZFRMSOHTuit7d3UJu2traYP39+f5tiBw4ciHw+P+gGAAAAAEwcdQebhw4dilWrVsVb3/rWOPHEE8u26+3tjRkzZgw6NmPGjOjt7e1/vO9YuTbF1q5dG21tbf23OXPm1LsMAAAAACBBdQebK1asiEcffTQ2bNjQyHpqsmbNmsjlcv23Xbt2jXgNAAAAAMDoyfQdm31WrlwZd999d2zdujWOOeaYim1nzpwZe/bsGXRsz549MXPmzP7H+47NmjVrUJv29vaSY7a0tERLS0s9pQMAAAAA40CmT2wWCoVYuXJl3HXXXXH//ffH3Llzq/ZZsGBBbN68edCx++67LxYsWBAREXPnzo2ZM2cOapPP5+Ohhx7qbwMAAAAAMFCmT2yuWLEi7rjjjvj2t78dU6dO7f8OzLa2tpgyZUpERFxwwQXx6le/OtauXRsRER/+8Ifjne98Z3zuc5+Ls88+OzZs2BDd3d2xfv36iIhoamqKVatWxac//el43eteF3Pnzo0rrrgiZs+eHUuXLm3gUgEAAACA8SJTsHnzzTdHRMTChQsHHb/tttvioosuioiInTt3xqRJ//dB0Le85S1xxx13xCc/+cn4xCc+Ea973eti48aNg/7g0OWXXx779++P5cuXx969e+Ntb3tbbNq0KSZPnlznsgAAAACA8SxTsFkoFKq26erqOuzYeeedF+edd17ZPk1NTXHttdfGtddem6UcAAAAAGCCqvuvogMAAAAAjBbBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAMOK6u5cfdhsLOjrWD7qNBWNxn1KXdS/H0vUQcXj9jb42GjFevfs1lHmH8/kxcD3F89SyX42orVHXYaOvlWrHK7Up9Vg99dXap6NjfU21lZuj1valnqOlaql0v5YaBz7WiPFGQqWfZ6WeW42Yb6TU+jow8L+N/NlS/DpVauxGXxf1Pl+zPJeG02j/bC83f6111bI/pcYq7jfW3udkJdgEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAktNUKBQKo13EUOXz+Whra4v29nXR3DxltMsBGNO6u5dXfLyjY/2Q+g9lbBhriq/3iXINl3ueD1z/wDbjYV/61pPiWlKuvZJa15WlXdY9Kjf2UK//RvSvZy2V+mR5PMs1VzxuPbUX9x3qWoZbpfkr7cdwPpeznodSj2fd13rniDj850258z7UddS7znqvsVr7VauxHpXGHMo+1tq33Jz1nKN6lBqz0mt81msk6zqK11+ubXGtpeqtVEO5dsXjDPV19eDB56KnZ1XkcrlobW2tWkMj+cQmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJCczMHm1q1b45xzzonZs2dHU1NTbNy4sWL7iy66KJqamg67vfnNb+5vc/XVVx/2+Bve8IbMiwEAAAAAJobMweb+/ftj3rx5cdNNN9XU/oYbbojdu3f333bt2hXTpk2L8847b1C7N7/5zYPaPfDAA1lLAwAAAAAmiCOydliyZEksWbKk5vZtbW3R1tbWf3/jxo3x61//Oi6++OLBhRxxRMycObOmMQ8cOBAHDhzov5/P52uuBwAAAABIX1OhUCjU3bmpKe66665YunRpzX3OOeecOHDgQHz/+9/vP3b11VfHZz/72Whra4vJkyfHggULYu3atXHssceWHOPqq6+Oa6655rDj7e3rorl5SuZ1ANl0dy/P3KejY/0wVDLxVNv7RuxzPee3kfOnptx+DedelJpzpPa+3rmL+42Va2Ws1jVQrTVWeu4O97oGzj0W9rDR9fSN18i1DceYY6mG7u7l/eNmnae4fZax6llT8fjV+lZqX0v/epW6rouPVVp/udpqXX/WtZU7b1nGqbWeeva9r89wP7+r7Xu12mtdW5ZrsZZrodrxWo9lWUepc1LL/vS1LXW/lhrqubYH1lc8X6nH+5RbU6nnS6l1lJsvy96W61vr60mlPS83XnH7aq/v1Z7fta651HjFj1daS6m6S9VWaq5yrzG1PveLayyuq9SxrPtUru5SKl0nHR3r4+DB56KnZ1XkcrlobW2tuK5GG9E/HvTMM8/E9773vbj00ksHHZ8/f350dnbGpk2b4uabb44dO3bE29/+9vjNb35Tcpw1a9ZELpfrv+3atWskygcAAAAAxojMv4o+FF/5ylfiqKOOOuwTngN/tf3kk0+O+fPnx2te85q4884745JLLjlsnJaWlmhpaRnucgEAAACAMWrEPrFZKBTi1ltvjb/6q7+KI488smLbo446Kl7/+tfH448/PkLVAQAAAAApGbFgc8uWLfH444+X/ARmsX379sUTTzwRs2bNGoHKAAAAAIDUZA429+3bFz09PdHT0xMRETt27Iienp7YuXNnRPz++y8vuOCCw/p9+ctfjvnz58eJJ5542GMf/ehHY8uWLfHkk0/GD3/4w/iTP/mTaG5ujvPPPz9reQAAAADABJD5Oza7u7vjjDPO6L+/evXqiIi48MILo7OzM3bv3t0fcvbJ5XLxzW9+M2644YaSYz711FNx/vnnx7PPPhtHH310vO1tb4sHH3wwjj766KzlAQAAAAATQOZgc+HChVEoFMo+3tnZedixtra2+O1vf1u2z4YNG7KWAQAAAABMYCP2HZsAAAAAAI0i2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJLTVCgUCqNdxFDl8/loa2uL9vZ10dw8ZbTLgXGvu3t55j4dHeuHoRLqUe38jcVzVanmsVjveFbqXNRyDor7OW/06bs2yl0TA6+deq6bauNnma/WWkbqNSvr2obar9IYjRizb5ysY9Yz98B56mkz1PWWupYGjlk8dy31lqqrlmu23Lx9/y7+b6l6BrYpNV+tPztK1V9uH6q1rTZ2qTGLax24puL1lTpWaY9Lndfi+YrHKXUOyrUrdbzSPLW8vlU758XjVGpf3KbantT63Kt2jdS6zoFqqbvcsXI19t2v9Nwpvt7K7Ue5trW8rpRSbo8qnZdS41arqdK85c5rrXtXbi3l1lXuuVztOV+qTy2q1V2qhlJry/r/4ZVeP+pRbpyOjvVx//3Loq2tLXK5XLS2tg55rix8YhMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASE5ToVAojHYRQ5XP56OtrS3a29dFc/OU0S4HYEzr7l4+pP4dHevrHrtS35FUzx6Uq73cWFnXWmqcrHMOpY5ax2zUOcyy3qGM2+hrrpHXeKWxhvO5Usu5Hjj/wPbljpfrm6WeWuZs9NyNUKr+evoXq7TXxXNlrWEoNZerpXjM7u7lNb2GlVtLufqy1F6pbaX6yo1V6px0dKwvufZSj1Xau+Kxa73uy+1/tTUU73OpOWvd61LnrJ7x+vpU6ltOuXUVz1s8R/GelJq3lvNYql3WuUvtTaX6iucsrq/UY6XGLXes0mtzLftQbo2llFtHpfVVm7vUHlWrpdK6io+V249y+5xlznJKnd9q19pwzDnUMetR7XpuxJi1PFbu+V7LdVPrPLVe91nmqrSeiPr/32hgv75cLpfLRWtra+bxhsInNgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgORkDja3bt0a55xzTsyePTuamppi48aNFdt3dXVFU1PTYbfe3t5B7W666aY47rjjYvLkyTF//vx4+OGHs5YGAAAAAEwQmYPN/fv3x7x58+Kmm27K1O+xxx6L3bt399+mT5/e/9jXv/71WL16dVx11VXxyCOPxLx582Lx4sXxi1/8Imt5AAAAAMAEcETWDkuWLIklS5Zknmj69Olx1FFHlXzsH//xH+P9739/XHzxxRERccstt8Q999wTt956a3z84x/PPBcAAAAAML6N2Hdstre3x6xZs+Ld7353/Pu//3v/8RdeeCG2b98eixYt+r+iJk2KRYsWxbZt20qOdeDAgcjn84NuAAAAAMDEMezB5qxZs+KWW26Jb37zm/HNb34z5syZEwsXLoxHHnkkIiJ++ctfxsGDB2PGjBmD+s2YMeOw7+Hss3bt2mhra+u/zZkzZ7iXAQAAAACMIZl/FT2rE044IU444YT++295y1viiSeeiOuvvz7++Z//ua4x16xZE6tXr+6/n8/nhZsAAAAAMIEMe7BZyumnnx4PPPBARES86lWviubm5tizZ8+gNnv27ImZM2eW7N/S0hItLS3DXicAAAAAMDaN2HdsDtTT0xOzZs2KiIgjjzwyTj311Ni8eXP/44cOHYrNmzfHggULRqM8AAAAAGCMy/yJzX379sXjjz/ef3/Hjh3R09MT06ZNi2OPPTbWrFkTTz/9dNx+++0REbFu3bqYO3duvPnNb47nn38+vvSlL8X9998f3//+9/vHWL16dVx44YXR0dERp59+eqxbty7279/f/1fSAQAAAAAGyhxsdnd3xxlnnNF/v++7Li+88MLo7OyM3bt3x86dO/sff+GFF+IjH/lIPP300/HSl740Tj755PjXf/3XQWO8973vjf/93/+NK6+8Mnp7e6O9vT02bdp02B8UAgAAAACIqCPYXLhwYRQKhbKPd3Z2Drp/+eWXx+WXX1513JUrV8bKlSuzlgMAAAAATECj8h2bAAAAAABDIdgEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAkiPYBAAAAACSI9gEAAAAAJIj2AQAAAAAktNUKBQKo13EUOXz+Whra4v29nXR3DxltMsBqEt39/KqbTo61o9AJfWrtoaxUn+lOrPWWMt5q2X8UuM0Yr8aPe5Yv06L6xvpWgbOP1z7PHDcWudrVF21yDpXX/ty6yqlnj2oNHct85RrX2rOStdh8XpLrb/WeqvVV0v9pWop179UveXuVxq/2rkuVXel8csp1Wco11mt110tz9/i8YpVWnOpMfr+PXCPq+13qb6l+pXrU2qeStdYrddKcR2l2pTrX6ldub2qVHu5fak2RqV+lWqttq5axyvXvtr4lfpnbVdpT/tkqb9Wlc5z1nHr2bOssp7HWvtlvVZGQ71rb0Tb8WSsrLsvl8vlctHa2jqic/vEJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQHMEmAAAAAJAcwSYAAAAAkBzBJgAAAACQnKZCoVAY7SKGKp/PR1tbW7S3r4vm5inDPl939/Jhn6OjY/2wz8HwGsp1MtLnP2utrs/h0YjXllrOzVDnGcr5rzR3vePWM2YjX8cb9XwoVVOWscutaSSer8Vzl5qzUW1G2lBqytI3yzVZy3Vd61xZ93gofRsxdrXnyVBeY4b6HKx17OIx+x4rd7xUPdWureIxy92vNm4pWdqW69PRsT7TXMV9azlWrtZqbYuPl1tHpfal2lWrtdYaytVUS13F/YrXX22Py12TtZ7LSvtaz3vRLHtUz7WXdb3lrrda5y71eLVj9aytVtWukVpqHQ1ZX1/quY6G01jZx6EaL+ug9nPZl8vlcrlobW0dgcr+j09sAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJEWwCAAAAAMkRbAIAAAAAyRFsAgAAAADJyRxsbt26Nc4555yYPXt2NDU1xcaNGyu2/9a3vhXvfve74+ijj47W1tZYsGBB3HvvvYPaXH311dHU1DTo9oY3vCFraQAAAADABJE52Ny/f3/Mmzcvbrrppprab926Nd797nfHd7/73di+fXucccYZcc4558SPf/zjQe3e/OY3x+7du/tvDzzwQNbSAAAAAIAJ4oisHZYsWRJLliypuf26desG3f+7v/u7+Pa3vx3f+c534pRTTvm/Qo44ImbOnJm1HAAAAABgAhrx79g8dOhQ/OY3v4lp06YNOv7zn/88Zs+eHa997Wvjfe97X+zcubPsGAcOHIh8Pj/oBgAAAABMHE2FQqFQd+emprjrrrti6dKlNfe57rrr4jOf+Uz87Gc/i+nTp0dExPe+973Yt29fnHDCCbF79+645ppr4umnn45HH300pk6detgYV199dVxzzTWHHW9vXxfNzVPqXc6E0N29vOFjdnSsb/iY1Gc4zm8pzvn4Vu06Go3zX6mmeupp9HipqfW1ot69KDV+8Vi1tKl17EqGej6L56u2joGPZ+lbqc5GnK9yY1SqtxHty/UtVVu5sUsdr9a2nj3Let1Wmqv4sSzXYdbzUKlvuRqzHs/St1wtWTRyrFrmGer4A8fp6Fhf9joZyroqjZulX7ljtY5R6fwP53kayvO82niNqmssyVLbWF5HKanVCxNFPp+Ptra2yOVy0draOqJzj+gnNu+444645ppr4s477+wPNSN+/+vt5513Xpx88smxePHi+O53vxt79+6NO++8s+Q4a9asiVwu13/btWvXSC0BAAAAABgDMn/HZr02bNgQl156aXzjG9+IRYsWVWx71FFHxetf//p4/PHHSz7e0tISLS0tw1EmAAAAAJCAEfnE5te+9rW4+OKL42tf+1qcffbZVdvv27cvnnjiiZg1a9YIVAcAAAAApCbzJzb37ds36JOUO3bsiJ6enpg2bVoce+yxsWbNmnj66afj9ttvj4jf//r5hRdeGDfccEPMnz8/ent7IyJiypQp0dbWFhERH/3oR+Occ86J17zmNfHMM8/EVVddFc3NzXH++ec3Yo0AAAAAwDiT+ROb3d3dccopp8Qpp5wSERGrV6+OU045Ja688sqIiNi9e/egv2i+fv36+N3vfhcrVqyIWbNm9d8+/OEP97d56qmn4vzzz48TTjgh/uIv/iJe+cpXxoMPPhhHH330UNcHAAAAAIxDmT+xuXDhwqj0h9Q7OzsH3e/q6qo65oYNG7KWAQAAAABMYCP6V9EBAAAAABpBsAkAAAAAJEewCQAAAAAkR7AJAAAAACRHsAkAAAAAJEewCQAAAAAkR7AJAAAAACRHsAkAAAAAJEewCQAAAAAkR7AJAAAAACRHsAkAAAAAJEewCQAAAAAkR7AJAAAAACRHsAkAAAAAJEewCQAAAAAkR7AJAAAAACRHsAkAAAAAJEewCQAAAAAkR7AJAAAAACRHsAkAAAAAJEewCQAAAAAkR7AJAAAAACRHsAkAAAAAJEewCQAAAAAkR7AJAAAAACRHsAkAAAAAJEewCQAAAAAkR7AJAAAAACRHsAkAAAAAJEewCQAAAAAkR7AJAAAAACSnqVAoFEa7iKHK5/PR1tYW7e3rorl5ymiXA8np7l6eqX1Hx/phqmTsqHVPUtyLamurtqas10uWseuZM8VzUEqWfR3qmof7+q73GhmJczncr3dZrtV6z0O5fgPb1fOcqaWeWvaj3j0eymtL1rEqrWNg33prq6VfcZtaa8oyVnG/WtvVo5FjVRpzKPN0dKzP/FrbqLnrMVx7Wu6a6+5ennmPyo09XPrmKP5vI8YEoH59uVwul4vW1tYRndsnNgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5Ag2AQAAAIDkNBUKhcJoFzFU+Xw+2traor19XTQ3Txn2+bq7lw/7HMOlo2N9w8ds5H4MR30pqndPx/L+ZVnTWF4Hlc9ltXM3HK+fI3W9DPdrf6l1lJtzqG1rVWrMWsarZa/qrava2MXjFrfPOm/W815p/JF8/1DrOoeyvkavp9zYWa73Rs3ZyHFrHbuvT6XnXcrvQYfDcOxLR8d6+zxM7C3A+NWXy+VyuWhtbR3RuX1iEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEhO5mBz69atcc4558Ts2bOjqakpNm7cWLVPV1dX/OEf/mG0tLTE8ccfH52dnYe1uemmm+K4446LyZMnx/z58+Phhx/OWhoAAAAAMEFkDjb3798f8+bNi5tuuqmm9jt27Iizzz47zjjjjOjp6YlVq1bFpZdeGvfee29/m69//euxevXquOqqq+KRRx6JefPmxeLFi+MXv/hF1vIAAAAAgAngiKwdlixZEkuWLKm5/S233BJz586Nz33ucxER8cY3vjEeeOCBuP7662Px4sUREfGP//iP8f73vz8uvvji/j733HNP3HrrrfHxj388a4kAAAAAwDg37N+xuW3btli0aNGgY4sXL45t27ZFRMQLL7wQ27dvH9Rm0qRJsWjRov42xQ4cOBD5fH7QDQAAAACYOIY92Ozt7Y0ZM2YMOjZjxozI5/Px3HPPxS9/+cs4ePBgyTa9vb0lx1y7dm20tbX13+bMmTNs9QMAAAAAY0+SfxV9zZo1kcvl+m+7du0a7ZIAAAAAgBGU+Ts2s5o5c2bs2bNn0LE9e/ZEa2trTJkyJZqbm6O5ublkm5kzZ5Ycs6WlJVpaWoatZgAAAABgbBv2T2wuWLAgNm/ePOjYfffdFwsWLIiIiCOPPDJOPfXUQW0OHToUmzdv7m8DAAAAADBQ5mBz37590dPTEz09PRERsWPHjujp6YmdO3dGxO9/TfyCCy7ob/+BD3wg/vu//zsuv/zy+NnPfhZf+MIX4s4774zLLrusv83q1avji1/8YnzlK1+J//qv/4oPfvCDsX///v6/kg4AAAAAMFDmX0Xv7u6OM844o//+6tWrIyLiwgsvjM7Ozti9e3d/yBkRMXfu3LjnnnvisssuixtuuCGOOeaY+NKXvhSLFy/ub/Pe9743/vd//zeuvPLK6O3tjfb29ti0adNhf1AIAAAAACCijmBz4cKFUSgUyj7e2dlZss+Pf/zjiuOuXLkyVq5cmbUcAAAAAGACSvKvogMAAAAAE5tgEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIjmATAAAAAEiOYBMAAAAASI5gEwAAAABIzhGjXUAjFAqFiIg4ePD5EZkvn8+PyDzD4eDB5xo+ZiP3YzjqS1G9ezqW9y/LmsbyOqh8Lqudu+F4/Ryp62W4X/tLraPcnENtW6tSY9YyXi17VW9d1cYuHre4fdZ5s573SuOP5PuHWtc5lPU1ej3lxs5yvTdqzkaOW+vYfX0qPe9Sfg86HIZjXw4efM4+DxN7CzB+9b2+9+VzI6mpMBqzNthTTz0Vc+bMGe0yAAAAAGBCeuKJJ+K1r33tiM45LoLNQ4cOxTPPPBNTp06Npqammvvl8/mYM2dO7Nq1K1pbW4exQhh9p512WvzoRz8a7TLIwDmrz0Tbt/Gw3hTWMNZqHO16RnJ+79eYSEb7uU12zll9Jtq+jYf1prCGsVbjaNczkvPncrk49thj49e//nUcddRRIzJnn3Hxq+iTJk2KY445pu7+ra2t3igz7jU3N7vOE+Oc1Wei7dt4WG8KaxhrNY52PaMxv/drTASj/dwmO+esPhNt38bDelNYw1ircbTrGY35J00a+T/l448HwQSxYsWK0S6BjJyz+ky0fRsP601hDWOtxtGuZ7Tnh/HKcys9zll9Jtq+jYf1prCGsVbjaNcz2vOPlHHxq+j1yufz0dbWFrlcbkyl+gAA/J73awAAY9tovl+b0J/YbGlpiauuuipaWlpGuxQAAErwfg0AYGwbzfdrE/oTmwAAAABAmib0JzYBAAAAgDQJNgEAAACA5Ag2AQAAAIDkCDYBAAAAgOQINgEAAACA5EyIYHPr1q1xzjnnxOzZs6OpqSk2btw46PFCoRBXXnllzJo1K6ZMmRKLFi2Kn//856NTLADABNCI92e/+tWv4n3ve1+0trbGUUcdFZdcckns27dvBFcBAJC2au/JSunq6oo//MM/jJaWljj++OOjs7PzsDY33XRTHHfccTF58uSYP39+PPzww4Mef/7552PFihXxyle+Ml7+8pfHn/3Zn8WePXsy1z8hgs39+/fHvHnz4qabbir5+HXXXRc33nhj3HLLLfHQQw/Fy172sli8eHE8//zzI1wpAMDE0Ij3Z+973/vipz/9adx3331x9913x9atW2P58uUjtQQAgORVe09WbMeOHXH22WfHGWecET09PbFq1aq49NJL49577+1v8/Wvfz1Wr14dV111VTzyyCMxb968WLx4cfziF7/ob3PZZZfFd77znfjGN74RW7ZsiWeeeSb+9E//NHP9TYVCoZC5V8KamprirrvuiqVLl0bE7z8NMHv27PjIRz4SH/3oRyMiIpfLxYwZM6KzszOWLVs2itUCAIx/9bw/+6//+q9405veFD/60Y+io6MjIiI2bdoUf/zHfxxPPfVUzJ49e7SWAwCQpOL3ZKX8v//3/+Kee+6JRx99tP/YsmXLYu/evbFp06aIiJg/f36cdtpp8fnPfz4iIg4dOhRz5syJD33oQ/Hxj388crlcHH300XHHHXfEn//5n0dExM9+9rN44xvfGNu2bYs/+qM/qrnmCfGJzUp27NgRvb29sWjRov5jbW1tMX/+/Ni2bdsoVgYAMDHV8v5s27ZtcdRRR/WHmhERixYtikmTJsVDDz004jUDAEwE27ZtG/QeLSJi8eLF/e/RXnjhhdi+ffugNpMmTYpFixb1t9m+fXu8+OKLg9q84Q1viGOPPTZzFjfhg83e3t6IiJgxY8ag4zNmzOh/DACAkVPL+7Pe3t6YPn36oMePOOKImDZtmvdwAADDpLe3t+R7tHw+H88991z88pe/jIMHD1Z9H3fkkUfGUUcdVbZNrSZ8sAkAAAAApGfCB5szZ86MiDjsLy/t2bOn/zEAAEZOLe/PZs6cOegL6CMifve738WvfvUr7+EAAIbJzJkzS75Ha21tjSlTpsSrXvWqaG5urvo+7oUXXoi9e/eWbVOrCR9szp07N2bOnBmbN2/uP5bP5+Ohhx6KBQsWjGJlAAATUy3vzxYsWBB79+6N7du397e5//7749ChQzF//vwRrxkAYCJYsGDBoPdoERH33Xdf/3u0I488Mk499dRBbQ4dOhSbN2/ub3PqqafGS17ykkFtHnvssdi5c2fmLO6IeheSkn379sXjjz/ef3/Hjh3R09MT06ZNi2OPPTZWrVoVn/70p+N1r3tdzJ07N6644oqYPXt2xb8CBQBA/Yb6/uyNb3xjnHXWWfH+978/brnllnjxxRdj5cqVsWzZMn8RHQCgRtXekxX7wAc+EJ///Ofj8ssvj7/+67+O+++/P+6888645557+tusXr06Lrzwwujo6IjTTz891q1bF/v374+LL744In7/RyEvueSSWL16dUybNi1aW1vjQx/6UCxYsCDTX0SPiGgqFAqFOteejK6urjjjjDMOO37hhRdGZ2dnFAqFuOqqq2L9+vWxd+/eeNvb3hZf+MIX4vWvf/0oVAsAMP414v3Zr371q1i5cmV85zvfiUmTJsWf/dmfxY033hgvf/nLR3IpAADJqvae7Oqrr47Ozs548sknB/W57LLL4j//8z/jmGOOiSuuuCIuuuiiQf0///nPx2c/+9no7e2N9vb2uPHGGwf9Vs3zzz8fH/nIR+JrX/taHDhwIBYvXhxf+MIXMv8q+oQINgEAAACAbC688MJoamqKzs7O0S6lJMEmAAAAADBIoVCI4447Lh544IGYM2fOaJdTkmATAAAAAEjOhP+r6AAAAABAegSbAAAAAEByBJsAAAAAQHIEmwAAAABAcgSbAAAAAEByBJsAAAAAQHIEmwAAAABAcgSbAAAAAEByBJsAAAAAQHL+P+x2Xwko7N1DAAAAAElFTkSuQmCC\n" 130 | }, 131 | "metadata": {} 132 | } 133 | ] 134 | }, 135 | { 136 | "cell_type": "code", 137 | "source": [], 138 | "metadata": { 139 | "id": "cj0nyxfdoNjY" 140 | }, 141 | "execution_count": null, 142 | "outputs": [] 143 | } 144 | ] 145 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Financial Data Science in Python 2 | This GitHub repository 3 | https://github.com/Farmhouse121/Financial-Data-Science-in-Python 4 | collects the scripts and notebooks required to reproduce my published work. This includes both the articles that I have written in _Willmott_ magazine and my forthcoming book, which will also be titled _Financial Data Science in Python_. 5 | 6 | I will be featuring _mostly_ notebooks prepared for the Google _colab_ system, although I **strongly** reccommend using a more "procedural" workflow than most notebook users adopt. For analytical work it is important that the _internal state_ of the analytical system in use be _well known_ when an _inferential procedure_ is executed. Notebooks tend to encourage a "spaghetti" workflow that is not conducive to the internal state being well known. It is my intention that the notebooks, therefore, always be executed _from the beginning to the end_ in one session. Breaking the work into "cells" is provided for narrative convenience only. 7 | 8 | ## my_library.py 9 | A key file for all of my work will be the `my_library.py` _mini-package_. I write "mini" because it's simply a file, and it does not provide a novel software suite. It just imports most of the stuff I always import and provides a few, key, custom writtent extensions and utilities. That file will exist here, in the top level of this repository, and every independent analysis will sit in a folder below. When imaged onto a computer (with `git clone https://github.com/Farmhouse121/Financial-Data-Science-in-Python.git`, for example) each subfolder should _symlink_ to the parent version. On Unix systems, this is done via the command line with `ln -s ../my_library.py` from within the sub-folder, although `git` should copy all of those links automatically. (On Windows systems there is the `mklink my_library.py ..\my_library.py` command that can be used to execute this functionality in the shell, although I don't have a windows machine and haven't tried that personally.) 10 | 11 | To run this file from within a Python script, just include the line 12 | ``` 13 | from my_library import * 14 | ``` 15 | at the beginning. This will produce an identical internal state to having pasted all of the included code into a single file or cell and then executed it. 16 | 17 | ### Changes and Idiosyncracies 18 | All of the scripts are going to include useage of four "standard" packages, and three are imported wholly in `my_library.py`. 19 | 20 | ``` 21 | import numpy as np 22 | import pandas as pd 23 | import matplotlib.pyplot as pl ; plt=pl 24 | ``` 25 | 26 | I know that `pyplot` is usually imported as `plt`, not `pl` as I have, but I use it so much that having a two-letter namespace prefix is worthwhile to me and it's my computer, I get to chose the abstractions I like. For those who wish to follow the conventional usage, I have aliased it to `plt`. Feel free to use either prefix -- it's your computer -- and if you wish to "take back" the variable `pl`, Python will let you do that too. 27 | 28 | For the record, I am also going to invoke `matplotlib` _mostly_ via the construct 29 | 30 | ``` 31 | figure,plot=pl.subplots(figsize=(ten*GoldenRatio,ten)) 32 | ``` 33 | 34 | You will find the _friendly numbers_ `ten` and `GoldenRatio` defined to their correct values inside `my_library.py`. My experience with numerical computation, over many years, in many languages and on many platforms, has taught me that typing one of `10`, `10.`, and `10e0` **will not guarantee** that you end up with the same IEEE floating point number stored in a CPU register on your computer. My assignment `ten=10e0` and usage as just `ten` guarantees that I will always get the same number. You may not find this particularly important immediately, but you will as soon as you try to represent `one/ten` in binary on any computer of your choice. 35 | 36 | Also, I'm using `figure,plot` not `fig,ax` in my code. I like _long descriptive names_ and these describe what I am making: a figure that contains a plot. (An axe is something that I use to split wood but, earlier in my career, it represented the bonds that a trading desk wanted to sell, occasionally _desperately_.) 37 | 38 | ### Statsmodels 39 | I will use `statsmodels` as my primary inference engine, but will not usually import the entire package into the namespace. I _really_ try to decrease namespace pollution where ever possible! Estimation is optimization of statistical models with inference about the presented results. The chain of actions -- modeling, estimation, inference -- represents empirical science. Mere optimization, such as that provided by `scikit.learn`, _without inference_ is not science. It is not merely necessary to know which set of parameters, whether latent, explicit or "hyper," give the best performance of your system _in sample_, we also need to know, or have some indication of, whether the selected performance differs significantly from that accessible by chance. What `statsmodels` does is the _hard work_ of adding the metrics of statistical inference to the output of optimization. I value that greatly. 40 | 41 | ### arch 42 | I'm going to use Kevin Sheppard's `arch` package as well, with some modifications to lessen the bounds on various regressions. This is an excellent and useful tool, although I feel Dr. Sheppard has erred in doing things like excluding the Laplace distribution via parametric constraints, etc. After a brief discussion with him, I follow his recommended path of deriving new versions of his classes `GeneralizedError` and `GARCH`, which I call `GeneralizedError2` and `GARCH2` (somewhat unoriginally). These are defined within `my_library.py`. 43 | 44 | ### scipy 45 | I'm going to use code from `scipy`, mostly `scipy.stats` and, occasionally, `scipy.optimize` directly (rather than via `statsmodels` or `arch`). I use the distributions and tests from `scipy.stats`, but often find that they have annoyingly short or annoyingly long names. Thus you will see things like: 46 | ``` 47 | from scipy.stats import t as density 48 | ``` 49 | and 50 | ``` 51 | from scipy.stats import scipy.stats.ttest_1samp as ttest 52 | ``` 53 | **I** would much rather import only the functions I need, rather the entire package, or give my self the ability to switch distributions easily, in later code... 54 | ``` 55 | #from scipy.stats import t as density 56 | from scipy.stats import norm as density 57 | ``` 58 | etc. 59 | 60 | ### nprint 61 | I find that, in notebooks, knowing _when_ code executed is so useful that attaching times to print statements is very useful. Thus `my_library.py` includes the following function definitions: 62 | ``` 63 | from datetime import datetime ; date_format,time_format="%Y-%m-%d","%H:%M:%S" ; datetime_format=date_format+" "+time_format 64 | 65 | def now(): 66 | """Quickly return the time.""" 67 | return datetime.now().strftime(time_format) 68 | 69 | def nprint(*args,**kwargs): 70 | """Decorate the print statement with the time.""" 71 | print(now(),*args,**kwargs) 72 | stdout.flush() 73 | ``` 74 | To use it, use `nprint` as you would `print`. e.g. 75 | ``` 76 | nprint("Hello world!") 77 | ``` 78 | should output: 79 | 80 | ![image](https://github.com/Farmhouse121/Financial-Data-Science-in-Python/assets/469106/f111b0ec-57e8-4acf-b97d-0b838ee13170) 81 | 82 | ## The Articles 83 | This repository is going to include all of the code supporting the new book I am writing, _Financial Data Science in Python_. **But**, I am also going to be writing on Medium at [https://medium.com/@stattrader](https://medium.com/@stattrader). I will include links to each article _and_ the relevant folder within this repository below. Since this `README` is fairly long, it will also serve as the first article. 84 | 85 | | Title | GitHub | Medium | 86 | |-------|--------|--------| 87 | | Financial Data Science in Python | [README](https://github.com/Farmhouse121/Financial-Data-Science-in-Python/README.md) | [Financial Data Science in Python](https://stattrader.medium.com/financial-data-science-in-python-ee66dab460cf) | 88 | | The Market's Not Normal: Part 1 | [The_Market's_Not_Normal.ipynb](https://github.com/Farmhouse121/Financial-Data-Science-in-Python/blob/2fe3ae6dc08dc80d2f5d0c38ba0562e01f1c7415/The%20Market's%20Not%20Normal/The_Market's_Not_Normal.ipynb)| [The Market's Not Normal, Part 1](https://medium.com/adventures-in-data-science/the-markets-not-normal-part-1-bbba8dad2807) | 89 | | The Market's Not Normal: Part 2| [These_Two_Things_are_Not_the_Same.ipynb](https://github.com/Farmhouse121/Financial-Data-Science-in-Python/blob/2fe3ae6dc08dc80d2f5d0c38ba0562e01f1c7415/The%20Market's%20Not%20Normal/These_Two_Things_are_Not_the_Same.ipynb) | [The Market's Not Normal: Part 2](https://medium.com/adventures-in-data-science/the-markets-not-normal-part-2-cf8c4060f6b4)| 90 | | Can Non-Stationarity Rescue the Normal Distribution? | [Non_Stationarity_in_the_First_Two_Moments.ipynb](https://github.com/Farmhouse121/Financial-Data-Science-in-Python/blob/2fe3ae6dc08dc80d2f5d0c38ba0562e01f1c7415/The%20Market's%20Not%20Normal/Non_Stationarity_in_the_First_Two_Moments.ipynb) | [Can Non-Stationarity Rescue the Normal Distribution?](https://medium.com/adventures-in-data-science/can-non-stationarity-rescue-the-normal-distribution-4af9f708b26a)| 91 | | Let's Talk About Heteroskedasticity | [The_Variance_is_Not_Stationary.ipynb](https://github.com/Farmhouse121/Financial-Data-Science-in-Python/blob/main/The%20Market's%20Not%20Normal/The_Variance_is_Not_Stationary.ipynb) | [Let's Talk About Heteroskedasticity](https://medium.com/@stattrader/lets-talk-about-heteroskedasticity-f1443d628da0)| 92 | 93 | ## The Data 94 | I am going to use public domain data sources, which will be mostly _Yahoo! Finance_, accessed via the `yfinance` package, and the _Fred_ depository, operated by the Federal Reserve Bank of St. Louis with data downloaded directly via the web service they provide. This is mostly daily and slower cadence data. Most of what I will write about lives in that space. 95 | 96 | ## Making Proper Time Indices for Pandas 97 | It's been my experience that many codes return Pandas dataframes with a timestamp field for an axis but that the system is _not properly told_ that the data is, in fact, temporal in nature. (I'm looking at you **everybody** who uses textual dates as their timestamps!) This error can be remedied with the following construct, which you will see _extensively_ in my code: 98 | ``` 99 | df=pd.DataFrame(...) 100 | df.index=pd.DatetimeIndex(df.index).to_period('B') 101 | ``` 102 | which delivers an index of _business days_, for example. (I am grateful to [Alex De Castro](https://github.com/decastro-alex) for pointing out the existence of the `B` argument to me.) 103 | 104 | ## $\LaTeX$ "Scratchpads" 105 | Since my writing contains _a lot_ of mathematics, which I generally render in $\LaTeX$ and then cut'n'paste into less civil document preparation systems, I've decided to add documents that include the _math mode code_ to generate the equations. These will not render as full $\LaTeX$ documents (as I am not writing the Medium articles in $\LaTeX$, I'm not going to go through the bother of preparing an analogue document for antoher format). If Medium would support $\LaTeX$ markup, in the way that GitHub does, then that would change. 106 | 107 | ## There Will be Many Commits 108 | I have learned from three decades doing scientific research & development work that it is very hard to predict which of the many edits to a script will be the _final_ one that makes it all work. In addition, I've learned that memorializing that "first working version" with a weighty editorial commit will be immediately followed by an "oh yea, also" commit to follow a few minutes later. So I don't really try, I commit when I think I've done something useful and don't shy away from committing frequently. This is particularly useful if one uses GitHub, _as I do_, to synchronize code between different physical locations (e.g. my desktop and an AWS server, for example). This may be "bad practice," but it is my practice. 109 | 110 | ## Support 111 | I appreciate the many positive comments I receive regarding my work and my attempts to explain aspects of the scientific analysis of financial markets to people. If you would like to _directly_ support this work, you can _Buy me a Coffee_ via the link below. [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/H2H7EC7Z5) 112 | 113 | You may also buy my books via Amazon and other booksellers. 114 | 115 | * [Adventures in Financial Data Science](https://medium.com/r/?url=https%3A%2F%2Famzn.to%2F3P66fyK) 116 | * [Essays on Trading Strategy](https://medium.com/r/?url=https%3A%2F%2Fwww.amazon.com%2FEssays-Trading-Strategy-Scientific-Finance%2Fdp%2F9811273812) 117 | -------------------------------------------------------------------------------- /The Market's Not Normal/my_library.py: -------------------------------------------------------------------------------- 1 | my_library.py -------------------------------------------------------------------------------- /The Market's Not Normal/not_the_same.tex: -------------------------------------------------------------------------------- 1 | This is a ``scratchpad'' to generate the \LaTeX equations used in my articles. It will not run as a stand-alone LaTeX source document. 2 | 3 | \DeclareMathOperator*{\argmax}{arg~max} 4 | \DeclareMathOperator*{\argmin}{arg~min} 5 | 6 | \begin{equation} 7 | \ln\mathbb{P}[\mathrm{model}|\mathrm{data}]=\ln\mathbb{P}[\mathrm{data}|\mathrm{model}]+\ln\mathbb{P}[\mathrm{model}]- 8 | \ln\mathbb{P}[\mathrm{data}] 9 | \end{equation} 10 | 11 | \begin{equation} 12 | \Rightarrow\argmax_{\boldsymbol{\theta}}\ln\mathbb{P}[\mathrm{model}(\boldsymbol{\theta})|\mathrm{data}]=\argmax_{\boldsymbol{\theta}}\mathbb{L}[\mathrm{data}|\boldsymbol{\theta}] 13 | \end{equation} 14 | 15 | \begin{align} 16 | \hat{\boldsymbol{\theta}}&=\argmin_{\boldsymbol{\theta}}\sum_i\Big|x_i-x(\boldsymbol{\theta})\Big|\\ 17 | \textit{or}\; 18 | \hat{\boldsymbol{\theta}}&=\argmin_{\boldsymbol{\theta}}\sum_i\Big(x_i-x(\boldsymbol{\theta})\Big)^2 19 | \end{align} 20 | 21 | \begin{align} 22 | y_i&=\alpha+\beta x_i+\varepsilon_i : \varepsilon_i\sim\mathcal{D}\\ 23 | \Rightarrow\;\varepsilon_i&=y_i-\alpha-\beta x_i 24 | \end{align} 25 | 26 | \begin{align} 27 | (\hat{\alpha},\hat{\beta})&=\argmax_{(\alpha,\beta)}\sum_i\ln f(\varepsilon_i)\\ 28 | &=\argmax_{(\alpha,\beta)}\sum_i\ln f(y_i-\alpha-\beta x_i) 29 | \end{align} 30 | 31 | \begin{equation} 32 | f(\varepsilon,\boldsymbol{\theta})=g(\varepsilon)h(\boldsymbol{\theta})e^{-q\left|\frac{\varepsilon}{\sigma}\right|^\kappa}\;\mathrm{where}\;\{q,\sigma,\kappa\}\subseteq\boldsymbol{\theta} 33 | \end{equation} 34 | 35 | \begin{equation*} 36 | (\hat{\alpha},\hat{\beta})=\argmin_{(\alpha,\beta)}\left\{ 37 | \sum_{i=1}^Nq\left|\frac{y_i-\alpha-\beta x_i}{\sigma}\right|^\kappa 38 | -\sum_{i=1}^N\ln g(y_i-\alpha-\beta x_i)-N\,\ln h(\boldsymbol{\theta})\right\} 39 | \end{equation*} 40 | 41 | \begin{equation} 42 | f(y_i-\alpha-\beta x_i,\sigma)=\frac{e^{-\frac{1}{2}\left(\frac{y_i-\alpha-\beta x_i}{\sigma}\right)^2}}{\sqrt{2\pi}\sigma}\Rightarrow 43 | \begin{cases} 44 | q=\frac{1}{2}\\ 45 | \kappa=2\\ 46 | \ln g(y_i-\alpha-\beta x_i)=0\\ 47 | \ln h(\boldsymbol{\theta})=-\ln(\sqrt{2\pi}\sigma) 48 | \end{cases} 49 | \end{equation} 50 | 51 | \begin{equation} 52 | (\hat{\alpha},\hat{\beta})=\mathop{\mathrm{arg~min}}_{(\alpha,\beta)}\sum_{i=1}^N(y_i-\alpha-\beta x_i)^2 53 | \end{equation} 54 | 55 | \begin{equation} 56 | f(y_i-\alpha-\beta x_i,\sigma)=\frac{e^{-\left|\frac{y_i-\alpha-\beta x_i}{\sigma}\right|}}{2\sigma}\Rightarrow 57 | \begin{cases} 58 | q=1\\ 59 | \kappa=1\\ 60 | \ln g(y_i-\alpha-\beta x_i)=0\\ 61 | \ln h(\boldsymbol{\theta})=-\ln(2\sigma) 62 | \end{cases} 63 | \end{equation} 64 | 65 | \begin{equation} 66 | (\hat{\alpha},\hat{\beta})=\mathop{\mathrm{arg~min}}_{(\alpha,\beta)}\sum_{i=1}^N|y_i-\alpha-\beta x_i| 67 | \end{equation} 68 | 69 | \begin{align} 70 | \mathcal{D}=\mathrm{Normal}&\Leftrightarrow\hat{\alpha}= 71 | \mathop{\mathrm{mean}}\{x_i\}\\ 72 | \mathcal{D}=\mathrm{Laplace}&\Leftrightarrow\hat{\alpha}= 73 | \mathop{\mathrm{median}}\{x_i\} 74 | \end{align} 75 | 76 | -------------------------------------------------------------------------------- /my_library.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | # this is designed to set up every notebook or executable script properly with common resources 4 | from sys import stdout,stderr,executable,version_info 5 | assert version_info.major>=3 6 | 7 | from datetime import datetime 8 | DATE_FORMAT,TIME_FORMAT='%m/%d/%Y','%H:%M:%S' 9 | DATETIME_FORMAT=DATE_FORMAT+" "+TIME_FORMAT 10 | 11 | def now(format=TIME_FORMAT): 12 | """Quickly return the time.""" 13 | return datetime.now().strftime(format) 14 | 15 | def today(format=DATE_FORMAT): 16 | """Quickly return the date.""" 17 | return datetime.now().strftime(format) 18 | 19 | def nprint(*args,**kwargs): 20 | """Decorate the print statement with the time.""" 21 | print(now(),*args,**kwargs) 22 | stdout.flush() 23 | 24 | nprint("Starting...") 25 | 26 | # allow code to use the SIGALARM functionality to interrupt itself in a controlled fashion 27 | from signal import signal,SIGALRM,alarm 28 | 29 | class Timeout(Exception): 30 | """Permits time limits.""" 31 | def __str__(self): 32 | return "Timeout." 33 | 34 | def sigalrm(x,y): 35 | """Handle SIGALRM by raising a Timeout exception.""" 36 | raise Timeout 37 | 38 | signal(SIGALRM,sigalrm) # register the handler 39 | 40 | # allow deep breaks, the python break syntax can only break out one level 41 | class Break(Exception): 42 | """Permits deep breaks.""" 43 | def __str__(self): 44 | return "Break" 45 | 46 | # passive wrapper for with clauses for objects that don't provide __enter__ and __exit__ 47 | class With: 48 | """Dummy for with clauses.""" 49 | def __enter__(self): 50 | return self 51 | 52 | def __exit__(self,*args): 53 | pass 54 | 55 | def __init__(self,object=None): 56 | self.object=object 57 | 58 | def __call__(self): 59 | return self.object 60 | 61 | def __str__(self): 62 | return str(self.object) 63 | 64 | def __repr__(self): 65 | return repr(self.object) 66 | 67 | # deal with some Google colab specific stuff 68 | try: 69 | from IPython import get_ipython 70 | ip=get_ipython() 71 | 72 | if ip is not None and 'google' in str(ip): 73 | for package in 'yfinance','arch': 74 | nprint("Installing %s into Google notebook..." % package) 75 | ip.system("pip install --upgrade %s 1>/dev/null" % package) 76 | 77 | from tqdm.notebook import tqdm 78 | 79 | except ModuleNotFoundError: 80 | # if IPython not installed, we're definitely not in a notebook 81 | from tqdm import tqdm 82 | 83 | from warnings import filterwarnings 84 | filterwarnings("ignore",category=RuntimeWarning) # I don't care 85 | 86 | # yfinance - download function 87 | from yfinance import download 88 | 89 | # the usual suspects 90 | import pandas as pd 91 | import numpy as np 92 | import matplotlib.pyplot as pl ; plt=pl 93 | 94 | # some friendly numbers 95 | zero,one,two,three,four,five,ten,hundred,annualize,thousand=0e0,1e0,2e0,3e0,4e0,5e0,1e1,1e2,252e0,1e3 96 | half,GoldenRatio=one/two,(one+np.sqrt(five))/two 97 | 98 | # import arch classes 99 | from arch.univariate import ConstantMean,ARX,GeneralizedError,Normal,GARCH 100 | from arch.typing import Float64Array 101 | 102 | # change the constraints for GeneralizedError 103 | class GeneralizedError2(GeneralizedError): 104 | """Version of the GED with bounds on fit adjusted to include all feasible distributions (GED is valid for all positive nu values).""" 105 | def bounds(self,*args)->list[tuple[float,float]]: 106 | """Revised bounds.""" 107 | return [(0e0,1e2)] 108 | 109 | def constraints(self,*args)->tuple[Float64Array,Float64Array]: 110 | return np.array([[1], [-1]]), np.array([self.bounds()[0][0],-self.bounds()[0][1]]) 111 | 112 | # change the constraints for GARCH 113 | class GARCH2(GARCH): 114 | """Version of GARCH with constraints modified to be more relaxed, leads to models that don't bind on constraints.""" 115 | def bounds(self,resids:Float64Array)->list[tuple[float,float]]: 116 | """Modify bounds to be more relaxed.""" 117 | v=float(np.mean(abs(resids)**self.power)) 118 | bounds=[(1e-8*v,ten*v)] 119 | bounds.extend([(-one,two)]*(self.p+self.o+self.q)) 120 | return bounds 121 | 122 | def constraints(self,*args)->tuple[Float64Array,Float64Array]: 123 | """Modify constraints to permit negative values for A and D etc.""" 124 | a,b=super(GARCH2,self).constraints() 125 | b[1:(self.p+self.o+1)]=-one 126 | return a,b 127 | 128 | # some special axis formatters for matplotlib 129 | from matplotlib.ticker import Formatter 130 | 131 | class DirectionalLabels(Formatter): 132 | """Base class to provide directional formats for matplotlib axes.""" 133 | 134 | def __init__(self): 135 | """Abstract base class.""" 136 | raise NotImplementedError("DirectionalLabels is an abstract base class. You cannot instantiate it directly.") 137 | 138 | def __call__(self,datum,pos=None): 139 | """Render the provided number as a string.""" 140 | return self.plus.format(datum*self.scale) if datum>0e0 else self.minus.format(-datum*self.scale) if datum<0e0 else self.zero 141 | 142 | class PercentLabels(DirectionalLabels): 143 | """Output Excel style percent labels.""" 144 | def __init__(self,precision=2,zero="0",scale=1e0): 145 | """Set decimal precision and string to use for zeros.""" 146 | self.plus="{:,.%df} %%" % precision 147 | self.minus="({:,.%df}) %%" % precision 148 | self.zero=str(zero) 149 | self.scale=abs(scale) 150 | 151 | class CurrencyLabels(DirectionalLabels): 152 | """Matplotlib formatter to provide Excel type currency formats for axes.""" 153 | def __init__(self,precision=2,zero="0",symbol="$",suffix="",scale=1e0): 154 | """Set decimal precision and string to use for zeros.""" 155 | self.plus="%s {:,.%df}%s" % (symbol,precision,suffix) 156 | self.minus="(%s {:,.%df}%s)" % (symbol,precision,suffix) 157 | self.zero=str(zero) 158 | self.scale=abs(scale) 159 | 160 | class CountLabels(DirectionalLabels): 161 | """Matplotlib formatter to provide integers with commas.""" 162 | def __init__(self,zero="0",scale=1e0): 163 | """Integers with commas.""" 164 | self.plus="{:,.0f}" 165 | self.minus=self.plus 166 | self.zero=str(zero) 167 | self.scale=abs(scale) 168 | 169 | # loads index membership from Wikipedia 170 | def loadindex(indexname): 171 | """Load the specified index and return the members and the first date for data extraction.""" 172 | 173 | if indexname=='S&P 500': 174 | display(index:=pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')[0].rename(columns={"Symbol":"Ticker"}).set_index("Ticker")) 175 | first_date=index['Date added'].max() # add data is in table returned 176 | 177 | elif indexname=='NASDAQ-100': 178 | display(index:=pd.read_html('https://en.wikipedia.org/wiki/Nasdaq-100')[4].rename(columns={"Symbol":"Ticker"}).set_index("Ticker")) 179 | first_date=datetime.now().strftime("%Y-01-02") # NASDAQ rebalances (normally) on the first day of the year. Jan'1st. is *always* a holiday 180 | 181 | elif indexname=='S&P MidCap 400': 182 | display(index:=pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_400_companies')[0].rename(columns={"Symbol":"Ticker"}).set_index("Ticker")) 183 | updates=pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_400_companies')[1].set_index(("Date","Date")) 184 | updates.index=list(map(lambda x:pd.Period(x.split('[')[0],'D'),updates.index)) 185 | first_date=str(updates.index.max()) 186 | 187 | elif indexname=='S&P SmallCap 600': 188 | display(index:=pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_600_companies')[0].rename(columns={"Symbol":"Ticker"}).set_index("Ticker")) 189 | updates=pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_600_companies')[1].set_index(("Date","Date")) 190 | updates.index=list(map(lambda x:pd.Period(x.split('[')[0],'D'),updates.index)) 191 | first_date=str(updates.index.max()) 192 | 193 | elif indexname=='S&P 900': # union of S&P 500 and S&P MidCap 400 194 | sp500,dt500=loadindex('S&P 500') 195 | sp400,dt400=loadindex('S&P MidCap 400') 196 | columns=list(set(sp500.columns).intersection(set(sp400.columns))) 197 | index=pd.concat([sp500[columns],sp400[columns]]).sort_index() 198 | first_date=max([dt500,dt400]) 199 | 200 | elif indexname=='S&P 1500': # union of S&P 500, S&P MidCap 400, and S&P SmallCap 600 201 | sp900,dt900=loadindex('S&P 900') 202 | sp600,dt600=loadindex('S&P SmallCap 600') 203 | columns=list(set(sp900.columns).intersection(set(sp600.columns))) 204 | index=pd.concat([sp900[columns],sp600[columns]]).sort_index() 205 | first_date=max([dt900,dt600]) 206 | 207 | elif indexname=='Dow': # Dow Jones 208 | display(index:=pd.read_html('https://en.wikipedia.org/wiki/Dow_Jones_Industrial_Average')[1].rename(columns={"Symbol":"Ticker"}).set_index("Ticker")) 209 | first_date=index['Date added'].max() 210 | 211 | elif indexname=='FTSE 250': 212 | index=pd.read_html('https://en.wikipedia.org/wiki/FTSE_250_Index')[3] 213 | index["Ticker"]=index["Ticker"].apply(lambda x:x+".L") # set to Reuter's style tickers 214 | index.set_index("Ticker",inplace=True) 215 | display(index) 216 | first_date=((pd.Period(datetime.now(),'Q')-1).asfreq('B')+1).strftime("%Y-%m-%d") # first date of current quarter 217 | 218 | else: 219 | raise ValueError("Don't know how to load members of %s Index!" % indexname) 220 | 221 | return index[~index.index.duplicated()],first_date # drop duplicates in case some exist 222 | 223 | # download data from FRED 224 | from requests import get 225 | from os import environ 226 | from getpass import getpass 227 | 228 | def get_fred(series_id,FRED_API_KEY=None): 229 | """Function to get data from FRED API and return it as a DataFrame, also returns metadata object.""" 230 | 231 | if FRED_API_KEY is not None: 232 | environ['FRED_API_KEY']=FRED_API_KEY 233 | 234 | elif 'FRED_API_KEY' not in environ: 235 | environ['FRED_API_KEY']=getpass("You need to enter a FRED API key (your keys are stored here: https://fredaccount.stlouisfed.org/apikeys): ") 236 | 237 | response=get((url:="https://api.stlouisfed.org/fred/series/observations?series_id={}&api_key={}&file_type=json").format(series_id,environ['FRED_API_KEY'])) 238 | 239 | if response.status_code//100!=2: 240 | raise ValueError("Get status_code={:d} from {:s}".format(response.status_code,url)) 241 | 242 | df=pd.DataFrame.from_dict(pd.json_normalize(response.json())['observations'][0])[['date','value']].rename(columns={"date":"Date","value":series_id}).set_index("Date") 243 | df[series_id]=df[series_id].apply(lambda x:float(x) if x!='.' else np.nan) 244 | 245 | response=get((url:="https://api.stlouisfed.org/fred/series?series_id={}&api_key={}&file_type=json").format(series_id,environ['FRED_API_KEY'])) 246 | 247 | if response.status_code//100!=2: 248 | raise ValueError("Get status_code={:d} from {:s}".format(response.status_code,url)) 249 | 250 | metadata=response.json()['seriess'][0] 251 | df.index=pd.DatetimeIndex(df.index).to_period(metadata['frequency_short']) 252 | return df.dropna(),metadata 253 | 254 | # that's all folks 255 | nprint("Initialized.") 256 | -------------------------------------------------------------------------------- /nlls.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from statsmodels.base.model import GenericLikelihoodModel 3 | from statsmodels.api import add_constant 4 | from scipy.stats import norm 5 | from scipy.optimize import Bounds 6 | from my_library import zero,one 7 | 8 | class NLLS(GenericLikelihoodModel): 9 | """ 10 | Fit a Non-Linear Least Squares model to data via MLE. 11 | 12 | This is a maximum likelihood regression to a Normal distribution with a non-linear mean process, 13 | with an added regressor being the standard deviation of errors. If you do not override the `.predict()` 14 | method it will actually use a linear mean process and so is equivalent to OLS, but slower! You can change 15 | the distribution used by supplying a pdf function that matches the scipy.stats framework. 16 | 17 | The code follows the usual statsmodels conventions for a model defined in terms of a dependent variable named `endog` and independent 18 | variables named `exog`, and with the `add_constant()` function expected if an intercept is required. If you do not supply any data for 19 | `exog` a constant column will be used. The system fits the standard deviation of the data (which is required by the method). You can supply 20 | any `scipy.stats` format univariate distribution via the `distribution` argument and any extra variables via `extra_params_names`. The 21 | regression is performed via the `scipy.optimize.minimize` function and (in my experience) can be a little brittle. You may need to supply 22 | user bounds for the latent variables if the default ones chosen are incorrect. 23 | """ 24 | def __init__(self,endog,exog=None,distribution=norm,extra_params_names=[],**kwargs): 25 | """Initialize the object, setting helpful data, and then call the base constructor.""" 26 | # a small number 27 | self.epsilon=1e-7 28 | 29 | # check for univariate problem 30 | if len(endog.shape)>1: 31 | raise NotImplementedError("Only univariate processes are supported, you supplied a %d-d array for endog." % len(endog.shape)) 32 | 33 | # if no exogenous series, put in a series of ones for the constant 34 | if exog is None: 35 | exog=np.ones(endog.shape[0]) 36 | 37 | # add xtra distribution process parameters, which are "hidden" from the exog vector input 38 | self.distribution=distribution 39 | self.latent_variables=['sigma']+extra_params_names 40 | 41 | # initialize the base class with the added variables as "extra_params" 42 | super(NLLS,self).__init__(endog,exog,extra_params_names=self.latent_variables,**kwargs) 43 | 44 | # adjust d.o.f., it seems that the code doesn't get this right as given by the examples on line 45 | self.df_resid-=len(self.latent_variables) 46 | self.df_model=self.nparams-self.k_constant 47 | 48 | def _pick_params(self,params): 49 | """Helper function to divide the parameters into linear process, disperstion and other latent variable parameters.""" 50 | assert len(params)==self.nparams 51 | 52 | # memorialize parameters 53 | self.params=params 54 | 55 | # pick up parameters from the right slots 56 | n=len(self.latent_variables) 57 | 58 | if n>1: 59 | beta=params[:-n] 60 | sigma=params[-n] 61 | extra=list(params[-n+1:]) 62 | 63 | elif n==1: 64 | beta=params[:-1] 65 | sigma=params[-1] 66 | extra=[] 67 | 68 | else: 69 | raise ValueError("The number of latent variables cannot be zero.") 70 | 71 | return beta,sigma,extra 72 | 73 | def predict(self,exog=None,params=None): 74 | """ 75 | Returns the mean process prediction for the given inputs. 76 | 77 | If exog or params are None then self.exog, and/or self.params, will be used respectively. 78 | If you want to do something other than OLS, you should override this method with some other 79 | formula. If you don't want to use the Normal Distribution for the error process you should 80 | supply some other distribution when you instantiate the class. 81 | """ 82 | beta,sigma,extra=self._pick_params(params if params is not None else self.params) 83 | _exog=exog if exog is not None else self.exog 84 | mean=np.dot(_exog,beta) # if you want something other than OLS, change this formula 85 | 86 | return mean 87 | 88 | def nloglikeobs(self,params): 89 | """Returns a vector of negative log-likelihood values for each observation.""" 90 | # get the parameters divided into those for the mean process and the latent variables 91 | beta,sigma,extra=self._pick_params(params) 92 | 93 | # compute the mean model, dot computes the time-series of the dot product of the observation rows with beta 94 | self.mean=self.predict() 95 | self.innovation=(self.endog-self.mean)/sigma 96 | 97 | # set the distribution with the location set to zero as we specify the mean-model explicitly 98 | density=self.distribution(*extra,loc=zero,scale=sigma) 99 | 100 | # compute vector of negative log likelihood of vector of observations 101 | return -density.logpdf(self.endog-self.mean) 102 | 103 | def fit(self,start_params=None,bounds=None,maxiter=1000,**kwargs): 104 | """ 105 | Perform a regression using trust-constrained gradient minimization. 106 | 107 | NOTE: This code will try to guess values for `start_params` and `bounds` if you don't supply them. In particular, 108 | it will guess `(-np.inf,+np.inf)` for the limits of any latent variables added by the user. If this assumption is wrong, 109 | the regression may fail. In which case, user supplied values should be substituted. It's my experience that this regression 110 | method is "slow" and "fragile," but it is the required one. 111 | """ 112 | # the regression problem parameters are defined HERE by the start_params vector, wierd huh? 113 | if start_params is None: 114 | start_params=[zero]*self.exog.shape[1]+[self.endog.std()]+[one]*(len(self.latent_variables)-1) 115 | 116 | if self.k_constant: 117 | start_params[0]=self.endog.mean() 118 | 119 | # set the bounds 120 | if bounds is None: 121 | bounds=[(-np.inf,np.inf)]*self.exog.shape[1]+[(self.epsilon,np.inf)]+[(-np.inf,np.inf)]*(len(self.latent_variables)-1) 122 | 123 | # check we set the right number of variables 124 | assert len(start_params)==self.nparams 125 | assert len(bounds)==self.nparams 126 | 127 | # now let the base class do the regression, specifying the trust-constraint method for scipy.optimize with bounds 128 | f=super(NLLS,self).fit( 129 | start_params=start_params, 130 | method='minimize', 131 | min_method='trust-constr', 132 | bounds=Bounds(*list(zip(*bounds))), 133 | maxiter=maxiter, 134 | **kwargs 135 | ) 136 | f.named_params=dict(zip(self.exog_names,self.params)) 137 | f.num_params=len(f.named_params) 138 | return f 139 | 140 | --------------------------------------------------------------------------------