New MetaTrader 5 Platform Build 2280

 

The MetaTrader 5 platform update will be released on Friday, December the 13th, 2019. The update features important additions and fixes based on the feedback we have received after the previous MetaTrader 5 build 2265 major update:

  1. Terminal: Fixed a bug which caused inability to delete an Expert Advisor from the chart having no data.
  2. Terminal: Fixed chart header display under Wine.
  3. MQL5: Improved loading and compilation speed of MQL5 programs.
  4. MQL5: A double click on a chart is now passed as a single-click event to an MQL5 program. Previously, such events were not handled.
  5. MQL5: Fixed StringTrimRight function operation.
  6. Tester: Fixed a bug which cased the testing symbol in settings to be empty. The error could result from switching between trading accounts with different sets of trading instruments. The new behavior: if the previously selected symbol is not found in the currently connected trading account, the first available symbol In Market Watch is automatically selected instead.
  7. MetaEditor: Fixed application icon loading when reopening project properties.
  8. Added documentation for DirectX 3D visualization functions.
  9. Updated user interface translations.
  10. Fixes based on crash logs.

The update will be available through the Live Update system.

We strongly recommend to install this update.
 

MetaTrader 5 Platform Build 2280 -

MetaTrader 5 Platform Build 2280

 
Thanks to the developers for this build! It solves all the problems I mentioned with 2265 :) 
 

Here are some problems that STILL persist:

[DOCS] In position properties, there is no property listed called "POSITION_COMMISSION". Yet it can be queried with PositionGetDouble(POSITION_COMMISSION), and it seems to always yield 0.00 (zero), at least as evidenced from several demo accounts.

[TERMINAL] In the "Trade" tab there is no column for commission; profit shown is NOT net profit, because if we have to pay commission, it has to be deducted from a position's gross p/l.

Documentation on MQL5: Constants, Enumerations and Structures / Trade Constants / Position Properties
Documentation on MQL5: Constants, Enumerations and Structures / Trade Constants / Position Properties
  • www.mql5.com
Position ticket. Unique number assigned to each newly opened position. It usually matches the ticket of an order used to open the position except when the ticket is changed as a result of service operations on the server, for example, when charging swaps with position re-opening. To find an order used to open a position, apply the...
 

> 3. MQL5: Improved loading and compilation speed of MQL5 programs.


This hasn't improved the slow MT5 compilation times for medium size codebases (5000-15000 lines of code - Intel i7 9700K)

   Code lines             MT4         MT5

     5000                  100ms      800ms

   15000                  200ms      7000ms

For the 15k lines it's 30 times slower to compile on MT5 than MT4  (This has been the case for many years)

What's odd is you get super fast compiles on MT5 when using the debug (F5) action but when you use F7 it takes way longer to compile

 
James Cater:

> 3. MQL5: Improved loading and compilation speed of MQL5 programs.


This hasn't improved the slow MT5 compilation times for medium size codebases (5000-15000 lines of code - Intel i7 9700K)

   Code lines             MT4         MT5

     5000                  100ms      800ms

   15000                  200ms      7000ms

For the 15k lines it's 30 times slower to compile on MT5 than MT4  (This has been the case for many years)

What's odd is you get super fast compiles on MT5 when using the debug (F5) action but when you use F7 it takes way longer to compile

Because MT5 normal compilation is optimized for speed.

You can disable it when in development stage.

 
Alain Verleyen:

Because MT5 normal compilation is optimized for speed.

You can disable it when in development stage.

Wow, OK, I didn't know you could disable the optimizations.

Shame you have to create a project file for each indicator rather than having a global option or #property you can set in the source file

 
Keyboard shortcuts for navigating the 3D optimization graph are not working on this release (+/- to zoom, arrows to pan, home/end to rotate, etc). Could you check, please?
 
James Cater:

Wow, OK, I didn't know you could disable the optimizations.

Shame you have to create a project file for each indicator rather than having a global option or #property you can set in the source file

You are always complaining
 

Is there any more information on what has changed with the treatment of namespaces?

With this build I'm getting lots of namespace related compilation errors.

For example, I declare a global object called gBackup, but when I try to use it I am given three ambiguous reference errors, all of which point to the same line of code.  

Ambiguous access, can be one of

0. gBackup

1. gBackup

2. gBackup


I've tried qualifiying it as ::gBackup, and also putting it into a namespace with no success. 

 
Paul:

Is there any more information on what has changed with the treatment of namespaces?

With this build I'm getting lots of namespace related compilation errors.

For example, I declare a global object called gBackup, but when I try to use it I am given three ambiguous reference errors, all of which point to the same line of code.  

Ambiguous access, can be one of

0. gBackup

1. gBackup

2. gBackup


I've tried qualifiying it as ::gBackup, and also putting it into a namespace with no success. 

So I fixed it by putting a different global object variable into a namespace.  The compiler error is confusing in that it points in the wrong direction for the error, and in fact I still don't know exactly what or where I've gone wrong, other than I think there must be a naming conflict somewhere.

Reason: