Esempio n. 1
0
def balance_sheet(l_args, s_ticker):
    parser = argparse.ArgumentParser(
        prog='balance',
        description=
        """Prints a complete balance sheet statement over time. This can be 
                                     either quarterly or annually. The following fields are expected: Accepted date, 
                                     Account payables, Accumulated other comprehensive income loss, Cash and cash 
                                     equivalents, Cash and short term investments, Common stock, Deferred revenue, 
                                     Deferred revenue non current, Deferred tax liabilities non current, Filling date, 
                                     Final link, Goodwill, Goodwill and intangible assets, Intangible assets, Inventory, 
                                     Link, Long term debt, Long term investments, Net debt, Net receivables, Other assets, 
                                     Other current assets, Other current liabilities, Other liabilities, Other non current 
                                     assets, Other non current liabilities, Othertotal stockholders equity, Period, Property 
                                     plant equipment net, Retained earnings, Short term debt, Short term investments, Tax assets, 
                                     Tax payables, Total assets, Total current assets, Total current liabilities, Total debt, 
                                     Total investments, Total liabilities, Total liabilities and stockholders equity, Total 
                                     non current assets, Total non current liabilities, and Total stockholders equity. 
                                     [Source: Alpha Vantage]""")

    parser.add_argument('-n',
                        "--num",
                        action="store",
                        dest="n_num",
                        type=check_positive,
                        default=1,
                        help='Number of latest years/quarters.')
    parser.add_argument('-q',
                        "--quarter",
                        action="store_true",
                        default=False,
                        dest="b_quarter",
                        help='Quarter fundamental data flag.')

    try:
        (ns_parser, l_unknown_args) = parser.parse_known_args(l_args)

        if l_unknown_args:
            print(
                f"The following args couldn't be interpreted: {l_unknown_args}\n"
            )
            return

        if ns_parser.n_num == 1:
            pd.set_option('display.max_colwidth', -1)
        else:
            pd.options.display.max_colwidth = 40

        fd = FundamentalData(key=cfg.API_KEY_ALPHAVANTAGE,
                             output_format='pandas')
        if ns_parser.b_quarter:
            df_fa, d_fd_metadata = fd.get_balance_sheet_quarterly(
                symbol=s_ticker)
        else:
            df_fa, d_fd_metadata = fd.get_balance_sheet_annual(symbol=s_ticker)

        df_fa = df_fa.set_index('fiscalDateEnding')
        df_fa = df_fa.head(n=ns_parser.n_num).T
        df_fa = df_fa.mask(
            df_fa.astype(object).eq(ns_parser.n_num * ['None'])).dropna()
        df_fa = df_fa.mask(df_fa.astype(object).eq(ns_parser.n_num *
                                                   ['0'])).dropna()
        df_fa = df_fa.applymap(lambda x: long_number_format(x))
        df_fa.index = [
            ''.join(' ' + char if char.isupper() else char.strip()
                    for char in idx).strip() for idx in df_fa.index.tolist()
        ]
        df_fa.index = [s_val.capitalize() for s_val in df_fa.index]
        df_fa.columns.name = "Fiscal Date Ending"
        print(df_fa)

        print("")

    except:
        print("")
        return
def balance_sheet(other_args: List[str], ticker: str):
    """Alpha Vantage balance sheet

    Parameters
    ----------
    other_args : List[str]
        argparse other args
    ticker : str
        Fundamental analysis ticker symbol
    """

    parser = argparse.ArgumentParser(
        add_help=False,
        prog="balance",
        description="""
            Prints a complete balance sheet statement over time. This can be either quarterly or
            annually. The following fields are expected: Accepted date, Account payables,
            Accumulated other comprehensive income loss, Cash and cash equivalents, Cash and short
            term investments, Common stock, Deferred revenue, Deferred revenue non current,
            Deferred tax liabilities non current, Filling date, Final link, Goodwill,
            Goodwill and intangible assets, Intangible assets, Inventory, Link, Long term debt,
            Long term investments, Net debt, Net receivables, Other assets, Other current assets,
            Other current liabilities, Other liabilities, Other non current assets, Other non
            current liabilities, Othertotal stockholders equity, Period, Property plant equipment
            net, Retained earnings, Short term debt, Short term investments, Tax assets, Tax
            payables, Total assets, Total current assets, Total current liabilities, Total debt,
            Total investments, Total liabilities, Total liabilities and stockholders equity, Total
            non current assets, Total non current liabilities, and Total stockholders equity.
            [Source: Alpha Vantage]
        """,
    )

    parser.add_argument(
        "-n",
        "--num",
        action="store",
        dest="n_num",
        type=check_positive,
        default=1,
        help="Number of latest years/quarters.",
    )
    parser.add_argument(
        "-q",
        "--quarter",
        action="store_true",
        default=False,
        dest="b_quarter",
        help="Quarter fundamental data flag.",
    )

    try:
        (ns_parser, l_unknown_args) = parser.parse_known_args(other_args)

        if l_unknown_args:
            print(
                f"The following args couldn't be interpreted: {l_unknown_args}\n"
            )
            return

        if ns_parser.n_num == 1:
            pd.set_option("display.max_colwidth", None)
        else:
            pd.options.display.max_colwidth = 40

        fd = FundamentalData(key=cfg.API_KEY_ALPHAVANTAGE,
                             output_format="pandas")
        if ns_parser.b_quarter:
            # pylint: disable=unbalanced-tuple-unpacking
            df_fa, _ = fd.get_balance_sheet_quarterly(symbol=ticker)
        else:
            # pylint: disable=unbalanced-tuple-unpacking
            df_fa, _ = fd.get_balance_sheet_annual(symbol=ticker)

        df_fa = clean_fundamentals_df(df_fa, num=ns_parser.n_num)
        print(df_fa)
        print("")

    except Exception as e:
        print(e)
        print("")
        return
Esempio n. 3
0
def balancesheet_init_quarterly(request):

    if request.method == 'GET':
        symbol = request.GET.get('symbol')

        data = FundamentalData(key='I7WB8M63PERU90OY', output_format='pandas')
        qbalancesheets, vasymbol = data.get_balance_sheet_quarterly(
            symbol=symbol)

        for fical in qbalancesheets['fiscalDateEnding']:
            balancesheet = qbalancesheets[qbalancesheets['fiscalDateEnding'] ==
                                          fical]

            for col in balancesheet.columns:
                if col not in ['fiscalDateEnding', 'reportedCurrency']:
                    if balancesheet[col].values[0] == 'None':
                        balancesheet[col] = 0.0
                    else:
                        pass
                else:
                    pass
            bs = BalanceSheet(
                symbol=symbol,
                report_type='annualReport',
                fiscal_date_ending=datetime.strptime(
                    balancesheet['fiscalDateEnding'].values[0], '%Y-%m-%d'),
                reported_currency=balancesheet['reportedCurrency'].values[0],
                total_assets=balancesheet['totalAssets'].values[0],
                intangible_assets=balancesheet['intangibleAssets'].values[0],
                earning_assets=balancesheet['earningAssets'].values[0],
                other_current_assets=balancesheet['otherCurrentAssets'].
                values[0],
                total_liabilities=balancesheet['totalLiabilities'].values[0],
                total_shareholder_equity=balancesheet['totalShareholderEquity']
                .values[0],
                deferred_long_term_liabilities=balancesheet[
                    'deferredLongTermLiabilities'].values[0],
                other_current_liabilities=balancesheet[
                    'otherCurrentLiabilities'].values[0],
                common_stock=balancesheet['commonStock'].values[0],
                retained_earnings=balancesheet['retainedEarnings'].values[0],
                other_liabilities=balancesheet['otherLiabilities'].values[0],
                goodwill=balancesheet['goodwill'].values[0],
                other_assets=balancesheet['otherAssets'].values[0],
                cash=balancesheet['cash'].values[0],
                total_current_liabilities=balancesheet[
                    'totalCurrentLiabilities'].values[0],
                short_term_debt=balancesheet['shortTermDebt'].values[0],
                current_long_term_debt=balancesheet['currentLongTermDebt'].
                values[0],
                other_shareholder_equity=balancesheet['otherShareholderEquity']
                .values[0],
                property_plant_equipment=balancesheet['propertyPlantEquipment']
                .values[0],
                total_current_assets=balancesheet['totalCurrentAssets'].
                values[0],
                long_term_investment=balancesheet['longTermInvestments'].
                values[0],
                net_tangible_assets=balancesheet['netTangibleAssets'].
                values[0],
                short_term_investment=balancesheet['shortTermInvestments'].
                values[0],
                net_receivables=balancesheet['netReceivables'].values[0],
                long_term_debt=balancesheet['longTermDebt'].values[0],
                inventory=balancesheet['inventory'].values[0],
                accounts_payable=balancesheet['accountsPayable'].values[0],
                total_permanent_equity=balancesheet['totalPermanentEquity'].
                values[0],
                additional_paid_in_capital=balancesheet[
                    'additionalPaidInCapital'].values[0],
                common_stock_total_equity=balancesheet[
                    'commonStockTotalEquity'].values[0],
                preferred_stock_total_equity=balancesheet[
                    'preferredStockTotalEquity'].values[0],
                retained_earnings_total_equity=balancesheet[
                    'retainedEarningsTotalEquity'].values[0],
                treasury_stock=balancesheet['treasuryStock'].values[0],
                accumulated_amortization=balancesheet[
                    'accumulatedAmortization'].values[0],
                other_non_current_assets=balancesheet['otherNonCurrrentAssets']
                .values[0],
                deferred_long_term_asst_charges=balancesheet[
                    'deferredLongTermAssetCharges'].values[0],
                total_non_current_assets=balancesheet['totalNonCurrentAssets'].
                values[0],
                capital_lease_obligations=balancesheet[
                    'capitalLeaseObligations'].values[0],
                total_long_term_debt=balancesheet['totalLongTermDebt'].
                values[0],
                other_non_current_liabilities=balancesheet[
                    'otherNonCurrentLiabilities'].values[0],
                total_non_current_liabilities=balancesheet[
                    'totalNonCurrentLiabilities'].values[0],
                negative_goodwill=balancesheet['negativeGoodwill'].values[0],
                warrants=balancesheet['warrants'].values[0],
                preferred_stock_redeemable=balancesheet[
                    'preferredStockRedeemable'].values[0],
                capital_surplus=balancesheet['capitalSurplus'].values[0],
                liabilities_and_shareholder_equity=balancesheet[
                    'liabilitiesAndShareholderEquity'].values[0],
                cash_and_short_term_investments=balancesheet[
                    'cashAndShortTermInvestments'].values[0],
                accumulated_depreciation=balancesheet[
                    'accumulatedDepreciation'].values[0],
                common_stock_shares_outstanding=balancesheet[
                    'commonStockSharesOutstanding'].values[0],
            )

            bs.save()

        return JsonResponse(
            {'message': 'Quarterly BalanceShett Data Save successlly'},
            status=status.HTTP_200_OK)
period = input('Period- annual, quarterly : ')
statement = input('Statement- balance sheet, income statement, cash flow : ')
fd = FundamentalData(key,output_format = 'pandas')
if period == 'annual':
    if statement == 'balance sheet':
        state = fd.get_balance_sheet_annual(symbol)[0].T[2:]
        state.columns = list(fd.get_balance_sheet_annual(symbol)[0].T.iloc[0])
    elif statement == 'income statement':
        state = fd.get_income_statement_annual(symbol)[0].T[2:]
        state.columns = list(fd.get_income_statement_annual(symbol)[0].T.iloc[0])
    elif statement == 'cash flow':
        state = fd.get_cash_flow_annual(symbol)[0].T[2:]
        state.columns = list(fd.get_cash_flow_annual(symbol)[0].T.iloc[0])
    else:
        print("wrong input given by the user ")

elif period == 'quarterly':
    if statement == 'balance sheet':
        state = fd.get_balance_sheet_quarterly(symbol)[0].T[2:]
        state.columns = list(fd.get_balance_sheet_quarterly(symbol)[0].T.iloc[0])
    elif statement == 'income statement':
        state = fd.get_income_statement_quarterly(symbol)[0].T[2:]
        state.columns = list(fd.get_income_statement_quarterly(symbol)[0].T.iloc[0])
    elif statement == 'cash flow':
        state = fd.get_cash_flow_quarterly(symbol)[0].T[2:]
        state.columns = list(fd.get_cash_flow_quarterly(symbol)[0].T.iloc[0])
    else:
        print('Wrong Entry')
else:
    print('Wrong Entry')
print(state)