示例#1
0
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)