Exemplo n.º 1
0
def print_portfolios(args):
    header = []
    for h in ["SYM","PRICE","QTY", "VALUE", "COST PRICE", "COST", "CHANGE",
              "TOTAL_CHG","RETURN","% GAIN"]:
        header.append(colored(h,'magenta'))

    def colorize(val,comparator=lambda x:'red' if x<0 else 'green'):
        return colored(str(val),comparator(val))

    for name,portfolio in portfolios.items():
        myscrips = [
            header,]
        portfolio_mkt_val = 0
        portfolio_pur_val = 0
        portfolio_commision_cost = 0
        transaction_fee = 29
        print colored(name,'cyan')
        print "="*80
        for scrip in portfolio:
            script_details = yq.get_all(scrip['sym'])
            scrip_price = float(script_details['price'])
            portfolio_mkt_val+=scrip_price*scrip['qty']
            portfolio_pur_val+=scrip['value']*scrip['qty']
            portfolio_commision_cost += scrip['brokerage']
            cost = scrip['value']*scrip['qty']
            price = scrip_price*scrip['qty']
            total_change = (price)-(cost)
            returns = ((scrip_price*scrip['qty'])-(cost))-(scrip['brokerage']*2) 
            percentage_gain = (float(price-cost)/float(cost))*100.0
            myscrips.append([
                    colored(str(scrip['sym']),'white'),
                    colored(str(scrip_price),'white'),
                    colored(scrip['qty'],'white'),
                    colored(str(scrip_price*scrip['qty']),'white'),
                    colored(str(scrip['value']),'white'),
                    colored(cost,'white'),
                    colorize(scrip_price-scrip['value']),
                    colorize(total_change),
                    colorize(returns),
                    colorize('%.2f%%' %percentage_gain,lambda x:'red' if x.startswith('-') else 'green')
                    ]
                            )

        pprint_table(myscrips)
        print "Portfolio: %s (value) %s (cost)" % (portfolio_mkt_val+portfolio_commision_cost,portfolio_pur_val+portfolio_commision_cost)
        print "Mkt Gains: %s " % colorize(portfolio_mkt_val-portfolio_pur_val)
        print "Act Gains: %s " % colorize(portfolio_mkt_val-(portfolio_pur_val+portfolio_commision_cost))
        print "Total Commission:%s" % portfolio_commision_cost
Exemplo n.º 2
0
def print_portfolios():
    from termcolor import colored
    from table import pprint_table
    from portfolios import portfolios
    import ystockquote


    header = []

    for h in ["SYM","PRICE", "VALUE", "COST PRICE", "COST", "CHANGE", "TOTAL_CHG"]:
        header.append(colored(h,'magenta'))


    def colorize(val):
        return colored(str(val),'red' if val<0 else 'green')


    for name,portfolio in portfolios.items():
        myscrips = [
            header,]
        portfolio_mkt_val = 0
        portfolio_pur_val = 0
        portfolio_commision_cost = 0
        print colored(name,'cyan')
        print "="*80
        for scrip in portfolio:
            script_details = ystockquote.get_all(scrip['sym'])
            scrip_price = float(script_details['price'])
            portfolio_mkt_val+=scrip_price*scrip['qty']
            portfolio_pur_val+=scrip['value']*scrip['qty']
            portfolio_commision_cost += scrip['brokerage']
            myscrips.append([
                    colored(str(scrip['sym']),'white'),
                    colored(str(scrip_price),'white'),
                    colored(str(scrip_price*scrip['qty']),'white'),
                    colored(str(scrip['value']),'white'),
                    colored(str(scrip['value']*scrip['qty']),'white'),
                    colorize(scrip_price-scrip['value']),
                    colorize((scrip_price*scrip['qty'])-(scrip['value']*scrip['qty']))])

        pprint_table(myscrips)
        print "Portfolio: %s (value) %s (cost)" % (portfolio_mkt_val+portfolio_commision_cost,portfolio_pur_val+portfolio_commision_cost)
        print "Mkt Gains: %s " % colorize(portfolio_mkt_val-portfolio_pur_val)
        print "Act Gains: %s " % colorize(portfolio_mkt_val-(portfolio_pur_val+portfolio_commision_cost))
        print "Total Commission:%s" % portfolio_commision_cost