Last active
June 6, 2022 14:24
-
-
Save willbillionquant/3d36c40c03dc121f63da361194ae7110 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"from datetime import date, datetime" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Newest Yahoo Finance Wrapper" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Date</th>\n", | |
" <th>Open</th>\n", | |
" <th>High</th>\n", | |
" <th>Low</th>\n", | |
" <th>Close</th>\n", | |
" <th>Adj Close</th>\n", | |
" <th>Volume</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>2007-01-02</td>\n", | |
" <td>85.800003</td>\n", | |
" <td>88.300003</td>\n", | |
" <td>85.750000</td>\n", | |
" <td>88.099998</td>\n", | |
" <td>61.431114</td>\n", | |
" <td>5678100.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2007-01-03</td>\n", | |
" <td>88.449997</td>\n", | |
" <td>88.449997</td>\n", | |
" <td>84.750000</td>\n", | |
" <td>86.599998</td>\n", | |
" <td>60.385193</td>\n", | |
" <td>7207900.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>2007-01-04</td>\n", | |
" <td>86.000000</td>\n", | |
" <td>86.000000</td>\n", | |
" <td>81.750000</td>\n", | |
" <td>83.050003</td>\n", | |
" <td>57.909805</td>\n", | |
" <td>8747300.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>2007-01-05</td>\n", | |
" <td>80.400002</td>\n", | |
" <td>84.000000</td>\n", | |
" <td>79.900002</td>\n", | |
" <td>82.699997</td>\n", | |
" <td>57.665775</td>\n", | |
" <td>11603400.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>2007-01-08</td>\n", | |
" <td>82.000000</td>\n", | |
" <td>85.500000</td>\n", | |
" <td>82.000000</td>\n", | |
" <td>84.250000</td>\n", | |
" <td>58.746578</td>\n", | |
" <td>4296000.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>2007-01-09</td>\n", | |
" <td>87.599998</td>\n", | |
" <td>87.599998</td>\n", | |
" <td>85.000000</td>\n", | |
" <td>85.849998</td>\n", | |
" <td>59.862225</td>\n", | |
" <td>5227500.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>2007-01-10</td>\n", | |
" <td>84.000000</td>\n", | |
" <td>86.699997</td>\n", | |
" <td>82.349998</td>\n", | |
" <td>82.900002</td>\n", | |
" <td>57.805244</td>\n", | |
" <td>7451900.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>2007-01-11</td>\n", | |
" <td>84.349998</td>\n", | |
" <td>85.000000</td>\n", | |
" <td>81.000000</td>\n", | |
" <td>81.150002</td>\n", | |
" <td>56.584969</td>\n", | |
" <td>8204100.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>2007-01-12</td>\n", | |
" <td>82.000000</td>\n", | |
" <td>83.400002</td>\n", | |
" <td>81.150002</td>\n", | |
" <td>82.949997</td>\n", | |
" <td>57.840092</td>\n", | |
" <td>12061400.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>2007-01-15</td>\n", | |
" <td>84.000000</td>\n", | |
" <td>86.349998</td>\n", | |
" <td>84.000000</td>\n", | |
" <td>86.300003</td>\n", | |
" <td>60.176010</td>\n", | |
" <td>10488100.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Date Open High Low Close Adj Close \\\n", | |
"0 2007-01-02 85.800003 88.300003 85.750000 88.099998 61.431114 \n", | |
"1 2007-01-03 88.449997 88.449997 84.750000 86.599998 60.385193 \n", | |
"2 2007-01-04 86.000000 86.000000 81.750000 83.050003 57.909805 \n", | |
"3 2007-01-05 80.400002 84.000000 79.900002 82.699997 57.665775 \n", | |
"4 2007-01-08 82.000000 85.500000 82.000000 84.250000 58.746578 \n", | |
"5 2007-01-09 87.599998 87.599998 85.000000 85.849998 59.862225 \n", | |
"6 2007-01-10 84.000000 86.699997 82.349998 82.900002 57.805244 \n", | |
"7 2007-01-11 84.349998 85.000000 81.000000 81.150002 56.584969 \n", | |
"8 2007-01-12 82.000000 83.400002 81.150002 82.949997 57.840092 \n", | |
"9 2007-01-15 84.000000 86.349998 84.000000 86.300003 60.176010 \n", | |
"\n", | |
" Volume \n", | |
"0 5678100.0 \n", | |
"1 7207900.0 \n", | |
"2 8747300.0 \n", | |
"3 11603400.0 \n", | |
"4 4296000.0 \n", | |
"5 5227500.0 \n", | |
"6 7451900.0 \n", | |
"7 8204100.0 \n", | |
"8 12061400.0 \n", | |
"9 10488100.0 " | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# pip install yahoo_historical first \n", | |
"\n", | |
"from yahoo_historical import Fetcher\n", | |
"\n", | |
"data_388 = Fetcher('0388.hk', [2007, 1, 1], [2019, 4, 18])\n", | |
"df_388 = data_388.getHistorical()\n", | |
"df_388.head(10)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Date</th>\n", | |
" <th>Open</th>\n", | |
" <th>High</th>\n", | |
" <th>Low</th>\n", | |
" <th>Close</th>\n", | |
" <th>Adj Close</th>\n", | |
" <th>Volume</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>321</th>\n", | |
" <td>2008-04-23</td>\n", | |
" <td>149.669998</td>\n", | |
" <td>149.669998</td>\n", | |
" <td>149.669998</td>\n", | |
" <td>149.669998</td>\n", | |
" <td>109.826088</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>326</th>\n", | |
" <td>2008-04-30</td>\n", | |
" <td>159.779999</td>\n", | |
" <td>159.779999</td>\n", | |
" <td>159.779999</td>\n", | |
" <td>159.779999</td>\n", | |
" <td>117.244705</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>327</th>\n", | |
" <td>2008-05-02</td>\n", | |
" <td>164.710007</td>\n", | |
" <td>164.710007</td>\n", | |
" <td>164.710007</td>\n", | |
" <td>164.710007</td>\n", | |
" <td>120.862297</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>329</th>\n", | |
" <td>2008-05-06</td>\n", | |
" <td>164.110001</td>\n", | |
" <td>164.110001</td>\n", | |
" <td>164.110001</td>\n", | |
" <td>164.110001</td>\n", | |
" <td>120.422012</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>335</th>\n", | |
" <td>2008-05-15</td>\n", | |
" <td>149.649994</td>\n", | |
" <td>149.649994</td>\n", | |
" <td>149.649994</td>\n", | |
" <td>149.649994</td>\n", | |
" <td>109.811424</td>\n", | |
" <td>0.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Date Open High Low Close Adj Close \\\n", | |
"321 2008-04-23 149.669998 149.669998 149.669998 149.669998 109.826088 \n", | |
"326 2008-04-30 159.779999 159.779999 159.779999 159.779999 117.244705 \n", | |
"327 2008-05-02 164.710007 164.710007 164.710007 164.710007 120.862297 \n", | |
"329 2008-05-06 164.110001 164.110001 164.110001 164.110001 120.422012 \n", | |
"335 2008-05-15 149.649994 149.649994 149.649994 149.649994 109.811424 \n", | |
"\n", | |
" Volume \n", | |
"321 0.0 \n", | |
"326 0.0 \n", | |
"327 0.0 \n", | |
"329 0.0 \n", | |
"335 0.0 " | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Zero volume days are present, have to get rid of it \n", | |
"\n", | |
"df_388[df_388['Volume'] == 0].head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Open</th>\n", | |
" <th>High</th>\n", | |
" <th>Low</th>\n", | |
" <th>Close</th>\n", | |
" <th>Adj Close</th>\n", | |
" <th>Volume</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Date</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2019-04-12</th>\n", | |
" <td>66.599998</td>\n", | |
" <td>66.900002</td>\n", | |
" <td>66.500000</td>\n", | |
" <td>66.900002</td>\n", | |
" <td>66.900002</td>\n", | |
" <td>11869128.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-15</th>\n", | |
" <td>67.500000</td>\n", | |
" <td>67.800003</td>\n", | |
" <td>67.099998</td>\n", | |
" <td>67.099998</td>\n", | |
" <td>67.099998</td>\n", | |
" <td>20520188.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-16</th>\n", | |
" <td>66.800003</td>\n", | |
" <td>67.699997</td>\n", | |
" <td>66.800003</td>\n", | |
" <td>67.599998</td>\n", | |
" <td>67.599998</td>\n", | |
" <td>14092313.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-17</th>\n", | |
" <td>67.699997</td>\n", | |
" <td>67.949997</td>\n", | |
" <td>67.449997</td>\n", | |
" <td>67.849998</td>\n", | |
" <td>67.849998</td>\n", | |
" <td>17999581.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-18</th>\n", | |
" <td>67.949997</td>\n", | |
" <td>68.000000</td>\n", | |
" <td>67.550003</td>\n", | |
" <td>67.599998</td>\n", | |
" <td>67.599998</td>\n", | |
" <td>14176761.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Open High Low Close Adj Close Volume\n", | |
"Date \n", | |
"2019-04-12 66.599998 66.900002 66.500000 66.900002 66.900002 11869128.0\n", | |
"2019-04-15 67.500000 67.800003 67.099998 67.099998 67.099998 20520188.0\n", | |
"2019-04-16 66.800003 67.699997 66.800003 67.599998 67.599998 14092313.0\n", | |
"2019-04-17 67.699997 67.949997 67.449997 67.849998 67.849998 17999581.0\n", | |
"2019-04-18 67.949997 68.000000 67.550003 67.599998 67.599998 14176761.0" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_yahoo_data(symbol, market, startdate, enddate=date.today().strftime('%Y-%m-%d')):\n", | |
" \"\"\"\n", | |
" Get stock data from Yahoo Finance for US, HK, Singapore markets. \n", | |
" :param symbol: HK stock symbol (4-digit number)\n", | |
" :param startdate: starting yyyy-mm-dd with year, month, day in list format\n", | |
" :param enddate: endng yyyy-mm-dd with year, month, day in list format\n", | |
" :return: dataframe without zero volume days.\n", | |
" \"\"\"\n", | |
" dict_suffix = {'us': '', 'hk': '.hk', 'sg': '.SI'}\n", | |
" dt_startdate = datetime.strptime(startdate, '%Y-%m-%d')\n", | |
" dt_enddate = datetime.strptime(enddate, '%Y-%m-%d')\n", | |
" start_date = [dt_startdate.year, dt_startdate.month, dt_startdate.day]\n", | |
" end_date = [dt_enddate.year, dt_enddate.month, dt_enddate.day]\n", | |
" data = Fetcher(symbol + dict_suffix[market], start_date, end_date)\n", | |
" df = data.getHistorical()\n", | |
" df = df[df['Volume'] > 0]\n", | |
" df.set_index('Date', inplace=True)\n", | |
" return df\n", | |
" \n", | |
"df_0005 = get_yahoo_data('0005', 'hk', '2000-01-01', date.today().strftime('%Y-%m-%d'))\n", | |
"df_0005.tail()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## From IEX Data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>open</th>\n", | |
" <th>high</th>\n", | |
" <th>low</th>\n", | |
" <th>close</th>\n", | |
" <th>volume</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>date</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2015-01-02</th>\n", | |
" <td>103.4410</td>\n", | |
" <td>103.4874</td>\n", | |
" <td>99.6893</td>\n", | |
" <td>101.5280</td>\n", | |
" <td>53204626</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2015-01-05</th>\n", | |
" <td>100.5622</td>\n", | |
" <td>100.8965</td>\n", | |
" <td>97.8877</td>\n", | |
" <td>98.6678</td>\n", | |
" <td>64285491</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2015-01-06</th>\n", | |
" <td>98.9371</td>\n", | |
" <td>99.7636</td>\n", | |
" <td>97.1634</td>\n", | |
" <td>98.6771</td>\n", | |
" <td>65797116</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2015-01-07</th>\n", | |
" <td>99.5500</td>\n", | |
" <td>100.4786</td>\n", | |
" <td>99.0810</td>\n", | |
" <td>100.0607</td>\n", | |
" <td>40105934</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2015-01-08</th>\n", | |
" <td>101.4351</td>\n", | |
" <td>104.1468</td>\n", | |
" <td>100.9429</td>\n", | |
" <td>103.9053</td>\n", | |
" <td>59364547</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" open high low close volume\n", | |
"date \n", | |
"2015-01-02 103.4410 103.4874 99.6893 101.5280 53204626\n", | |
"2015-01-05 100.5622 100.8965 97.8877 98.6678 64285491\n", | |
"2015-01-06 98.9371 99.7636 97.1634 98.6771 65797116\n", | |
"2015-01-07 99.5500 100.4786 99.0810 100.0607 40105934\n", | |
"2015-01-08 101.4351 104.1468 100.9429 103.9053 59364547" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from iexfinance.stocks import get_historical_data\n", | |
"\n", | |
"startdate = datetime(2015, 1, 1)\n", | |
"enddate = date.today()\n", | |
"iex_aapl = get_historical_data('AAPL', startdate, enddate, output_format='pandas')\n", | |
"\n", | |
"iex_aapl.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>open</th>\n", | |
" <th>high</th>\n", | |
" <th>low</th>\n", | |
" <th>close</th>\n", | |
" <th>volume</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>date</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2019-04-12</th>\n", | |
" <td>1848.40</td>\n", | |
" <td>1851.50</td>\n", | |
" <td>1841.30</td>\n", | |
" <td>1843.06</td>\n", | |
" <td>3114413</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-15</th>\n", | |
" <td>1842.00</td>\n", | |
" <td>1846.85</td>\n", | |
" <td>1818.90</td>\n", | |
" <td>1844.87</td>\n", | |
" <td>3724423</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-16</th>\n", | |
" <td>1851.35</td>\n", | |
" <td>1869.77</td>\n", | |
" <td>1848.00</td>\n", | |
" <td>1863.04</td>\n", | |
" <td>3044618</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-17</th>\n", | |
" <td>1872.99</td>\n", | |
" <td>1876.47</td>\n", | |
" <td>1860.44</td>\n", | |
" <td>1864.82</td>\n", | |
" <td>2893517</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-18</th>\n", | |
" <td>1868.79</td>\n", | |
" <td>1870.82</td>\n", | |
" <td>1859.48</td>\n", | |
" <td>1861.69</td>\n", | |
" <td>2749882</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" open high low close volume\n", | |
"date \n", | |
"2019-04-12 1848.40 1851.50 1841.30 1843.06 3114413\n", | |
"2019-04-15 1842.00 1846.85 1818.90 1844.87 3724423\n", | |
"2019-04-16 1851.35 1869.77 1848.00 1863.04 3044618\n", | |
"2019-04-17 1872.99 1876.47 1860.44 1864.82 2893517\n", | |
"2019-04-18 1868.79 1870.82 1859.48 1861.69 2749882" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_iex_dict(symbol_list, startdate):\n", | |
" \"\"\"Get dictionary of dataframes from IEX\"\"\"\n", | |
" dict_list = dict()\n", | |
" startdate = datetime.strptime(startdate, '%Y-%m-%d')\n", | |
" for symbol in symbol_list:\n", | |
" df = get_historical_data(symbol, startdate, date.today(), output_format='pandas')\n", | |
" dict_list[symbol] = df\n", | |
" return dict_list\n", | |
"\n", | |
"symbol_list = ['AAPL', 'AMZN', 'NFLX', 'INTC', 'SPY', 'QQQ']\n", | |
"iex_dict = get_iex_dict(symbol_list, '2015-01-01')\n", | |
"iex_dict['AMZN'].tail()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" average changeOverTime close date high \\\n", | |
"2019-04-18 09:30:00 203.207 0.000000 203.190 20190418 203.360 \n", | |
"2019-04-18 09:31:00 203.317 0.000541 203.330 20190418 203.480 \n", | |
"2019-04-18 09:32:00 203.124 -0.000408 203.220 20190418 203.340 \n", | |
"2019-04-18 09:33:00 203.248 0.000202 203.390 20190418 203.460 \n", | |
"2019-04-18 09:34:00 203.556 0.001717 203.440 20190418 203.650 \n", | |
"2019-04-18 09:35:00 203.669 0.002274 203.825 20190418 203.825 \n", | |
"2019-04-18 09:36:00 203.618 0.002023 203.525 20190418 203.830 \n", | |
"2019-04-18 09:37:00 203.456 0.001225 203.390 20190418 203.570 \n", | |
"2019-04-18 09:38:00 203.222 0.000074 203.020 20190418 203.450 \n", | |
"2019-04-18 09:39:00 202.952 -0.001255 202.970 20190418 203.140 \n", | |
"2019-04-18 09:40:00 202.994 -0.001048 203.130 20190418 203.130 \n", | |
"2019-04-18 09:41:00 203.280 0.000359 203.340 20190418 203.360 \n", | |
"2019-04-18 09:42:00 203.484 0.001363 203.430 20190418 203.600 \n", | |
"2019-04-18 09:43:00 203.536 0.001619 203.420 20190418 203.650 \n", | |
"2019-04-18 09:44:00 203.413 0.001014 203.330 20190418 203.510 \n", | |
"\n", | |
" label low marketAverage marketChangeOverTime \\\n", | |
"2019-04-18 09:30:00 09:30 AM 203.11 203.423 0.000000 \n", | |
"2019-04-18 09:31:00 09:31 AM 203.16 203.330 -0.000457 \n", | |
"2019-04-18 09:32:00 09:32 AM 202.92 203.113 -0.001524 \n", | |
"2019-04-18 09:33:00 09:33 AM 203.01 203.266 -0.000772 \n", | |
"2019-04-18 09:34:00 09:34 AM 203.37 203.531 0.000531 \n", | |
"2019-04-18 09:35:00 09:35 AM 203.48 203.662 0.001175 \n", | |
"2019-04-18 09:36:00 09:36 AM 203.44 203.635 0.001042 \n", | |
"2019-04-18 09:37:00 09:37 AM 203.36 203.452 0.000143 \n", | |
"2019-04-18 09:38:00 09:38 AM 203.00 203.222 -0.000988 \n", | |
"2019-04-18 09:39:00 09:39 AM 202.79 202.956 -0.002296 \n", | |
"2019-04-18 09:40:00 09:40 AM 202.88 202.988 -0.002138 \n", | |
"2019-04-18 09:41:00 09:41 AM 203.19 203.283 -0.000688 \n", | |
"2019-04-18 09:42:00 09:42 AM 203.36 203.500 0.000379 \n", | |
"2019-04-18 09:43:00 09:43 AM 203.42 203.529 0.000521 \n", | |
"2019-04-18 09:44:00 09:44 AM 203.32 203.411 -0.000059 \n", | |
"\n", | |
" marketClose marketHigh marketLow marketNotional \\\n", | |
"2019-04-18 09:30:00 203.140 203.450 203.095 4.205573e+08 \n", | |
"2019-04-18 09:31:00 203.330 203.560 203.110 4.976948e+07 \n", | |
"2019-04-18 09:32:00 203.220 203.370 202.910 2.998997e+07 \n", | |
"2019-04-18 09:33:00 203.350 203.460 203.010 2.021686e+07 \n", | |
"2019-04-18 09:34:00 203.480 203.680 203.320 3.681247e+07 \n", | |
"2019-04-18 09:35:00 203.840 203.850 203.460 2.696301e+07 \n", | |
"2019-04-18 09:36:00 203.560 203.850 203.390 3.263813e+07 \n", | |
"2019-04-18 09:37:00 203.390 203.580 203.360 1.915993e+07 \n", | |
"2019-04-18 09:38:00 202.961 203.451 202.950 2.415193e+07 \n", | |
"2019-04-18 09:39:00 202.910 203.150 202.770 3.693416e+07 \n", | |
"2019-04-18 09:40:00 203.117 203.130 202.850 2.131738e+07 \n", | |
"2019-04-18 09:41:00 203.400 203.400 203.130 2.532156e+07 \n", | |
"2019-04-18 09:42:00 203.444 203.610 203.360 2.218375e+07 \n", | |
"2019-04-18 09:43:00 203.380 203.660 203.380 1.572284e+07 \n", | |
"2019-04-18 09:44:00 203.355 203.520 203.310 1.327317e+07 \n", | |
"\n", | |
" marketNumberOfTrades marketOpen marketVolume \\\n", | |
"2019-04-18 09:30:00 1362 203.20 2067404 \n", | |
"2019-04-18 09:31:00 955 203.14 244772 \n", | |
"2019-04-18 09:32:00 663 203.35 147652 \n", | |
"2019-04-18 09:33:00 565 203.23 99460 \n", | |
"2019-04-18 09:34:00 760 203.40 180869 \n", | |
"2019-04-18 09:35:00 716 203.49 132391 \n", | |
"2019-04-18 09:36:00 622 203.83 160278 \n", | |
"2019-04-18 09:37:00 499 203.54 94174 \n", | |
"2019-04-18 09:38:00 714 203.41 118845 \n", | |
"2019-04-18 09:39:00 915 202.97 181981 \n", | |
"2019-04-18 09:40:00 497 202.91 105018 \n", | |
"2019-04-18 09:41:00 546 203.13 124563 \n", | |
"2019-04-18 09:42:00 617 203.39 109011 \n", | |
"2019-04-18 09:43:00 439 203.44 77251 \n", | |
"2019-04-18 09:44:00 325 203.40 65253 \n", | |
"\n", | |
" notional numberOfTrades open volume \n", | |
"2019-04-18 09:30:00 1817892.315 89 203.13 8946 \n", | |
"2019-04-18 09:31:00 1026342.750 43 203.23 5048 \n", | |
"2019-04-18 09:32:00 1611182.345 48 203.34 7932 \n", | |
"2019-04-18 09:33:00 861773.100 39 203.19 4240 \n", | |
"2019-04-18 09:34:00 1198946.530 46 203.44 5890 \n", | |
"2019-04-18 09:35:00 1257860.475 113 203.53 6176 \n", | |
"2019-04-18 09:36:00 678861.080 38 203.81 3334 \n", | |
"2019-04-18 09:37:00 735493.800 40 203.56 3615 \n", | |
"2019-04-18 09:38:00 778544.230 45 203.44 3831 \n", | |
"2019-04-18 09:39:00 1068543.880 65 202.97 5265 \n", | |
"2019-04-18 09:40:00 454300.240 24 202.90 2238 \n", | |
"2019-04-18 09:41:00 540520.570 31 203.23 2659 \n", | |
"2019-04-18 09:42:00 907134.330 48 203.36 4458 \n", | |
"2019-04-18 09:43:00 617731.000 31 203.44 3035 \n", | |
"2019-04-18 09:44:00 386688.390 20 203.46 1901 \n" | |
] | |
} | |
], | |
"source": [ | |
"from iexfinance.stocks import get_historical_intraday\n", | |
"\n", | |
"iex_aapl_itd = get_historical_intraday(\"AAPL\", startdate='2019-04-01', output_format='pandas')\n", | |
"print(iex_aapl_itd.head(15))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(390, 20)" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"iex_aapl_itd.shape" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## AlphaVantage (HTTP Request)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" 1. open 2. high 3. low 4. close 5. volume\n", | |
"2019-04-18 95.6500 95.6500 94.1000 94.5000 24229379\n", | |
"2019-04-17 94.7500 95.6500 93.7000 94.4500 30245080\n", | |
"2019-04-16 92.5000 95.1000 92.1500 94.7500 35753933\n", | |
"2019-04-15 93.9500 95.2500 92.5500 92.6000 40867262\n", | |
"2019-04-12 91.7000 92.6500 91.3000 92.6500 23123193\n" | |
] | |
} | |
], | |
"source": [ | |
"from urllib.request import urlopen\n", | |
"import json\n", | |
"from pandas.io.json import json_normalize\n", | |
"\n", | |
"url = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=2318.HK&apikey=[yourAPIKey]'\n", | |
"response = urlopen(url)\n", | |
"json_2318 = response.read()\n", | |
"\n", | |
"data_2318 = json.loads(json_2318)\n", | |
"df_2318 = pd.DataFrame.from_dict(data_2318['Time Series (Daily)'])\n", | |
"df_2318 = df_2318.T\n", | |
"df_2318.index = pd.to_datetime(df_2318.index)\n", | |
"print(df_2318.head())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" 1. open 2. high 3. low 4. close 5. volume\n", | |
"2019-04-17 14:35:00 186.6700 186.8400 186.6700 186.8100 342736\n", | |
"2019-04-17 14:30:00 186.8300 186.8425 186.6000 186.6600 368291\n", | |
"2019-04-17 14:25:00 187.0700 187.0800 186.8050 186.8400 215501\n", | |
"2019-04-17 14:20:00 186.8400 187.0900 186.8400 187.0600 414414\n", | |
"2019-04-17 14:15:00 186.9600 186.9800 186.7600 186.8400 313061\n" | |
] | |
} | |
], | |
"source": [ | |
"url = 'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=QQQ&interval=5min&apikey=[yourAPIKey]'\n", | |
"response = urlopen(url)\n", | |
"json_qqq = response.read()\n", | |
"\n", | |
"data_qqq = json.loads(json_qqq)\n", | |
"df_qqq = pd.DataFrame.from_dict(data_qqq['Time Series (5min)'])\n", | |
"df_qqq = df_qqq.T\n", | |
"df_qqq.index = pd.to_datetime(df_qqq.index)\n", | |
"print(df_qqq.tail())\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Tushare (For Chinese A & B Shares)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Individual stock EOD data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" ts_code trade_date open high low close pre_close change \\\n", | |
"1276 600036.SH 20140115 10.72 10.75 10.53 10.59 10.75 -0.16 \n", | |
"1277 600036.SH 20140114 10.85 10.92 10.65 10.75 10.88 -0.13 \n", | |
"1278 600036.SH 20140113 10.82 10.98 10.73 10.88 10.80 0.08 \n", | |
"1279 600036.SH 20140110 10.69 10.82 10.61 10.80 10.70 0.10 \n", | |
"1280 600036.SH 20140109 10.61 10.76 10.61 10.70 10.63 0.07 \n", | |
"1281 600036.SH 20140108 10.52 10.69 10.46 10.63 10.52 0.11 \n", | |
"1282 600036.SH 20140107 10.33 10.54 10.28 10.52 10.46 0.06 \n", | |
"1283 600036.SH 20140106 10.50 10.52 10.32 10.46 10.51 -0.05 \n", | |
"1284 600036.SH 20140103 10.65 10.68 10.40 10.51 10.73 -0.22 \n", | |
"1285 600036.SH 20140102 10.84 10.86 10.67 10.73 10.89 -0.16 \n", | |
"\n", | |
" pct_chg vol amount \n", | |
"1276 -1.49 355733.95 377633.071 \n", | |
"1277 -1.19 448678.87 482287.733 \n", | |
"1278 0.74 779716.00 848646.197 \n", | |
"1279 0.93 629140.98 676364.232 \n", | |
"1280 0.66 482233.79 515210.314 \n", | |
"1281 1.05 492937.48 522881.092 \n", | |
"1282 0.57 542563.86 566113.066 \n", | |
"1283 -0.48 653970.30 680128.042 \n", | |
"1284 -2.05 585298.09 615117.102 \n", | |
"1285 -1.47 532564.90 571763.446 \n" | |
] | |
} | |
], | |
"source": [ | |
"import tushare as ts\n", | |
"\n", | |
"pro = ts.pro_api('api_token')\n", | |
"df_0036 = pro.daily(ts_code='600036.SH', start_date='20140101', end_date='20190418')\n", | |
"print(df_0036.tail(10))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Print list of all Shanghai-Connect stocks" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" ts_code hs_type in_date out_date is_new\n", | |
"0 603818.SH SH 20160613 None 1\n", | |
"1 603108.SH SH 20161212 None 1\n", | |
"2 600507.SH SH 20141117 None 1\n", | |
"3 601377.SH SH 20141117 None 1\n", | |
"4 600309.SH SH 20141117 None 1\n", | |
"5 600298.SH SH 20141117 None 1\n", | |
"6 600018.SH SH 20141117 None 1\n", | |
"7 600483.SH SH 20151214 None 1\n", | |
"8 600068.SH SH 20141117 None 1\n", | |
"9 600594.SH SH 20141117 None 1 \n", | |
"\n", | |
" ts_code hs_type in_date out_date is_new\n", | |
"567 601015.SH SH 20150615 None 1\n", | |
"568 600557.SH SH 20141117 None 1\n", | |
"569 603118.SH SH 20151214 None 1\n", | |
"570 600988.SH SH 20150615 None 1\n", | |
"571 603306.SH SH 20150521 None 1\n", | |
"572 601000.SH SH 20141117 None 1\n", | |
"573 600171.SH SH 20141117 None 1\n", | |
"574 600422.SH SH 20141117 None 1\n", | |
"575 601991.SH SH 20141117 None 1\n", | |
"576 600348.SH SH 20141117 None 1\n" | |
] | |
} | |
], | |
"source": [ | |
"pro = ts.pro_api('api-token')\n", | |
"df_components = pro.hs_const(hs_type='SH')\n", | |
"print(df_components.head(10), '\\n')\n", | |
"print(df_components.tail(10))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## From STOOQ (for Futures & Forex)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import os\n", | |
"import time\n", | |
"from selenium import webdriver\n", | |
"browser = webdriver.Chrome('chromedriver.exe')\n", | |
"\n", | |
"import shutil\n", | |
"download_path = os.path.join(os.path.expanduser('~'), 'Downloads')\n", | |
"\n", | |
"def get_stooq_move(symbol_list, download_path, csv_path, type):\n", | |
" dict_link = {'indices': '', 'futures': '.F', 'forex': ''}\n", | |
" dict_csv = {'indices': '_d', 'futures': '_f_d', 'forex': '_d'}\n", | |
" for ticker in symbol_list:\n", | |
" # Use Selenium Chrome to click to download CSV (urlretrieve NOT working well)\n", | |
" url = 'https://stooq.com/q/d/?s=' + ticker + dict_link[type]\n", | |
" browser.get(url)\n", | |
" link_csv = browser.find_element_by_link_text('Download data in csv file...')\n", | |
" link_csv.click()\n", | |
" time.sleep(1)\n", | |
" # Move the file from download folder to own target folder\n", | |
" target_file = os.path.join(csv_path, ticker + '_' + date.today().strftime('%Y-%m-%d') + '.csv')\n", | |
" shutil.move(os.path.join(download_path, ticker.lower() + dict_csv[type] + '.csv'), target_file)\n", | |
" browser.close()\n", | |
"\n", | |
"csv_path = os.path.join(os.path.abspath('csv_STOOQ'))\n", | |
"if not os.path.exists(csv_path):\n", | |
" os.makedirs(csv_path)\n", | |
"\n", | |
"indices_list = ['^HSI', '^SPX', '^DJI', '^DAX', '^NKX']\n", | |
"futures_list = ['ES', 'NQ', 'YM', 'RJ', 'GC', 'CL']\n", | |
"forex_list = ['EURUSD', 'GBPUSD', 'USDJPY', 'USDCAD', 'EURJPY', 'GBPJPY']\n", | |
"\n", | |
"get_stooq_move(indices_list, download_path, csv_path, 'indices')\n", | |
"get_stooq_move(futures_list, download_path, csv_path, 'futures')\n", | |
"get_stooq_move(forex_list, download_path, csv_path, 'forex')\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" Open High Low Close Volume\n", | |
"Date \n", | |
"1987-10-19 282.70 282.70 224.83 224.84 671444433.0\n", | |
"1987-10-20 225.06 245.62 216.46 236.83 675666679.0\n", | |
"1987-10-21 236.83 259.27 236.83 258.38 499555556.0\n", | |
"1987-10-22 258.24 258.38 242.99 248.25 435777801.0\n", | |
"1987-10-23 248.29 250.70 242.76 248.22 272888889.0\n" | |
] | |
} | |
], | |
"source": [ | |
"df_es = pd.read_csv(os.path.join(csv_path, '^spx_' + date.today().strftime('%Y-%m-%d') + '.csv'), header=0, index_col='Date', parse_dates=True)\n", | |
"print(df_es.loc['1987-10-19':].head())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Quandl" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Fed Rate & Treasury Yield" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import quandl\n", | |
"\n", | |
"quandl.ApiConfig.api_key = \"api-token\"\n", | |
"\n", | |
"rate_DFF = quandl.get('FRED/DFF',start_date=startdate,end_date=enddate) # Overnight Fed Rate\n", | |
"rate_03m = quandl.get('FRED/DTB3',start_date=startdate,end_date=enddate) # 3-month treasury bill\n", | |
"rate_05y = quandl.get('FRED/DGS5',start_date=startdate,end_date=enddate) # 5-year treasury yield\n", | |
"rate_10y = quandl.get('FRED/DGS10',start_date=startdate,end_date=enddate) # 10-year treasury note yield\n", | |
"rate_30y = quandl.get('FRED/DGS30',start_date=startdate,end_date=enddate) # 30-year treasury bond yield" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>3-month</th>\n", | |
" <th>5-year</th>\n", | |
" <th>10-year</th>\n", | |
" <th>30-year</th>\n", | |
" <th>Fed_Rate</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Date</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2019-03-21</th>\n", | |
" <td>2.43</td>\n", | |
" <td>2.34</td>\n", | |
" <td>2.54</td>\n", | |
" <td>2.96</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-03-22</th>\n", | |
" <td>2.41</td>\n", | |
" <td>2.24</td>\n", | |
" <td>2.44</td>\n", | |
" <td>2.88</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-03-25</th>\n", | |
" <td>2.41</td>\n", | |
" <td>2.21</td>\n", | |
" <td>2.43</td>\n", | |
" <td>2.87</td>\n", | |
" <td>2.40</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-03-26</th>\n", | |
" <td>2.41</td>\n", | |
" <td>2.18</td>\n", | |
" <td>2.41</td>\n", | |
" <td>2.86</td>\n", | |
" <td>2.40</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-03-27</th>\n", | |
" <td>2.39</td>\n", | |
" <td>2.18</td>\n", | |
" <td>2.39</td>\n", | |
" <td>2.83</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-03-28</th>\n", | |
" <td>2.38</td>\n", | |
" <td>2.20</td>\n", | |
" <td>2.39</td>\n", | |
" <td>2.81</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-03-29</th>\n", | |
" <td>2.35</td>\n", | |
" <td>2.23</td>\n", | |
" <td>2.41</td>\n", | |
" <td>2.81</td>\n", | |
" <td>2.43</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-01</th>\n", | |
" <td>2.38</td>\n", | |
" <td>2.31</td>\n", | |
" <td>2.49</td>\n", | |
" <td>2.89</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-02</th>\n", | |
" <td>2.37</td>\n", | |
" <td>2.28</td>\n", | |
" <td>2.48</td>\n", | |
" <td>2.88</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-03</th>\n", | |
" <td>2.39</td>\n", | |
" <td>2.32</td>\n", | |
" <td>2.52</td>\n", | |
" <td>2.93</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-04</th>\n", | |
" <td>2.39</td>\n", | |
" <td>2.32</td>\n", | |
" <td>2.51</td>\n", | |
" <td>2.92</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-05</th>\n", | |
" <td>2.39</td>\n", | |
" <td>2.31</td>\n", | |
" <td>2.50</td>\n", | |
" <td>2.91</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-08</th>\n", | |
" <td>2.38</td>\n", | |
" <td>2.33</td>\n", | |
" <td>2.52</td>\n", | |
" <td>2.93</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-09</th>\n", | |
" <td>2.37</td>\n", | |
" <td>2.31</td>\n", | |
" <td>2.51</td>\n", | |
" <td>2.92</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-10</th>\n", | |
" <td>2.38</td>\n", | |
" <td>2.28</td>\n", | |
" <td>2.48</td>\n", | |
" <td>2.90</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-11</th>\n", | |
" <td>2.38</td>\n", | |
" <td>2.31</td>\n", | |
" <td>2.51</td>\n", | |
" <td>2.94</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-12</th>\n", | |
" <td>2.39</td>\n", | |
" <td>2.38</td>\n", | |
" <td>2.56</td>\n", | |
" <td>2.97</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-15</th>\n", | |
" <td>2.38</td>\n", | |
" <td>2.37</td>\n", | |
" <td>2.55</td>\n", | |
" <td>2.96</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-16</th>\n", | |
" <td>2.38</td>\n", | |
" <td>2.41</td>\n", | |
" <td>2.60</td>\n", | |
" <td>2.99</td>\n", | |
" <td>2.41</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2019-04-17</th>\n", | |
" <td>2.39</td>\n", | |
" <td>2.40</td>\n", | |
" <td>2.59</td>\n", | |
" <td>2.99</td>\n", | |
" <td>2.42</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 3-month 5-year 10-year 30-year Fed_Rate\n", | |
"Date \n", | |
"2019-03-21 2.43 2.34 2.54 2.96 2.41\n", | |
"2019-03-22 2.41 2.24 2.44 2.88 2.41\n", | |
"2019-03-25 2.41 2.21 2.43 2.87 2.40\n", | |
"2019-03-26 2.41 2.18 2.41 2.86 2.40\n", | |
"2019-03-27 2.39 2.18 2.39 2.83 2.41\n", | |
"2019-03-28 2.38 2.20 2.39 2.81 2.41\n", | |
"2019-03-29 2.35 2.23 2.41 2.81 2.43\n", | |
"2019-04-01 2.38 2.31 2.49 2.89 2.41\n", | |
"2019-04-02 2.37 2.28 2.48 2.88 2.41\n", | |
"2019-04-03 2.39 2.32 2.52 2.93 2.41\n", | |
"2019-04-04 2.39 2.32 2.51 2.92 2.41\n", | |
"2019-04-05 2.39 2.31 2.50 2.91 2.41\n", | |
"2019-04-08 2.38 2.33 2.52 2.93 2.41\n", | |
"2019-04-09 2.37 2.31 2.51 2.92 2.41\n", | |
"2019-04-10 2.38 2.28 2.48 2.90 2.41\n", | |
"2019-04-11 2.38 2.31 2.51 2.94 2.41\n", | |
"2019-04-12 2.39 2.38 2.56 2.97 2.41\n", | |
"2019-04-15 2.38 2.37 2.55 2.96 2.41\n", | |
"2019-04-16 2.38 2.41 2.60 2.99 2.41\n", | |
"2019-04-17 2.39 2.40 2.59 2.99 2.42" | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df_rate = pd.concat((rate_03m,rate_05y,rate_10y,rate_30y,rate_DFF), axis = 1)\n", | |
"df_rate.columns = ['3-month','5-year','10-year','30-year','Fed_Rate']\n", | |
"df_rate = df_rate.dropna()\n", | |
"df_rate.tail(20)\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### CFTC Commitment Of Trader (COT) Reports" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Open Interest</th>\n", | |
" <th>Noncommercial Long</th>\n", | |
" <th>Noncommercial Short</th>\n", | |
" <th>Noncommercial Spreads</th>\n", | |
" <th>Commercial Long</th>\n", | |
" <th>Commercial Short</th>\n", | |
" <th>Total Long</th>\n", | |
" <th>Total Short</th>\n", | |
" <th>Nonreportable Positions Long</th>\n", | |
" <th>Nonreportable Positions Short</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Date</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2010-01-05</th>\n", | |
" <td>507643.0</td>\n", | |
" <td>263008.0</td>\n", | |
" <td>35241.0</td>\n", | |
" <td>67958.0</td>\n", | |
" <td>98195.0</td>\n", | |
" <td>376746.0</td>\n", | |
" <td>429161.0</td>\n", | |
" <td>479945.0</td>\n", | |
" <td>78482.0</td>\n", | |
" <td>27698.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2010-01-12</th>\n", | |
" <td>523266.0</td>\n", | |
" <td>271260.0</td>\n", | |
" <td>41918.0</td>\n", | |
" <td>75955.0</td>\n", | |
" <td>100451.0</td>\n", | |
" <td>382939.0</td>\n", | |
" <td>447666.0</td>\n", | |
" <td>500812.0</td>\n", | |
" <td>75600.0</td>\n", | |
" <td>22454.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2010-01-19</th>\n", | |
" <td>528924.0</td>\n", | |
" <td>261276.0</td>\n", | |
" <td>39807.0</td>\n", | |
" <td>82893.0</td>\n", | |
" <td>109197.0</td>\n", | |
" <td>382844.0</td>\n", | |
" <td>453366.0</td>\n", | |
" <td>505544.0</td>\n", | |
" <td>75558.0</td>\n", | |
" <td>23380.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2010-01-26</th>\n", | |
" <td>507565.0</td>\n", | |
" <td>246223.0</td>\n", | |
" <td>34299.0</td>\n", | |
" <td>76151.0</td>\n", | |
" <td>111492.0</td>\n", | |
" <td>360110.0</td>\n", | |
" <td>433866.0</td>\n", | |
" <td>470560.0</td>\n", | |
" <td>73699.0</td>\n", | |
" <td>37005.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2010-02-02</th>\n", | |
" <td>480860.0</td>\n", | |
" <td>246048.0</td>\n", | |
" <td>35879.0</td>\n", | |
" <td>68851.0</td>\n", | |
" <td>103361.0</td>\n", | |
" <td>347940.0</td>\n", | |
" <td>418260.0</td>\n", | |
" <td>452670.0</td>\n", | |
" <td>62600.0</td>\n", | |
" <td>28190.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Open Interest Noncommercial Long Noncommercial Short \\\n", | |
"Date \n", | |
"2010-01-05 507643.0 263008.0 35241.0 \n", | |
"2010-01-12 523266.0 271260.0 41918.0 \n", | |
"2010-01-19 528924.0 261276.0 39807.0 \n", | |
"2010-01-26 507565.0 246223.0 34299.0 \n", | |
"2010-02-02 480860.0 246048.0 35879.0 \n", | |
"\n", | |
" Noncommercial Spreads Commercial Long Commercial Short \\\n", | |
"Date \n", | |
"2010-01-05 67958.0 98195.0 376746.0 \n", | |
"2010-01-12 75955.0 100451.0 382939.0 \n", | |
"2010-01-19 82893.0 109197.0 382844.0 \n", | |
"2010-01-26 76151.0 111492.0 360110.0 \n", | |
"2010-02-02 68851.0 103361.0 347940.0 \n", | |
"\n", | |
" Total Long Total Short Nonreportable Positions Long \\\n", | |
"Date \n", | |
"2010-01-05 429161.0 479945.0 78482.0 \n", | |
"2010-01-12 447666.0 500812.0 75600.0 \n", | |
"2010-01-19 453366.0 505544.0 75558.0 \n", | |
"2010-01-26 433866.0 470560.0 73699.0 \n", | |
"2010-02-02 418260.0 452670.0 62600.0 \n", | |
"\n", | |
" Nonreportable Positions Short \n", | |
"Date \n", | |
"2010-01-05 27698.0 \n", | |
"2010-01-12 22454.0 \n", | |
"2010-01-19 23380.0 \n", | |
"2010-01-26 37005.0 \n", | |
"2010-02-02 28190.0 " | |
] | |
}, | |
"execution_count": 36, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"gold_oi = quandl.get('CFTC/088691_F_L_ALL',start_date='2010-1-1',end_date=date.today())\n", | |
"\n", | |
"gold_oi.head()\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x2ee37c92080>" | |
] | |
}, | |
"execution_count": 39, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\ngg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x2ee34012e48>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import matplotlib as plt\n", | |
"%matplotlib inline\n", | |
"\n", | |
"gold_data['Open Interest'].plot(figsize=(16,6))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 1 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment