"Each transaction has an amount and the balance is the sum of this amount added to the balance of the previous transaction."
Rather than always having to FIND the most recent previous Transaction instance for an account in order to obtain its current balance... in order to then calculate the updated current balance to use it in the new Transaction instance, it would be better to store the current balance of the account in an attribute of the Transaction instance's parent object... which presumably is named something like, "Account", which likely has attributes for Customer, DateOpened, DateClosed, CurrentBalance, etc.
Because the relevant Account instance would likely already be in memory when entering a new Transaction instance, you could use the Account.CurrentBalance attribute value (without having to FIND the most recent previous Transaction instance) to auto generate the Transaction.RunningBalance value. And, you would update Account.CurrentBalance at the same time.
Thus there would likely be 3 Objects:
Customer
. . - Name
. . - DoB
. . - Address
. . - Accounts [Reference Attribute for Account]
. . - etc.
Account (owned by Customer)
. . - Customer
. . - CreatedTimestamp
. . - Title
. . - CurrentBalance
. . - Transactions [Reference Attribute for Transaction]
. . - etc.
Transaction (owned by Account)
. . - Account
. . - CreatedTimestamp
. . - Amount
. . - RunningBalance (or BalanceCF)
. . - etc.