I am looking on how to handle portfolio over a range of date.
A portfolio is defined by the positions it points to and doesn’t points to the actual data they position store.
Following is the state of portfolio on day X
Security Quantity
ABC 10
BCD 20
DEF 30
And on day Y (Y>X)
Security Quantity
ABC 20
BCD 30
DEF 40
Here on date Y , all i have to do is change the values in the position.
But then on portfolio side , its not marked that a change happened on that date.
So the only way to see when all a portfolio changed over a date would be checking all the position 's history versions.
Which looks like a bit hectic to me.What is the recommended way of operation here ?
On a related issue , if we look at an older version of portfolio (in web UI), though the older version of portfolio is shown , the version (and data) of positions shown is the latest. Which i feel is a bug.
It’s not marked as a change because we wanted to avoid storing the entire tree structure for every change in a position, which is what would be required to make version/corrections even remotely sane. Currently you will need to use the same version/correction time to load all positions. In future our intention is to merge the trade/position and portfolio masters so this issue goes away.
The UI aspect I accept is counterintuitive at the very least, so I’ve filed it as a bug PLAT-2652.
The idea was that you could have a system that just provided flat or relatively rigidly portfolios with a wrapper to implement the PositionMaster interface, and then use the PortfolioMaster to implement our own structures on top of that. The problem, as you’ve discovered is that version tracking and change notifications become more complex.
On a lighter note , i believe the whole problem can be solved to a good degree by storing the UniqueID (Which has version information too) of the positions in portfolio rather than ObjectID.
The problem with that is that if you had a large portfolio, e.g. 10,000 positions, with, say each position in groups of 5 in a portfolio structure, you’d have >2,000 nodes in your portfolio structure. If you then had each position change several times a day, you’d have 10,000 lots of 2,000 node structures being stored every day. That’s why the ObjectID is used. As I’ve said, we know it’s not ideal at the moment, but it should prove inconvenient to subscribe to changes on all positions individually, rather than a show-stopper.
Hi. Please I am trying to figure out if this has now been implemented? Ideally have the option to only save End-Of-Day portfolio for each day in order to have history over time.
We have always supported a complete history of your portfolio reproducible at any moment in the past. The discussion above was really only relating to implementation details.