Market vs. Limit Orders
Sending a quote
Every trade on Symmio starts as a quote: your request to open or close a position at a given price, against a given set of solvers. There are two order types, market and limit. Both mean roughly what they do on any exchange, but the peer-to-peer model gives them slightly different mechanics, so it's worth covering what each one means here.
Market orders
A market order tells the solver: fill me at the current market price, right now.
There's no shared order book, so a market order is still a quote sent to a solver. When you submit one, the frontend asks a solver (or a set of solvers it has whitelisted) to fill at the current oracle price. Solvers that accept respond almost immediately, and the position opens very close to the price your frontend showed you when you clicked.
Since the point of a market order is to get in immediately, the quote price carries some slippage so the entry is guaranteed. After you set your slippage tolerance, the frontend does the math: it takes the oracle price from Muon and shifts it slightly depending on whether you're going long or short. That shift covers the solver's spread plus any movement in the market. The trading fee on a market order is a fraction of oracle price * quantity.
Limit orders
A limit order tells the solver: fill me at this price or better, otherwise don't fill at all.
A limit order is a quote that sits in PENDING (for opens) or CLOSE_PENDING (for closes) until a solver chooses to fill it. Solvers watch for limit orders whose price has become reachable and fill them when the market gets there. If the market never reaches your price before the quote's deadline, the quote expires unfilled.
Limit orders can be partially filled. The price you pass is the exact price you want to enter at, and the trading fee is a fraction of requestedOpenPrice * quantity.
Closing a quote
Closing works the same way, with one difference: a market close must close the whole position, while a limit close can be partial. For a market close, you set your slippage and the frontend calculates the closePrice. The logic is inverted from an open: for longs the closePrice is decreased, and for shorts it's increased.
If your counterparty is unresponsive and a cooldown has passed, you can force close the position yourself. Force close works only on limit orders.
Quote data
When your frontend submits a quote, it can attach arbitrary data to it. That data is included in the event emitted when the quote is sent.
A frontend can use this field to link your on-chain position to extra off-chain information it shows in its UI, for example during campaigns.
Last updated

