1. A method for routing complex combination orders, the method comprising: receiving, from a user, a complex order having at least first and second legs; receiving from the user order specifications determining whether the complex order is marketable; determining whether the combination order can be traded on a native exchange or whether on several exchanges; routing the first leg to a first exchange; routing the second leg to second exchange; determining whether the first and the second leg execute on user's terms; and sending an unexecuted leg or a partially executed trade to an error account if the first or the second leg did not fully execute.