The Trades page and exit reasons

Updated:

The Trades page (the "Trades" menu item) shows everything the bots entered, together with fees and funding. Below is what each column, each status and each exit reason means, so you can read a result and not confuse "cancelled" with a loss.

Summary at the top

  • Trades: the number of rows under the current filter.
  • Net result: the sum of results in USDT.
  • Fees: exchange fees paid.
  • Funding: the sum of charges for holding positions (can be positive or negative).

You can switch the view between "List" and "Chart": the chart shows the cumulative result of closed trades.

List columns

Column What it is
Opened When the trade was created (the time of the entry order), in your time zone.
Closed When the trade ended; a dash for one that is still open.
Coin The pair; a click opens its page on Binance.
Bot Which bot opened the trade.
Status The stage of the trade (see below).
Entry The entry price.
Exit The exit price. Details of individual fills (take-profits, stop) are visible in the Reason column.
Reason How the trade ended or what was happening.
Fees Fees paid, in USDT.
Funding The charge for holding, in USDT.
Net The trade's total, available after closing.

"Net" is calculated like this: realized result minus fees plus funding. The service takes the numbers the exchange reports for executed trades rather than working them out from its own assumptions, so they should match your Binance statement.

Statuses

  • awaiting entry: the limit order has been placed and is waiting.
  • in trade · placing protection: the order filled, and the protective orders are still being placed.
  • open: the position is open and protected.
  • closed: the trade is finished.
  • cancelled: there was no trade. The order did not fill because the time ran out, or the daily loss limit cancelled it.
  • failed: the trade never got as far as being executed.

The filter above the list has the same items: "Any status", "awaiting entry", "in trade · placing protection", "open", "closed", "cancelled", "failed". There are also filters by coin, bot, result ("Profitable" and "Losing") and "from" and "to" dates.

Exit reasons

The Reason column shows either a chain of real fills ("take-profit 1 (price) → take-profit 2 (price) → stop (price)") or, if there is none, one of these reasons:

Reason on the page What happened
all take-profits All the take-profits filled, and the position closed at a profit on each part.
stop-loss The original stop triggered before any take profit filled. This is a loss.
partial take-profit, then stop A take profit closed part of the position and the stop closed the rest. The total can be positive or negative.
stop at breakeven The stop had been moved to breakeven after a take profit and then triggered: see how a breakeven stop loss works.
cancelled on timeout The entry order did not fill in the set time. There was no position.
cancelled - daily loss limit The order was cancelled because the bot was switched off by the daily loss limit.
closed at market - could not protect The position was opened but the stop and take-profits could not be placed (or could no longer be placed). The bot closed it at market instead of holding it unprotected.
forced Closed outside the plan: for example by hand or by the emergency switch.
closed while the daemon was down The position closed while the service's background program (the scanner) was not running. After it started, the service wrote the trade up from the exchange's data.

In Telegram messages the same reasons read "all take-profits", "breakeven", "stop", "stop after a take-profit", "forced close" and "could not protect - closed at market". More about recovery is in how a trading bot protects a position.

If the closing event gets lost on the way, the service rebuilds it from the exchange's history, so there is a real exit price and the true reason instead of an empty row.

The row menu

The "Sync trade" item asks the service to re-check the trade against the exchange. A message "Syncing with the exchange..." appears at the top and the page refreshes itself. It is useful if you closed a position by hand on Binance or the data looks out of date.

Unassigned positions

If the exchange has a position the service does not know about (for example one opened by hand or during a failure), an "Unassigned positions" block appears at the top of the page. For each one you see the coin, size, entry price and a mark: "emergency stop in place" or "NO STOP". Without a bot, such a position has no take-profits or breakeven. Pick a bot from the list and press "Assign": the position gets that bot's plan.

The "NO STOP" mark means the position is open without protection. Check it on the exchange immediately.

Daily loss limit

If the bots were switched off by the daily loss limit, a red block at the top of the page shows the reason and the loss amount. The day's total is counted from midnight UTC and includes closed trades only.

How to read the result honestly

  • Look at "Net", not only at "Exit": fees and funding can change the sign of a result.
  • Do not count "cancelled" as a loss or a profit: it is the absence of a trade.
  • Do not draw conclusions from a few trades. Runs of stops and runs of take-profits happen even with settings that would come out around zero over a long run.
  • Past trades do not guarantee future ones. Trading futures with leverage is risky.

Compare this page with the backtest: the metrics, of which there are many there, are described in backtest metrics explained.

Frequently asked questions

What does "cancelled" mean in the trade list?

The entry order did not fill: either the waiting time ran out or the daily loss limit switched the bot off. There was no position, so there is no result.

Why does a trade show "stop at breakeven" and a result that is not zero?

Because before the breakeven stop hit, part of the position had already been closed by take-profits at a profit, and there are fees, funding and slippage. Zero is expected only on the remainder, and only roughly.

What is "Net" on the Trades page?

It is the result of the trade after fees and including funding: realized result minus fees plus funding. The service takes these numbers from the exchange's own data.

What should I do with "Unassigned positions"?

These are positions that exist on the exchange but the service does not know which bot they belong to. Assign each to a bot with the "Assign" button so it gets a plan, take-profits and breakeven.

Read also