Do you ever envision there being more than one tradeexecutor instance running in a single context?  If not, then the next transaction id tracking should probably live in the TradeExecutor class.