> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sesameterminal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trading

# Trading

This page tells you how to place, move and cancel orders, how to use the price ladder, and
how to exit or hedge a position. To look up an order status or a reject message, see
[Order rules](order-rules.md). Back to the [guide index](index.md). Terms are explained in
the [glossary](glossary.md).

## In short

* A click on a price sends one limit order at exactly that price, for your stake. It is
  good till cancelled (GTC). The app never changes it to a market order. There is no
  confirmation.
* A buy at or above the best ask fills at once, as far as the asks allow. The rest stays
  on the book at your price. A buy below the ask stays on the book until someone sells to
  you.
* You need **Armed** to place or move orders. You can cancel at any time, also in **Safe**.
* A rejected order shows a red toast with the reason. The app never sends an order again
  for you.

## The basics

### Place an order from the board

1. Set your stake in the top bar.
2. Switch to **Armed**.
3. On **Live** or **Watchlist**, find the outcome.
4. Click the price under **Buy** to buy at the best ask. Click the price under **Sell** to
   sell at the best bid.

Before you click, hover the price to see what it sends: `Buy $1k → est. 5,000 sh @ 20¢`.
The share count is an estimate. The server calculates the exact size.

A sell sends your stake’s worth of shares, or your whole position if that is smaller. You
cannot sell an outcome that you do not hold: the tooltip of the button reads
`No position to sell`.

If the price button cannot send, its tooltip gives the reason, for example
`Safe: arm to trade` or `Below minimum size (5 sh; this is 2.5 sh)`.

### Place an order on the ladder

The ladder shows every price of one outcome, one row for each tick. To open a ladder:

* On **Live** or **Watchlist**, click a team or outcome name.
* In **Portfolio**, click a row. The ladder opens under the row. On a phone, tap the card.

<img src="https://mintcdn.com/dimsum-labs/XietQvgM6uXNXdeN/guides/user/images/ladder.png?fit=max&auto=format&n=XietQvgM6uXNXdeN&q=85&s=ba511fe3be12fefb8f562453b70dbe01" alt="A ladder: the position, Exit, Hedge and Cancel above the price rows, with the Hedge preview showing" width="432" height="820" data-path="guides/user/images/ladder.png" />

| Column | What it shows |
| - | - |
| **P\&L** | Your profit or loss if you sold your whole position at the price of that row. Blank when you hold nothing |
| **Bid** | Shares that wait to buy at that price, with a green bar for depth. Click a Bid cell to buy your stake at that price |
| **Price** | The price of the row, in cents. The best bid and best ask are bold. A small mark at the right edge shows the last trade |
| **Ask** | Shares that wait to sell at that price, with a red bar for depth. Click an Ask cell to sell your stake’s worth at that price |

Above the rows:

* The outcome names, to switch outcome, and the market name when there is space.
* Your position, such as `+150 sh @ 42¢`, and its P\&L, or `No position`.
* **Exit 21¢**, **Hedge** and **Cancel (N)**.
* The book status, `Book live` or `Stale 6s`, and the in-play delay, such as `3s delay`.

Below the rows: the stake (`Stake $1k`), the last trade price and the centre button. When
a game has two outcomes, the ladder shows the team abbreviations, with the full name in
the tooltip.

To place an order:

1. Switch to **Armed**.
2. Hover a cell. The tag next to the pointer shows what a click sends.
3. Click. The order goes when you press the mouse button, not when you release it.

Your orders show as chips at their price: green in the **Bid** column for buys, red in
the **Ask** column for sells, with the size that is still open. For the chip states, see
[Order statuses](order-rules.md#order-statuses).

The ladder does not move while your pointer is on it. Thus the price under the pointer is
the price you get. When the best price goes out of view, a pill such as `Best ask 26¢`
shows at the edge. Click it, or the centre button, to centre the ladder again.

### Cancel an order

| To cancel | Do this |
| - | - |
| Your orders at one price, on the ladder | Right-click the Bid or Ask cell that holds your chip (long-press on a phone). Right-click the Price cell to cancel both sides at that price |
| One order in **Orders** | Hover the row and click the X, or right-click the row |
| Every order in a market | Click **Cancel (N)** in the ladder header, or press `C` on the ladder. Or click **Cancel (N)** in the market’s heading in **Orders**, or the X and count at the end of a **Portfolio** row (`C` in **Portfolio**) |
| Every order in a game | Open the game’s menu on the board and click **Cancel orders in this game (N)**. Or press `C` on the board with the row cursor on the game |
| Every order | Click **Cancel all** in the top bar, or press `Ctrl Shift X` |

The buttons and right-click cancel in **Safe**, with trading off and while geoblocked. The
`C` keys need **Armed**, as every trading key does. Some controls stop while their data
is not live:

* While the book is stale, the ladder rows do not respond, so right-click does not cancel.
  Use **Cancel (N)** or **Cancel all**.
* While order updates are paused, the rows in **Orders** and in the dock are greyed and do
  not respond. Use **Cancel all**.

The result shows as a toast, such as `Cancelled 3 orders`. If a cancel fails, the toast
says so, such as `Cancelled 3 orders · 1 failed`, with the reason under it. An order that
filled before the cancel arrived is an example.

### Exit a position

**Exit** sells your whole position at once. It sells into the bids, from the best one
down, as far as needed. It does not go lower than the exit slippage limit: 5 ticks below
the best bid by default. It never sells more than you hold.

| Where | How |
| - | - |
| **Portfolio** | Hover the position and click **Exit 21¢**, or select the row and press `E`. The price is the lowest price the exit sells at |
| The dock’s **Positions** tab | Click **Exit 21¢** on the row |
| Ladder | Click **Exit 21¢** in the header, or press `F` |
| Command palette | Press `Ctrl K`, type `>`, then choose `Exit Boston Celtics`. See [Shortcuts](shortcuts.md#search-with-the-command-palette) |

If you have sells on the book in that outcome, Exit cancels them first, so that the same
shares are not offered two times. It cancels them only after the exit passes every check.
If the exit is refused, your sells stay. See
[Exit and your resting sells](#exit-and-your-resting-sells).

To not pay the spread, use **Join** instead. It puts a sell for the whole position at the
best ask and waits for a buyer. **Join** is on the **Portfolio** row, or press `J`.

### Hedge a position

In a market with two outcomes, **Hedge** locks in your profit or loss without a sale. It
buys the other outcome, so that both outcomes pay the same, whichever wins.

1. Switch to **Armed**.
2. Open the ladder of the outcome that you hold.
3. Hover **Hedge** in the ladder header. The tag shows what it sends and what it locks, for
   example `Buy 150 Denver Nuggets @ 26¢ · locks +$48.00`.
4. Click **Hedge**, or press `H`. On a phone, tap **More actions** in the ladder
   sheet, then tap **Hedge**.

The hedge goes out at the price that the tag showed, or better. If the asks moved and the
hedge would cost more, the app refuses it and buys nothing. You can have one hedge in a
market at a time. While one is on its way or on the book, **Hedge** shows
`Earlier hedge still open`.

## More options

### All ladder actions

On desktop:

| Do this | Result |
| - | - |
| Click a Bid cell | Buy your stake at that price |
| Click an Ask cell | Sell your stake’s worth at that price, up to your position |
| Shift-click an Ask cell | Sell your whole position at that price |
| Alt-click a Bid or Ask cell, or click the bell at the left of a row | Set a price alert at that price. This works in **Safe** |
| Drag your chip to another row | Move the order to that price. The tag reads `Move buy 50 → 19¢`. It adds `· fills now` if the new price fills at once |
| Click your chip | Select that order for `[`, `]` and `Delete` |
| Right-click a Bid or Ask cell with your orders | Cancel your orders on that side at that price |
| Right-click the Price cell with your orders | Cancel your orders on both sides at that price |
| Right-click any other cell | A menu: `Set alert at 20¢`, `Sell all at 20¢`, `Centre` |
| Click an outcome name at the top left | Switch to that outcome |
| Click the pin | Keep this ladder when you open another one. Docked ladders only |

With the keyboard, on a docked ladder or the ladder in the market view:

| Key | Result |
| - | - |
| `↑` `↓` | Move the cursor between rows. While the cursor is on the ladder, the ladder does not centre itself |
| `←` `→` | Move the cursor to the Bid or the Ask cell |
| `↵` | Do what a click on the cell under the cursor does (**Armed**) |
| `Alt ↵` | Set a price alert at the cursor’s row (works in **Safe**) |
| `Space` | Centre the ladder on the best prices |
| `Esc` | Clear the cursor |
| `B`, `S`, `F`, `H`, `C` | Buy, sell, exit, hedge, cancel. The full list is in [Shortcuts](shortcuts.md) |

On a wide screen, up to four ladders can be docked side by side. When you open another
one, it replaces the one that you used least recently, unless that one is pinned. If all
are pinned, a toast reads `All ladders pinned`.

On a phone, the ladder opens as a sheet:

| Do this | Result |
| - | - |
| Tap a cell | Buy or sell your stake at that price |
| Tap a cell that holds your order | Select it. A bar shows `−` and `+` (move one tick), **Add here** and **Cancel** |
| Long-press a cell that holds your orders | Cancel your orders on that side |
| Long-press any other cell | `Set alert at 20¢`, `Sell all at 20¢` |
| Tap **More actions** in the sheet header | **Hedge**, with its preview or the reason it is not available, and **Open market** |

The ladder on a phone does not centre itself. Tap the centre button.

### Move an order

Polymarket cannot change an order. Thus a move cancels the old order and places a new
one at the new price. The new order goes through every check again.

| Where | How |
| - | - |
| Ladder, desktop | Drag the chip to the new row. To stop, release on the same row or outside the ladder, or press `Esc` |
| Ladder, keyboard | `[` moves the selected order one tick down, `]` one tick up. With no order selected, they move your newest order in that outcome |
| **Orders**, and the ladder under a **Portfolio** row | Hover the row and click `−` or `+` beside the price |
| **Orders**, many at one time | Tick the rows, then click **−1 tick**, **+1 tick** or **Join best**. **Join best** moves each order to the best price on its side |
| Phone ladder | Tap the chip, then tap `−` or `+` |

If the cancel fails, the app places nothing new. A toast says why, such as
`Move failed · order not cancelled`. You cannot move an order during an in-play delay:
see [Sports markets](order-rules.md#sports-markets).

### Sell your whole position

| Way | Price |
| - | - |
| **Exit** (**Portfolio**, ladder header, `E`, `F`) | Sells into the bids, down to the exit price on the button |
| **Join** (**Portfolio**, `J`) | Stays at the best ask. Fills when a buyer comes |
| Shift-click an Ask cell, or `Sell all at 20¢` | Exactly the price you chose |

**The exit price.** Exit sells at the highest price at which the bids, from the best one
down, hold your whole position. It never goes lower than the best bid minus your exit
slippage (5 ticks by default). Example: you hold 150 sh, 100 sh are bid at 40¢ and 200 sh
at 39¢. Exit sells at 39¢. The first 100 sh fill at 40¢ and the rest at 39¢.

Sometimes the bids within the slippage limit cannot take the whole position. Then Exit
uses the lowest bid within the limit. The bids fill what they can, and the rest stays on
the book at that price. The **Exit** button then shows a warning icon, with the tooltip
`Bids within the slippage limit cover only part of the position; the rest rests at 37¢`.

Exit and Join never sell more than you hold. They are not held to the price band or to
some limits: see [The exact order rules](order-rules.md#the-exact-order-rules). The other
ways to sell (a **Sell** price, an Ask cell, Shift-click, `Sell all at`) are normal orders.

#### Exit and your resting sells

Exit and Join check the sell against every rule first. Only when it passes do they cancel
the resting sells of the outcome, and then send it.

| Case | What happens |
| - | - |
| The exit is refused | Nothing is cancelled. Your resting sells stay on the book |
| The exit passes | Your resting sells in that outcome are cancelled. Then the exit sells the position |
| A sell is in an in-play delay, or its cancel already waits | That sell stays. The exit sells only the shares that it does not hold. If it holds them all, the exit is refused with `no position to sell` |
| Polymarket does not confirm a cancel | The app does not send the exit: `Exit not sent · resting sell not cancelled`. That sell could still sell its shares. The sells whose cancel Polymarket confirmed stay cancelled |

### How Hedge works

| Part | How it works |
| - | - |
| What it buys | The other outcome of a market with two outcomes |
| Size | What you hold, less your sells of it on the book, less all that already works toward the other outcome: what you hold of it, your open buys of it, and fills not yet in your positions. Rounded down to 0.01 sh |
| Price | The lowest ask that fills the whole size, no further from the best ask than your price band |
| Preview | `Buy 150 Denver Nuggets @ 26¢ · locks +$48.00`. If the asks within the band cannot fill it all, the preview adds `· part rests`. The rest stays on the book at that price |
| Price cap | The click sends the price of the preview as a cap. If the price at send time is higher, the app refuses the hedge: `hedge price 27¢ above 26¢ shown` |
| One at a time | While an earlier hedge in the market is on its way, in a check or on the book, the app refuses a new one: `earlier hedge still open` |
| Positions | The size comes from your positions as last read. If the app did not read them in the last 2 minutes, it refuses the hedge: `positions unavailable` |
| Locked P\&L | What either outcome then pays, less all that you paid, with your open buys of the other outcome at their prices. Fees are not included |
| Needs | **Armed**. Every risk limit applies, as for any buy |

**Hedge** is greyed when it cannot send. Hover it for the reason. On a phone, the reason is
the line under **Hedge** in the **More actions** sheet.

| Reason | Meaning |
| - | - |
| `Two-outcome markets only` | The market has more than two outcomes |
| `No position` | You hold nothing in this outcome |
| `Safe: arm to trade`, `Trading off · …`, `Market closed`, `Stale` | The usual trading checks |
| `Earlier hedge still open` | A hedge in this market is still on its way or on the book |
| `Already hedged` | Both outcomes already pay the same, with the orders that are open or on their way |
| `Hedge is below the market minimum size` | The size needed is too small to place |
| `Other outcome’s book is stale` | The prices of the other outcome stopped updating |
| `No asks on the other outcome` | Nobody sells the other outcome |
| `No hedge price yet` | The app is still calculating the price |

When you are **Armed** and press `H` while **Hedge** is greyed, a toast gives the reason:
`Hedge not sent · …`.

### What blocks an order

The server checks every order, whatever the screen shows. An order is refused if:

* Trading is off, the location is geoblocked, the account does not work, or the clock is
  wrong.
* The switch is on **Safe**, or activity outside the app paused trading.
* The market is closed, or the price or size breaks the market’s rules.
* The book is stale, or the price is outside the price band.
* It would pass one of your [risk limits](settings.md#change-a-risk-limit).

Cancels are never blocked. For each rule and each reject message, see
[Order rules](order-rules.md): [Reject messages](order-rules.md#reject-messages) and
[The exact order rules](order-rules.md#the-exact-order-rules).

## Good to know

* Two clicks on the same price within 350 ms place one order, not two.
* A click while the previous order at that price is still on its way does nothing. A line
  shows along the bottom of the price button, and its tooltip reads `Sending`.
* Positions, P\&L and liquidation value change only when a fill arrives.
* A moved order is a new order with a new id. If the cancel of the old one fails, the app
  places nothing new.
* When a message names a wait, wait at least that long before you click again.
* The app sees only the orders it placed with your Session Key. Orders that you place on
  polymarket.com do not show here, and a trade there switches the app to **Safe**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.