We are going to analyze some properties of the DAX index.
%load_ext autoreload
%autoreload 2
import pandas as pd
import pandas.io.data as web
import datetime
import pandas.io.pytables
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
from collections import OrderedDict
from IPython.display import display, HTML
HTML('<iframe src=http://finance.yahoo.com/q/cp?s=^GDAXI+Components width=1000 height=350></iframe>')
dax_symbols = pd.DataFrame({'Symbol': ['ADS.DE', 'ALV.DE', 'BAS.DE', 'BAYN.DE', 'BEI.DE', 'BMW.DE', 'CBK.DE', 'CON.DE', 'DAI.DE', 'DB1.DE'
'DBK.DE', 'DPW.DE', 'DTE.DE', 'EOAN.DE', 'FME.DE', 'FRE.DE', 'HEI.DE', 'HEN3.DE', 'IFX.DE', 'LHA.DE',
'LIN.DE', 'LXS.DE', 'MRK.DE', 'MUV2.DE', 'RWE.DE', 'SAP.DE', 'SDF.DE', 'SIE.DE', 'TKA.DE', 'VOW3.DE']})
Get further info on the DAX components
HTML('<iframe src=http://en.wikipedia.org/wiki/DAX width=1000 height=350></iframe>')
dax_info = """Name Branche Logo Indexgewichtung in % (Letzte) Aufnahme Sitz
Adidas Bekleidung Adidas-group-logo-fr.svg 1,92 22. Juni 1998 Herzogenaurach
Allianz Versicherungen Allianz.svg 6,90 1. Juli 1988 München
BASF Chemie BASF-Logo bw.svg 9,82 1. Juli 1988 Ludwigshafen am Rhein
Bayer Chemie und Pharma Bayer-Logo.svg 10,10 1. Juli 1988 Leverkusen
Beiersdorf Konsumgüter Beiersdorf Logo.svg 0,86 22. Dez. 2008 Hamburg
BMW Automobilproduktion BMW.svg 3,63 1. Juli 1988 München
Commerzbank Banken Commerzbank (2009).svg 1,34 1. Juli 1988 Frankfurt am Main
Continental Automobilzulieferer Continental AG logo.svg 2,26 24. Sep. 2012 Hannover
Daimler Automobilproduktion Daimler AG.svg 8,54 21. Dez. 19981 Stuttgart
Deutsche Bank Banken Deutsche Bank logo without wordmark.svg 3,50 1. Juli 1988 Frankfurt am Main
Deutsche Boerse Boersen Deutsche Boerse Group Logo.svg 1,25 23. Dez. 2002 Frankfurt am Main
Deutsche Post Transport Deutsche Post.svg 3,06 19. Mär. 2001 Bonn
Deutsche Telekom Telekommunikation Telekom Logo 2013.svg 4,75 18. Nov. 1996 Bonn
E.ON Energieversorgung EON Logo.svg 3,52 19. Juni 20001 Düsseldorf
Fresenius Medical Care Medizintechnik Fresenius Medical Care 20xx logo.svg 1,22 20. Sep. 1999 Hof an der Saale
Fresenius Medizintechnik Fresenius.svg 1,73 23. Mär. 2009 Bad Homburg vor der Höhe
HeidelbergCement Baustoffe (Zement) HeidelbergCement Logo.svg 1,08 21. Juni 2010 Heidelberg
Henkel Konsumgüter Henkel-Logo.svg 1,79 1. Juli 1988 Düsseldorf
Infineon Technologies Halbleiter Infineon-Logo.svg 1,25 21. Sep. 2009 Neubiberg
K+S Chemie Ks logo.svg 0,51 22. Sep. 2008 Kassel
Lanxess Chemie LanXess-Logo.svg 0,50 24. Sep. 2012 Köln
Linde Industriegase und Anlagenbau TheLindeGroup-Logo.svg 3,35 1. Juli 1988 München
Lufthansa Luftfahrt Lufthansa-Logo.svg 0,88 1. Juli 1988 Köln
Merck Chemie und Pharma Merck-Logo.svg 1,01 18. Juni 2007 Darmstadt
Munich Re Versicherungen Münchener Rück logo.svg 3,09 23. Sep. 1996 München
RWE Energieversorgung Logo RWE Claim.svg 1,87 1. Juli 1988 Essen
SAP Standardsoftware SAP 2011 logo.svg 6,31 18. Sep. 1995 Walldorf (Baden)
Siemens Elektrotechnik Siemens-logo.svg 9,42 1. Juli 1988 Berlin und München
ThyssenKrupp Stahl ThyssenKruppLogo.svg 1,10 25. Mär. 1999 Duisburg und Essen
Volkswagen Automobilproduktion VWAG-Logo.svg 3,42 1. Juli 1988 Wolfsburg"""
dax_info_en = """Logo Company Prime Standard industry group Ticker symbol Index weighting (%)1 Employees
Adidas Logo.svg Adidas Clothing ADS 2.04 86,824
Allianz Insurance ALV 6.66 151,340
BASF-Logo bw.svg BASF Chemicals BAS 9.62 111,141
Bayer Logo.svg Bayer Pharmaceuticals and Chemicals BAYN 7.55 111,800
Beiersdorf.svg Beiersdorf Consumer goods BEI 0.86 19,130
BMW.svg BMW Manufacturing BMW 3.26 102,007
Commerzbank Banking CBK 1.01 56,221
Continental Manufacturing CON 0.79 170,000
Daimler AG.svg Daimler Manufacturing DAI 5.77 267,274
Deutsche Bank logo without wordmark.svg Deutsche Bank Banking DBK 5.05 100,474
Deutsche Boerse Securities DB1 1.47 3,588
Deutsche Lufthansa Transport Aviation LHA 0.83 118,088
Deutsche Post DHL.svg Deutsche Post Communications DPW 1.90 424,351
Deutsche Telekom.svg Deutsche Telekom Communications DTE 5.38 235,132
Logo E.ON.svg E.ON Energy EOAN 6.24 85,105
Fresenius.svg Fresenius Medical FRE 1.63 149,351
Fresenius Medical Care Medical FME 2.16 73,450
HeidelbergCement.svg HeidelbergCement Building HEI 0.86 53,440
Henkel-Logo.svg Henkel Consumer goods HEN3 1.53 47,753
Infineon Technologies Manufacturing IFX 1.27 26,658
K+S Chemicals SDF 1.18 15,170
LanXess-Logo.svg Lanxess Chemicals LXS 0.73 14,650
Linde Industrial gases LIN 3.81 62,000
Merck Pharmaceuticals MRK 0.97 40,676
Munich Re Insurance MUV2 2.92 46,915
RWE AG.svg RWE Energy RWE 2.19 70,860
SAP 2011 logo.svg SAP IT SAP 7.70 61,344
Siemens AG logo.svg Siemens Industrial, electronics SIE 9.96 405,000
ThyssenKruppLogo.jpg ThyssenKrupp Industrial, manufacturing TKA 1.33 180,050
Volkswagen Group.svg Volkswagen Group Manufacturing VOW3 3.36 549,763"""
from StringIO import StringIO
df_dax_info = pd.read_table(StringIO(dax_info_en))
df_dax_info
Logo | Company | Prime Standard industry group | Ticker symbol | Index weighting (%)1 | Employees | |
---|---|---|---|---|---|---|
0 | Adidas Logo.svg | Adidas | Clothing | ADS | 2.04 | 86,824 |
1 | NaN | Allianz | Insurance | ALV | 6.66 | 151,340 |
2 | BASF-Logo bw.svg | BASF | Chemicals | BAS | 9.62 | 111,141 |
3 | Bayer Logo.svg | Bayer | Pharmaceuticals and Chemicals | BAYN | 7.55 | 111,800 |
4 | Beiersdorf.svg | Beiersdorf | Consumer goods | BEI | 0.86 | 19,130 |
5 | BMW.svg | BMW | Manufacturing | BMW | 3.26 | 102,007 |
6 | NaN | Commerzbank | Banking | CBK | 1.01 | 56,221 |
7 | NaN | Continental | Manufacturing | CON | 0.79 | 170,000 |
8 | Daimler AG.svg | Daimler | Manufacturing | DAI | 5.77 | 267,274 |
9 | Deutsche Bank logo without wordmark.svg | Deutsche Bank | Banking | DBK | 5.05 | 100,474 |
10 | NaN | Deutsche Boerse | Securities | DB1 | 1.47 | 3,588 |
11 | NaN | Deutsche Lufthansa | Transport Aviation | LHA | 0.83 | 118,088 |
12 | Deutsche Post DHL.svg | Deutsche Post | Communications | DPW | 1.90 | 424,351 |
13 | Deutsche Telekom.svg | Deutsche Telekom | Communications | DTE | 5.38 | 235,132 |
14 | Logo E.ON.svg | E.ON | Energy | EOAN | 6.24 | 85,105 |
15 | Fresenius.svg | Fresenius | Medical | FRE | 1.63 | 149,351 |
16 | NaN | Fresenius Medical Care | Medical | FME | 2.16 | 73,450 |
17 | HeidelbergCement.svg | HeidelbergCement | Building | HEI | 0.86 | 53,440 |
18 | Henkel-Logo.svg | Henkel | Consumer goods | HEN3 | 1.53 | 47,753 |
19 | NaN | Infineon Technologies | Manufacturing | IFX | 1.27 | 26,658 |
20 | NaN | K+S | Chemicals | SDF | 1.18 | 15,170 |
21 | LanXess-Logo.svg | Lanxess | Chemicals | LXS | 0.73 | 14,650 |
22 | NaN | Linde | Industrial gases | LIN | 3.81 | 62,000 |
23 | NaN | Merck | Pharmaceuticals | MRK | 0.97 | 40,676 |
24 | NaN | Munich Re | Insurance | MUV2 | 2.92 | 46,915 |
25 | RWE AG.svg | RWE | Energy | RWE | 2.19 | 70,860 |
26 | SAP 2011 logo.svg | SAP | IT | SAP | 7.70 | 61,344 |
27 | Siemens AG logo.svg | Siemens | Industrial, electronics | SIE | 9.96 | 405,000 |
28 | ThyssenKruppLogo.jpg | ThyssenKrupp | Industrial, manufacturing | TKA | 1.33 | 180,050 |
29 | Volkswagen Group.svg | Volkswagen Group | Manufacturing | VOW3 | 3.36 | 549,763 |
Copy the symbols table from the Yahoo! Finance page above and read them into a Pandas DataFrame
df_dax_info['Symbol'] = df_dax_info['Ticker symbol'].map(lambda x: x + ".DE")
df_dax = pd.merge( df_dax_info, dax_symbols, left_on='Symbol', right_on='Symbol')
with pd.io.pytables.get_store('dax30.h5') as store:
# store.remove('dax')
store.append('dax', df_dax)
### NASDAQ100
### http://finance.yahoo.com/q/cp?s=%5ENDX
Retrieve the stock prices from Yahoo!
start = datetime.datetime(2000, 1, 1)
end = datetime.datetime(2014, 1, 1)
stx = web.DataReader(df_dax.Symbol.tolist(), data_source="yahoo", start=start, end=end)
Fill in missing closing prices by copying the previous value
stx['Adj Close'] = stx.ix['Adj Close'].fillna(method='ffill', axis=0, limit=1)
# stx['Close'] = stx.loc['Close'].fillna(method='ffill', axis=0, limit=3)
Compute the daily returns.
$$ r(t) = log\left( \frac{p(t)}{p(t-1)} \right)$$stx['Returns'] = np.log( stx.loc['Adj Close'] / stx.loc['Adj Close'].shift(1) )
stx.Returns.ix[datetime.datetime(2008,1,1):][stx.Returns['VOW3.DE'].isnull()]
ADS.DE | ALV.DE | BAS.DE | BAYN.DE | BEI.DE | BMW.DE | CBK.DE | CON.DE | DAI.DE | DPW.DE | ... | LIN.DE | LXS.DE | MRK.DE | MUV2.DE | RWE.DE | SAP.DE | SDF.DE | SIE.DE | TKA.DE | VOW3.DE | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Date | |||||||||||||||||||||
2008-01-01 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | ... | 0.000000 | NaN | 0.000000 | 0.000000 | NaN | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
2008-01-02 | -0.024964 | -0.013828 | -0.004819 | -0.017357 | -0.011592 | 0.008921 | -0.014174 | -0.027002 | -0.027774 | -0.012551 | ... | -0.002602 | NaN | -0.009738 | -0.001339 | NaN | -0.018394 | 0.027944 | -0.014572 | 0.000651 | NaN |
2008-03-24 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | ... | 0.000000 | NaN | 0.000000 | 0.000000 | NaN | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
2008-03-25 | 0.059161 | 0.063979 | 0.021526 | 0.042070 | 0.005485 | 0.034733 | 0.085254 | 0.051949 | 0.033861 | 0.017208 | ... | 0.016638 | NaN | 0.023906 | 0.037229 | NaN | 0.043075 | 0.086051 | 0.006614 | 0.008448 | NaN |
2008-07-30 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-07-31 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-01 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-04 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-05 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-06 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-07 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-08 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-11 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-12 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-13 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-14 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-15 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-08-18 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2008-12-25 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | ... | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
2008-12-26 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | ... | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
2008-12-29 | 0.008490 | 0.015703 | 0.032535 | 0.028312 | 0.016954 | 0.002039 | 0.028874 | -0.017362 | 0.028456 | 0.024853 | ... | 0.000735 | 0.040478 | 0.036978 | 0.003407 | 0.024533 | 0.004405 | 0.049660 | 0.016151 | 0.017072 | NaN |
2008-12-30 | 0.028965 | 0.008009 | 0.031973 | 0.028596 | 0.006284 | 0.014156 | 0.021310 | -0.014465 | 0.040993 | 0.040779 | ... | -0.000735 | 0.055458 | 0.015596 | 0.023986 | 0.016446 | 0.041753 | 0.027268 | 0.019653 | 0.025074 | NaN |
2008-12-31 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | ... | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
2009-01-01 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | ... | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
2009-01-02 | 0.024340 | 0.028185 | 0.005998 | 0.030385 | 0.006245 | 0.033567 | 0.018650 | 0.052944 | 0.038501 | -0.020705 | ... | 0.056607 | 0.027758 | 0.021146 | 0.013646 | 0.036144 | 0.026624 | 0.032468 | 0.052301 | 0.053766 | NaN |
2009-01-05 | 0.002668 | -0.002751 | -0.011101 | 0.000258 | 0.030654 | -0.022087 | -0.031534 | 0.001684 | -0.040328 | -0.013692 | ... | 0.010363 | 0.012845 | 0.011478 | -0.014104 | 0.031566 | 0.013861 | 0.020986 | -0.010738 | -0.002410 | NaN |
2009-01-06 | 0.046122 | -0.049828 | -0.003728 | 0.033231 | 0.012997 | -0.003480 | -0.024712 | -0.001010 | 0.032834 | 0.013692 | ... | 0.015684 | -0.009050 | 0.002138 | -0.013957 | -0.011004 | 0.010872 | 0.019524 | 0.022903 | 0.026779 | NaN |
2009-01-07 | -0.012436 | -0.037478 | -0.037094 | -0.012048 | -0.026675 | 0.011881 | -0.048868 | -0.032868 | -0.003102 | -0.030804 | ... | -0.048342 | -0.033118 | 0.017287 | 0.006715 | -0.021167 | 0.004794 | 0.001288 | -0.019086 | -0.070546 | NaN |
2009-01-08 | -0.012593 | -0.055807 | 0.006279 | 0.006544 | -0.037681 | -0.006418 | -0.148420 | 0.051224 | -0.011158 | -0.036248 | ... | 0.029388 | -0.015786 | 0.014584 | 0.007357 | -0.002627 | 0.016601 | -0.016353 | -0.040001 | -0.003788 | NaN |
2009-01-09 | -0.031424 | 0.060042 | -0.035779 | 0.001755 | -0.013062 | 0.022044 | -0.117069 | -0.039459 | 0.003137 | -0.046946 | ... | -0.068488 | 0.000000 | -0.001725 | 0.022648 | -0.041944 | 0.010916 | -0.047979 | -0.042397 | -0.032136 | NaN |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2009-10-09 | 0.009944 | 0.004640 | 0.000638 | -0.005424 | 0.003098 | -0.006504 | -0.007207 | 0.000775 | 0.006179 | -0.001787 | ... | -0.002445 | -0.008889 | 0.000653 | 0.007571 | -0.003973 | 0.004564 | -0.014710 | 0.003682 | -0.003044 | NaN |
2009-10-12 | -0.002702 | 0.010700 | 0.022700 | 0.025284 | 0.010004 | 0.020666 | 0.014957 | 0.033015 | 0.002051 | -0.006281 | ... | 0.017275 | 0.017700 | 0.014249 | 0.004240 | 0.000398 | 0.008163 | 0.003561 | 0.026117 | 0.011691 | NaN |
2009-10-13 | -0.012708 | -0.014383 | -0.014127 | -0.017384 | -0.008458 | -0.009957 | -0.001188 | -0.008278 | -0.009264 | -0.011770 | ... | -0.008672 | 0.006557 | -0.005158 | -0.009459 | -0.011808 | -0.005132 | -0.014599 | -0.012611 | 0.011556 | NaN |
2009-10-14 | 0.041163 | 0.016805 | 0.071372 | 0.029899 | 0.007181 | 0.025181 | 0.032751 | 0.049629 | 0.017766 | 0.018051 | ... | 0.014880 | 0.060855 | 0.009970 | 0.013049 | -0.002419 | 0.014125 | 0.033291 | 0.050205 | 0.036763 | NaN |
2009-10-15 | 0.015081 | -0.009181 | -0.012441 | 0.000218 | 0.012192 | -0.013627 | -0.006349 | -0.008666 | 0.000000 | 0.012445 | ... | 0.000000 | -0.012376 | 0.007651 | -0.010915 | -0.019770 | -0.008090 | -0.009980 | -0.007963 | 0.013040 | NaN |
2009-10-16 | -0.004038 | -0.013243 | -0.017742 | -0.026303 | -0.001516 | -0.009941 | -0.030573 | -0.027453 | 0.001692 | -0.011551 | ... | -0.010322 | -0.034202 | -0.007331 | -0.019040 | -0.002680 | -0.007246 | 0.003788 | -0.028022 | -0.022519 | NaN |
2009-10-19 | 0.012351 | -0.000825 | 0.035175 | 0.023244 | 0.013312 | 0.041660 | 0.005359 | 0.012103 | 0.067640 | 0.005348 | ... | 0.018866 | 0.018302 | 0.012399 | 0.021169 | 0.004736 | 0.014441 | 0.032415 | 0.017540 | 0.008658 | NaN |
2009-10-20 | -0.021935 | -0.016364 | -0.019820 | -0.020560 | -0.003499 | 0.012594 | -0.009547 | -0.007640 | -0.016887 | -0.008032 | ... | -0.009248 | -0.003380 | -0.001265 | 0.003079 | 0.011844 | -0.008398 | 0.016079 | -0.007050 | -0.010731 | NaN |
2009-10-21 | -0.014994 | -0.006875 | 0.009515 | 0.013092 | 0.002501 | 0.013944 | -0.002401 | -0.014202 | 0.005128 | 0.001791 | ... | 0.006454 | -0.005942 | 0.013199 | 0.002858 | 0.006475 | 0.006305 | -0.002060 | 0.002297 | -0.004575 | NaN |
2009-10-22 | -0.008627 | -0.000845 | -0.022446 | -0.005748 | -0.001750 | -0.000903 | -0.026798 | -0.023614 | -0.012223 | -0.026282 | ... | -0.013518 | -0.020646 | -0.012567 | -0.016519 | -0.004852 | -0.016904 | -0.015327 | -0.019961 | -0.027468 | NaN |
2009-10-23 | -0.007798 | -0.004095 | -0.008816 | -0.006897 | -0.000250 | 0.010490 | 0.004926 | 0.006403 | 0.003876 | -0.003680 | ... | -0.003408 | 0.010376 | -0.008573 | -0.013197 | -0.010185 | 0.001521 | 0.019700 | -0.008134 | 0.004702 | NaN |
2009-10-26 | -0.028403 | -0.044555 | -0.022230 | 0.002898 | -0.007032 | -0.009286 | -0.038828 | -0.019593 | -0.028447 | -0.027092 | ... | -0.004848 | -0.032790 | -0.040676 | -0.005569 | -0.001639 | -0.009774 | -0.035797 | -0.013521 | -0.016771 | NaN |
2009-10-27 | -0.009650 | -0.000740 | -0.001562 | 0.011730 | -0.002271 | -0.032419 | -0.057835 | -0.064521 | -0.021795 | -0.019121 | ... | 0.007973 | -0.035742 | -0.003660 | 0.014242 | -0.004110 | 0.008862 | -0.012852 | 0.005869 | -0.023696 | NaN |
2009-10-28 | -0.038258 | -0.015065 | -0.032738 | -0.009506 | -0.007861 | -0.039631 | -0.063547 | -0.055673 | -0.053973 | -0.032372 | ... | -0.021935 | -0.051512 | -0.009714 | -0.003569 | 0.005954 | -0.080423 | -0.031201 | -0.030452 | -0.062764 | NaN |
2009-10-29 | 0.018674 | 0.035578 | 0.011245 | 0.007303 | 0.006850 | 0.023967 | 0.060158 | 0.103127 | 0.040321 | 0.028503 | ... | 0.006213 | 0.023485 | -0.003372 | -0.000975 | -0.007603 | -0.005621 | 0.015722 | 0.022372 | 0.027514 | NaN |
2009-10-30 | -0.039029 | -0.045243 | -0.024908 | -0.021847 | -0.001012 | -0.019127 | -0.036644 | -0.055820 | -0.044624 | -0.024523 | ... | -0.035482 | -0.030298 | -0.026349 | -0.030721 | -0.019370 | -0.024842 | -0.033675 | -0.048541 | -0.032253 | NaN |
2009-11-02 | 0.037433 | 0.008462 | -0.001639 | -0.002256 | -0.012223 | 0.009290 | 0.012596 | -0.015522 | -0.001079 | -0.001988 | ... | 0.024765 | -0.018729 | -0.006261 | 0.003238 | 0.002101 | 0.016184 | 0.000283 | 0.004441 | 0.008986 | NaN |
2009-11-03 | -0.001919 | -0.012567 | -0.005593 | -0.006345 | 0.033013 | -0.064539 | -0.041170 | -0.030612 | -0.045253 | -0.010000 | ... | 0.001455 | -0.019086 | -0.002096 | -0.019016 | -0.013522 | 0.008658 | 0.010415 | -0.018670 | -0.016137 | NaN |
2009-11-04 | 0.037076 | 0.020809 | 0.019602 | 0.000909 | -0.031477 | 0.024527 | 0.043254 | 0.050325 | 0.030760 | 0.035542 | ... | 0.025550 | 0.101194 | 0.014234 | 0.013428 | 0.004669 | 0.005621 | 0.025164 | 0.012873 | 0.031091 | NaN |
2009-11-05 | 0.009822 | -0.007339 | 0.024606 | 0.023789 | 0.004849 | 0.015152 | -0.047611 | 0.008054 | 0.002915 | 0.002906 | ... | 0.019369 | 0.007306 | 0.010970 | -0.011045 | -0.003181 | 0.000000 | 0.004632 | 0.012518 | 0.008774 | NaN |
2009-11-06 | 0.000916 | 0.006742 | -0.008559 | 0.007512 | -0.003826 | 0.008788 | 0.011578 | -0.013647 | 0.016601 | 0.010582 | ... | 0.001667 | 0.007253 | -0.000682 | -0.008422 | 0.003181 | -0.009607 | 0.001630 | -0.003067 | 0.010519 | NaN |
2009-11-09 | 0.016344 | 0.041819 | 0.024840 | 0.026286 | 0.005861 | 0.011598 | 0.055959 | 0.050311 | 0.021948 | 0.040324 | ... | 0.015013 | 0.050209 | 0.014228 | 0.011138 | 0.019707 | 0.001663 | 0.007031 | 0.027643 | 0.025602 | NaN |
2009-11-10 | 0.007179 | 0.003431 | 0.005883 | 0.001500 | 0.012372 | -0.022677 | -0.024795 | -0.033902 | -0.003156 | -0.000920 | ... | -0.003698 | -0.042111 | 0.002687 | -0.000452 | 0.004763 | -0.002662 | -0.011655 | -0.001869 | -0.009804 | NaN |
2009-11-11 | 0.023274 | -0.001571 | 0.016231 | 0.012129 | -0.000502 | 0.009457 | 0.017284 | 0.032033 | 0.017065 | 0.007333 | ... | 0.001097 | 0.023906 | 0.004685 | 0.010349 | 0.010278 | 0.018816 | -0.019546 | 0.002056 | 0.019952 | NaN |
2009-11-12 | -0.009068 | 0.007405 | 0.002730 | 0.017403 | 0.005009 | 0.005180 | -0.016586 | -0.022424 | -0.010064 | -0.005495 | ... | 0.022229 | -0.021668 | -0.004350 | -0.008993 | 0.002043 | 0.001307 | 0.017090 | 0.000560 | -0.006165 | NaN |
2009-11-13 | 0.005860 | 0.007633 | 0.007545 | 0.006010 | 0.010932 | 0.008360 | -0.026122 | 0.004090 | 0.006605 | 0.010050 | ... | 0.002811 | 0.012880 | 0.000670 | 0.004731 | 0.004073 | 0.007483 | 0.007623 | 0.001678 | 0.012292 | NaN |
2013-12-25 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | ... | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
2013-12-26 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | ... | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
2013-12-27 | 0.005758 | 0.008803 | 0.013479 | 0.015156 | 0.006796 | 0.010228 | 0.023408 | 0.000566 | 0.013505 | 0.008271 | ... | 0.010478 | 0.012822 | 0.000000 | 0.011221 | 0.009760 | 0.003925 | 0.027870 | 0.011901 | 0.014455 | NaN |
2014-01-01 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | ... | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | NaN |
252 rows × 28 columns
with pd.io.pytables.get_store('dax30.h5') as store:
#store.remove('stx')
store.append('stx', stx)
from IPython.html.widgets import interact, interactive, fixed
from bokeh import mpl as mplbkh
from bokeh.plotting import output_notebook, line, show
output_notebook()
dfclose = stx['Close']
dfclose.ix[pd.Timestamp('20080807'):pd.Timestamp('20080815')].isnull().any(axis=1) #.all(axis=1)
# dfclose.fillna(method='ffill', limit=0).isnull().any(axis=1) #.plot(kind='area')
Date 2008-08-07 True 2008-08-08 True 2008-08-11 True 2008-08-12 True 2008-08-13 True 2008-08-14 True 2008-08-15 True dtype: bool
For info on the difference between "Close" and "Adj Close", take a look at this discussion thread or this entry
def plot_close(stock):
ig, axes = plt.subplots(nrows=2, ncols=1)
stx.ix['Adj Close'][stock].plot(legend=True, ax=axes[0], x_compat=True, figsize=(14, 6))
stx.ix['Close'][stock].plot(legend=True, ax=axes[0], x_compat=True, figsize=(14, 6))
axes[0].set_title('Closing price')
axes[0].set_ylabel('Price')
stx.ix['Returns'][stock].plot(legend=False, ax=axes[1], x_compat=True, figsize=(14, 6))
axes[1].set_title('Log returns')
names_dict = OrderedDict(df_dax_info[['Symbol', 'Company']].set_index('Company').to_records() )
interact(plot_close, stock=names_dict)
<function __main__.plot_close>
Store the stock values in an HDFStore
Checking that it can be retrieved.
with pd.io.pytables.get_store('dax30.h5') as store:
ret = store.select('stx').Returns
stx = store.select('stx')
# ret.plot(legend=False, figsize=(14,6))
# ret.hist(bins=100)
/home/wiecki/envs/zipline_p14/lib/python2.7/site-packages/pandas/io/pytables.py:3535: DuplicateWarning: duplicate entries in table, taking most recently appended warnings.warn(duplicate_doc, DuplicateWarning)