def fundamentals(tickers, begin="2020-05-26", end="2020-06-26",): format_header = '{:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>10} {:>10}' format_numbers = '{:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>6} {:>10.2e} {:>10.2E}' print(format_header.format('ticker', 'P/E', 'EARNSH', 'BK/PR', 'DY', 'DR', 'VAR', 'PEG', 'PS', 'PCI', 'VOLPR', 'CM',)) for ticker in tickers: yf = YF(ticker) try: pe = get_number_for_None(get_number_for_None(yf.get_pe_ratio())) prices = yf.get_historical_price_data(begin, end, "daily")[ticker]['prices'] stat_pr = calc_statistics(prices) var_pr = get_number_for_None(100 * stat_pr[1] / stat_pr[0]) volume = get_number_for_None(stat_pr[4]) es = get_number_for_None(yf.get_earnings_per_share()) sh = get_number_for_None(yf.get_num_shares_outstanding(price_type='current')) ''' "pegRatio" "priceToBook" "heldPercentInstitutions" ''' statistics = yf.get_key_statistics_data()[ticker] summary = yf.get_summary_data()[ticker] peg = get_number_for_None(statistics["pegRatio"]) PCI = get_number_for_None(statistics["heldPercentInstitutions"]) bv = yf.get_key_statistics_data()[ticker]['bookValue'] pr = yf.get_current_price() if pr is not None and bv is not None: pr_bv = get_number_for_None(pr/bv) else: pr_bv = '-99.99' f_s = yf.get_financial_stmts('annual', 'income')['incomeStatementHistory'][ticker][0] f_s_key = list(f_s.keys())[0] totalRevenue = f_s[f_s_key]['totalRevenue'] outstanding = statistics["sharesOutstanding"] rev_per_share = totalRevenue / outstanding if pr is not None and es is not None: p_s = get_number_for_None(rev_per_share/float(es)) else: p_s = '99' dy = get_number_for_None(yf.get_dividend_yield()) dr = get_number_for_None(yf.get_dividend_rate()) volume10days = summary['averageVolume10days'] marketCap = summary['marketCap'] # float(volume)*pr # float(sh)*pr) print(format_numbers.format(ticker, pe, es, pr_bv, dy, dr, var_pr, peg, p_s, PCI, volume10days, marketCap)) except Exception as e: print(ticker, e)
from yahoofinancials import YahooFinancials ticker = 'KO' YF = YahooFinancials(ticker) balance_sheet_data_qt = YF.get_financial_stmts('annual', 'balance') income_statement_data_qt = YF.get_financial_stmts('annual', 'income') cash_statement_data_qt = YF.get_financial_stmts('annual', 'cash') all_statement_data_qt = YF.get_financial_stmts('annual', ['income', 'cash', 'balance']) apple_earnings_data = YF.get_stock_earnings_data() outstanding_share = YF.get_num_shares_outstanding() market_cap = YF.get_market_cap() #apple_net_income = YF.get_net_income() #historical_stock_prices = YF.get_historical_price_data('2008-08-15', '2018-09-15', 'daily') print("Balance", balance_sheet_data_qt) print("income statement", income_statement_data_qt) print("cash statement", cash_statement_data_qt) print("earnings", apple_earnings_data) print("outstanding shares", outstanding_share) print("market cap", market_cap) #print ("net income", apple_net_income) #print( "Div", historical_stock_prices[ticker]['eventsData']['dividends']) #print (YF.get_total_revenue()) #print (YF.get_50day_moving_avg()) print(income_statement_data_qt) print(all_statement_data_qt)