ALGOCRUCIBLE ← Help Center
Help Center › Troubleshooting & FAQ

FAQ: MultiCharts setup and the bridge

MultiCharts has no external automation API, so AlgoCrucible drives it from inside: six short PowerLanguage studies plus a small helper DLL. Everything below follows from that.

The full install steps are in the SETUP.md that ships with the bridge. This article covers the questions that come up afterwards.

Which edition do I need?

Regular MultiCharts (PowerLanguage). You don't need MultiCharts .NET — that edition isn't supported yet.

Do I have to modify my strategy?

Yes — four lines. One call to start a test, one per input you want searched, one per bar to report trades, one to finish. The Wire a strategy assistant adds them for you: paste your source in, it returns the wired version. Re-pasting an already-wired strategy re-wires it cleanly rather than duplicating anything.

Your strategy still behaves normally when AlgoCrucible isn't running — the inputs keep their own defaults.

Does my code leave my machine?

No. The wiring assistant runs locally inside the app, the bridge writes to files under C:\AlgoCrucible\mcbridge\, and nothing about your strategy is transmitted anywhere. The bridge studies are plain text you can read before you compile them.

Why can't AlgoCrucible see the strategy on my chart?

Because MultiCharts offers no way to list what a chart is running. AlgoCrucible knows only what each strategy told it the last time the chart calculated — which is what the AC_BeginRun and AC_Param lines do.

So a strategy that isn't wired is invisible no matter how many times you reload, and if you swap strategies you'll keep seeing the old name until the new one is wired, compiled, and the chart has calculated once.

Only one wired strategy per chart

They all report into the same results file, so two running at once would merge into a single meaningless backtest. AlgoCrucible detects this and says so — disable the others under Format Signals. Unwired strategies on the chart are harmless.

The chart reloads forever

The data feed is disconnected. A MultiCharts reload can't complete without the provider, so the run waits indefinitely. This catches people on Sunday mornings, when brokers run maintenance.

"Tried to reference back more bars than allowed"

MaxBarsBack is below a lookback the search proposed. MultiCharts auto-detects that limit from your strategy's default inputs, so a search that tries a longer lookback errors.

Set it above the largest value you'll ever search: Format Signals → Properties → "Maximum number of bars study will reference". Then re-enable the signal — an errored study gets disabled, which stops everything until you turn it back on.

"No header row" in a results file

Old bridge studies. Recompile AC_Trades and AC_EndRun from the current .txt files.

Can I run several tests at once?

Yes — that's what lanes are. Each additional chart tests another parameter set in parallel, and it scales close to linearly: four charts finished a batch 3.9× faster in testing.

Each chart needs the same instrument, resolution and date range, your strategy with ACLane set to that lane number, and AC_Driver with a matching Lane. Then set Charts to drive on the Home page.

One caution: a lane whose chart isn't open will stall the run. Set Charts to drive back down if you close the extra charts.

Why is a single backtest slower than in MultiCharts itself?

Because each trial needs a chart reload, and MultiCharts' reload costs about as much as the backtest — roughly 0.8 s of reload for 0.9 s of work. There's also a hard 1-second floor on how often a study can be woken up, which is enforced by MultiCharts and can't be tuned away.

Lanes are the answer to this: the reload cost is per-chart, so running four charts overlaps four reloads instead of paying them one after another.

Portfolio runs: which chart runs which strategy?

AlgoCrucible matches members to charts by strategy name, so the order you tick them doesn't matter. It shows the pairing it worked out before the run starts, and refuses only when a member has no chart, or two members want the same one.

Where's the log?

C:\AlgoCrucible\mcbridge\io\driver_log.txt — every reload, backtest start and completion with timestamps. Attach it to any support ticket.

← FAQFAQ →

Risk Disclosure: Futures and forex trading contains substantial risk and is not for every investor. An investor could potentially lose all or more than the initial investment. Risk capital is money that can be lost without jeopardizing one's financial security or lifestyle. Only risk capital should be used for trading and only those with sufficient risk capital should consider trading. Past performance is not necessarily indicative of future results.

Hypothetical Performance Disclosure: Hypothetical performance results have many inherent limitations, some of which are described below. No representation is being made that any account will or is likely to achieve profits or losses similar to those shown; in fact, there are frequently sharp differences between hypothetical performance results and the actual results subsequently achieved by any particular trading program. One of the limitations of hypothetical performance results is that they are generally prepared with the benefit of hindsight. In addition, hypothetical trading does not involve financial risk, and no hypothetical trading record can completely account for the impact of financial risk of actual trading. For example, the ability to withstand losses or to adhere to a particular trading program in spite of trading losses are material points which can also adversely affect actual trading results. There are numerous other factors related to the markets in general or to the implementation of any specific trading program which cannot be fully accounted for in the preparation of hypothetical performance results and all of which can adversely affect trading results.