Exchanges commonly have two options for buying and selling: limit orders (executed only at the specified price or better) and market orders (executed immediately or not at all).
So, a stupid reductionist idea: why do we need the two different types? Why not just use limit orders?
Pros:
- it would make the user interface simpler - the user wouldn't have to think of options
- it would make the trade engine simpler (and therefore easier to optimize, verify, and test)
Cons:
- but that's not what we are used to!
-
The user interface would, by default, calculate the price which is needed for the limit order to be executed completely at a high probability (i.e. the market doesn't suddenly move into the wrong direction), and have that set as a default. And that's a "market order" for you.