In [1]:
%matplotlib inline

In [2]:
import pandas as pd
import pandas.io.data as web
import datetime
start=datetime.datetime(2014, 1, 1)
end=datetime.datetime(2015, 1, 1)
# %5EGSPC sp500
f = web.DataReader("%5EGSPC", 'yahoo', start, end)
print(f.head())


                  Open        High         Low       Close      Volume  \
Date                                                                     
2014-01-02  1845.85999  1845.85999  1827.73999  1831.97998  3080600000   
2014-01-03  1833.20996  1838.23999  1829.13000  1831.37000  2774270000   
2014-01-06  1832.31006  1837.16003  1823.72998  1826.77002  3294850000   
2014-01-07  1828.70996  1840.09998  1828.70996  1837.88000  3511750000   
2014-01-08  1837.90002  1840.02002  1831.40002  1837.48999  3652140000   

             Adj Close  
Date                    
2014-01-02  1831.97998  
2014-01-03  1831.37000  
2014-01-06  1826.77002  
2014-01-07  1837.88000  
2014-01-08  1837.48999  

In [3]:
csvfile='sp500.csv'
f.to_csv(csvfile)
df = pd.read_csv(csvfile, index_col='Date', parse_dates=True)
print(df.head())


                  Open        High         Low       Close      Volume  \
Date                                                                     
2014-01-02  1845.85999  1845.85999  1827.73999  1831.97998  3080600000   
2014-01-03  1833.20996  1838.23999  1829.13000  1831.37000  2774270000   
2014-01-06  1832.31006  1837.16003  1823.72998  1826.77002  3294850000   
2014-01-07  1828.70996  1840.09998  1828.70996  1837.88000  3511750000   
2014-01-08  1837.90002  1840.02002  1831.40002  1837.48999  3652140000   

             Adj Close  
Date                    
2014-01-02  1831.97998  
2014-01-03  1831.37000  
2014-01-06  1826.77002  
2014-01-07  1837.88000  
2014-01-08  1837.48999  

In [4]:
df2 = df['Open']
print(df2.head())


Date
2014-01-02    1845.85999
2014-01-03    1833.20996
2014-01-06    1832.31006
2014-01-07    1828.70996
2014-01-08    1837.90002
Name: Open, dtype: float64

In [5]:
df3 = df[['Close','High']]
print(df3.head())


                 Close        High
Date                              
2014-01-02  1831.97998  1845.85999
2014-01-03  1831.37000  1838.23999
2014-01-06  1826.77002  1837.16003
2014-01-07  1837.88000  1840.09998
2014-01-08  1837.48999  1840.02002

In [6]:
df4 = df3[(df3['Close'] > 1400)]
print(df4.head())


                 Close        High
Date                              
2014-01-02  1831.97998  1845.85999
2014-01-03  1831.37000  1838.23999
2014-01-06  1826.77002  1837.16003
2014-01-07  1837.88000  1840.09998
2014-01-08  1837.48999  1840.02002

In [7]:
df['H-L'] = df.High - df.Low
print(df.head())


                  Open        High         Low       Close      Volume  \
Date                                                                     
2014-01-02  1845.85999  1845.85999  1827.73999  1831.97998  3080600000   
2014-01-03  1833.20996  1838.23999  1829.13000  1831.37000  2774270000   
2014-01-06  1832.31006  1837.16003  1823.72998  1826.77002  3294850000   
2014-01-07  1828.70996  1840.09998  1828.70996  1837.88000  3511750000   
2014-01-08  1837.90002  1840.02002  1831.40002  1837.48999  3652140000   

             Adj Close       H-L  
Date                              
2014-01-02  1831.97998  18.12000  
2014-01-03  1831.37000   9.10999  
2014-01-06  1826.77002  13.43005  
2014-01-07  1837.88000  11.39002  
2014-01-08  1837.48999   8.62000  

In [8]:
df['100MA'] = pd.rolling_mean(df['Close'], 100)
print(df[200:210])


                  Open        High         Low       Close      Volume  \
Date                                                                     
2014-10-17  1864.91003  1898.16003  1864.91003  1886.76001  4482120000   
2014-10-20  1885.62000  1905.03003  1882.30005  1904.01001  3331210000   
2014-10-21  1909.38000  1942.44995  1909.38000  1941.28003  3987090000   
2014-10-22  1941.29004  1949.31006  1926.82996  1927.10999  3761930000   
2014-10-23  1931.02002  1961.94995  1931.02002  1950.81995  3789250000   
2014-10-24  1951.58997  1965.27002  1946.27002  1964.57996  3078380000   
2014-10-27  1962.96997  1964.64001  1951.37000  1961.63000  3538860000   
2014-10-28  1964.14001  1985.05005  1964.14001  1985.05005  3653260000   
2014-10-29  1983.29004  1991.40002  1969.04004  1982.30005  3740350000   
2014-10-30  1979.48999  1999.40002  1974.75000  1994.65002  3586150000   

             Adj Close       H-L        100MA  
Date                                           
2014-10-17  1886.76001  33.25000  1961.183895  
2014-10-20  1904.01001  22.72998  1961.023695  
2014-10-21  1941.28003  33.06995  1961.200796  
2014-10-22  1927.10999  22.48010  1961.222196  
2014-10-23  1950.81995  30.92993  1961.487996  
2014-10-24  1964.57996  19.00000  1961.854995  
2014-10-27  1961.63000  13.27001  1962.066696  
2014-10-28  1985.05005  20.91004  1962.422797  
2014-10-29  1982.30005  22.35998  1962.733097  
2014-10-30  1994.65002  24.65002  1963.171697  

In [9]:
df['Difference'] = df['Close'].diff()
print(df.head())


                  Open        High         Low       Close      Volume  \
Date                                                                     
2014-01-02  1845.85999  1845.85999  1827.73999  1831.97998  3080600000   
2014-01-03  1833.20996  1838.23999  1829.13000  1831.37000  2774270000   
2014-01-06  1832.31006  1837.16003  1823.72998  1826.77002  3294850000   
2014-01-07  1828.70996  1840.09998  1828.70996  1837.88000  3511750000   
2014-01-08  1837.90002  1840.02002  1831.40002  1837.48999  3652140000   

             Adj Close       H-L  100MA  Difference  
Date                                                 
2014-01-02  1831.97998  18.12000    NaN         NaN  
2014-01-03  1831.37000   9.10999    NaN    -0.60998  
2014-01-06  1826.77002  13.43005    NaN    -4.59998  
2014-01-07  1837.88000  11.39002    NaN    11.10998  
2014-01-08  1837.48999   8.62000    NaN    -0.39001  

In [10]:
import matplotlib.pyplot as plt
df[['Open','High','Low','Close','100MA']].plot()
plt.show()



In [ ]: