4 ms·
Interesting! How do you keep transaction records?
by jtoledo 8y ago
Interesting! How do you keep transaction records?
- fspeech 8y agoI use two classes to track accounts and transactions: class acct(object): # bank and brokerage account allacct = [] def __init__(self, name, balance, holdings=None): self.name = name self.balance = balance self.holdings = holdings self.xferamt = 0 self.accum = 0 # used to track cumulation ad hoc values acct.allacct.append(self) def buy(self, sec, amt, cost, day): rec = trans(('buy', sec, amt), -cost, day, self) self.balance -= cost if not self.holdings.has_key(sec): self.holdings[sec] = [0] self.holdings[sec][0] += amt self.holdings[sec].append(rec) ...... class trans(object): # transaction record object track cash invovled in each transaction allrec = [] def __init__(self, t, amt, day, where): try: self.type = t self.amt = amt self.date = date(year, month, day) self.where = where trans.allrec.append(self) except Exception as err: print t, amt, year, month, day, where raise err Then for each data line I just do any of the following: SOMEACCT.buy(...) SOMEACCT.sell(...) SOMEACCT.credit(...) SOMEACCT.debit(...) SOMEACCT.xfer(...) # classified by tax categories: SOMEACCT.int(...) SOMEACCT.div(...) SOMEACCT.fdiv(...) SOMEACCT.mint(...) SOMEACCT.mdiv(...) Then it is easy to query and do computations in any way one cares to write a function to do.
- jtoledo 8y agoThanks! Today I use Excel to track my accounts, but I've been looking for alternatives... Now I'll evaluate your idea.
- fspeech 8y agoYou are welcome. This approach has worked well for me with over 10 thousand transactions tracked so far. It is very flexible as you can write your own IIR computation or match capital gains etc.