# An order did not fill, or only part filled

> Why a marketable limit can miss or part-fill in a fast book, what happens to the rest in SIM and LIVE, and how to clear a stuck exit or a stop exit.

Source: https://scalpeltrade.com/guides/fix-order-not-filled
Guide 13.6, Troubleshooting. Beginner, 4 min read.
Checked with Scalpel 1.12.8 on 2026-10-15. By Scalpel Team.

**In short:**

Scalpel never sends market orders: every order is a marketable limit, priced a few cents through the market (a buy at the ask plus your 10-cent **Buy offset**). If the price runs past that limit before the order lands, part or all of it waits. In LIVE the rest of a buy keeps working until it fills or you cancel it with `Ctrl`+`Q`. A stop exit that does not fill is re-priced by Scalpel itself, and **Flatten All** (`Esc`) replaces any stuck sell with one order about 1% through the bid.

A partial fill is not an error. It is the price of using limits, which is what protects you from a terrible fill in a thin book, and what lets you trade at all before the open.

## Why limits, not market orders

Before 09:30 ET, US exchanges accept limit orders only. A market order, or a plain stop that turns into one, cannot trade in the pre-market, which is where momentum scalpers do much of their work. So every Scalpel order carries a limit price, set a little through the market so it normally fills at once:

| Order | Limit price (defaults) |
|---|---|
| Buy keys (`Shift`+`1` to `4`) | The ask plus **Buy offset** (10c) |
| Sell full, half, quarter at the bid | The bid minus **Sell offset** (10c) |
| Sell half at the ask or the mid | The ask or the mid: in LIVE it waits for a buyer to come to it |
| **Flatten All** (`Esc`) in LIVE | About 1% under the bid, to clear in one press |
| A stop or take-profit firing in LIVE | 5 cents under the last trade, then about 1% under it if it has to be re-priced |

The order fills at the best prices available up to its limit, often better than the limit. It never fills worse. Offsets are in **Settings** > **Trading** ([guide 11.2](https://scalpeltrade.com/guides/settings-trading)).

## An order did not fill, or only part filled

The desk's **Orders** tab shows **Partial** in amber for an order that is part filled and still working, with the average fill so far.

*Screenshot: A 1,000-share buy, part filled at 5.74 and still working at its limit. Demo data.*

**In LIVE**, the unfilled shares stay working at Interactive Brokers at your limit. Your stop is armed on the shares you hold. Then either:

- let it work, if the price may come back to your limit; or
- press `Ctrl`+`Q` (**Cancel all orders**, `Shift`+`Q` on a Mac) on that desk to cancel what is left.

If you sell out instead, you do not need to cancel first: **Sell Full**, **Flatten** and **Flatten All** cancel a working buy on that stock before they sell, so a part-filled buy cannot keep adding shares after you are out.

**In SIM**, the buy fills against the displayed book up to your limit. The rest rests at your limit and fills from later prints on the tape, the way a real resting order would. `Ctrl`+`Q`, any sell, or a stop-out cancels it. If nothing at all can fill within the limit, SIM refuses the order with **No liquidity for ABCD** ([guide 6.1](https://scalpeltrade.com/guides/paper-trading-sim)).

Fills keep missing? Raise the **Buy offset** for fast stocks. A wider offset fills more often and can fill worse; your share count is worked out before the order goes, so the risk stays the same.

## A buy does not fill before the open

Check **Settings** > **Trading** > **Extended-hours fills**. It is on by default. Off, Scalpel's LIVE buys are regular-hours only: Interactive Brokers holds them until 09:30. The setting only affects entries: every LIVE sell (stops, targets, scale-outs and Flatten) is always flagged for extended hours, so your exits work in the pre-market either way.

If the market is fully closed (overnight or at the weekend), the order bar is greyed out and buys wait for the session ([guide 13.13](https://scalpeltrade.com/guides/fix-order-bar-greyed-out)).

## A sell did not fill

A sell at your own price (such as **1/2 Ask** or **Mid**) keeps working at that price until buyers come up to it. You do not have to cancel it to get out: press another sell key, or **Flatten All**, and Scalpel cancels the working sell and sends one order for everything you still hold, at the lower of the two prices. It never sells more shares than you hold.

### 1. Press Flatten All

Press `Esc` or click **Flatten All** in the header. In LIVE it prices about 1% under the bid, so the whole position normally clears in one press. It flattens every desk that holds a position, not just this one.

### 2. Check the Orders tab

The old sell shows **Cancelled** and the new one **Filled**. Still **Working**? The bid has dropped away: press `Esc` again, or work it in TWS.

In SIM, a full exit at the bid that only part fills retries by itself as new bids arrive.

## A stop fired but did not fill

Scalpel watches your stop itself. When a trade prints through it, Scalpel sends a sell limit 5 cents under that last trade, flagged for extended hours so it is accepted pre-market. In a fast drop the price can fall through that limit before the order fills. In LIVE, Scalpel keeps working that exit for you:

- if the price falls below the exit's limit, or the exit sits unfilled for 5 seconds, Scalpel cancels it and sends a new one under the latest price, about 1% through from the first retry;
- each replacement is for the shares you still hold, so a part fill is never sold twice;
- after 5 re-prices it stops, leaves the last order working and warns you: "ABCD: exit still not filled after 5 re-prices. Check it in TWS". Press `Esc`, or manage the position in TWS.

Take-profit and catastrophe exits are worked the same way. In SIM, a stop-out fills at the price that crossed the stop or the bid, whichever is worse, less your SIM slippage. Why stops work this way, and what that means before the open, is in [guide 5.5](https://scalpeltrade.com/guides/premarket-stops) and [guide 5.1](https://scalpeltrade.com/guides/how-stops-work).

**This can cost you money.**

No stop guarantees a fill or a price. A gap or a fast drop can cost more than your planned risk, and an exit can be left unfilled. Size so that two or three times your risk is survivable, and keep a daily loss limit ([guide 7.1](https://scalpeltrade.com/guides/daily-loss-limit)).

## Questions

**Why did my order only partly fill?**

Scalpel sends limit orders priced a few cents through the market. If the price moved past the limit before the order arrived, only the shares available at or better than the limit filled. In LIVE the rest keeps working until it fills or you cancel it with Ctrl+Q.

**Does Scalpel use market orders?**

No. Pre-market, US exchanges accept limit orders only, so every Scalpel order is a marketable limit. Flatten All in LIVE prices about 1% under the bid so it clears in one press.

**How do I cancel the rest of a partial fill?**

Focus the desk and press Ctrl+Q (Cancel all orders). It cancels every working order on that desk's symbol.

**What happens if I press sell while a sell is already working?**

Scalpel cancels the working sell and sends one order for everything you still hold, at the lower of the two prices. It never sells more shares than you hold, so you do not need to cancel first.

**Are app stops guaranteed to fill?**

No. The exit is a limit 5 cents under the last trade. In LIVE, Scalpel re-prices it up to 5 times, about 1% through, if it does not fill. In a fast drop it can still fill well below your stop, so press Esc or check TWS if you are warned.
