In [1]:
import pandas as pd
import pandas_datareader as pdr
import pandas_datareader.data as web
import datetime
In [2]:
import pandas as pd
import MySQLdb as mdb
%matplotlib inline
In [4]:
#returns list of [market, stock_sybol] by querying database.
MAX_LIMIT = 100000
#limit means the number of results to be returned. 0 means everything
def getSymbols(limit=10):
if limit <= 0:
limit = MAX_LIMIT
conn = mdb.connect('localhost', 'usstock', 'usstock', 'usstock')
cur = conn.cursor()
sql = "SELECT market, symbol FROM symbols WHERE symbol REGEXP '^[A-Z]+$'"
sql = sql + ' limit %d;'%(limit)
#print sql
#and market=\'NYSE\'
cur.execute(sql)
stocks = []
for i in range(cur.rowcount):
row = cur.fetchone()
market = row[0]
stock = row[1]
stocks.append([market, stock])
# print cur.rowcount
conn.close()
return stocks
In [7]:
start = datetime.datetime(2016, 1, 1)
end = datetime.datetime(2016, 11, 14)
stocks = getSymbols(10)
stock_prices = list()
for s in stocks:
f = web.DataReader(s[1], 'yahoo', start, end)
prices = f.ix[:,'Adj Close']
stock_prices.append((s[1], prices))
In [ ]:
print stock_prices
In [12]:
stock_prices[0][1].plot()
Out[12]:
In [13]:
stock_prices[1][1].plot()
Out[13]:
In [14]:
stock_prices[2][1].plot()
Out[14]:
In [16]:
print stock_prices[9][0]
stock_prices[9][1].plot()
Out[16]:
In [23]:
stock_prices[9][1][150:]
Out[23]:
In [ ]: