It would help a lot with managing trailing stop-losses if each position object also contained two entry dates, perhaps -- one for the date of the first time this position was started, and one for the last time it was added to or adjusted.
Alternatively, just some way of making it easier to do dynamic stops. Right now, it's very difficult to manage a stop-loss properly, when you could have partial fills and so forth...