portfolio.remove_position('AAA') assert(len(portfolio.open_positions) == 0) # Remove nonexistant position try: portfolio.remove_position('BBB') except KeyError: pass '''Add multiple positions''' portfolio.add_position(time[0], 'AAA', 100.00, 10) portfolio.add_position(time[0], 'BBB', 20.00, 5) assert(len(portfolio.open_positions) == 2) '''Calculate investment total''' assert(portfolio.calulate_investment_total(time[0]) == 1100) ''' Transactions ''' # Cash transaction portfolio.add_transaction(time[0], cash=1000) transaction = portfolio.transaction_log[time[0]][0] assert(transaction.cash == 1000) assert(transaction.time == time[0]) # Adding multiple cash transactions at same time portfolio.add_transaction(time[0], cash=1000) assert(len(portfolio.transaction_log[time[0]]) == 2)
from transaction import Transaction, Currency, Money, Direction from portfolio import Portfolio if __name__ == '__main__': print(Currency.EUR.name) tr = Transaction(1588113697, 'FB', 14, Money(220.5, Currency.USD), Direction.BUY) print(tr) p = Portfolio() p.add_transaction(tr) print(p)
assert (position.purchase_time == time[0]) assert (position.shares == 10) # Remove position portfolio.remove_position('AAA') assert (len(portfolio.open_positions) == 0) # Remove nonexistant position try: portfolio.remove_position('BBB') except KeyError: pass '''Add multiple positions''' portfolio.add_position(time[0], 'AAA', 100.00, 10) portfolio.add_position(time[0], 'BBB', 20.00, 5) assert (len(portfolio.open_positions) == 2) '''Calculate investment total''' assert (portfolio.calulate_investment_total(time[0]) == 1100) ''' Transactions ''' # Cash transaction portfolio.add_transaction(time[0], cash=1000) transaction = portfolio.transaction_log[time[0]][0] assert (transaction.cash == 1000) assert (transaction.time == time[0]) # Adding multiple cash transactions at same time portfolio.add_transaction(time[0], cash=1000) assert (len(portfolio.transaction_log[time[0]]) == 2)