I find that the best way to solve that is to make the strategy define its desired state, and then you have another component that diffs the current and desired states to identify the necessary transactions to send out as well as their priority based on the nature of the diff, then finally go to a scheduler.