Market vs. Limit Orders

Sending a Quote

Every trade on Symmio begins as a quote, which is your request to open (or close) a position at a particular price, against a particular set of solvers.

There are two order types: market and limit. This page covers what each one means on Symmio specifically, because the peer-to-peer model gives them slightly different mechanics than you'd see on a typical order book exchange.

Market Orders

A MARKET order tells the solver: "fill me at whatever the current market price is, right now".

On Symmio, a market order is still a quote sent to a solver; there's no shared order book. When you submit a market order, the frontend asks a solver (or a set of solvers they've whitelisted) to fill it at the current oracle price. Solvers that agree respond almost immediately, and the position opens at a price very close to the one your frontend showed you when you clicked the button. Because the intent with a market order is for the trader to enter a position immediately, the quote price is sent with some slippage, guaranteeing his entry. The frontend will handle the slippage calculation after the user sets his tolerance, which involves taking the oracle price from Muon and shifting it slightly depending on the position type (long or short). The shift accounts for the solver’s spread as well as any fluctuations in market price For market orders the trading fee is calculated as a fraction of the oracle price * quantity.

Limit Orders

A limit order tells the solver: "fill me at this specific price or better, or don't fill me at all".

On Symmio, a limit order is a quote that sits in PENDING (for opens) or CLOSE_PENDING (for closes) until a solver decides to fill it. Solvers watch for limit orders whose price becomes reachable and fill them when the market gets there. If the market never reaches your price before the quote's deadline, it expires unfilled.

Limit orders can be partially filled. The price passed is the exact price the trader wants to enter a position at, and the trading fee is calculated as a fraction of requestedOpenPrice * quantity.

Closing a Quote

Similar to opening a quote, a market order must be fully closed, whereas a limit order can be partially closed. The same logic for market orders applies for closes: The user will set his slippage, and the frontend will calculate the appropriate closePrice. Here the logic is inverted, for long positions the closePrice is decreased; for shorts it’s increased.

The trader can initiate a force close if the counterparty is unresponsive, and a sufficient cooldown period has passed. Force closes can only be performed on Limit orders.

Quote Data

When your frontend submits a quote, it can optionally attach some arbitrary data to it. That data is included in the event emitted when the quote is sent.

circle-info

The frontend you use may use this data it to link your on-chain position to extra off-chain information it shows you in its UI. (for example when running campaigns)

Last updated