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
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