GET_MARGINREQUIRED was a relict and no one knows what it's supposed to mean, so it can be disregarded. Zorro uses anyway only the MarginCost parameter, which is the margin for the next trade with the current asset. Complex margin rules, as for options trading, must be calculated by script before opening the position, and MarginCost set to the result.

For the combo, I would send the 4 trades as usual, but store the IDs of the 3 previous legs and cancel them with cancelTrade() when the combo is not filled.