It sounds like you should make your system transactional instead of attempting an unstored calculation.
So you could (IE via a daily server scheduled script) run a script that calculates current interest on outstanding balances based on the origination date, and adds records against the balance.
So your transactions table using your above example would be:
+$100 in record 1
-$50 in record 2
+$5 for interest in record 3
-$25 in record 4
+$3 for interest in record 5
-$33 in record 6
From what I've worked on before, transactional is actually preferred in finance areas, as it gives you a static paper trail of anytime something was added or subtracted from a balance.