Without changing the order of the original at all, we need to define static Position Numbers as well. Note that the Leg#'s and Strategy#'s should be static as well as we may end up using them for sorting purposes.
Positions can be more than one spread of a particular symbol. There is only one type of position that encompasses two types of spreads so for now, there is no need to go there.
Rule1: There is never more than one symbol for any one position.
Rule2: 'Today' there is never more than one spread for any one position.
Given those two (2) rules, it should be relatively easy to figure out what makes up a position, and simply number them. Each position has one number for every row in that position.