MULTICHARTS 8.0 BETA 2– WHAT’S NEW

Download MultiCharts 8.0 Beta2

MULTICHARTS 8.0 BETA 2– WHAT’S NEW

MultiCharts 8.0 Beta 2 focuses significantly improving user experience in terms of convenience and speed when it comes to working with MultiCharts. A number of features were created from user feature requests – Global Hot Keys, Expert Commentary, access to DOM data from PowerLanguage, many drawing tool improvements, and other additions. Next release is planned to be Release Candidate with bug fixes, and then official MC8 release.

USE OUR NEW WIKI FOR COMPLETE UP TO DATE INFORMATION ON MULTICHARTS http://www.multicharts.com/trading-software/index.php/Main_Page

Report bugs and request features in our Project Management system – http://www.multicharts.com/pm/

NEW FEATURES

Global Hot Keys

Global Hot Keys feature allows user to define and save keyboard shortcuts for pretty much any action in MultiCharts. More info here – http://www.multicharts.com/pm/viewissue.php?issue_no=MC-734&search_queue=5

Expert Commentary

Expert Commentary feature is now available. This feature allows you to add comments and text to be displayed when user clicks on a particular bar. There are new keywords associated with this feature:

AtСommentarybar ( Expert Commentary)

This reserved word returns a value of True on the bar clicked by the user. It will return a value of False for all other bars. This allows you to optimize your trading strategies, analysis techniques, and functions for speed, as it will allow PowerLanguage to skip all commentary-related calculations for all bars except for the one where the commentary is requested

Usage

AtCommentaryBar

Notes

The difference between AtCommentaryBar and CommentaryEnabled is that CommentaryEnabled returns a value of True for ALL bars when the Expert Commentary window is open, while the AtCommentaryBar returns a value of True only for the bar clicked.

Example

The following statements display a 50-bar average of the volume in the Expert Commentary window but avoid calculating this 50-bar average for every other bar of the chart:

If AtCommentaryBar Then

Commentary(“The 50-bar vol avg: “, Average(Volume, 50));

Commentary( Expert Commentary)

This reserved word sends the expression (or list of expressions) to the Expert Commentary window for whatever bar is selected on the price chart.

Commentary(“My Expression”) ;

My Expression is the numerical, text string or true/false expression that is to be sent to the Expert Commentary window. You can send multiple expressions, commas must separate them.

Example

The following will result in the string “This is one line of commentary” being sent to the commentary window. Any additional commentary sent will be placed on the same line.

Commentary(“This is one line of commentary”) ;

Commentarycl( Expert Commentary)

This reserved word sends the expression (or list of expressions) to the Expert Commentary window for whatever bar is selected by the Expert Commentary pointer.

Usage

CommentaryCL(“My Expression”) ;

My Expression is a single or a comma-separated list of numeric, text string, or true/false expressions that are sent to the Expert Commentary window.

Example

The following will result in the string “This is one line of commentary” being sent to the commentary window. Any additional commentary sent will be placed on the next line.

CommentaryCL(“This is one line of commentary”) ;

CommentaryEnabled( Expert Commentary)

This reserved word returns a value of True only when the Expert Commentary window is open and Commentary has been requested. This allows you to optimize your trading strategies, analysis techniques, and functions for speed, as it allows PowerLanguage to perform commentary-related calculations only when the Expert Commentary window is open.

Usage

CommentaryEnabled

The difference between CommentaryEnabled and AtCommentaryBar is that CommentaryEnabled returns a value of True for ALL bars when the Expert Commentary window is open, while the AtCommentaryBar returns a value of True only for the bar clicked with the Expert Commentary pointer.

Example

CommentaryEnabled will return True if the Analysis Commentary Tool has been applied to the chart.

#BEGINCMTRY( Expert Commentary)

The statements between this compiler directive and the reserved word #End are evaluated only when the Expert Commentary tool is used to select a bar on a chart or a cell in a grid. The reserved word #End must be used with this reserved word.

Usage

#BeginCmtry

Commentary(“The indicator value here is ” + NumtoStr(Plot1, 2));

#End;

Notes

All statements between the #BeginCmtry and #End are ignored, including calculation of MaxBarsBack, unless commentary is generated.

Example

An indicator that calculates the 10-bar momentum of the closing price needs ten bars in order to start plotting results. If commentary is added to this indicator and the commentary uses a 50-bar average of the volume, then the MaxBarsBack setting is increased to fifty. However, the 50-bar average is only used for the commentary, so there is no need to have the indicator wait fifty bars before giving results unless Commentary is requested.

To have the indicator plot after 10 bars and ignore the 50-bar requirement, the indicator can be written as follows:

Plot1( Close – Close[10], “Momentum”);

#BeginCmtry;

If Close – Close[10] > 0 Then

Commentary(“Momentum is positive, “)

Else

Commentary(“Momentum is negative, “);

If Volume > Average(Volume, 50) Then

Commentary(” and volume is greater than average.”)

Else

Commentary(” and volume is lower than average.”);

#End;

This indicator plots the momentum and the commentary states whether the momentum is positive or negative, and if the volume is over or under the 50-bar average of the volume. When the indicator is applied without using commentary, it will require only 10 bars to start calculating. When commentary is requested, the indicator is recalculated, the statements within the compiler directives are evaluated, and the new minimum number of bars required is 50. Any series functions within these reserved words are also ignored.

СheckСommentary( Expert Commentary)

Returns True after left click on a chart with the Expert Commentary pointer on the specified bar. False is returned if the pointer has not been inserted, or if the pointer was inserted on a different bar.

Usage

CheckCommentary

Example

If you only wanted code to be evaluated for the bar where the user had inserted the Expert Commentary Tool, you could use the following syntax:

If CheckCommentary Then Begin

{Your Code Here}

End;

Access to Level 2 (DOM) data from PowerLanguage

New keywords allow to level 2 data (DOM data) from PowerLanguage. Now your strategies can reference Depth of Market values for calculations in real-time (not applicable for backtesting as L2 data is not stored in the database). More info here –http://www.multicharts.com/pm/viewissue.php?issue_no=MC-451

om_askprice ( DOM)

Returns ask price for the certain depth level of a particular symbol.

Usage

dom_askprice(num) [data(N)]
where:

(num) is the number of depth level

(N) – number of the data series

Example

dom_askprice(4); will return the ask price for the 5th level of depth for the data1

dom_askprice(2) data2; will return the ask price for the 3rd level of depth for the data2

dom_askscount( DOM)

Returns the number of ask depth levels available for a particular symbol.

Usage

dom_askscount [data(N)]

where: (N) – number of the data series

Example

dom_askscount will return 10 if 10 ask levels of the market depth are available for the data1

dom_askscount data2 will return 6 if 6 ask levels of the market depth are available for the data2

dom_asksize( DOM)

Returns the ask size for the certain depth level of a particular symbol.

Usage

dom_asksize(num) [data(N)]
where:

(num) is the number of depth level

(N) – number of the data series

Example

dom_asksize(2) will return 1500 if the ask size for the 3rd level of depth on data1 is 1500

dom_asksize(0) data2 will return 750 if the ask size for the 1st level of depth on data2 is 750

dom_bidprice( DOM)

Returns bid price for the certain depth level of a particular symbol.

Usage

dom_bidprice(num) [data(N)]
where:

(num) is the number of depth level

(N) – number of the data series

Example

dom_bidprice (4); will return the bid price for the 5th level of depth for the data1

dom_bidprice (2) data2; will return the bid price for the 3rd level of depth for the data2

dom_bidscount( DOM)

Returns the number of bid depth levels available for a particular symbol.

Usage

dom_bidscount [data(N)]

where: (N) – number of the data series

Example

dom_bidscount will return 10 if 10 bid levels of the market depth are available for the data1

dom_bidscount data2 will return 6 if 6 bid levels of the market depth are available for the data2

dom_bidsize( DOM)

Returns the bid size for the certain depth level of a particular symbol.

Usage

dom_bidsize(num) [data(N)]
where:

(num) is the number of depth level

(N) – number of the data series

Example

dom_bidsize (2) will return 1500 if the bid size for the 3rd level of depth on data1 is 1500

dom_bidsize (0) data2 will return 750 if the bid size for the 1st level of depth on data2 is 750

dom_isconnected( DOM)

Returns a logical value indicating the availability of the market depth data; returns a value of True if the market depth data is available and a value of False if the market depth data is not available.

Usage

dom_isconnected

Example

Print the ask size for the 1st level of market depth if the market depth data is available

variables:

var0(0);

if dom_isconnected then

var0 = dom_askprice(0);

print(var0);

Sound Trading Alerts – Orders, Statuses, Positions, Connections.

Sound Alerts were added to walk user through changes in order, position and connection status. The setting is global, which means it affects both manual and automated trading, and can be turned on/off from the Sound Alerts menu.

Alerts in Signals (Strategies)

There are now alerts available for signals (strategies). You can use sounds, visual or email alerts to get notified about orders and position changes. More info here –http://www.multicharts.com/pm/viewissue.php?issue_no=MC-319.

Overfill Protection

Mechanism added to avoid situations with possible overfills with OCO group emulation. More info here –http://www.multicharts.com/pm/viewissue.php?issue_no=MC-662.

Bar Magnifier improvement

Bar Magnifier improvement – detalization of bars was changed so that prices that were not available in a lower resolution, will not be available in a higher one (i.e. if price of 100 was not available on 1 day series, it will not be possible to fill an order at 100 on a 1 week series with bar magnifier).

Orders now don’t have to be part of OCO

Orders now don’t always have to be sent as part of an OCO group in autotrading. Previous behavior when all orders were part of OCO created problems for some users – when using partial exits (i.e. Master Strategy), when one order was filled, all others would be cancelled and re-submitted. This caused loss of place in queue, and subsequently longer fill waiting times. More info here –http://www.multicharts.com/pm/viewissue.php?issue_no=MC-454.

MaxBarsBack – possible to change from PowerLanguage

It is now possible to change MaxBarsBack (max number of bars study will reference) directly from PowerLanguage script.

SetMaxBarsBack

Sets a numerical value indicating the Maximum Bars Back setting for the study.

All studies based on past data use a certain number of bars for their calculations. The number of bars is called Maximum number of bars a study will reference, or Maximum Bars Back

Usage:

SetMaxBarsBack(BarsBack);

Where: BarsBack – numerical expression, specifying the number of bars back

Notes: BarsBack can’t  be a negative value.

Example:

Set a value, indicating the Maximum Bars Back setting for the study to 50.

SetMaxBarsBack(50);

SetCustomFitnessValue

Sets a value of the custom criterion that is to be used for optimization.

Usage:

SetCustomFitnessValue (Criterion);

Where: Criterion – an expression specifying a custom criterion value.

Notes:

  • This function can be used only in signals
  • To use the custom fitness value:
    1. open genetic algorithm properties window;
    2. set the number of simulations by changing the inputs range;
    3. select the Algorithm-Specified Properties tab
    4. select the Custom Fitness Value from the list under the Standard Criteria section

Example:

Set the gross profit to be a custom criterion for genetic optimization

SetCustomFitnessValue (grossprofit);

Set the formula to be a custom criterion for genetic optimization

SetCustomFitnessValue (totaltrades / (grossloss + grossprofit));

TradingServer notified about backtesting orders

TradingServer now gets notified about orders generated during backtesting when autotrading is turned on. More info here –http://www.multicharts.com/discussion/viewtopic.php?f=1&t=9715#p46220.

Drawing Tools Improvements

Drawings now have a locking feature, which prevents accidental displacement by the user. More info here –http://www.multicharts.com/pm/viewissue.php?issue_no=MC-63.

Fibonacci drawing tools now have extra levels that appear inactive by default.

– Fib Retr Price Lines – 18
– Fib Speed/Res Fan – 16
– Fib Trend-Based PEL – 18
– Fib Speed/Res Arcs – 22
– Fib Trend-Based TL – 16

Background Chart Dragging

There is no background dragging available for charts, which means you can grab the background and move the chart around. This feature is turned on/off with a button on the toolbar called “Control”. When background dragging is enabled, chart hint windows cannot be displayed, and vice versa.

Order and Position Tracker and DOM windows dockable

Order and Position Tracker & Depth of Market windows are now dockable to main workspace. More info here – http://www.multicharts.com/pm/viewissue.php?issue_no=MC-67.

MIGBank Data Feed and Broker added

MIG BANK – the largest Swiss bank specializing in online Forex and CFDs trading services for private and institutional clients.

New Data PlayBack speeds

New speeds were added for Data Playback – 10,000 updates per second and 100,000 updates per second.

ThreadSafe Keyword

Threadsafe keyword added, which can be used in definedllfunc & external [method]. Threadsafe declares the function imported from DLL as thread-safe.
It will increase the performance of calculation and optimization of the studies that use external DLLs. For the declared function MultiCharts will not ensure thread safety. For correct performance the function must be either completely thread-safe or must ensure its own safety.

Threadsafe (DLL Calling)

Declares the function imported from dll as thread-safe. It will increase the performance of calculation and optimization of the studies that use external dlls.

Usage

threadsafe

Notes:

It is not recommended to apply threadsafe attribute to the functions exported from elkit32.dll (for example FindAddress_).

Example:

DEFINEDLLFUNC: threadsafe, “user32.dll”, void, “MessageBeep”, int;

Will declare MessageBeep function of user32.dll as thread-safe.

Other features

  • Skip Identical Ticks menu item was added Stude Properties dialog window, which can be called from PLEditor.
  • Option to use “Outside RTH” tag for orders for Interactive Brokers was added. This tag is applicable for stocks on real trading accounts – when it’s enabled order can be placed directly to the exchange outside of regular market hours. If it’s disabled, IB will return an error saying that it’s impossible to get to the exchange. It’s enabled by default in the broker profile for IB.
  • Session break lines for charts that have only one symbol are now drawn across all subcharts.
  • Limitation for mapping and importing ASCII files more than 4GB lifted because of 64-bit version.
  • Custom Futures now supports symbols with the following symbology – “NIFTY10APRFUT” using Interactive Brokers data provider.
  • Orders are no longer rejected when message “Error 201 (ID=[223]): Order rejected – reason:Order is already being cancelled” appears.
  • Connection status messages added to Logs tab in Order and Position Tracker for PFG broker.
  • Strategy Properties dialog now remembers the last open tab.
  • Optimization report sorting controls were improved.
  • Dialog window for OpenECry data feed was improved in the field for choosing the data server.
  • New option to change the default Stop Limit Offset in DOM.
  • New message added to the installation process to help prevent compiler issues: “The installer has detected that NtfsDisable8dot3NameCreation registry key in HKLM\SYSTEM\CurrentControlSet\Control\FileSystem is set to 1. It may cause a compiler issue: studies may not be compiled in PowerLanguage Editor.
    Click Next to continue or Cancel to exit the Setup Wizard and change registry key above to zero using regedit utility (click Windows Start button, select Run, type regedit and press Enter), restart the computer and run installer again.”

BUGS FIXED

Charting/Data Handling

  • When PFG broker profile was turned off, real-time data would stop on PFG charts.
  • Bar Maginifier would re-request data for detalization of higher resolutions, even if they have already been downloaded.
  • When trendline was drawn beyond the last bar, and chart was resized so that the trend line touched the right margin, the whole drawing would disappear. More info here –http://www.multicharts.com/discussion/viewtopic.php?f=1&t=9946#p47629.
  • Tick Count for Forex in real-time instead of Volume option stopped working.
  • Ask/Bid values form a previously connected profile would appear on the Trade Panel for a new broker profile (eg values from ZenFire would appear on a PFG profile).
  • PFG FX symbols would be added with incorrect default settings. More info here –http://www.multicharts.com/discussion/viewtopic.php?f=1&t=9647&p=45795#p45758.

Trading

Scripts/Calculations

  • Bar Magnifier would not turn off in MC8 Beta1 when there was not enough data for detailed testing, and would do analysis on strange prices.

Stability/Performance

Usability/Visual

      This entry was posted in Beta on .

      2 thoughts on “MULTICHARTS 8.0 BETA 2– WHAT’S NEW

      1. Maria de los Angeles

        Dear Multichart team:
        I tried to use the new beta version of multichart , but my pc have installed a expired version of multichart, and i don’t want to reinstall my pc to use the new beta version. How i can fix it?
        Best Regards

      Comments are closed.