I'm converting a manual option strategy that trades spreads, and liquidates via take profit%, stop loss%, or at 'X' days before expiration.

To do so, I need to track the unrealized profit of the combined position (all legs in the spread), and have an easy way to look at the expiry of the spread (the leg expiring soonest).  

I'm about to implement this logic, and write an execution/position manager, extend the OptionStrategy class, to track unrealized profit, among other things. The truth is, I'd rather not do all that if I don't have to  :-) 

Is there currently any easy way / convenience mechanism to do this in QC? Or is one in the works? Has anyone done this before?