VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
ACADEMY / Platforms and export

MultiCharts Order Machine Setup: VPS, API, Risk Controls

A safe MultiCharts order machine has four layers: a stable computer or VPS, a correctly configured broker API connection, a position-sync routine that reconciles with the broker before restarting after a disconnect, and a three-layer risk control built on a contract limit plus a one-click kill switch. Do not fill in contract limits or daily loss thresholds by feel. Work them back from the number of trades, average trade and maximum drawdown in your backtest report.

By · Published · updated · Editorial policy

Contents
  1. How do you set up a MultiCharts order machine safely?
  2. Does a MultiCharts order machine need a VPS?
  3. How do you connect MultiCharts auto-trading to a broker API?
  4. What do you do when the order machine disconnects? Position sync steps
  5. What risk controls should an order machine have? Kill switch and contract limits
  6. What should you monitor every day once the order machine is live?
  7. Use the backtest to confirm trade frequency, contract limits and the shutdown threshold before going live
  8. Frequently asked questions
  9. References

How do you set up a MultiCharts order machine safely?

A safe MultiCharts order machine rests on four layers: a computer or VPS with stable power and network, a correctly configured broker API auto-trading connection, a position-sync routine that reconciles with the broker before restarting after a disconnect, and risk controls built on a contract limit plus a one-click kill switch. Remove any layer and you have a computer that places orders, not an order machine.

An order machine is a computer that stays on for long periods while MultiCharts sends orders to the broker automatically based on strategy signals. Think of a gas stove at home: a flame, piping, a switch and a leak detector. You need all four before the kitchen counts as safe. Most people building an order machine put their effort into layer one (buying a computer, renting a VPS). In my view, though, trouble almost always starts in layers three and four: what you do, and in what order, after a disconnect, and whether something other than the strategy itself can stop a bad order. Every section below comes back to this point.

  • Hardware, power and network: guards against power cuts, network outages and automatic operating-system restarts.
  • Broker API connection: guards against expired certificates and orders sent without a fill report coming back.
  • Position-sync routine: guards against the strategy's idea of its position differing from the broker's position after a disconnect.
  • Risk controls and kill switch: guards against errors in the strategy logic itself, and against duplicate orders caused by connection faults.
The four protection layers of a MultiCharts order machine. Each layer guards against one kind of failure: power and network guard against downtime, the broker API guards against lost confirmations, position sync guards against position mismatch, and the top risk-control layer guards against strategy errors and anything that slips through. Four layers, last defense Each layer stops one kind of failure Risk controls Strategy errors Position sync Position mismatch Broker API Lost confirmation Power, network Downtime The top layer catches leaks. So: never skip risk controls.
Each of the four layers stops one kind of fault. If any of the three lower layers fails, the top risk-control layer must be able to catch the problem on its own.

If you are still comparing which platform to use for automated trading, how platforms that automate trading without code differ sets out how each type of tool splits the work between orders and backtesting. This article assumes you have already chosen MultiCharts.

Does a MultiCharts order machine need a VPS?

Whether you need a VPS depends on how long the strategy holds positions and whether you are at the machine during trading hours. A VPS (virtual private server) is a remote Windows computer you rent from a data center and operate through Remote Desktop. It does not shut down when your home loses power or your fiber line goes down. If you trade only the TAIEX futures day session and sit next to the computer, a home PC plus a UPS (uninterruptible power supply) is enough. If the strategy holds overnight, or trades overseas products such as NQ and ES that are still trading late at night in Taiwan time, put the order machine on a VPS.

The difference between the two setups is not which one is better, but where the risk sits:

Risk pointHome PC + UPSVPS / data center
Power outageMedium (a UPS lasts only a few tens of minutes)Low (the data center has backup power)
Home internet outageHigh (a fault in either the fiber line or the router cuts you off)Low
Windows auto-update restartMedium (you can set active hours and pause updates)Medium (you must set the same options, and nobody is there to watch)
Remote-access lagNone (you are at the machine)Medium (Remote Desktop takes a few seconds to connect)
Monthly costElectricityFixed monthly rent
Best forMainly day-session strategies with someone watchingOvernight positions, overseas night sessions
Where the risk sits: home PC with UPS versus VPS. Power outage risk is medium at home and low on a VPS. Home internet outage risk is high at home and low on a VPS. Remote-access lag is none at home and medium on a VPS. Where does the risk sit? Home PC vs VPS Home + UPS VPS Power outage Medium Low Network down High Low Remote lag None Medium Overnight or night session: use a VPS. So: long holds belong in a data center.
A home PC and a VPS put the risk in different places. The longer you hold positions and the later you trade, the more you should move the risk to the data center side.

Whichever you choose, there are three break points to handle: power, network and automatic updates. For a home setup, use a UPS plus a backup 4G or 5G connection. For a VPS, set Windows active hours to cover the whole trading session and finish updates by hand on non-trading days. A VPS can also fail, so with either setup keep your broker's app on your phone. That way, if Remote Desktop will not connect, you can still see your account position and close it.

How do you connect MultiCharts auto-trading to a broker API?

Connect in a fixed order, and confirm the fill report at each step before you move to the next. A Broker Profile is the MultiCharts setting that stores the broker API account, certificate and order parameters. Connect it to a paper account first and confirm that orders go out and reports come back, then connect the live account. Taiwan brokers' APIs mostly require you to apply for activation on the broker's side and install a certificate first. Until you finish that, every later setting stops at “connection failed.”

  1. Have the broker enable the API and install the certificate. Pass condition: the broker's API test tool can log in and look up the account balance.
  2. Create a Broker Profile in MultiCharts. Pass condition: the connection status shows connected and the account information is correct.
  3. Send one order by hand on the paper account and watch the report. Pass condition: the Order and Position Tracker window shows the fill report and the position quantity is correct.
  4. Turn on auto-trading on the chart and set the SA/AA mode and order size. Pass condition: when a strategy signal appears, the order goes out automatically and the report comes back.
  5. Run live at the minimum size for one to two weeks. Pass condition: every fill matches a strategy signal, with no extra or missing orders.
The five steps for connecting MultiCharts to a broker API, each with a pass condition. First enable the API until login succeeds. Then create a broker profile until it shows connected. Next send a paper order until the fill is confirmed. Then turn on auto-trading until orders fill automatically. Last, trade at the minimum size until two weeks pass with no problems. Five steps, five checks Steps at left, pass criteria at right 1 Enable API Login works 2 Broker Profile Connected 3 Paper order Fill confirmed 4 Auto-trading on Auto fills 5 Minimum size Two clean weeks Skipping any check costs more later. So: paper account first, then live.
Each of the five steps has a checkpoint, and you move on only after you see the report you should see. The time you save by skipping a checkpoint usually comes back doubled the first time a wrong order goes out.

Understand the mode choice in step four first. In SA (synchronous automated trading) mode, the strategy position follows the broker's report: after an order is sent, MultiCharts waits for the fill report before it records the position in the strategy. In AA (asynchronous automated trading) mode, the strategy records positions from its own calculation and does not wait for the broker's report. SA mode is less likely to leave the strategy and the account with different positions, but the strategy pauses and waits when an order is rejected or partly filled. AA mode keeps signals flowing, but a single rejected order makes the two sides' positions start to diverge. For strategies that do not need to race the clock, such as daily and hourly bars, SA mode is usually less trouble.

If the strategy source code was found and validated in AlphaPrime (Valynox) and then exported to PowerLanguage through platform export and imported into MultiCharts, it still has to go through all five steps above, because the connection settings and the strategy code are two separate things. How to import a strategy into MultiCharts and compare the backtest walks through how to compare backtest results after the import.

What do you do when the order machine disconnects? Position sync steps

After a disconnect, the first thing is to turn off auto-trading and reconcile, and only the last thing is to let the strategy take over. Position sync is the routine that brings the broker's actual position and the position the MultiCharts strategy believes it holds into line. If you reverse the order, restarting the strategy first and checking the account afterward, two mistakes are common. The strategy thinks it is flat while the account already holds one contract, so it buys another and you hold double the position. Or the strategy thinks it is long while the account is actually flat, so when a reversal signal arrives it sends a sell order and the account ends up with an unintended short position.

  1. When you spot a disconnect, first turn off auto-trading on the chart. This stops the strategy from sending a pile of queued orders the moment the connection comes back.
  2. Check the actual position and open orders in the broker's app or order software. Go by the broker, not by MultiCharts.
  3. Compare with the strategy position. The MultiCharts Order and Position Tracker shows the strategy position and the broker position separately. The two numbers must match.
  4. If they differ, place orders by hand or close out until they match. The rule is to bring the account position to the position the strategy should have. If you cannot tell what position the strategy should have, close everything so both sides are flat.
  5. Reconnect, confirm the status, then resume auto-trading. Check both sides' positions once more before you resume.
The order of steps after a disconnect. The correct order is to turn off auto-trading, reconcile with the broker, and then resume. The wrong order is to resume immediately, which can double the position. Reconcile before you resume The broker's position is the truth Correct order Auto off Reconcile Resume Wrong order Resume Doubled size Resuming first can double your position. So: auto off, check broker, then resume.
The order after a disconnect: turn off, reconcile, adjust, reconnect, resume. The red box is the most common wrong order, and it ends in a doubled position.

Print these five steps, tape them next to the screen and write the broker's service phone number on them. When a phone alert wakes you at three in the morning, you will not think; you will follow the order on the paper. That is exactly why the routine exists.

What risk controls should an order machine have? Kill switch and contract limits

Set risk controls in three layers at the same time, and make each layer able to stop a bad order by itself if the other two fail. A daily loss stop means that when the day's realized plus unrealized loss reaches an amount you wrote down in advance, positions are closed automatically and auto-trading is disabled. The three layers work like the three filter cartridges in a water purifier: each removes a different impurity, and water comes out only after passing all three.

  1. Broker side: a maximum contracts per order and a daily cumulative contract limit, enforced by the broker's system. This layer stays in place even if the MultiCharts machine crashes completely. If the strategy reverses directly (long one contract flips to short one contract), a single order can be two contracts. The per-order limit must allow for a reversal, but set the maximum net position to only the number of contracts the strategy needs.
  2. MultiCharts side: a maximum strategy position, and closing positions and disabling auto-trading when the daily loss hits the threshold. This layer guards against errors in the strategy logic itself.
  3. Manual switch: a channel you can reach at any time to “close everything and disable auto-trading,” usually your broker's phone app plus Remote Desktop. This layer guards against cases the first two layers did not anticipate.
A bad order has to pass three independent filters before it can do damage: the broker's order limit, the MultiCharts loss stop and the manual emergency switch. Any one of them is enough to stop it. Three independent filters Any one can stop a bad order Bad order Broker Order cap MultiCharts Loss stop Emergency Manual The layers do not depend on each other. So: set all three before going live.
A wrong order has to pass through three independent filter cartridges in a row before it causes a loss. Any one working normally is enough to stop it.

A common mistake with the daily loss threshold is to set it smaller than a normal day's range for the product. The strategy is not broken, yet it gets shut down every day. The threshold has to be above a normal day's swing and below the one-day loss your account can bear. The range in between is what you can fill in.

Hypothetical example

Say NQ is near 20,000 points, one point is worth $20, and a one-contract position moves 1% with the index in a day. That is 200 points, a $4,000 change in unrealized profit and loss, which is the scale of a normal day. If you set the daily loss threshold at $3,000, an ordinary down day will stop an overnight-holding daily strategy. Set the threshold at $8,000, equal to two normal days moving against you, and the strategy is shut down only on truly abnormal days. Set the daily contract limit as the strategy's maximum position times the most entries and exits that can happen in a day, plus one contract of reversal buffer.

Another reference for the threshold is the backtest drawdown. Paste the backtest or live daily equity into the free drawdown calculator to see the largest one-day drop in the history. The daily threshold must be at least bigger than that number. Otherwise the days the backtest would have ridden out, you will stop yourself out of in live trading.

What should you monitor every day once the order machine is live?

Monitoring does not mean watching the screen all day. It means a short checklist at each of three fixed times. Watching every bar only makes you want to intervene by hand. What an order machine needs is a checklist covering the connection, position consistency, report delay and how far you are from the shutdown threshold.

  • Before the open (before the TAIEX futures day session, or your first check time for overseas products): the API connection shows connected; the certificate has not expired (broker certificates are usually valid for one year, so put the expiry date in your calendar); the strategy is loaded on the chart and the auto-trading switch is on; data is updating.
  • On a timer during the session (for example every two hours, less often for a daily strategy): the strategy position equals the broker position; the gap between the last order's send time and its fill-report time (investigate if it is longer than usual); how much room is left between the day's profit and loss and the daily shutdown threshold.
  • After the close: reconcile the broker's fill details for the day against the MultiCharts trade list, one trade at a time; save the logs; check whether the next day has a settlement day, a holiday or a Windows update to handle.
Three fixed daily checkpoints for the order machine. Before the open, confirm the API is working. During the session, confirm the strategy and broker position sizes match. After the close, confirm the fill details match. Check at three set times No need to watch every bar Pre-open API healthy Intraday Sizes match After close Fills match A short checklist beats screen-watching. So: keep the checklist on paper.
Three checkpoints a day, one fixed checklist at each. Keep the checklist on paper instead of relying on memory.

Match the intraday check frequency to the strategy's trading frequency. For a daily strategy that averages two trades a month, checking twice a day is enough. For a minute-bar strategy that enters and exits ten times a day, you need a check every half hour, or add alerts pushed to your phone when the connection drops or the positions disagree. The next section shows how to read this frequency from a backtest report.

Use the backtest to confirm trade frequency, contract limits and the shutdown threshold before going live

Do not fill in the contract limit and the daily loss threshold by feel. Work them back from the maximum drawdown, number of trades and average trade in the backtest report. Below is an AlphaPrime backtest of NQ on daily bars, tested from 2019-01-02 to 2025-06-30, long and short, one contract. Note that this backtest runs a stand-in rule built from standard indicators, not the order machine itself. It is only to show how to read a report. It is the one kept, based on return relative to drawdown, out of the 1,024 candidates the search tried.

Source: AlphaPrime product engine (CPU), run 2026-10-31. NQ daily, 2019-01-02 to 2025-06-30, long and short, 1 contract, commission $20 and slippage $10 per trade.

NumberResult
Net profit (closed trades)$238,210
Max drawdown$69,945
Trades179
Win rate48.04%
Profit factor1.502
Average trade$1,330.78
Time in market66.73%
Where to look for three numbers: number of trades, average trade and maximum drawdown. The contract limit, check frequency and shutdown threshold are all worked back from these three cells.
Where to look for three numbers: number of trades, average trade and maximum drawdown. The contract limit, check frequency and shutdown threshold are all worked back from these three cells. NQ・Daily・2019-01-02 to 2025-06-30・CPU engine backtest

How do you turn this report into order machine settings? First, 179 trades spread over six and a half years is a little over two a month, so two intraday checks a day are enough, and the focus goes on the reconciliation before the open and after the close. Second, time in market of 66.73% means two-thirds of the time the account holds a position, and it is held overnight. NQ is still trading late at night in Taiwan time, which is the case for a VPS described earlier. Third, the backtest ran at one contract, so set the maximum position on the MultiCharts side to one contract, and the broker-side per-order limit has to allow the two-contract order of a reversal. Fourth, the average trade of $1,330.78 is after a $30 cost on each trade. Costs are a small share of the average trade, and doubling slippage would not change the conclusion. NQ moves 0.25 point per tick, worth $5, and one point is $20. The exchange may change specifications, so go by CME's contract page, and you can convert with the free futures contract and profit calculator.

The deepest drawdown on the equity curve is the distance the shutdown threshold has to ride out. The out-of-sample segment is marked separately, so you can see how its slope differs from the in-sample slope.
The deepest drawdown on the equity curve is the distance the shutdown threshold has to ride out. The out-of-sample segment is marked separately, so you can see how its slope differs from the in-sample slope. NQ・Daily・2019-01-02 to 2025-06-30・CPU engine backtest

The maximum drawdown of $69,945 is used in two places. Your account size has to be larger than it, with room to spare, because future drawdowns are usually deeper than the backtest's (Pardo 2008 treats the backtest maximum drawdown as a minimum requirement, not an expectation). Do not use it to set the daily loss threshold. It is a cumulative drawdown across many trades, while the daily threshold looks at a single day. Find the steepest few days on the equity curve and put the threshold above those days. Otherwise the drawdown the backtest rode out will be cut off by your own shutdown switch in live trading.

What to do next is specific. After you import the strategy you plan to run live into MultiCharts, use the PowerLanguage strategy comparison checklist to confirm that the imported trade list roughly matches the original backtest. Then copy three numbers from the report into the three risk layers: the number of trades sets the intraday check frequency, the maximum position sets the contract limits on the broker side and the MultiCharts side, and the worst days on the equity curve set the daily loss threshold. After that, go through the six checks before going live, then start live trading at the minimum size.

Frequently asked questions

What kind of computer does an order machine need?

To run a few daily or hourly charts, MultiCharts needs only an ordinary office-class computer. What matters is stability, not speed: a solid-state drive, enough memory so charts do not close from running out of it, sleep and hibernation turned off, and Windows update active hours set. Once you run many minute-bar charts or several strategies calculating at once, consider more memory and more cores.

What is the difference between SA and AA mode in MultiCharts?

In SA (synchronous automated trading) mode, the strategy position follows the broker's report: after an order is sent, the strategy records the position only once the fill report arrives. In AA (asynchronous automated trading) mode, the strategy records positions from its own calculation and does not wait for the broker's report. SA mode is less likely to leave the strategy and the account with different positions. AA mode keeps signals flowing, but a single rejected order makes the two sides' positions start to diverge, so it needs more frequent reconciliation.

Where should the VPS data center be?

The closer the data center is to the broker's servers, the smaller the order round-trip delay, but the difference is measured in milliseconds and has no practical effect on daily or hourly strategies. Choose a Taiwan data center with a stable network and an easy Remote Desktop connection. Only strategies on minute bars or shorter, which are sensitive to fill price differences, need to treat data center location as one of the options.

How many strategies can one order machine run at once?

You can run several at once, but each strategy needs its own contract limit, and the broker-side daily contract limit should be set to the sum of all strategies' maximum positions. When several strategies hold positions at once, position sync after a disconnect has to reconcile strategy by strategy. The more strategies you run, the longer the reconciliation list, so reprint the reconciliation sheet each time you add a strategy.

References

  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
  • Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
  • CME Group. E-mini Nasdaq-100 Futures Contract Specs. https://www.cmegroup.com/markets/equities/nasdaq/e-mini-nasdaq-100.contractSpecs.html