Binance Closed a Profitable Position Without the Client's Consent

Photo - Binance Closed a Profitable Position Without the Client's Consent
A malfunction in the futures segment of Binance on December 4 led to an unexpected issue for a user, as his profitable trades were closed without his consent.
A Binance user reported an issue where his long futures position in the BTC/USDT pair was closed earlier than intended, not reaching the profit level set in the order.

 Background Story

On December 4, 2023, a Binance trader known as "KhaskiFox" engaged in trading the BTC/USDT pair, employing his own trading strategy. He described his approach as a series of long-position trades, aimed at capitalizing on at least one profitable outcome.

“I saw an upward trend in BTC and decided to go for long positions. My strategy involved placing consecutive trades, anticipating that if one closed due to the price hitting the stop-loss, the next one would activate and reach its profit goals,” KhaskiFox shared with GN Crypto.

On December 5, 2023, at 09:45 UTC, KhaskiFox placed several limit orders:

  • One at $41,645.2 with a stop order at $41,552.
  • Another at $41,449 with a stop order at $41,439.1.
  • A third at $41,435.2 with a stop order at $41,298.2.

The volume of the first order was 0.006 BTC, while the second and third orders were 0.007 BTC each.  

The potential Risk/Reward (RR) ratio for each trade was above 4, meaning for a 1% risk on each trade, he could potentially gain 4%.
Limit orders in the BTC/USDT pair. Source: tradingview.com

Limit orders in the BTC/USDT pair. Source: tradingview.com

At 09:55 UTC, the BTC price in the futures pair dipped to $41,538.2. At this point, KhaskiFox's second trade was expected to open. Contrarily, he discovered no open positions and, upon inspecting his order history, realized that his second trade had been unexpectedly closed, even though the stop-loss price hadn't been reached.

Subsequently, within the next hour, BTC rose to $42,000, coinciding with the take-profit level of KhaskiFox's second order, which was specifically set at $41,889.
BTC

BTC's rise to the set targets of the second order. Source: tradingview.com

Technical Glitch or Trader's Oversight?

It's surprising that after opening and closing a position to buy 0.007 BTC, the take-profit and stop-loss orders for this trade remained in the trader's account. Typically, such orders are removed once the related trade is closed and ceases to exist.

In the trading history, this particular deal was marked as "activated," but it was unexpectedly closed by the stop order of the previous trade.
Screenshot of the take-profit and stop-loss for the activated order. Source: binance.com

Screenshot of the take-profit and stop-loss for the activated order. Source: binance.com

This scenario seems paradoxical: the stop order for a trade was triggered before the trade itself was executed. A Binance support representative later clarified that in the order history, trades are listed by the date they were placed, not by activation time. The real-time execution of orders can be checked under "Order Details" by viewing the "Update Time." It was confirmed that the stop-loss was indeed activated 2 minutes after the order itself.

Still, several questions linger unanswered:

  • Why was the order at $41,449 activated before the stop order at $41,552, despite the asset's price descending?
  • Why was the second position closed by the stop order of the first, despite having its own stop order?
  • Why did the take-profit and stop-loss orders for the second trade not disappear from the account after the trade's closure?

These unresolved queries led the user to seek further assistance from Binance's customer support.

Explanation from Binance Customer Support

The trader's communication with Binance's support team spanned nearly a full day. During this period, the third order was also triggered and closed in a similar fashion. However, this time, the trader himself made an error by failing to cancel the stop-loss for the second trade, which consequently led to the closing of the third trade. All unexecuted orders related to these trades later disappeared from the personal account, being labeled as "Expired" in the order history.
User

User's trading orders labeled as "Expired." Source: binance.com

In their response, the support team clarified that the second order was activated before the stop order of the first trade due to the mechanics of "Mark Price." This situation resulted from low liquidity in the trading pair, and choosing "Last Price" instead would have likely prevented this issue.
Binance support

Binance support's clarification on "Mark Price" mechanics. Source: binance.com

Regarding the query about the second trade closing at a price that didn't reach its stop order level, the support representative explained:

“You can’t open two trades on one pair. The volumes of such trades are cumulatively added, resulting in only one consolidated trade in the terminal. When setting a stop-market order with the option to 'close 100% of the trade,' the stop orders are combined. Thus, the initiation of the second order increased the total position to 0.013 BTC, which was then entirely closed by the stop order.”
Binance support

Binance support's explanation of the situation. Source: binance.com

Therefore, the stop order automatically increased the trade volume to 0.013 BTC and closed it entirely, not just the initial 0.006 BTC volume of the first order. The trader's session with Binance's support ended with these clarifications, leaving some room for questions about the accuracy of the explanations.

A Trading Experiment to Validate Futures Functionality

The next day, the user embarked on an experiment to test whether a stop order would indeed enlarge to encompass the entire volume of a trade if two orders were executed. For this, he placed two long BTC positions, each with a volume of 0.003 BTC, and pre-set a stop order for each position. 

Had the Binance support representative's claims been accurate, the activation of both orders would have increased the total trade volume to 0.006 BTC, and the first stop order would have adjusted to 0.006 BTC as well (since the trader set a limit order for 100% of the order amount).

Contrary to this expectation, the results were different: after both orders were activated, there remained two separate stop orders of 0.003 BTC each in the futures account. Each was supposed to close its respective half of the trade at the designated price. When the asset price hit the stop order level, only one part of the position was closed, leaving the other stop order still active.

This finding implies that the Binance support representative either intentionally or unintentionally downplayed a technical flaw within the exchange's system.
The experiment

The experiment's trading data on Binance. Source: binance.com

How to Avoid Falling Prey to Futures Manipulations?

Regrettably, such incidents are not rare on some cryptocurrency exchanges. Proving a technical fault or an error on the platform's part is almost impossible, as the orders aren't recorded on the blockchain, and the platform can modify data to suit its interests.

Therefore, recovering losses caused by issues in trading platforms is almost unfeasible. The legal regulation of crypto exchanges is not yet robust enough to hold centralized crypto services accountable. However, there are some practical tips to minimize these risks:

  • In short-term trades, prefer using the "Last Price" as the trigger instead of the "Mark Price."
  • Be cautious about placing stop orders too close to your other trading positions.
  • Opt for a "stop-limit" order rather than a "stop-market" order for better control.