Download MultiCharts .NET 9.0 Beta 1

This version is a big step forward for our platform. We added a huge feature – real-time portfolio trading through all available brokers!

In this version we also concentrated on dramatically improving individual and portfolio backtesting, making it the most accurate version ever. We added new functionality of a second pass when calculating the portfolio, which opens possibilities like rotational trading, pair trading and other interesting implementations. Portfolio Trader now also has walk-forward optimization and custom fitness function.

Make sure you ask our support if you have any questions.

Contact Support

Wiki for Complete Information on MultiCharts

Report Bugs and Request Features in the Project Management System –


NEW Portfolio Trader replaces Portfolio Backtester!

Portfolio trading is a very sophisticated feature that used to be available only in institutional-level trading software. We are very excited to be able to offer portfolio trading to our users as part of the MultiCharts package!

It’s now possible to autotrade a large portfolio of instruments on sim and live accounts through all available brokers in MultiCharts. A huge benefit to people trading multiple instruments is that there’s no need to open individual charts for each symbol to trade.

With this new portfolio trading ability it becomes even more important to accurately backtest your strategies. So we added a ton of improvements to both strategy backtesting and optimization in the individual chart and portfolio settings.

Portfolio Trader  – Improvements in Optimization

Portfolio management in MultiCharts has undergone great changes in version 9 – Portfolio Backtester is now called Portfolio Trader. We paid special attention to improving strategy optimization. New and exciting features include:

●     Walk-forward Optimization in Portfolio Trader. More info here –

●     Custom Fitness option for optimization in Portfolio Trader. More details here –

●     Quick Access – open Portfolio Trader from the main menu in MultiCharts through File – New – Portfolio Trader.

Dynamic Currency Conversion for Backtesting

We added the notions of base currency for symbols (exchanges) and account currency. This allows us to correctly calculate profits when backtesting currency pairs or non-US symbols. It enables precise calculations of asset allocation for instruments that are listed in different currencies. For example, stocks in US Dollars and Japanese Yen will be brought to a common denominator and only after that MC will calculate how many shares can be purchased based on Money and Risk Management rules.

All currency conversion takes place behind the scenes to make your life as easy as possible. We use our servers to request data in the background and perform necessary calculations. To make the results as close to perfection as possible, we use actual currency rates for each day.

Interactive Brokers Integration Improvements

Interactive Brokers is one of the most popular brokers among MultiCharts traders. We added support for the new API (TWS version 9.69.01) to improve the connection and added many features:

●     IB symbol names now reflect how they are called in TWS

●     Now Pacing Violation alert (when too much data is requested from IB) pops up in MultiCharts and this violation is more noticeable to users

●     No more “cycling through accounts” for logins with multiple accounts (Financial Advisor, Proprietary Trading Group etc).

●     Added new fields for IB accounts (Free Margin, Margin, Net Liquidation, etc). Learn more on our Forum ; and PM –

Recalculate All Studies in One Click

This very convenient feature will save a ton of time during backtesting or while setting up autotrading. Now you can simply recalculate all indicators and strategies with one click, instead of having to turn each one off and on again. More info on our Forum –

Added Status for charts with Merged Data Sources

Now it’s easy to spot charts that have merged historical and real-time data sources. A new indication “Merging of different data sources is on” can be seen in the Format Instrument window.

Horizontal & Vertical Trendlines

Easily draw perfectly horizontal or vertical trendlines by holding down CTRL while drawing a trendline. More info here – and PM –

More Important Features

●     Added a new option “Use the actual position at the broker” (under “Do not show the Assign Initial Market Position” in the Strategy Properties Auto Trading tab).

●     Added “Export all available fields” option to the File – “Export data” in MultiCharts. Learn more here:

●     Added “Go to Chart” command to the context menu in Order and Position Tracker – Strategy Positions.

●     Added 6 Hours, 8 Hours and 12 Hours options for Hourly Bar button under Resolutions toolbar. More info here – ; Added Arw_Exist(ID) function. More info here –

●     It is now possible to add Forex instruments for CSI feed using the lookup functionality.

●     Added Solid Blocks option for Volume Delta charts.

●     Added new indication of DataServer Mode to the status line of the main MultiCharts window.

●     Added a registry key for disabling the logs packing in archives when their size reaches 100 MB.

●     Added an option Remove All Visible Drawings to the chart menu. More info here – Added an option to search for CQG symbols according to Symbol Root and Description in Insert Symbols Into Portfolio dialog.

●     “Use a Static Font Size” option added to Volume Profile settings window.

●     Added string constants that return currency code.

●     Now one can edit fields in Edit Data dialog with a precision of up to 15 characters.

●     AutoTrading orders can now be sent if the barstatus value is -1. More info here –

●     Each Exchange has now a default Holiday List.

●     Expiration Rules functionality has been improved and now one can specify “Next Business Day”.

●     TradeManager interface has been extended with ExtAttributes property. It provides access to extended account attributes from Order and Position Tracker window- Accounts tab. More info on our Forum –

●     Improved Time Scale on a chart – more info on our Forum here –

●     Improved display of Status Line on a chart in Enable Multiline Mode. Learn more on our Forum –

●     Intra-Bar Order Generation mode selectors have been improved.

●     It’s now possible to monitor how many tickers are remaining to be scanned under Status Line in Market Scanner.

●     Now a single mouse click and double mouse click are recognized by the Status Line elements.

●     Manual Trading: Open PnL for currencies on IB broker profile is now calculated based on average value between Ask and Bid or is taken from TWS Accounts tab.

●     Market Scanner On Demand data requests (without real-time data) are now optimized.

●     Market Scanner: added a registry key to regulate the plotting of the last historical bar of a lower resolution. More info here –

●     Maximum Order Position Profit at the broker setting is now removed from the Assign Initial Market position at the broker dialogue window.

●     Now a user will get a notification if the physical memory of the system is going to end.

●     Millisecond precision is added to the time indication in Order and Position Tracker.

●     MultiCharts now works with the studies folder when Windows is in Offline Files mode. More info here:

●     New keyword added for returning ExpirationDate value that is received from API.

●     Now POC on Volume Delta charts is displayed as hologram surrounding a block with the highest volume.

●     Now Performance Report of Portfolio Trader contains the resolution of an instrument info if the resolution of other instruments is different. Learn more here –

●     Now Symbol Mapping has Import/Export functionality.

●     Now a user will be informed if there is a queue of retained orders that are not yet sent to the broker.

●     Now auto trading orders won’t be sent to the broker when auto trading is using “backfilled real-time ticks”.

●     Bars on Volume Delta charts with Bid Ask Volume parameter are now displayed as Profile style. Get more details on our Forum –

●     Now historical manual orders are connected with Entry/Exit lines like auto trading orders are.

●     Optimized CPU usage by MultiCharts.exe process and optimized memory usage by TradingServer.exe process.

●     Now if one clicks Cancel during opening the workspace, this particular workspace won’t be opened. More info here –

●     Messages are now fully shown under Logs tab in Order and Position Tracker window.

●     It became possible to delete a drawing that has been created by a study, without removing the study itself. See the discussion of this issue here: ;;

●     Now the colors of wicks, Status Line and arrows are differentiated on Volume Delta charts.

●     Time and Sales: added an option for turning off Pause. See more details on our Forum –

●     Filling the tick data gaps process is now ceased according to a timeout in order to prevent further real-time data stops.

●     Now there is no empty API messages related to rejected orders from IB under Logs tab in Order and Position Tracker.

●     Now upgrading your MultiCharts won’t change the path to the databases in the registry that the user has specified under Preferences – Directories menu. More info here –

●     Now when editing multiple symbols in QuoteManager one will be able to specify Symbol Root.

●     One can now add the missing exchange right away when adding a new symbol.

●     It’s possible now to place all kind of manual orders from charts even when there is no Bid/Ask price coming from the broker.

●     Now the quotes are not re-requested when the number of displayed lines in a Time and Sales window is increased..

●     Optimized Trading Technologies data request sent to the data provider server.

●     Portfolio Format Strategy window is now resizable.

●     PowerLanguage .NET: error message now contains additional info – symbol name and the resolutions applied. More info here –

●     The DOM window cells are now resized if text does not fit in them.

●     Inputs of applied indicators and signals are now shown in the Status Line. More info here:

●     Special utility is added for gathering lo and dump files.

●     Tick by Tick Bar Magnifier is now available on Day resolution in MultiCharts 64 bit.

●     Time and Sales corrected behavior: the filtering is now applied only after aggregation.

●     Improved aggregation in Time and Sales. Learn more on our Forum here –

●     Toolbars of MultiCharts window are now shown only on screens that are used by the system.

●     “Update on every tick” option is now disabled by default for Pivot High and Pivot Low indicators.

●     User Defined Scaling is now saved to the workspace. See the feature requests here –;

●     Volume Delta: Open and Close arrows are now linked to the text.

●     Walk-Forward Optimization corrected behavior: MaxBarsBack won’t be counted to determine the possibility of further calculations for Days WFO.

●     Walk-Forward Optimization now has improved calculation when splitting intervals.

●     The name of the file is now generated automatically when exporting data from QuoteManager.

●     When requesting DOM data from the script the requested symbol should be the one that gets real-time (important when using Merge Data functionality).

●     CQG connection no longer requires installing the API, as the API is now integrated into MultiCharts.

●     That is now possible to “Add Symbol Manually” directly from Format instrument window of MultiCharts for data sources that do no have the Lookup functionality (Free Quotes, MB Trading, Universal DDE).

●     An option added to LMAX broker profile/data feed configuration to switch usage of heartbeats for connection loss detection.

●     “Use as default” checkbox added to Backtesting tab of the Strategy Properties window.

●     “New inputs applied successfully” popup window will no longer be shown after new inputs were applied in the optimization report.

●     “Use a Static Font Size” option added to Volume Profile settings window.

●     ZenFire data provider and broker now removed from the MultiCharts.

●     Now only the actual Time In Force parameters supported by a selected broker are represented in MultiCharts. More info here:

●     New option “Show Order on Chart” added to the context menu of Order and Position tracker window for Filled and Pending orders. More information here:

●     TradeBar now supports switching between the controls using the Tab keyboard button.

●     “Not enough data” warning message now appears for WFO optimization if none of the samples matched (IS & OOS).

●     Added “Extended Logging” tool. Now one can easily switch between the regular data provider module and the module with extended logging that is used for debugging.

●     When one tries to turn on the “Collect Data without plotting” option in QuoteManager while being in offline mode – “Data Server Mode” dialogue window pops up.

●     PLEditor.NET now saves the study files (*.cs and *.vb) in Unicode. When one opens the study in Visual Studio the encoding is determined automatically and all non Latin symbols are properly displayed.

●     An indicator can now access the objects of the signals applied to the same chart. More info here:

●     ISymbolsStorage interface extended with two new overloaded methods: MTPA_MCSymbolInfo2[] GetSymbols(string data_feed, ESymbolCategory _cat); and MTPA_MCSymbolInfo2[] GetSymbols(string data_feed, ESymbolCategory _cat, string Exchange); More info here:

●     Inputs now support System.Drawing.Font

●     New class added: CustomInstrument. It allows accessing the data series loaded by the DataLoader with the help of IInstrument interface. The bars of such data series are tied to the bars of the main data series based on time.

●     New class added: DataLoaderCache. It’s the DataLoader singleton service. Caches LoadData requests to avoid requesting the same data again (increases the speed of script calculation).

●     New IInstrumentSettings member added: CurrencyCode. Read-only property that returns currency code for symbol.

●     New IStatusLine member added: LastVolume. Returns Volume of Last price from status line. Similar to PL’s TradeVolume and q_TradeVolume.

●     PowerLanguage .NET Editor now starts significantly faster.


Charting/Data Handling

●     ASCII Mapping: timezone settings were not saved when re-opening ASCII Mapping window if the ASCII file itself was located in the root directory.

●     A minute chart from ОЕС stopped getting real-time before the session ended.

●     Some ticks of the same second were not always saved to the database upon chart close (especially the rollover tick between history and real-time).

●     ASCII Import: date was not recognized when Hungarian date format was used.

●     Added “Spread” category for ASCII Mapping instruments. More info here:

●     Any trading session on OpenECry symbols was ignored.

●     Ask and Bid quotes from MCFX data feed in the Status Line erroneously had the same value.

●     At the beginning of the trading session there were no real-time quotes coming on Renko charts with Break on Session enabled.

●     It was impossible to export instruments with no data and unknown exchange in the Symbol Root.

●     IB symbol AHa on СHIXEN exchange didn’t not work.

●     Issue with displaying data correctly while plotting CustomFutures on a chart.

●     MetaStock data was loading for unacceptably long time.

●     No bid/ask data displayed for Sweden Stock VOLV.B from IB.

●     No session break on a chart with CustomFutures in Local timezone if the rollover happened in real-time.

●     Not all the symbols got reconnected as supposed to after QuoteManager restart.

●     Real-time chart on CustomFutures stopped updating at futures rollover. Get all the details of the issue on our Forum –

●     Real-time ticks with identical time were not saved to the database.

●     There were redundant real-time data request after chart reload.

●     Snap Mode was not functioning properly on charts with multiple data series. Learn more here –

●     Symbol names starting with lowercase letters were not displayed under Recent Instruments dropdown menu. More details on our Forum-

●     Symbols were not disconnected when Collect Data had been disabled. More info here –

●     There were no daily bars for the previous day session on $OMXS30 and Sweden stocks from eSignal if a chart had been plotted before the trading session.

●     Unstable data streaming if there was an expired symbol in a workspace.

●     Volume Delta based on daily data was not ploted and returned No Data.

●     Volume Profile was not plotted on bars when applied to a CustomFutures chart.

●     When changing Data Server Mode option Collect Data functionality got disabled in QuoteManager.

●     When exporting .qmd file one could not set up a specific time for any dates except the last one.

●     When one was switching between identical symbols but on different exchanges in Market Scanner that was linked to a chart, the symbol on a chart was not changed.

●     eSignal daily data failed to be saved to the database.

●     Session Break lines disappeared when changing Bar Spacing.

●     There was a gap when requesting EURUSD 1 Tick data from MBTrading for the 6th of March 2014 because MBTrading was sending ticks with zero volume.

●     Reloading minute and hourly data of American stocks resulted in enormous volume on the history and real-time border.

●     Incorrect “Waiting for data” status in the pre-scanner window when timeout was ended but no data was received.

●     Right scroll arrow on horizontal bar did not work when bar spacing was too low (Bar Spacing < 1 ).

●     Realtime data stopped after session break on VolumeDelta and other New Chart Types if there was a regular chart for the same instrument.

●     Custom Futures got realtime data from an incorrect contract if there were only current and future contacts in the database.

●     Down Volume values in MC were different from TradeStation when using 1 Tick resolution (Build Volume on: Tick Count).

●     Sometimes ASCII Import window allowed to specify the resolution, while it should not.

●     The opening tick of the session was missing for eSignal instruments when Collect Real-Time tick data in the QuoteManager was enabled.

●     In some situations indicator scaling was not the same as the instrument scaling when Same as Instrument scaling was selected. More info here:

●     There was a situation when an order was plotted on a chart while actually it was not generated by the strategy.

●     Volume Profile was built incorrectly when there was data with incorrect time and tick ID.

●     TradingTechnologies message “Market Data Request missing MDReqID” was erroneously shown in the logs when there was repeated data subscription.

●     Now historical data will not be requested after connection restore when a data source that does not provide historical data is used.


●     During backtesting DollarTrailing, BreakEven and PercentTrailing were calculated incorrectly.

●     Issue with entering the price manually for some Exit Strategies during manual trading. More info on our Forum –

●     Master Strategy worked incorrectly on broker profiles with support of native OCO Group (IB).

●     Orders with time-in-force specified as GTC or GTD sent to Patsystems broker had incorrect TIF.

●     Stack overflow appeared when connecting to IB broker profile with a great number of open positions (ex. 187 positions).

●     Stop-Limit orders failed to convert to market orders during auto trading.

●     When highlighting the whole value of the price or offset of some exit strategies: Stop Loss, Profit Target, Breakeven and then entering a new value it was displayed incorrectly.

●     When orders got partially filled quickly in several transactions then position went out of sync.

●     Password was not saved for the TradingTechnologies broker profile, if it was the only settings modification.

●     Now commission rule settings from MultiCharts window have priority over commission rule settings stored in the workspace if there is a template with the same name

●     A signal stopped calculating on two tick data series with frequent real-time streaming.

●     An error message popped up saying that one lacked Data3 info while in fact Data3 was presented and Data2 was missing in Portfolio Backtester.

●     ITrendLineObject.PriceValue returned incorrect value if the beginning and the end of a drawing coincided.

●     The Backtesting and Forward-testing calculations on several data series were different. Learn more here:

●     The wrong error message popped up if the first input of tl_setbegin_bn function was set to -1. Learn more here –

●     Study inputs went corrupted in the scanner upon opening a workspace if there were new inputs added in the study code between the old inputs.

●     Loading the help file using F1 key did not work for some reserved words.

●     Bars.LastBarTime now properly returns millisecond bar timestamps. More info here:

●     PowerLanguage.SymbolStorage.GetSymbols was searching for the symbol for unacceptably long time if there was a lot of instruments in the database.

●     PowerLanguage .NET Editor did not pick up new functions that were copied to the StudyServer folder. Please note: such functions are applied as simple double.

●     An exception occurred while attempting to set a priority list of fonts in the Expert Commentary.

●     It is now possible to retrieve multiple sessions per day from the code. More info here:

●     SummationFC function was calculated incorrectly with IOG turned on. Because of that signals using it (ex. MovAvg_Cross_SX and MovAvg_Cross_SE) were not working properly. More info here:

●     MouseClickArgs.point.BarNumber now returns the bar number.


●     After declining Windows shutdown process MultiCharts still ceased functioning and showed a false report.

●     Assert popped up and manual entry and exit orders were not connected with a line.

●     Assert popped up when trying to delete several lines in Edit Data dialog in Quote Manager.

●     Exception popped up when closing a workspace with Order and Position Tracker.

●     An error message was possible when a session with multiple breaks was used.

●     MultiCharts consumed a great amount of memory and hanged up.

●     Renko charts plotted in percentage consumed the full tsServer.

●     Workspaces were opening for unwarrantedly long time because of the indicators applied.

●     Exception when a signal was used in Extended Backtesting mode.

●     TradingServer produced exception on MultiCharts start.

●     Exception in TradingServer.exe process if position update was received with the empty currency field.

●     Sometimes activating workspaces after opening them on start went into a loop with 100% CPU usage.

●     DataLoader was failing under certain circumstances when used in a study in the Watchlist window.


●     Chart Trading controls for historical orders in “Format Chart Trading” window were reversed. More info here:

●     Command Line: “.rld glob” didn’t work for identical symbols.

●     DOM window sometimes switched to displaying No Data (showing grey background).

●     If screens in the system are arranged vertically then Ask/Bid prices were shown on the other monitor.

●     Changing Enable Alerts and Alert Conditions Check options on the Alerts tab did not take the changes until the study recalculation.

●     If there was a chart with CustomFutures and it was the day of rollover then a trace was added to the log file on each tick.

●     Save Image functioned incorrectly when the left Price Scale was enabled.

●     Scrolling the groups of symbols in the scanner didn’t work properly.

●     Some .NET components produced log files even when the logging was off. Learn more here:

●     It was not possible to move or drag some charts with a mouse if there was a great number of open workspaces.

●     “Open position” and “Close position” sound alerts were not working.

●     Symbols with disabled data feed were displayed in Format Instrument dialog.

●     When a chart and a scanner were linked, it was impossible to switch between the instruments in the scanner using arrow keyboard buttons.

●     Chart style changed when “Show Volume as” was switched for Volume Delta chart.

●     Sometimes the dates were overlapping on the Strategy Report graphs.

●     DOM window position was not saved correctly to the workspace. More info here:

●     An incorrect auto trading ToolTip was shown after changing the instrument on the chart.

●     Mouse click went through on a detached chart behind MultiCharts window when clicked on a workspace tab.

●     Horizontal line drawing sometimes had incorrect price format. More info here: