This is a bit of an aside. I thought I'd have a break from Agile for a few minutes.
Anyone who has ever worked in financial services will have come across the concept of a position. For example, say you by 10 shares in yahoo, then sell 5 and buy another 20, you will end up with a position of 25 shares. Seems pretty simple. In fact its not. A position is simply a summary value, the aggregation of a number of trades. Most financial systems have a position entity / object that they persist. Why? For speed. In actual fact, having a position entity that is persisted normally causes a lot of heartache.
What is a position? If you are dealing on your own account, then its all your shares in a particular company. If you are writing a system for a financial institution, then you need to put a lot more thought into it. It could be at the book level (i.e. a group of shares managed as a book), at the trader level, company level or even across companies. In my "Tell a Story" blog, I present a model for the organisation structure of a financial services company. In fact the position could be the aggregate position of trades selected at any level in the structure. It is therefore best not to persist it as it causes lots of computational business logic problems, keeping the value up to date.
FYI, in most companies, the position normally refers to the aggregate value at the book level.
Posted by chrismatts at January 11, 2004 1:36 PM