One or more non-transitory computer-readable media comprising instructions that when executed by at least one processor of a computing system comprising a communication interface and a memory cause the computing system to:
- receive, via the communication interface, a request to allocate funds of a client amongst a first investment strategy and a second investment strategy, the first investment strategy having been generated by the at least one processor based on an allocation of investments prescribed by a first investment manager, and the second investment strategy having been generated by the at least one processor based on an allocation of investments prescribed by a second investment manager;
- and
- responsive to receiving the request to allocate the funds of the client amongst the first investment strategy and the second investment strategy:
- determine, based on:
- a percentage to be invested in an asset indicated by the first investment strategy, a percentage to be invested in the asset indicated by the second investment strategy, a percentage of the funds allocated by the request to the first investment strategy, and a percentage of the funds allocated by the request to the second investment strategy, a number of units of the asset to purchase for the client;
- and
- for each unit of the units:
- instantiate, in a data structure of a client object stored in the memory and associated with the client, an object comprising a variable for storing a basis for the unit, wherein the data structure in which the object comprising the variable for storing the basis for the unit is instantiated is separate from one or more account objects stored within the client object;
- determine whether the unit is being purchased for the first investment strategy or the unit is being purchased for the second investment strategy;
- responsive to determining that the unit is being purchased for the first investment strategy, instantiate, in a sleeve object for the first investment strategy within an account object stored within the client object, an object representing the unit;
- responsive to determining that the unit is being purchased for the second investment strategy, instantiate, in a sleeve object for the second investment strategy within the account object stored within the client object, an object representing the unit;
- generate instructions to purchase the unit;
- communicate, via the communication interface and to one or more trading platforms, the instructions to purchase the unit;
- receive, via the communication interface and from the one or more trading platforms, data indicating a price and time at which the unit was purchased;
- and
- responsive to receiving the data indicating the price and time at which the unit was purchased:
- store, in the memory, an indication of the price and time at which the unit was purchased and data associating the indication with the object representing the unit;
- and
- store, in the object comprising the variable for storing the basis for the unit instantiated in the data structure of the client object stored in the memory and associated with the client, data indicating the price at which the unit was purchased.