TradinSolutionsEXECUTION LAYER
Start Free Trial →
HOME/BLOG

Notes from building execution infrastructure.

Prop-firm drawdown arithmetic, broker symbol suffixes, contract rolls, and what actually breaks when you copy a trade across five platforms.

← ALL POSTS
Platform Tutorials20 Sept 2026 · 7 min · TradinSolutions

Cockpit Copy Trading: Reading a Copier in Thirty Seconds

It is 07:20 and you have half a coffee and thirty seconds before the school run. In that time a copier's control surface has to answer three questions. Most of them answer one, badly, with a green dot that only means the page loaded.

It is 07:20. You have half a coffee and about thirty seconds before you need to leave. In that time, a copier's interface has to answer three questions:

  1. 01Is it running?
  2. 02Is it doing the right thing?
  3. 03Is anything stuck?

Most control surfaces answer the first question with a green dot, do not answer the second at all, and answer the third only if you go looking through a log. That is not a dashboard. That is a status page with ambitions.

The word "cockpit" gets used loosely in trading software, usually to mean "we put several panels on one screen". The actual idea is more specific and more useful. Aircraft instruments are arranged so that normal has a shape, and an abnormal reading breaks the shape before you have read any individual number. That is the standard worth holding a copier interface to.

What has to be on the surface

Five layers, in priority order. Each answers a question the one above it raises.

1. One honest status line

A single line that says whether the system is doing what you think it is doing. The engineering standard it has to meet is narrow and non-negotiable:

Green means every connection the system claims to be watching is currently being watched. It does not mean the last request succeeded, the page loaded, or a process is alive somewhere.

The failure this prevents is the worst one in the category. A copier whose provider connection dropped forty minutes ago has nothing to report — no failed copies, no errors, no skips — because it is not seeing anything to copy. An interface that infers health from recent activity will show a serene green screen through an outage. Health must be derived from heartbeat age, not from absence of bad news.

2. Instances and connections

One row per connected account. Not per relationship, per account, because an account can hold both roles.

  • Role in each relationship — Provider, Follower, or both, and to whom.
  • Platform and account type. MT4, MT5 netting, MT5 hedging, cTrader. The account type belongs on the surface because it changes what copying can do.
  • Heartbeat age as a number in seconds, not a coloured circle. "Last seen 4s" and "last seen 11m" are different situations and a green dot renders them identically.
  • Equity and current exposure, per account. Equity because sizing depends on it; exposure because that is the number that gets you in trouble.
  • Account currency, which is the quiet cause of sizing surprises across mixed portfolios.

3. Open copies, with attribution

Every currently open copied position, and for each one:

  • Which provider position it came from, identified, not guessed.
  • The policy that sized it, by name, and the resulting volume.
  • Open time and the deviation between the provider's fill price and this account's. That deviation column is the single most informative number on the whole screen, because it is the real cost of your latency in the units of your account.

Copies should be visually distinct from untagged positions on the same account — trades you placed by hand. The copier should not be managing those, and you should be able to see at a glance that it is not.

4. Exceptions: held and skipped, with reasons

This is the panel most products do not have, and it is the one that earns the cockpit label.

Every trade the system decided not to place, grouped by reason with a count, not as a flat scrolling log. A reason taxonomy that covers most of reality:

text
  NO_SYMBOL            the instrument does not exist on this account
  AMBIGUOUS_SYMBOL     two candidates matched; a human must choose
  BELOW_MIN_LOT        computed size is under the symbol's minimum
  ABOVE_MAX_LOT        computed size is over the symbol's or the firm's cap
  SPREAD_TOO_WIDE      spread at copy time exceeded the limit
  DEVIATION_EXCEEDED   price had moved further than the tolerance allowed
  STALE_EVENT          the originating event was too old to act on
  NEWS_WINDOW          inside a configured high-impact event window
  SESSION_CLOSED       this broker does not trade that instrument now
  MAX_POSITIONS        concurrent-position cap reached
  DAILY_LOSS_CAP       breaker tripped; copying halted until re-enabled
  ACCOUNT_READ_ONLY    the credential cannot place orders

Grouping matters more than completeness. Forty skips in a morning is alarming as a number and unremarkable once you can see that thirty-eight of them are NEWS_WINDOW on a day with three releases. Conversely, three ACCOUNT_READ_ONLY skips are a configuration emergency that would vanish into a log of forty lines.

TIP

Judge any copier by asking to see its skip view before you ask about its speed. A product that cannot tell you why it did not copy something is a product that will not tell you when it stops copying anything.

5. Per-destination settings, visible without clicking

Sizing rule and parameter, active filters, breakers and their current state — readable on the same screen as the account they apply to. Settings hidden behind a modal are settings nobody audits, and the gap between what you think a destination is doing and what it is configured to do is where the expensive surprises live.

The thirty-second scan

With those five layers present, there is a routine. Do it in this order, because each step is cheap and rules out a class of problem.

  1. 01Status line. Green with a fresh timestamp, or stop here and investigate.
  2. 02Heartbeat ages down the instance list. Every one in seconds, not minutes. One stale row is the whole morning's news.
  3. 03Breaker states. Anything tripped overnight is more important than anything else on the screen.
  4. 04Exceptions, by reason. You are not reading the entries. You are looking for a reason code that is not one of your usual ones, or a normal code with an abnormal count.
  5. 05Open copies count against expectation, plus a glance at the deviation column for anything unusually wide.

Five looks. Under thirty seconds once the layout is familiar, because you are pattern-matching against yesterday rather than reading.

Anti-patterns worth naming

  • The green dot that means the page loaded. Health derived from the browser rather than from the engine.
  • A log where a state view belongs. A log tells you what happened. At 07:20 you need to know what is. Both should exist; only one belongs on the first screen.
  • Counts without reasons. "12 skipped" is an anxiety generator and nothing else.
  • Aggregate equity only. One number across six accounts hides the account that is in trouble, which is the only one that matters.
  • Alerts for everything. A system that notifies you about every skip trains you to dismiss notifications, which disables the one alert that mattered.
  • No way to see manual trades. If the surface only shows copies, the exposure figure in your head is wrong on any account you also trade by hand.

Dashboard and alert are different jobs

A dashboard is for when you look. An alert is for when you do not. Confusing them produces either a noisy phone or a silent failure.

Deserves a push notification:

  • A connection stale beyond your tolerance.
  • A breaker tripping.
  • A skip reason that indicates misconfiguration rather than market conditions — ACCOUNT_READ_ONLY, NO_SYMBOL on an instrument that used to work, repeated AMBIGUOUS_SYMBOL.
  • Consecutive failures on the same destination.

Does not:

  • Individual routine skips.
  • Every successful copy. The account statement already has those.

WARNING

Test your alerting by deliberately breaking something on demo — revoke a credential, disconnect a terminal — and timing how long it takes for your phone to tell you. If nothing arrives, you have a dashboard and no alarm, and you will find that out on a day you are not watching.

On a phone

The small screen should keep the status line, the heartbeat ages, the breaker states, and the exceptions grouped by reason. It can drop the open-copies detail and the settings panels. The mobile view is for the question "do I need to open the laptop", and it should answer that question honestly rather than reassuringly.

Where this fits

The deviation column is the practical output of everything in /blog/copy-trading-data-flow-execution-speed, which breaks the latency chain into segments you can measure on your own accounts. And the settings panel is only as good as the policy behind it — /blog/automated-copy-trading-strategy covers the five knobs that panel should be exposing.

NEXT