Do bids always need to be associated with a portfolio to participate in the exchange mechanism?  If so, then insead of a setter here that must be called, we could create a bid factory (non-static) method on BidPortfolio class that automatically primed the bid with a pointer to itself.  Or at least, the documentation for this method should say something like `@warning this should generally NOT be called manually`.