{ "cells": [ { "cell_type": "code", "execution_count": 117, "metadata": { "ExecuteTime": { "end_time": "2018-08-06T12:02:38.049374Z", "start_time": "2018-08-06T12:02:35.686591Z" }, "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Installing requirements ..\n", "Done\n" ] }, { "data": { "text/html": [ "" ], "text/vnd.plotly.v1+html": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%run \"Retropy_framework.ipynb\"" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2018-08-06T06:18:34.796365Z", "start_time": "2018-08-06T06:18:34.772868Z" } }, "outputs": [ { "data": { "text/plain": [ "2016-01-01 0.01\n", "2016-01-02 0.01\n", "2016-01-03 0.02\n", "2016-01-04 0.01\n", "2016-01-05 -0.00\n", "2016-01-06 -0.02\n", "2016-01-07 0.00\n", "2016-01-08 -0.00\n", "2016-01-09 0.02\n", "2016-01-10 0.01\n", "2016-01-11 -0.01\n", "2016-01-12 -0.02\n", "2016-01-13 0.01\n", "2016-01-14 0.01\n", "2016-01-15 0.02\n", "2016-01-16 0.01\n", "2016-01-17 -0.01\n", "2016-01-18 -0.01\n", "2016-01-19 0.00\n", "2016-01-20 0.01\n", "2016-01-21 0.02\n", "2016-01-22 0.01\n", "2016-01-23 0.00\n", "2016-01-24 -0.00\n", "2016-01-25 0.01\n", "2016-01-26 -0.01\n", "2016-01-27 -0.01\n", "2016-01-28 -0.00\n", "2016-01-29 -0.00\n", "2016-01-30 0.01\n", "2016-01-31 -0.01\n", "2016-02-01 -0.01\n", "2016-02-02 0.01\n", "2016-02-03 -0.00\n", "2016-02-04 0.00\n", "2016-02-05 -0.01\n", "2016-02-06 -0.00\n", "2016-02-07 0.00\n", "2016-02-08 0.00\n", "2016-02-09 0.02\n", "2016-02-10 -0.00\n", "2016-02-11 -0.01\n", "2016-02-12 -0.00\n", "2016-02-13 -0.00\n", "2016-02-14 -0.01\n", "2016-02-15 -0.01\n", "2016-02-16 -0.01\n", "2016-02-17 -0.01\n", "2016-02-18 0.01\n", "2016-02-19 0.01\n", "2016-02-20 0.01\n", "2016-02-21 -0.01\n", "2016-02-22 -0.01\n", "2016-02-23 0.01\n", "2016-02-24 0.01\n", "2016-02-25 0.02\n", "2016-02-26 -0.00\n", "2016-02-27 0.02\n", "2016-02-28 -0.00\n", "2016-02-29 -0.01\n", "2016-03-01 0.01\n", "2016-03-02 -0.01\n", "2016-03-03 0.01\n", "2016-03-04 -0.00\n", "2016-03-05 0.00\n", "2016-03-06 -0.01\n", "2016-03-07 0.00\n", "2016-03-08 -0.01\n", "2016-03-09 -0.03\n", "2016-03-10 0.01\n", "2016-03-11 0.01\n", "2016-03-12 -0.00\n", "2016-03-13 -0.00\n", "2016-03-14 -0.01\n", "2016-03-15 0.01\n", "2016-03-16 0.01\n", "2016-03-17 0.00\n", "2016-03-18 0.01\n", "2016-03-19 -0.01\n", "2016-03-20 -0.00\n", "2016-03-21 -0.01\n", "2016-03-22 0.01\n", "2016-03-23 -0.00\n", "2016-03-24 0.01\n", "2016-03-25 -0.00\n", "2016-03-26 0.00\n", "2016-03-27 -0.00\n", "2016-03-28 0.00\n", "2016-03-29 -0.00\n", "2016-03-30 -0.00\n", "2016-03-31 -0.01\n", "2016-04-01 -0.01\n", "2016-04-02 -0.00\n", "2016-04-03 0.00\n", "2016-04-04 -0.00\n", "2016-04-05 -0.01\n", "2016-04-06 0.01\n", "2016-04-07 0.00\n", "2016-04-08 0.00\n", "2016-04-09 0.02\n", "2016-04-10 0.01\n", "2016-04-11 0.00\n", "2016-04-12 0.00\n", "2016-04-13 -0.01\n", "2016-04-14 0.00\n", "2016-04-15 -0.03\n", "2016-04-16 0.01\n", "2016-04-17 0.00\n", "2016-04-18 0.00\n", "2016-04-19 0.01\n", "2016-04-20 -0.00\n", "2016-04-21 0.01\n", "2016-04-22 -0.01\n", "2016-04-23 -0.01\n", "2016-04-24 0.01\n", "2016-04-25 0.01\n", "2016-04-26 -0.01\n", "2016-04-27 0.01\n", "2016-04-28 -0.01\n", "2016-04-29 0.01\n", "2016-04-30 0.01\n", "2016-05-01 -0.01\n", "2016-05-02 -0.01\n", "2016-05-03 -0.01\n", "2016-05-04 0.01\n", "2016-05-05 0.01\n", "2016-05-06 -0.00\n", "2016-05-07 0.00\n", "2016-05-08 0.00\n", "2016-05-09 -0.01\n", "2016-05-10 0.01\n", "2016-05-11 0.00\n", "2016-05-12 0.01\n", "2016-05-13 -0.00\n", "2016-05-14 -0.00\n", "2016-05-15 -0.00\n", "2016-05-16 -0.00\n", "2016-05-17 -0.00\n", "2016-05-18 -0.01\n", "2016-05-19 0.00\n", "2016-05-20 -0.00\n", "2016-05-21 0.03\n", "2016-05-22 0.00\n", "2016-05-23 -0.03\n", "2016-05-24 -0.00\n", "2016-05-25 0.02\n", "2016-05-26 0.01\n", "2016-05-27 0.02\n", "2016-05-28 0.02\n", "2016-05-29 -0.00\n", "2016-05-30 0.00\n", "2016-05-31 -0.01\n", "2016-06-01 -0.01\n", "2016-06-02 0.00\n", "2016-06-03 0.00\n", "2016-06-04 0.00\n", "2016-06-05 -0.00\n", "2016-06-06 0.01\n", "2016-06-07 -0.01\n", "2016-06-08 0.00\n", "2016-06-09 0.00\n", "2016-06-10 0.00\n", "2016-06-11 0.01\n", "2016-06-12 0.01\n", "2016-06-13 -0.01\n", "2016-06-14 -0.01\n", "2016-06-15 0.01\n", "2016-06-16 0.01\n", "2016-06-17 -0.01\n", "2016-06-18 -0.01\n", "2016-06-19 0.01\n", "2016-06-20 0.01\n", "2016-06-21 0.00\n", "2016-06-22 0.02\n", "2016-06-23 -0.01\n", "2016-06-24 0.01\n", "2016-06-25 -0.00\n", "2016-06-26 -0.00\n", "2016-06-27 0.02\n", "2016-06-28 -0.02\n", "2016-06-29 -0.01\n", "2016-06-30 -0.01\n", "2016-07-01 0.01\n", "2016-07-02 0.00\n", "2016-07-03 -0.01\n", "2016-07-04 -0.02\n", "2016-07-05 -0.02\n", "2016-07-06 -0.00\n", "2016-07-07 0.01\n", "2016-07-08 -0.01\n", "2016-07-09 0.00\n", "2016-07-10 -0.02\n", "2016-07-11 -0.01\n", "2016-07-12 -0.00\n", "2016-07-13 0.01\n", "2016-07-14 0.00\n", "2016-07-15 0.00\n", "2016-07-16 -0.02\n", "2016-07-17 -0.00\n", "2016-07-18 -0.01\n", "2016-07-19 -0.00\n", "2016-07-20 0.00\n", "2016-07-21 0.00\n", "2016-07-22 0.00\n", "2016-07-23 -0.01\n", "2016-07-24 0.01\n", "2016-07-25 0.01\n", "2016-07-26 -0.00\n", "2016-07-27 0.01\n", "2016-07-28 0.01\n", "2016-07-29 0.00\n", "2016-07-30 -0.01\n", "2016-07-31 -0.02\n", "2016-08-01 0.01\n", "2016-08-02 0.00\n", "2016-08-03 -0.00\n", "2016-08-04 -0.01\n", "2016-08-05 -0.01\n", "2016-08-06 0.02\n", "2016-08-07 -0.01\n", "2016-08-08 0.00\n", "2016-08-09 -0.01\n", "2016-08-10 0.00\n", "2016-08-11 0.01\n", "2016-08-12 -0.01\n", "2016-08-13 0.01\n", "2016-08-14 -0.01\n", "2016-08-15 -0.00\n", "2016-08-16 0.01\n", "2016-08-17 0.00\n", "2016-08-18 0.00\n", "2016-08-19 -0.00\n", "2016-08-20 -0.01\n", "2016-08-21 0.01\n", "2016-08-22 0.00\n", "2016-08-23 0.00\n", "2016-08-24 0.02\n", "2016-08-25 0.00\n", "2016-08-26 0.01\n", "2016-08-27 -0.02\n", "2016-08-28 0.00\n", "2016-08-29 -0.00\n", "2016-08-30 -0.01\n", "2016-08-31 -0.00\n", "2016-09-01 -0.00\n", "2016-09-02 -0.01\n", "2016-09-03 -0.01\n", "2016-09-04 0.00\n", "2016-09-05 0.01\n", "2016-09-06 0.02\n", "2016-09-07 0.02\n", "2016-09-08 -0.01\n", "2016-09-09 0.01\n", "2016-09-10 0.02\n", "2016-09-11 0.01\n", "2016-09-12 -0.00\n", "2016-09-13 -0.02\n", "2016-09-14 -0.01\n", "2016-09-15 -0.00\n", "2016-09-16 0.00\n", "2016-09-17 0.01\n", "2016-09-18 0.00\n", "2016-09-19 -0.01\n", "2016-09-20 0.00\n", "2016-09-21 -0.02\n", "2016-09-22 -0.01\n", "2016-09-23 -0.01\n", "2016-09-24 -0.00\n", "2016-09-25 -0.00\n", "2016-09-26 -0.00\n", "2016-09-27 -0.00\n", "2016-09-28 -0.01\n", "2016-09-29 -0.02\n", "2016-09-30 0.02\n", "2016-10-01 -0.02\n", "2016-10-02 0.01\n", "2016-10-03 -0.01\n", "2016-10-04 -0.01\n", "2016-10-05 -0.01\n", "2016-10-06 0.02\n", "2016-10-07 0.00\n", "2016-10-08 -0.00\n", "2016-10-09 0.00\n", "2016-10-10 -0.01\n", "2016-10-11 -0.00\n", "2016-10-12 0.01\n", "2016-10-13 0.01\n", "2016-10-14 -0.01\n", "2016-10-15 -0.01\n", "2016-10-16 0.01\n", "2016-10-17 0.01\n", "2016-10-18 -0.00\n", "2016-10-19 0.00\n", "2016-10-20 0.02\n", "2016-10-21 0.00\n", "2016-10-22 -0.01\n", "2016-10-23 0.00\n", "2016-10-24 -0.00\n", "2016-10-25 0.01\n", "2016-10-26 0.00\n", "2016-10-27 0.01\n", "2016-10-28 0.01\n", "2016-10-29 -0.01\n", "2016-10-30 -0.02\n", "2016-10-31 -0.01\n", "2016-11-01 -0.02\n", "2016-11-02 -0.00\n", "2016-11-03 0.01\n", "2016-11-04 -0.00\n", "2016-11-05 -0.01\n", "2016-11-06 -0.01\n", "2016-11-07 0.00\n", "2016-11-08 0.01\n", "2016-11-09 0.01\n", "2016-11-10 0.00\n", "2016-11-11 0.01\n", "2016-11-12 -0.00\n", "2016-11-13 -0.00\n", "2016-11-14 0.01\n", "2016-11-15 -0.02\n", "2016-11-16 -0.00\n", "2016-11-17 0.00\n", "2016-11-18 -0.00\n", "2016-11-19 -0.00\n", "2016-11-20 0.00\n", "2016-11-21 0.01\n", "2016-11-22 0.01\n", "2016-11-23 0.01\n", "2016-11-24 -0.02\n", "2016-11-25 0.02\n", "2016-11-26 0.00\n", "2016-11-27 -0.01\n", "2016-11-28 0.00\n", "2016-11-29 0.01\n", "2016-11-30 -0.01\n", "2016-12-01 0.00\n", "2016-12-02 -0.01\n", "2016-12-03 0.01\n", "2016-12-04 -0.01\n", "2016-12-05 0.02\n", "2016-12-06 0.00\n", "2016-12-07 0.01\n", "2016-12-08 -0.00\n", "2016-12-09 0.02\n", "2016-12-10 -0.00\n", "2016-12-11 0.01\n", "2016-12-12 -0.00\n", "2016-12-13 -0.02\n", "2016-12-14 0.00\n", "2016-12-15 0.02\n", "2016-12-16 0.01\n", "2016-12-17 0.01\n", "2016-12-18 -0.01\n", "2016-12-19 -0.00\n", "2016-12-20 0.02\n", "2016-12-21 -0.00\n", "2016-12-22 0.00\n", "2016-12-23 -0.01\n", "2016-12-24 0.01\n", "2016-12-25 0.01\n", "2016-12-26 0.02\n", "2016-12-27 -0.00\n", "2016-12-28 0.00\n", "2016-12-29 0.02\n", "2016-12-30 0.01\n", "2016-12-31 -0.01\n", "2017-01-01 0.02\n", "2017-01-02 0.01\n", "2017-01-03 -0.01\n", "2017-01-04 0.01\n", "2017-01-05 0.00\n", "2017-01-06 0.01\n", "2017-01-07 -0.02\n", "2017-01-08 0.02\n", "2017-01-09 0.01\n", "2017-01-10 -0.01\n", "2017-01-11 -0.00\n", "2017-01-12 -0.01\n", "2017-01-13 0.01\n", "2017-01-14 -0.01\n", "2017-01-15 0.01\n", "2017-01-16 -0.01\n", "2017-01-17 0.01\n", "2017-01-18 0.00\n", "2017-01-19 0.01\n", "2017-01-20 -0.00\n", "2017-01-21 0.00\n", "2017-01-22 0.02\n", "2017-01-23 -0.00\n", "2017-01-24 0.01\n", "2017-01-25 0.00\n", "2017-01-26 -0.01\n", "2017-01-27 0.00\n", "2017-01-28 -0.01\n", "2017-01-29 0.01\n", "2017-01-30 -0.00\n", "2017-01-31 0.01\n", "2017-02-01 0.02\n", "2017-02-02 0.01\n", "2017-02-03 0.01\n", "Freq: D, dtype: float64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from pyfinance import *\n", ">>> s = np.random.randn(400) / 100 + 0.0008\n", ">>> idx = pd.date_range(start='2016', periods=len(s)) # default daily freq.\n", ">>> ts = TSeries(s, index=idx)\n", "ts" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2018-08-06T06:21:22.481879Z", "start_time": "2018-08-06T06:21:19.261061Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
term_spreadcopper
DATE
2000-02-01-1.41-0.02
2000-03-012.00-0.04
2000-04-010.52-0.03
2000-05-01-0.100.06
2000-06-010.03-0.02
\n", "
" ], "text/plain": [ " term_spread copper\n", "DATE \n", "2000-02-01 -1.41 -0.02\n", "2000-03-01 2.00 -0.04\n", "2000-04-01 0.52 -0.03\n", "2000-05-01 -0.10 0.06\n", "2000-06-01 0.03 -0.02" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "DATE\n", "2000-02-01 0.01\n", "2000-03-01 -0.00\n", "2000-04-01 0.01\n", "2000-05-01 0.02\n", "2000-06-01 -0.01\n", "Freq: MS, Name: usd, dtype: float64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ ">>> from pandas_datareader import DataReader\n", "\n", ">>> syms = {\n", "... 'TWEXBMTH': 'usd',\n", "... 'T10Y2YM': 'term_spread',\n", "... 'PCOPPUSDM': 'copper'\n", "... }\n", "\n", ">>> data = DataReader(syms.keys(), data_source='fred',\n", "... start='2000-01-01', end='2016-12-31')\\\n", "... .pct_change()\\\n", "... .dropna()\\\n", "... .rename(columns=syms)\n", "\n", ">>> y = data.pop('usd')\n", "\n", ">>> data.head()\n", "\n", ">>> y.head()\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2018-08-06T06:23:30.344992Z", "start_time": "2018-08-06T06:23:11.774037Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fetching OLS from AV .. Failed to fetch OLS from AV, trying from Y .. Fetching OLS from Y .. Failed to fetch implied symbol: OLS\n" ] }, { "data": { "text/plain": [ "0.001230320443416746" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "array([-0.00062647, -0.09490566])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "33.42923069295481" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "(203,)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "(203,)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ ">>> from pyfinance import ols\n", "\n", ">>> model = ols.OLS(y=y, x=data)\n", "\n", ">>> model.alpha # the intercept - a scalar\n", "\n", ">>> model.beta # the coefficients\n", "\n", ">>> model.fstat\n", "\n", "# Residuals and predicted y values are NumPy arrays\n", "# with the same shape as `y`.\n", ">>> model.resids.shape\n", "\n", ">>> model.predicted.shape\n" ] }, { "cell_type": "code", "execution_count": 201, "metadata": { "ExecuteTime": { "end_time": "2018-08-06T08:23:04.422562Z", "start_time": "2018-08-06T08:23:04.417060Z" } }, "outputs": [ { "data": { "text/plain": [ "365.0" ] }, "execution_count": 201, "metadata": {}, "output_type": "execute_result" } ], "source": [] }, { "cell_type": "code", "execution_count": 233, "metadata": { "ExecuteTime": { "end_time": "2018-08-06T08:31:28.056977Z", "start_time": "2018-08-06T08:31:27.901832Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "data": [ { "name": "R^2", "text": "R^2", "type": "scatter", "uid": "1cd5b3d8-9953-11e8-8e95-000c29825b7f", "x": [ "2016-12-31", "2017-01-31", "2017-02-28", "2017-03-31", "2017-04-30", "2017-05-31", "2017-06-30", "2017-07-31", "2017-08-31", "2017-09-30", "2017-10-31", "2017-11-30", "2017-12-31", "2018-01-31", "2018-02-28", "2018-03-31", "2018-04-30", "2018-05-31", "2018-06-30", "2018-07-31" ], "y": [ 0.3022435445486228, 0.4209781480128344, 0.3663952443689895, 0.4507307397222184, 0.5589805728497712, 0.4857173335814739, 0.2136723404954805, 0.23096927597444025, 0.18001706887623473, 0.06924732787152661, 0.12053213813335453, 0.12254075899604717, 0.11630405745117971, 0.07168380537501244, 0.06381541622231267, 0.08404129277110806, 0.08730918379437957, 0.002481929166200741, 0.011776635961231227, 0.00016602027815391934 ] }, { "name": "MINT beta", "text": "MINT beta", "type": "scatter", "uid": "1cd5b3d9-9953-11e8-8e95-000c29825b7f", "x": [ "2016-12-31", "2017-01-31", "2017-02-28", "2017-03-31", "2017-04-30", "2017-05-31", "2017-06-30", "2017-07-31", "2017-08-31", "2017-09-30", "2017-10-31", "2017-11-30", "2017-12-31", "2018-01-31", "2018-02-28", "2018-03-31", "2018-04-30", "2018-05-31", "2018-06-30", "2018-07-31" ], "y": [ 0.4608290364986796, 0.5179208224850931, 0.47172276727711093, 0.5365384798199249, 0.5216819000717673, 0.7801409593389478, 0.6022490952286845, 0.6251124125349878, 0.6466859810174346, 0.4749453044187809, 0.5833237872590782, 0.5983036678646625, 0.5919107559931149, 0.5698888251397196, 0.43847653772211476, 0.5558763326815435, 0.5724936422768746, -0.06153890940917685, 0.11704838786662392, 0.014220704180947397 ] } ], "layout": { "hovermode": "closest", "legend": { "bgcolor": "rgb(255,255,255,187)", "bordercolor": "#888888", "borderwidth": 1, "font": { "color": "#000", "family": "sans-serif", "size": 12 }, "traceorder": "normal", "x": 0, "y": 1 }, "margin": { "b": 30, "l": 30, "pad": 0, "r": 30, "t": 30 }, "shapes": [ { "line": { "color": "red", "width": 1 }, "opacity": 1, "type": "line", "x0": 0, "x1": 1, "xref": "paper", "y0": -1, "y1": -1 }, { "line": { "color": "red", "width": 1 }, "opacity": 1, "type": "line", "x0": 0, "x1": 1, "xref": "paper", "y0": 0, "y1": 0 }, { "line": { "color": "red", "width": 1 }, "opacity": 1, "type": "line", "x0": 0, "x1": 1, "xref": "paper", "y0": 1, "y1": 1 } ], "showlegend": true, "yaxis": { "autorange": true } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "data": [ { "name": "NEAR - NEAR / MINT - MINT", "text": "NEAR - NEAR / MINT - MINT", "type": "scatter", "uid": "1cd5b3da-9953-11e8-8e95-000c29825b7f", "x": [ "2016-02-29", "2016-03-31", "2016-04-30", "2016-05-31", "2016-06-30", "2016-07-31", "2016-08-31", "2016-09-30", "2016-10-31", "2016-11-30", "2016-12-31", "2017-01-31", "2017-02-28", "2017-03-31", "2017-04-30", "2017-05-31", "2017-06-30", "2017-07-31", "2017-08-31", "2017-09-30", "2017-10-31", "2017-11-30", "2017-12-31", "2018-01-31", "2018-02-28", "2018-03-31", "2018-04-30", "2018-05-31", "2018-06-30", "2018-07-31" ], "y": [ -0.4667432932007972, 0.6044320425658753, 0.5078266365556895, 0.1547671072773191, 1.657078855059975, 0.5951606750510529, 0.5151516542130272, 1.0082483694035804, 0.27942159453461685, 1.2967163218802324, 1.3220448686681505, 0.5436560637855271, 0.4827336644646455, 0.9184965890246373, 0.9813394783463009, 0.49223795794451336, 1.4212607739271441, 1.015808717874245, 0.932170407803931, 0.6233930665623652, 0.5100515406806657, 0.6573873583892073, 0.8966249559043787, 1.4851630111604361, 0.34696408716763777, 1.506038934409366, 0.703520775534849, 1.282195477091862, 0.8439230625519059, 1.060567122003657 ] } ], "layout": { "hovermode": "closest", "legend": { "bgcolor": "rgb(255,255,255,187)", "bordercolor": "#888888", "borderwidth": 1, "font": { "color": "#000", "family": "sans-serif", "size": 12 }, "traceorder": "normal", "x": 0, "y": 1 }, "margin": { "b": 30, "l": 30, "pad": 0, "r": 30, "t": 30 }, "showlegend": true, "yaxis": { "autorange": true } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def show_rolling_beta(target, sources, window=None, rsq=True, betaSum=False, pvalue=False, freq=None):\n", " if not isinstance(sources, list):\n", " sources = [sources]\n", " \n", " target = get(target)\n", " sources = get(sources)\n", " names = [s.name for s in sources]\n", " \n", " target = logret(target)\n", " sources = lmap(logret, sources)\n", " \n", " target = unwrap(target)\n", " sources = lmap(unwrap, sources)\n", " \n", " sources = pd.DataFrame(sources).T.dropna()\n", "\n", " target, sources = sync(target, sources)\n", " \n", " if freq:\n", " target = target.asfreq(freq)\n", " sources = sources.asfreq(freq)\n", " if window is None:\n", " window = int(get_anlz_factor(freq))\n", " else:\n", " if window is None:\n", " window = 365\n", " \n", " rolling = ols.PandasRollingOLS(y=target, x=sources, window=window)\n", " #rolling.beta.head()\n", " #rolling.alpha.head()\n", " #rolling.pvalue_alpha.head()\n", " #type(rolling.beta[\"feature1\"])\n", " \n", " \n", " res = []\n", " \n", " if pvalue:\n", " _pvalue = rolling.pvalue_beta\n", " _pvalue.columns = [s + \" pvalue\" for s in names]\n", " res += [_pvalue, 0.05]\n", " \n", " if rsq:\n", " rsq = rolling.rsq\n", " rsq.name = \"R^2\"\n", " res += [rsq]\n", "\n", " _beta = rolling.beta\n", " _beta.columns = [s + \" beta\" for s in names]\n", " res += [_beta]\n", " \n", " if betaSum and len(names) > 1:\n", " _betaSum = rolling.beta.sum(axis=1)\n", " _betaSum.name = \"beta sum\"\n", " res += [_betaSum]\n", " \n", " res += [-1, 0, 1]\n", " \n", " show(res, ta=False)\n", " \n", "#show_rolling_beta(PERM, [lc, gold, lgb], pvalue=False)\n", "#show_rolling_beta(VT, [VTI, VXUS])\n", "#show_rolling_beta(SVXY, ZIV, window=60, pvalue=True)\n", "show_rolling_beta(NEAR, MINT, freq=\"M\")\n", "#show(NEAR, MINT)\n", "\n", "show(logret(NEAR.asfreq(\"M\")) / logret(MINT.asfreq(\"M\")), ta=False)" ] }, { "cell_type": "code", "execution_count": 232, "metadata": { "ExecuteTime": { "end_time": "2018-08-06T08:31:16.568583Z", "start_time": "2018-08-06T08:31:16.278073Z" }, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 232, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "(-0.002, 0.005)" ] }, "execution_count": 232, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "(-0.002, 0.005)" ] }, "execution_count": 232, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(*sync(logret(NEAR.asfreq(\"M\")), logret(MINT.asfreq(\"M\"))))\n", "plt.xlim(-0.002, 0.005)\n", "plt.ylim(-0.002, 0.005)\n", "#MINT.asfreq(\"M\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2018-07-07T20:39:59.904042Z", "start_time": "2018-07-07T20:39:03.066261Z" } }, "outputs": [], "source": [ "# be sure to save before you publish\n", "# when done, you will get a public link to an HTML file with the results\n", "publish()" ] } ], "metadata": { "kernelspec": { "display_name": "Python [default]", "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.6.6" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }