In this article
After this article, you can
- Explain a missing initial SMA using the observations available to its window.
- Record loaded-history start separately from the displayed interval.
Terms at hand: Simple Moving Average (SMA) · Backtesting · Trading journal · Bid and ask · CFD (contract for difference) · Commission
MultiCharts is a trading platform with charting, strategy testing and automation tools. Its PowerLanguage environment is relevant when you already have compatible strategy code or need a particular testing workflow. Check those requirements against the software you currently use before deciding whether a change is useful.
Who is MultiCharts actually for?
One use case is systematic trading: coding rules, testing them on historical data and checking portfolio behaviour. MultiCharts offers Portfolio Trader for testing and executing strategies across instruments. Whether it suits your workflow depends on the required data, code compatibility and portfolio settings.
Write down the missing capability before buying another platform. The MT4 versus MT5 comparison and a TradingView setup can help organise that comparison. MT5 already supports real-tick testing, genetic optimisation, forward testing and strategies using multiple instruments; these features alone do not establish a need to migrate.
Two editions: MultiCharts and MultiCharts .NET
Classic MultiCharts uses PowerLanguage and supports EasyLanguage resources, with compatibility checks for imported code; Object-Oriented EasyLanguage is excluded. MultiCharts .NET supports C# and VB.NET, with Python listed in beta on the current purchase page. Choose by testing the exact scripts and libraries you intend to use.
Check the current MultiCharts purchase page for the plan, licence terms and included features. The published offering includes Free, Standard and Advanced plans; access to a particular module must be checked against the chosen plan. Include any separately required data service in your budget. A trial or free plan does not establish what a paid live-trading setup will cost.
An initial SMA can depend on prices outside the view
The displayed interval and loaded calculation history are different ranges. Check our SMA(3) before treating blank initial values as an indicator error.
Scroll sideways to see the full diagram
Our invented Close series is earlier 92 and 96, then visible 100, 104, 108, 112 and 116 at equal intervals. Our algorithm calculates a mean only when three consecutive observations are available and never replaces missing values with zero. This is not a MultiCharts screenshot or a definition of a specific indicator's default MaxBarsBack. MultiCharts — What is MaxBarsBack confirms that MaxBarsBack specifies the minimum earlier data needed to calculate an indicator or signal.
With earlier history, the first visible mean is (92 + 96 + 100) / 3 = 96. Loading only visible values leaves the first two points without enough inputs. At 108, values 100, 104 and 108 are available, giving 104. MultiCharts documents MaxBarsBack as a required earlier-data range for calculation. A particular script's actual start depends on its logic and settings; do not extend our point count to every indicator. Record both the displayed interval and loaded-history start when comparing charts.
How does a tick backtest differ from a candle test?
A tick test and a bar test can represent different price paths. MT5 can use broker-collected real ticks; MultiCharts also documents assumptions when a historical test uses only OHLC bars. A simulated fill remains dependent on the available data and engine settings. Check spread, costs and execution assumptions explicitly rather than treating a platform name as proof of realistic fills.
Keep the optimisation data separate from the period used to evaluate the chosen parameters. Record the settings before evaluating that later period, so a disappointing result cannot quietly become another optimisation run.
Optimisation searches parameter combinations; a genetic search need not examine every combination. A walk-forward workflow repeatedly separates a training window from a later evaluation window. This is one validation method, not a guarantee against overfitting. Decide the windows, search ranges and acceptance criteria before inspecting the evaluation results.
A hypothetical example: portfolio EUR/USD on M1
Consider an explicitly hypothetical portfolio project: five years of EUR/USD history, an assumed dataset of roughly 1.3 million M1 bars, eight currency pairs, shared starting capital of 50,000 USD and a planned risk cap of 1 percent per position. These are invented project inputs, not a measured IQFeed dataset or a vendor performance benchmark. Review overlapping positions and portfolio drawdowns under the chosen model; the bar count and runtime must be measured on the actual data and hardware.
For a meaningful runtime comparison, match data, code, costs and test settings, then record elapsed time on the same hardware. MT5 can test strategies using multiple instruments without an external portfolio tester. Check how each engine handles simultaneous positions and shared capital before comparing the results.
What does MultiCharts connect to?
Check the vendor’s current data-feed and broker connection lists for the exact service you need. A listed connection does not establish that your account, instrument or order type is supported. If you plan to use Interactive Brokers for live execution, verify the relevant account permissions, connection setup and current pricing rather than assuming an institutional default.
Separate software compatibility from account requirements. IBKR lists a zero minimum balance for individual accounts in its required-minimums table; permissions and margin requirements still apply. Requirements for broker accounts are a different category. Before choosing a platform, test the account and API workflow described in our first steps in algorithmic trading.
MultiCharts versus NinjaTrader — which one for what?
When comparing NinjaTrader with MultiCharts, use your own requirements: supported instruments and broker, required scripting language, portfolio workflow and add-ons. Test an imported strategy instead of assuming compatibility, and verify each connection against the relevant vendor’s current documentation.
Use the same strategy and documented inputs for a comparison. Check whether a difference comes from missing history, bar-path assumptions, costs or order handling before attributing it to backtest quality. A larger simulated profit does not by itself identify the better platform.
What MultiCharts will not do for you
The PowerLanguage editor has its own language rules and execution semantics. Start with a small strategy and verify what instructions such as buy this bar on close mean in your chosen test mode before importing a library. Plan time for a practical backtesting workflow, including data checks, parameter review and result analysis; no universal learning duration applies.
More granular data helps only when its quality and coverage fit the strategy. Check timestamps, gaps, quote type and instrument mapping before testing. Budget for the exact service and instrument you need using the current data-provider schedule. Paying for a feed does not establish a trading advantage.
Your next step
- Download the demo version of MultiCharts from the official site and spend two evenings opening charts, importing a sample EasyLanguage strategy from the PowerLanguage Editor folder, and running the strategy tester on daily data. That is enough to judge whether the interface suits the way you actually work.
- Cost out the real twelve-month total: the selected MultiCharts plan, required data service, broker charges and any additional tools. Use current offers for your intended instrument and account. Compare the total with the cost of your present workflow; do not assume every setup requires the same paid data package or a four-figure first-year outlay.
- Run one of your existing strategies in parallel on matching data and parameters. Document costs, bar resolution and execution assumptions before comparing drawdowns and losing streaks. Use the result to identify a concrete workflow benefit; a backtest comparison cannot establish that a licence will pay for itself.
- If you are migrating from TradeStation, plan the code move in two phases: first port the strategies that rely on tick-level functions and Volume Profile, then your discretionary analysis tools. A whole library of scripts rarely moves across untouched — some of the code needs small corrections, and some has to be rewritten around differences in the data interface.
Related reading: thinkorswim — the Charles Schwab trading platform. For a broader operational view of the trader’s toolkit see our platforms section.
Check your understanding
One short exercise
About 2 min · you can try again
Only closes 100, 104, 108, 112, 116 are loaded. Our SMA(3) needs three consecutive values and does not fill gaps. What is its first calculated average?
- 100 at the first visible point.
- 104 at the third visible point.
- 96 at the first visible point.
Check the answer and explanation
104 at the third visible point.
Only then are 100, 104 and 108 available. Their sum 312 divided by 3 is 104.
Frequently asked
Does MultiCharts make sense for a retail forex trader?
What is the difference between MultiCharts and MultiCharts .NET?
MultiCharts or NinjaTrader — which one should I pick?
Sources & bibliography
-
MultiCharts Algorithmic trading features (EasyLanguage, strategy testing, optimisation) · Oficjalny opis modułów backtestu, optymalizacji genetycznej i walk-forward www.multicharts.com ↗
-
MultiCharts Supported brokers and data feeds · Lista wspieranych dostawców danych (eSignal, IQFeed, Rithmic, CQG) i brokerów (IBKR, Saxo, FXCM, OANDA) www.multicharts.com ↗
-
TradeStation EasyLanguage — developer reference · Oficjalna dokumentacja składni i konstrukcji języka EasyLanguage używanego również przez MultiCharts developer.tradestation.com ↗
-
IQFeed Technical specifications and data coverage · Specyfikacja techniczna feedu IQFeed używanego jako standardowe źródło danych tickowych w MultiCharts www.iqfeed.net ↗
