A one-line brief — 'I need a copier that mirrors my trades to four prop accounts' — hides about forty decisions. Here is what a bespoke build really contains, when off-the-shelf wins, and how to write a brief a developer can price.
The brief arrives as one sentence: "I need a copier that mirrors my trades to four prop accounts." Eleven words. The build behind them contains something like forty decisions, and the person who wrote the sentence has opinions about maybe six of them.
That gap is where custom trading software goes wrong. Not in the code — in the space between what somebody asked for and what they assumed came with it. This is a tour of what a bespoke build actually contains, so that when you commission one you are pricing the whole thing rather than the first sentence of it.
Every hour spent arguing about a specification before code exists saves several after it. Take that eleven-word brief and start asking the questions a developer will have to answer one way or another, with you or without you:
XAUUSD. Destination three calls it XAUUSD.r and destination four does not offer gold at all. What then?None of those are exotic. Every one of them has to have an answer in the code. If the brief does not contain the answer, the developer picks one, and you find out which one they picked during the first week your money is on it.
TIP
Write the spec as a list of scenarios with expected outcomes, not as a list of features. "Symbol mapping" is a feature and means nothing. "When the source symbol has no equivalent on a destination, the copy is skipped, logged with reason NO_SYMBOL, and the instance stays running" is a scenario and can be tested.
Each trading platform hands you a different set of constraints, and they are not interchangeable. A brief that says "make it work on all platforms" is four builds wearing a trench coat.
MT4 runs MQL4 inside the terminal. It is single-threaded per chart, historically weak at outbound network calls, and the terminal has to be running on a machine somewhere. Hedging is native. The account is reached either through a terminal-side program or through the manager side, which a retail trader does not have.
MT5 runs MQL5, has both netting and hedging account types, a richer order model, and a stricter validation layer that rejects orders MT4 would have quietly accepted. Code does not port from MT4; it gets rewritten.
cTrader gives you a proper Open API over a documented protocol plus cAlgo in C#. That is a genuinely different engineering shape — you can build server-side rather than terminal-side — and it is why cTrader work usually looks nothing like MetaTrader work.
TradingView is not an execution venue. Pine Script produces alerts; something else has to receive the webhook and place the order, which means the interesting part of the build is the receiver, not the script.
Tradovate and NinjaTrader are futures-first. Contract specifications, tick values, session times and rollover are the whole problem, and none of the forex habits transfer cleanly.
A realistic multi-platform build is one core engine plus a thin adapter per platform, with the differences pushed into the adapters. Getting that boundary right is most of the architecture, and it is also why the second platform costs far less than the first if the first was built properly, and roughly the same again if it was not.
The part of the quote that people try to negotiate away is testing, and it is the part that determines whether the thing survives contact with a real broker.
Meaningful testing for a trading tool looks like this:
Budget roughly a third of the build for this. If a quote contains no testing line at all, the testing has not been removed from the project; it has been moved onto your live account.
These are the clauses people skip and then regret.
Bespoke is the right call when your requirement is genuinely unusual, when the logic is proprietary and you do not want it in someone else's product, or when you need to own the roadmap. It is the wrong call more often than people expect.
Buy rather than build when:
A sensible middle path is to buy the infrastructure and build only the thin layer that is actually yours. Our own products sit on that side of the line deliberately — a copier, a signal copier, a journal and a fundamentals desk are infrastructure, and the strategy on top of them is yours to keep.
WARNING
Be wary of a developer who agrees with your entire brief on the first call. The useful response to "mirror my trades to four prop accounts" is a list of uncomfortable questions, not a price.
A brief that gets an accurate quote contains six things:
Write those six and you will get quotes you can actually compare, because every developer is pricing the same thing. Skip them and you will get three wildly different numbers, all of which are guesses about what you meant.
If part of what you are weighing is the licensing side of the bill, /blog/mt4-server-license-cost separates what a broker pays to run a platform from what a trader pays for tooling on top of it. And before any bespoke build touches a funded account, /blog/demo-testing-protocol-for-automation sets out the soak test that turns "it compiled" into "it survives a Tuesday".