Settings
All 25 copy-trading settings keys — what reads each one, what breaks if you get it wrong, which value an unset key falls back to, and the six keys that are stored and displayed but never enforced.
The screen at /admin/copy-trading/settings has five tabs. Every field writes a
row into the platform settings table through the core settings endpoint, so this
page is governed by the core settings permission, not edit.copy_trading.
Values come back as strings. A boolean is off only when the stored value is the
literal string "false"; anything else parses as on.
More importantly, an unset key falls back to the value the engine defaults to, not to the value the screen displays. Those two disagree for the three leader track-record thresholds, so the first time anyone presses Save on this screen, requirements that were never in force can start being enforced. Read the leader tab before you save it for the first time.
Platform
The master switch is the one to reach for in an incident. It stops new subscriptions, new applications and the backstop's whole run in one move, without touching money already committed. It does not cancel open copies — use the per-subscription force stop for that.
Leaders
When the setting rows have never been written, the engine treats all three as no requirement — any user may apply, and the administrator is the real gate. The screen presents 10 trades, 50% and 30 days as its own defaults.
Combined with Auto Approve Leaders, an install where those rows were never written makes every applicant an active leader with no review at all. Decide the thresholds before you switch auto-approve on.
Followers
Trading
The two class switches are real kill switches. Turning spot off stops live replication as well as new setup — the backstop checks it once per run and leaves pending rows untouched for when you turn it back on, rather than burning through them.
Binary is gated twice on purpose. If platform-wide binary trading is off, the binary engine would reject a copied order anyway, so the copy layer blocks it up front with a message naming the real reason.
Risk
The daily trade-count ceiling in the copy engine is read from this key. With
its shipped value of 20, every follower is refused further copies once they have
20 trades on the day, with the reason "Daily trade limit reached".
If you intend high-frequency leaders to be copyable, raise it. If you were using it
as a loss percentage, note that the per-subscription maxDailyLoss field is what
actually pauses a follower for losses, and it is compared against a USDT amount
of realised loss, not a percentage.
The six keys that are stored but never enforced
All six are saved, read into the settings object and — in two cases — sent to the user dashboard for display. No code path refuses anything because of them. They are listed here so you do not rely on one as a control.
| Key | What an operator reasonably expects | What actually happens |
|---|---|---|
copyTradingMaxProfitSharePercent |
Caps what a leader may charge | The ceiling is hard-coded at 50% in the request validator |
copyTradingMinAllocationAmount |
A floor on a follower's allocation | Sent to the dashboard for display. The binding floor is the leader's per-market minBase / minQuote |
copyTradingMaxAllocationPercent |
A ceiling on allocation per leader | Sent to the dashboard for display only |
copyTradingMaxCopyLatencyMs |
Refuses or alerts on slow copies | Latency is measured and reported on the health page; nothing compares it to this |
copyTradingEnableMarketOrders / copyTradingEnableLimitOrders |
Restricts which order types are copied | Both order types are always copied |
copyTradingEnableAutoRetry / copyTradingMaxRetryAttempts |
Tunes retry behaviour | Retry counts are fixed constants — three in the live queue, three per follower and five per leader trade in the backstop |
copyTradingLeaderApplicationRateLimit |
Applications allowed per user per day | The enforced limit is a fixed three per 24 hours |
copyTradingMaxPositionDefault |
The default position cap on new subscriptions | Not read anywhere. The follow form uses its own default of 20 |
To actually restrict what a leader may charge, or how much a follower may allocate, use the approval queue and the leader's own per-market minimums. Both are enforced.
Rate limits
These are fixed in the platform's middleware and are not configurable from this screen.
| Action | Limit |
|---|---|
| Apply to lead | 3 per 24 hours |
| Update a leader profile | 10 per hour |
| Follow a leader | 10 per hour |
| Pause / resume / stop a subscription | 30 per hour |
| Add or remove allocation funds | 20 per hour |
| Any admin copy-trading action | 50 per hour |
The admin limit is worth knowing before a bulk operation: approving a large backlog of applications by hand can hit fifty actions in an hour. Use the bulk status endpoint rather than fifty individual approvals.
A safe change order
-
Decide the thresholds first — the three leader requirements, on the leader tab. Save them deliberately rather than as a side effect of changing something else.
-
Then decide auto-approval — only once the thresholds mean what you want, because auto-approve makes them the only gate.
-
Then the fee —
copyTradingPlatformFeePercentapplies from the moment it is saved. It is read once per settlement run, so a change takes effect on the next trade to settle, not retroactively. -
Then the class switches — turning one off is a live kill switch, not a configuration change. Announce it.
-
Leave the risk defaults for last — and remember what
copyTradingMaxDailyLossDefaultactually does before you lower it.