Beispiel #1
0
def create_datasets(company):

	# 'AAPL','GOOG'
	df_1 = (intrinio.prices(company))
	df_2 = (intrinio.financials(company))
	df_1.to_csv(company+'_prices.csv')
	df_2.to_csv(company+'_financials.csv')

	return
Beispiel #2
0
 def test_prices(self):
     if local:
         inject_response("prices_aapl.json")
     r = intrinio.prices("AAPL")
     if local:
         self.assertEqual(len(r), 2)
         self.assertEqual(r[0].date, "2016-09-23")
         self.assertEqual(r[1].adj_open, 114.35)
     else:
         self.assertGreater(len(r), 0)
def price_extract(ticker):

    price = intrinio.prices(ticker, start_date=2008, frequency="yearly", sort_order='asc')

    price.index = pd.to_datetime(price.index, format="%Y-%m-%d")
    price["year"] = pd.DatetimeIndex(price.index).year

    price = price[price.index > "2008-12-31"]

    price_norm = pd.concat((Normalisation(price.drop("year", axis=1)), price["year"]), axis=1)

    return price, price_norm
Beispiel #4
0
    def getData(self, ticker):
        data = {}

        dataTag = "yearlyprices"
        if not os.path.exists(self.cacheData.filename(ticker, dataTag)):
            print "getting %s data for %s" % (dataTag, ticker)
            data[dataTag] = intrinio.prices(ticker,
                                            start_date=PRICES_PULL_START_DATE,
                                            frequency="yearly")
            self.cacheData.save(data[dataTag], ticker, dataTag)
        else:
            data[dataTag] = self.cacheData.open(ticker, dataTag)

        dataTag = "income_statement"
        if not os.path.exists(self.cacheData.filename(ticker, dataTag)):
            print "getting %s data for %s" % (dataTag, ticker)
            data[dataTag] = intrinio.financials(ticker, "FY", dataTag)
            self.cacheData.save(data[dataTag], ticker, dataTag)
        else:
            data[dataTag] = self.cacheData.open(ticker, dataTag)

        dataTag = "balance_sheet"
        if not os.path.exists(self.cacheData.filename(ticker, dataTag)):
            print "getting %s data for %s" % (dataTag, ticker)
            data[dataTag] = intrinio.financials(ticker, "FY", dataTag)
            self.cacheData.save(data[dataTag], ticker, dataTag)
        else:
            data[dataTag] = self.cacheData.open(ticker, dataTag)

        dataTag = "cash_flow_statement"
        if not os.path.exists(self.cacheData.filename(ticker, dataTag)):
            print "getting %s data for %s" % (dataTag, ticker)
            data[dataTag] = intrinio.financials(ticker, "FY", dataTag)
            self.cacheData.save(data[dataTag], ticker, dataTag)
        else:
            data[dataTag] = self.cacheData.open(ticker, dataTag)

        dataTag = "calculations"
        if not os.path.exists(self.cacheData.filename(ticker, dataTag)):
            print "getting %s data for %s" % (dataTag, ticker)
            data[dataTag] = intrinio.financials(ticker, "FY", dataTag)
            self.cacheData.save(data[dataTag], ticker, dataTag)
        else:
            data[dataTag] = self.cacheData.open(ticker, dataTag)

        return data
Beispiel #5
0
    def run(self):
        offscreen_canvas = self.matrix.CreateFrameCanvas()
        font = graphics.Font()
        font.LoadFont("../../../fonts/5x8.bdf")
        stockColor = graphics.Color(0, 50, 255)
        pos = offscreen_canvas.width

        intrinio.client.username = '******'
        intrinio.client.password = '******'

        value = intrinio.prices('GOOGL', start_date='2018-04-13')
        stock_text = 'GOOGL '
        stock_text = stock_text + str(value.iloc[0][5])

        percentChange = (
            (value.iloc[0][5] - value.iloc[0][9]) / value.iloc[0][5]) * 100

        if (percentChange < 0):
            percent_text = '∇'
            percentColor = graphics.Color(255, 0, 0)
        elif (percentChange > 0):
            percent_text = 'Δ'
            percentColor = graphics.Color(0, 255, 0)
        else:
            percentColor = graphics.Color(0, 0, 255)

        percent_text = percent_text + str(abs(round(Decimal(percentChange),
                                                    2)))
        percent_text = (' ' *
                        (len(stock_text) - len(percent_text))) + percent_text

        while True:
            offscreen_canvas.Clear()
            length = graphics.DrawText(offscreen_canvas, font, pos, 7,
                                       stockColor, stock_text)
            len2 = graphics.DrawText(offscreen_canvas, font, pos, 14,
                                     percentColor, percent_text)
            pos -= 1
            if (pos + length < 0):
                pos = offscreen_canvas.width

            time.sleep(0.05)
            offscreen_canvas = self.matrix.SwapOnVSync(offscreen_canvas)
Beispiel #6
0
    x for x in input_fields[input_fields["parent"] == "Yes"]["code_or_ticker"]
]
tick = [x for x in input_fields[input_fields["parent"] == "Yes"]["ticker"]]

year = int(2007)

import intrinio

intrinio.client.username = '******'
intrinio.client.password = '******'

for tic, cod in zip(tick, code):
    # for tic, code in zip(["BKC"],["BKC"]):
    start = datetime(year, 1, 1)
    end = datetime.now()
    r = intrinio.prices(tic, start_date=str(year) + '-01-01')
    df_tick = r.rename(columns={'adj_volume': 'volume'})
    df_tick = df_tick.reset_index()
    df_tick = df_tick.rename(
        columns={
            'Volume': 'volume',
            'Close': 'close',
            'High': 'high',
            'Low': 'low',
            'Open': 'open',
            'Date': 'date'
        })
    my_path = os.path.abspath(os.path.dirname('__file__'))
    path = os.path.join(my_path, "../data/stock/")

    df_tick.to_csv(path + cod + "_parent_tick_df.csv")
Beispiel #7
0
import intrinio
import psycopg2
import pandas as pd

intrinio.client.username = ''
intrinio.client.password = ''

Location = "./NAS.csv"
Location2 = "./NYSE.csv"

df = pd.read_csv(Location)
df2 = pd.read_csv(Location2)
dfticker = df["Symbol"]
df2ticker = df2["Symbol"]
lista = dfticker.append(df2ticker)

password = input("Please Enter the Password for the Postgres Database: ")

connectionSTR = "dbname='postgres' user='******' host='dev-datafactory-postgresql.csodrrohkuas.us-east-1.rds.amazonaws.com' password="******"INSERT INTO historical VALUES ('{i}', '{prices}');"
    cur.execute(insert)
    conn.commit()
    pass

print(start_line)

# reads the file of all stocks, retrieves symbol, uses intrinio api to retrieve historical data from january 1, 2016 to present, and writes to csv

with open("../data/all_stocks.txt", "r") as f:
    for i, line in enumerate(f):
        if i < start_line:
            continue  # passes through until last line parsed is reached
        print(line)
        sym, rest = line.split("|", 1)  # retrieves symbol
        print(sym)

        try:
            x = intrinio.prices(sym)
            x.to_csv('../data/raw/' + sym)

        except requests.exceptions.HTTPError as err:

            # if the api limit is reached, write ending line and exit
            if err.response.status_code == 429:
                print("limit reached at line " + str(i) + "...exiting")
                with open('../data/start_line.txt', 'w') as outfile:
                    outfile.write(str(i))
                sys.exit()
            else:
                with open('../errors', 'a') as outfile:
                    outfile.write("error with " + sym + ", code: " +
                                  str(err.response.status_code))
Beispiel #9
0
# first install the required package via this cli command:
# pip install requests

import intrinio
intrinio.client.username = "******"
intrinio.client.password = "******"

company = "Apple"
ticker = "AAPL"
start_date = "2018-07-01"

prices = intrinio.prices(ticker, start_date)
info = intrinio.companies(ticker)
search = intrinio.companies(query=company)
financials = intrinio.financials(ticker)

print(info)
print(search)
print(financials)
Beispiel #10
0
    def run(self):
        offscreen_canvas = self.matrix.CreateFrameCanvas()
        font = graphics.Font()

        # load the font displayed to screen (letter dimension
        font.LoadFont("../../../fonts/5x8.bdf")
        pos = offscreen_canvas.width

        # important data for accessing the stock API (pulls information)
        intrinio.client.username = '******'
        intrinio.client.password = '******'

        # get the yesterday
        yesterday = date.today() - timedelta(7)
        dateCheck = yesterday.strftime("%Y-%m-%d")

        # print the current date
        print("dateCheck = " + str(dateCheck))

        # list to hold stocks
        stockdata = []

        # list to hold the percentage change
        changedata = []

        # list to hold colors of the stock
        stockcolors = []

        # list to hold color of percent
        percentcolors = []

        # loop thru the stocks listed in
        for i in stockConfig.stocks:
            # get value for current day (today)
            value = intrinio.prices(i['symbol'], dateCheck)
            stock_text = i['symbol']
            stock_text = stock_text + ' ' + str(value.iloc[0][5])
            stockdata.append(stock_text)

            stockColor = graphics.Color(i['red'], i['green'], i['blue'])
            stockcolors.append(stockColor)

            percentChange = (
                (value.iloc[0][5] - value.iloc[0][9]) / value.iloc[0][5]) * 100
            if (percentChange < 0):
                percent_text = '∇'
                percentColor = graphics.Color(255, 0, 0)
            elif (percentChange > 0):
                percent_text = 'Δ'
                percentColor = graphics.Color(0, 255, 0)
            else:
                percentColor = graphics.Color(0, 0, 255)

            percent_text = percent_text + str(
                abs(round(Decimal(percentChange), 2)))
            percent_text = (
                ' ' * (len(stock_text) - len(percent_text))) + percent_text
            changedata.append(percent_text)
            percentcolors.append(percentColor)

        currentStock = 0

        while True:

            offscreen_canvas.Clear()
            length = graphics.DrawText(offscreen_canvas, font, pos, 7,
                                       stockcolors[currentStock],
                                       stockdata[currentStock])
            len2 = graphics.DrawText(offscreen_canvas, font, pos, 14,
                                     percentcolors[currentStock],
                                     changedata[currentStock])
            pos -= 1
            if (pos + length < 0):
                pos = offscreen_canvas.width
                currentStock += 1
                if (currentStock >= len(stockdata)):
                    currentStock = 0

            time.sleep(0.07)
            offscreen_canvas = self.matrix.SwapOnVSync(offscreen_canvas)
Beispiel #11
0
    'username': '',
    'password': '',
    'provider': 'iex',
    'on_quote': on_quote
}

client = IntrinioRealtimeClient(options)
client.join(['AAPL', 'GE', 'MSFT'])
client.connect()
client.keep_alive()

'''



data_stock_prices = intrinio.prices('ATVI')#, start_date='2000-01-01')
data_financials = intrinio.financials('AAPL')

intrinio.companies('GOOG')



data_stock_prices.info()


atvi_adjclose = pd.Series(data_stock_prices.adj_close)
atvi_adjclose_norm = atvi_adjclose/atvi_adjclose[len(atvi_adjclose)-1]*100
atvi_adjclose_norm = atvi_adjclose_norm.rename("ATVI")


spy_prices = intrinio.prices('SPY', start_date='1993-10-25')
Beispiel #12
0
 try:
     fudamentals_calculations = intrinio.financials(
         ticker, type='QTR', statement='calculations')
     if fudamentals_calculations is not None:
         filename = ticker + '_fudamentals_calculations.csv'
         file_to_open = os.path.join(data_folder, filename)
         fudamentals_calculations.to_csv(file_to_open, encoding='utf-8')
     else:
         print('%s (%s) Ignored - Doesnt have calcs.' % (ticker, i))
         continue
 except (AttributeError, ValueError) as e:
     print('%s (%s) Ignored - Doesnt have calcs.' % (ticker, i))
     continue
 # Price
 try:
     price = intrinio.prices(ticker, frequency='quarterly')
     if price.empty == False:
         filename = ticker + '_price.csv'
         file_to_open = os.path.join(data_folder, filename)
         price.to_csv(file_to_open, encoding='utf-8')
     else:
         print('%s (%s) Ignored - Doesnt have price.' % (ticker, i))
         continue
 except (AttributeError, ValueError) as e:
     print('%s (%s) Ignored - Doesnt have price.' % (ticker, i))
     continue
 # Cash
 try:
     fudamentals_caseflow = intrinio.financials(
         ticker, type='QTR', statement='cash_flow_statement')
     if fudamentals_caseflow is not None:
intrinio.client.password = #Get your own password!

#Extract common dates and adjusted closing
#prices; adjusted closes allow total return
#computation

#returns will start one period later than startdate
startdate='1997-12-31'
#Intrinio uses 12-31 even if it's not a business day
enddate=LastYearEnd()[:4]+'-12-31'
tickerlist=['ORCL','ED','F']
for i,t in enumerate(tickerlist):
    #This can be very slow
    print('Getting ticker',t)
    df1=intrinio.prices(t,sort_order='ASC', \
        start_date=startdate,end_date=enddate, \
        frequency='monthly')
    #Get rid of everything except adjusted close
    df1.drop(['adj_high','adj_low','adj_open', \
              'adj_volume','adj_factor','close', \
              'high','low','open','split_ratio', \
              'volume','ex_dividend'],axis='columns',inplace=True)
    df1.rename({'adj_close':t},axis='columns',inplace=True)
    if i==0:
        dfcomb=df1
    else:
        dfcomb=dfcomb.join(df1)

#Combined dataframe dfcomb now has a column
#with adjusted closes of each ticker.
#Form log-returns
Beispiel #14
0
# base_url = "https://api.intrinio.com"
#
# # Get the latest FY Income Statement for AAPL
# ticker = "AAPL"
# request_url = base_url + "/financials/standardized"
# query_params = {
#     'ticker': ticker,
#     'statement': 'income_statement',
#     'type': 'FY'
# }
#
# response = requests.get(request_url, params=query_params, auth=(api_username, api_password))
# if response.status_code == 401: print("Unauthorized! Check your username and password."); exit()
#
# data = response.json()['data']
#
# for row in data:
#     tag = row['tag']
#     value = row['value']
#     print(tag + ": " + str(value))

import intrinio
#
intrinio.client.username = ''
intrinio.client.password = ''

print(intrinio.prices('AAPL'))
#print(intrinio.companies('GOOG'))

#print(intrinio.companies(query='Popeyes'))