Post-only (maker-only) order: entering without filling against the market

Updated:

The maker-only order setting (technically post-only) makes the Snapback bot open a short only with a limit order that goes onto the order book rather than filling at once against current offers. If the order would fill straight away at the market, the exchange rejects it.

What it means in plain words

There are two kinds of participants on an exchange. One who places an order and waits for their price is called a maker (they add liquidity). One who immediately takes someone else's order is called a taker. A maker usually pays a lower fee. Post-only makes the bot's entry happen as a maker for certain.

Why it exists

Two consequences. First, the bot will not accidentally open a short at a worse price if the market jumped or fell between the calculation and the order being placed. Second, the entry fee matches what the calculations assume: backtest calculations use a maker fee of 3.6 basis points (0.036%) for entry, while live trades use the actual fee reported by the exchange.

How it works in the code

When creating the entry order, the bot sends the exchange the order type "limit, sell" and a time-in-force mode: GTX (post-only) if the setting is on, or GTC (a normal limit order that may fill against the market) if it is off. The exchange itself rejects a GTX order that would cross the market. The order price is set by the entry mode.

For a short, the sell order sits above the market, so in the normal case it goes onto the book anyway. Post-only matters for unusual situations, when the market managed to reach the order level before the order reached the exchange.

Allowed values and defaults

Yes or no. On by default. The bot wizard has no separate switch, so the setting is on for every bot created there.

What changes when it is on or off

On: entry only as a maker with a lower fee, but an order that would cross the market is rejected, and the trade may not open. Off (through configuration only): the order may fill at once at the market with a higher fee, but there are no rejections for crossing the market.

What exactly the bot does after an order is rejected is not spelled out in the code at this point, so we do not describe that behavior.

How it connects to other settings

Common mistakes

  • Thinking post-only guarantees a fill. It guarantees only the way an order may fill, not that it will.
  • Mixing up maker with a type of risk: it is about order mechanics and fees, not about the safety of the trade.
  • Looking for a switch in the wizard: there is none.

Where to find it in the bot wizard

The wizard has no separate field for it. The setting belongs to the logic of the "How we enter" block (entering with a limit order), but it can be changed only in the bot's configuration, not on the "New bot" form.

Frequently asked questions

What is a post-only order?

It is a limit order that the exchange accepts only if it goes onto the order book and waits. If it would fill immediately against existing offers, the exchange rejects it.

What are maker and taker?

A maker adds an order to the book and waits. A taker takes an order that is already there and usually pays a higher fee. Post-only guarantees you are the maker.

Can I turn off post-only in the bot wizard?

The current wizard has no field for it. The setting exists in the configuration, and bots created through the wizard use the default, which is on.

Why does a short on a pump need this?

The order sits above the market, so it has to go onto the book anyway. The setting is only insurance so the entry never turns into a market order.

Read also