def index(): form = investmentForm() if request.method == 'POST' and form.validate(): #Get form field data symb = form.stockSymbol.data stock = Stock(symb) openPrice = stock.get_open() nowPrice = stock.get_price() companyInfo = stock.get_company() companyName = companyInfo['companyName'] symbol = companyInfo['symbol'] calculate = openPrice - nowPrice calc = "{:.2f}".format(calculate) ct = datetimeConverstion() percentage = ((openPrice - nowPrice) / openPrice) * 100 percent = "{:.2f}".format(percentage) new_date = ct.strftime('%A %Y-%m-%d %I:%M %p') return render_template('price.html', symbol=symbol, companyName=companyName, nowPrice=nowPrice, new_date=new_date, calc=calc, percent=percent) return render_template('home.html', form=form)
def main(argv): print("name\tprice\topen\tvariation") for n in argv: try: s = Stock(n) price = s.get_price() open = s.get_open() variation = 100 * (price - open) / open print("{}\t{}\t{}\t{:.3f} %".format(n, price, open, variation)) except: sys.stderr.write("error fetching data for '{}'\n".format(n))
end = datetime.today() df = get_historical_data('MMM', start=start, end=end, output_format='pandas') df['date'] = df.index #df.drop(['date'],axis=1) df.reset_index(level=0, inplace=True) scipy.io.savemat('test.mat', {'struct': df.to_dict('list')}) #IES Market Data a = get_market_tops('TSLA', output_format='pandas') get_market_last() get_market_deep() get_market_book() # IEX stats get_stats_intraday() get_stats_recent()[0] get_stats_records() get_stats_daily(last=3) get_stats_monthly(start=datetime(2017, 2, 9), end=datetime(2017, 5, 24))[0] b = get_stats_intraday('TSLA') tsla = Stock(['TSLA', 'AAPL'], output_format='pandas') tsla.get_open() tsla.get_price() df = get_historical_data("AAPL", start=start, end=end, output_format='pandas') df.head() df.tail() df.plot() plt.show()
# https://pypi.org/project/iexfinance/ # Stock from iexfinance import Stock tsla = Stock('TSLA') print('TSLA open: %f' % tsla.get_open()) print('TSLA price: %f' % tsla.get_price()) # Historical Data from iexfinance import get_historical_data from datetime import datetime import pandas as pd start = datetime(2014, 1, 1) end = datetime(2018, 10, 1) aapl_hist_df = get_historical_data("AAPL", start=start, end=end, output_format='pandas') days_from_start = [] for x in aapl_hist_df.axes[0]: dt = datetime.strptime(x, "%Y-%m-%d") if start is None: start = dt diff = dt - start days_from_start.append(diff.days) aapl_hist_closing_df = pd.DataFrame({'price': aapl_hist_df['close'], 'days_from_start': days_from_start}) # Chart it import matplotlib.pyplot as plt
class TestFieldMethodsBatch(object): def setup_class(self): self.batch = Stock(["AAPL", "TSLA"]) self.batch2 = Stock(["AAPL", "TSLA"], output_format='pandas') self.batch4 = Stock(["AAPL", "TSLA"], json_parse_int=Decimal, json_parse_float=Decimal) def test_get_company_name(self): data = self.batch.get_company_name() assert isinstance(data, dict) assert data["AAPL"] == "Apple Inc." data2 = self.batch2.get_company_name() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) def test_get_primary_exchange(self): data = self.batch.get_primary_exchange() assert isinstance(data, dict) assert data["AAPL"] == "Nasdaq Global Select" data2 = self.batch2.get_primary_exchange() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) def test_get_sector(self): data = self.batch.get_sector() assert isinstance(data, dict) assert data["AAPL"] == "Technology" data2 = self.batch2.get_sector() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) def test_get_open(self): data = self.batch.get_open() assert isinstance(data, dict) assert data["AAPL"] > 0 data2 = self.batch2.get_open() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_close(self): data = self.batch.get_close() assert isinstance(data, dict) assert data["AAPL"] > 0 data2 = self.batch2.get_close() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_years_high(self): data = self.batch.get_years_high() assert isinstance(data, dict) assert data["AAPL"] > 0 data2 = self.batch2.get_years_high() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_years_low(self): data = self.batch.get_years_low() assert isinstance(data, dict) assert data["AAPL"] > 0 data2 = self.batch2.get_years_low() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_ytd_change(self): data = self.batch.get_ytd_change() assert isinstance(data, dict) data2 = self.batch2.get_ytd_change() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" def test_get_volume(self): data = self.batch.get_volume() assert isinstance(data, dict) assert data["AAPL"] > 50000 data2 = self.batch2.get_volume() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_market_cap(self): data = self.batch.get_market_cap() assert isinstance(data, dict) assert data["AAPL"] > 1000000 data2 = self.batch2.get_market_cap() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_beta(self): data = self.batch.get_beta() assert isinstance(data, dict) assert isinstance(data["AAPL"], float) data2 = self.batch2.get_beta() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" data4 = self.batch4.get_beta() assert isinstance(data4, dict) assert isinstance(data4["AAPL"], Decimal) def test_get_short_interest(self): data = self.batch.get_short_interest() assert isinstance(data, dict) assert data["AAPL"] > 50000 data2 = self.batch2.get_short_interest() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_short_ratio(self): data = self.batch.get_short_ratio() assert isinstance(data, dict) assert isinstance(data["AAPL"], float) data2 = self.batch2.get_short_ratio() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" data4 = self.batch4.get_short_ratio() assert isinstance(data4, dict) assert isinstance(data4["AAPL"], Decimal) def test_get_latest_eps(self): data = self.batch.get_latest_eps() assert isinstance(data, dict) assert isinstance(data["TSLA"], float) data2 = self.batch2.get_latest_eps() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["TSLA"].dtype == "float64" data4 = self.batch4.get_latest_eps() assert isinstance(data4, dict) assert isinstance(data4["AAPL"], Decimal) def test_get_shares_outstanding(self): data = self.batch.get_shares_outstanding() assert isinstance(data, dict) assert data["AAPL"] > 100000 data2 = self.batch2.get_shares_outstanding() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_float(self): data = self.batch.get_float() assert isinstance(data, dict) assert data["AAPL"] > 1000000 data2 = self.batch2.get_float() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "int64" def test_get_eps_consensus(self): data = self.batch.get_eps_consensus() assert isinstance(data, dict) assert isinstance(data["AAPL"], float) data2 = self.batch2.get_eps_consensus() assert isinstance(data2, pd.DataFrame) assert_index_equal(data2.index, pd.Index(self.batch2.symbols)) assert data2.loc["AAPL"].dtype == "float64" data4 = self.batch4.get_eps_consensus() assert isinstance(data4, dict) assert isinstance(data4["AAPL"], Decimal)
class TestFieldMethodsShare(object): def setup_class(self): self.share = Stock("AAPL") self.share2 = Stock("AAPL", output_format='pandas') self.share4 = Stock("AAPL", json_parse_int=Decimal, json_parse_float=Decimal) self.share5 = Stock("TSLA") def test_get_company_name(self): data = self.share.get_company_name() print(type(data)) assert isinstance(data, six.string_types) assert data == "Apple Inc." data2 = self.share2.get_company_name() assert isinstance(data2, pd.DataFrame) def test_get_primary_exchange(self): data = self.share.get_primary_exchange() assert isinstance(data, six.string_types) assert data == "Nasdaq Global Select" data2 = self.share2.get_primary_exchange() assert isinstance(data2, pd.DataFrame) def test_get_sector(self): data = self.share.get_sector() assert isinstance(data, six.string_types) assert data == "Technology" data2 = self.share2.get_sector() assert isinstance(data2, pd.DataFrame) def test_get_open(self): data = self.share.get_open() assert isinstance(data, float) assert data > 0 data2 = self.share2.get_open() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_open() assert isinstance(data4, Decimal) assert data4 > 0 def test_get_close(self): data = self.share.get_close() assert isinstance(data, float) assert data > 0 data2 = self.share2.get_close() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_close() assert isinstance(data4, Decimal) assert data4 > 0 def test_get_years_high(self): data = self.share.get_years_high() assert isinstance(data, float) assert data > 0 data2 = self.share2.get_years_high() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_years_high() assert isinstance(data4, Decimal) assert data4 > 0 def test_get_years_low(self): data = self.share.get_years_low() assert isinstance(data, float) assert data > 0 data2 = self.share2.get_years_low() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_years_low() assert isinstance(data4, Decimal) assert data4 > 0 def test_get_ytd_change(self): data = self.share.get_ytd_change() assert isinstance(data, float) data2 = self.share2.get_ytd_change() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_ytd_change() assert isinstance(data4, Decimal) def test_get_volume(self): data = self.share.get_volume() assert isinstance(data, int) assert data > 1000 data2 = self.share2.get_volume() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_volume() assert isinstance(data4, Decimal) assert data4 > 1000 def test_get_market_cap(self): data = self.share.get_market_cap() assert isinstance(data, int) data2 = self.share2.get_market_cap() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_market_cap() assert isinstance(data4, Decimal) def test_get_beta(self): data = self.share.get_beta() assert isinstance(data, float) data2 = self.share2.get_beta() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_beta() assert isinstance(data4, Decimal) def test_get_short_interest(self): data = self.share.get_short_interest() assert isinstance(data, int) data2 = self.share2.get_short_interest() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_short_interest() assert isinstance(data4, Decimal) def test_get_short_ratio(self): data = self.share.get_short_ratio() assert isinstance(data, float) data2 = self.share2.get_short_ratio() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_short_ratio() assert isinstance(data4, Decimal) def test_get_latest_eps(self): data = self.share5.get_latest_eps() assert isinstance(data, float) data4 = self.share4.get_latest_eps() assert isinstance(data4, Decimal) def test_get_shares_outstanding(self): data = self.share.get_shares_outstanding() assert isinstance(data, int) data2 = self.share2.get_shares_outstanding() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_shares_outstanding() assert isinstance(data4, Decimal) def test_get_float(self): data = self.share.get_float() assert isinstance(data, int) data2 = self.share2.get_float() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "int64" data4 = self.share4.get_float() assert isinstance(data4, Decimal) def test_get_eps_consensus(self): data = self.share.get_eps_consensus() assert isinstance(data, float) data2 = self.share2.get_eps_consensus() assert isinstance(data2, pd.DataFrame) assert data2.loc["AAPL"].dtype == "float64" data4 = self.share4.get_eps_consensus() assert isinstance(data4, Decimal)
def run(): tsla = Stock('VOO') price_open = tsla.get_open() price_now = tsla.get_price() print(price_open) print(price_now)
myList = [ 'DATA', 'CRM', 'SPLK', 'WDAY', 'HLT', 'BLL', 'MFGP', 'WEX', 'DXC', 'MSFT', 'AAPL', 'SBUX', 'NKE', 'T', 'GOOGL', 'FB', 'TWTR', 'AKAM', 'LLNW', 'GD', 'LDOS', 'BA', 'MSTR', 'BMCH', 'CTSH', 'WIT', 'OTEX', 'SPOT', 'AYX', 'SATS', 'MAR', 'TENB', 'CBLK', 'ZS', 'GCI', 'VRNT' ] # Create separate Dictionaries for 'Open' and 'Close' prices qOpen = {} qClose = {} qNews = {} # Attributes={datetime, headline, source, url, summary, related} for x in myList: print('Retrieving quote info for %s...' % x) theQuote = Stock(x) #x, output_format='pandas') resOpen = theQuote.get_open() resClose = theQuote.get_close( ) #get_quote(filter_=['ytdChange', 'open', 'close', 'avgTotalVolume']) qOpen[x] = resOpen qClose[x] = resClose newsList = theQuote.get_news(last=7) print('') print('Formatting output...') for key in qOpen.keys(): val = qOpen[key] print("Key: ", key, "\t Open:", val, "\t Close:", qClose[key]) #, "\t News:", qNews[key]) print('') del qOpen
from iexfinance import Stock tsla = Stock('TSLA') print(tsla.get_open()) print(tsla.get_price()) from iexfinance import get_historical_data from datetime import datetime start = datetime(2017, 2, 9) end = datetime(2017, 5, 24) # df = get_historical_data("AAPL", start=start, end=end, output_format='pandas') from iexfinance import get_stats_intraday print(get_stats_intraday())
#!/usr/bin/env python3.5 from iexfinance import Stock from iexfinance import get_available_symbols as gas # Documentation on iexfinance: https://addisonlynch.github.io/iexfinance/stable/ref.html # load all symbols - list symbols = gas() # look at Tesla tsla = Stock('TSLA') opn = tsla.get_open() pri = tsla.get_price() print('Tesla: open price %f, current price %f' % (opn, pri)) # look at AA (Alcoa?) aa = Stock('AA') eps = aa.get_latest_eps() pri = aa.get_price() print('AA: latest EPS %f, current price %f' % (eps, pri)) # show symbols and company name for each # for s in symbols: # if s['isEnabled'] == True: print(s['symbol'] + ', ' + s['name']) # Apple apple = Stock('AAPL') apple.get_key_stats() apple.get_volume() apple.get_earnings()
from iexfinance import Stock from iexfinance import get_historical_data from datetime import datetime tsla = Stock('TSLA') print("open", tsla.get_open()) print("volume", tsla.get_volume()) print("price", tsla.get_price()) print("close", tsla.get_close()) start = datetime(2018,10,11) end = datetime(2018,10,13) df = get_historical_data("AAPL", start = start, end = end, output_format = 'pandas') print(df.head())