Advanced Orders FAQ
How are the Limit Orders filled?
Limit Orders are taker orders that are filled either against the AMM or peer-to-peer against a resting maker order, whichever the protocol determines gives the best execution. The orders are stored and settled on-chain. The queue is constructed by a network of off-chain keepers that are incentivised to fill orders based on age.
Is there a charge for placing an order? Is that charged in SOL or USDT?
Network fees aside, there is no additional SOL charge for placing an order. The taker fee is charged in USDT and is only applied if the trade is filled. If a trade is only partially filled, the fee charged will be for the notional amount filled.
Is there a charge for cancelling an order? Is that charged in SOL or USDT?
No - if you cancel an open order, you will not be charged by the protocol. Fees are only charged on filled orders.
Is my order guaranteed to execute?
These orders are executed ‘best effort’ by the network with special economic incentives designed to mimic the typical execution order seen in a Centralised Limit Order Book (CLOB).
What are conditional limit orders?
Conditional limit orders are stored on-chain in your account’s order slots from the moment you place them. They stay dormant until a keeper calls the trigger instruction once the trigger reference price crosses the price you set, at which point the order becomes fillable, either against the AMM or against a resting maker order.
What is the difference between a Stop Market and a Stop Limit?
See Trigger Market vs. Trigger Limit for how the two activate and fill.
What is the difference between Take Profit Market and Take Profit Limit?
The difference is in the way these orders are settled. Take Profit Market orders are immediately sold on market upon hitting their trigger price. On the other hand, Take Profit Limit orders are not sold immediately but are partially filled as limit orders. The subsequent limit orders don’t need to have the same target price as their trigger price.
What is the difference between a Stop Loss and a Take Profit?
Both order types are set on the market when their triggers are met. Where the two orders differ is in their direction. Stop Losses are used for downside protection to close losing positions and Take Profits are used to close positions that are in profit.
Why my stop loss didn’t trigger?
For trigger orders (stop-loss, take-profit), the trigger condition is checked against the oracle price. Once triggered, the order still fills at a maker’s limit price or against the AMM, not against the oracle, so a plain limit order does not need the oracle price to cross anything to fill. For precise historical price data based on the oracle, we recommend switching from ‘Candles: Fills’ to ‘Candles: Oracle’ in the top right corner of the chart.
Even if the oracle price triggers your stop, executions are not guaranteed due to the decentralized orderbook. Fillers can place orders in a permissionless manner, operating on a first-come, first-served basis.
If the price briefly matches your order, it may not be executed. We are continually enhancing our filler network. For technically inclined individuals seeking guaranteed fills, you can operate your own filler for personal orders; however, even then, execution cannot be assured. This trade-off is necessary to achieve a decentralized and scalable system.
Occasionally, stale oracle information may result in unfilled orders during certain periods.
Why did my take profit order not work?
Take profit orders on Velocity use the oracle price, not the mark price. This means the order is triggered based on a fair market price from the market’s configured oracle (Pyth Lazer by default) instead of the current trading price on the exchange. You can switch between the oracle and mark price view on the chart for better understanding.
My stop-loss order didn’t trigger, and the price went up. Why did I lose money?
Similar to the take profit scenario, stop-loss orders are also triggered based on the oracle price. If the oracle price briefly touched your stop-loss level and then bounced back, your order might have been executed even though the market price never reached that level.
What is the difference between a trigger price and a limit price?
-
Trigger price: This price point determines when your order (take profit or stop-loss) gets activated. It uses the oracle price for execution.
-
Limit price: This price specifies the exact price at which your order gets filled. It can be used with stop-loss and take-profit orders to guarantee execution at a specific price, but comes with potential slippage (filling at a slightly different price) and fees.
What does trigger price mean?
Trigger price refers to the price the particular asset needs to hit before the limit order can be executed (against the AMM or against a resting maker order) by a Keeper.
Why is the orderbook constructed off-chain?
Velocity doesn’t construct a central limit orderbook on-chain and instead opts for a flat structure to achieve cost-effective scalability. The network of Keepers monitor on-chain orders and construct their own orderbooks off-chain. This achieves (1) decentralisation (as each Keeper stores its own copy of the orderbook); and (2) computational efficiency (as the high throughput and intensive computations are calculated off-chain).
Theoretically, this should also translate to better performance during periods of high network congestion.
What is reduce-only?
See Order flags for the reduce-only definition.
What are Keeper bots? How can I participate?
A Keeper will track and fill orders and earn a reward. Guide to running different types of Keeper Bots.