An investments manager coded in Java. Record the information and get basic analysis. Your data is saved in a myInvestments.sqlite file (generated automatically). The app runs on localhost:8080.
Your portfolio hosts all your investments.
An investment has the following attributs:
- The name of the organism that provides this investment. Examples: Blackrock, Novaxia, Air Liquide…
- The name of the investment. Examples: Neo, stock…
- The frequency of the distributions. Examples: 1 for monthly, 3 if is's per quarter, 12 if it is once a year…
- The delay between when you've invested, and the first distribution, in months. Example: 6 if it is 6 months.
- A list of events in relation with the investment.
An event has the following attributs:
- A date (when it happened).
- An amount (how much money are we talking about).
- A type, which can be Movement, Distribution or Valuation.
Movement: if you've bought or sold shares of this investment. Use positiv value for buying, and negativ value for selling. Distribution: when the organism has wired to you the money generated by your investment. Example: dividend. Valuation: Record the value of your investment at a specific date.
Computes the following:
- The total amount of money you have currently invested in the investment (it substracts the money you got back by selling).
- The weight of this investment in the portfolio.
- The average money the investment distributes monthly.
- The average yield this distribution represents compared to the amount you've invested.
- If the product had fees for investing (represented by a drop of the valuation), computes the break even expected date in months (when you distributions would compensate the drop).
- A "real yield" computation, taking the valuation drop into consideration. The software also does this for the whole portfolio.
I want to implement other features, as a notification if the last distributions have not been recorded, maybe an automatic valuation data grabber, better forcasting by taking inflation into account…