Bitget now rejects set_position_mode for copy-trading accounts (error 40731) — bot can no longer start on lead trader accounts
Describe your environment
- Operating system: Docker/linux, macOS
- Python Version: 3.13.3
- CCXT version: ccxt==4.5.68
- Freqtrade Version: 2026.7
Describe the enhancement
I run a live freqtrade futures bot on a Bitget account that is enrolled in copy trading as an elite (lead) trader, so that followers copy the bot's trades.
This setup worked fine until a few days ago. The bot started and traded normally on this same copy-trading account — the set_position_mode(False) call in Bitget.additional_exchange_init() went through without errors. Since around September 16-17, 2026, Bitget rejects that call with:
Error in additional_exchange_init due to ExchangeError. Message: bitget {"code":"40731","msg":"This product does not support copy trading","requestTime":...,"data":null}". Giving up.Nothing changed on my side — no freqtrade, ccxt or config updates between the last successful start and the failing one. The position mode toggle is now also greyed out in the Bitget web UI for this account (locked to hedge mode), so this appears to be a policy change on Bitget's side: copy-trading accounts are now forced into hedge mode and can no longer be switched to one-way. As a result, freqtrade cannot start on such accounts at all, and there is no config option to work around it.
My request: support running on accounts where the exchange enforces hedge mode. As far as I understand, this would mean:
- A config option to skip forcing one-way mode on startup (or tolerate the exchange rejecting the switch).
- Sending the appropriate order parameters in hedge mode — on Bitget that is
tradeSide: open/closeinstead ofreduceOnly— so entries open a position on the correct side and exits actually close it instead of opening an opposite position.
Since freqtrade holds at most one position per pair anyway (no simultaneous long+short), the bot's internal netting logic wouldn't need to change — it would only need to translate its entries/exits into hedge-mode order parameters for this exchange.
Use case: running a strategy as a copy-trading lead trader is a common way to monetize a strategy, and Bitget explicitly supports API trading for elite traders. Until this recent change, freqtrade worked for this out of the box; now existing live setups are broken. The only current workaround is an external order-mirroring script from a separate one-way subaccount, which adds latency and slippage for followers.
I'm aware hedge mode has been discussed before and full dual-side position support is out of scope. This request is intentionally narrower: keep the one-position-per-pair model, just make order placement compatible with an account that the exchange refuses to switch to one-way mode.
Source: freqtrade/freqtrade