New MetaTrader 5 platform build 2715: General improvements

 

The updated version of the MetaTrader 5 platform will be released on Thursday, November 26, 2020. The update provides the following changes:

  1. Terminal: Fixed platform freezing when using the options board. Freezing could be caused by a zero tick size specified in trading instrument settings.
  2. Terminal: Fixed UI display errors on HiDPI displays.
  3. MQL5: Fixed string to time conversion by the StringToTime function. An error could occur when specifying time as "yyyymmdd [hhmiss]".
  4. MQL5: Fixed operation of implicit copy operator for objects containing dynamic arrays. Now, the operation reduces the destination object size to the copied object size.
    struct MyStruct
    {
      string Array[];
    };
    
    void OnStart()
    {
      MyStruct a1,a2;
      ArrayResize(a1.Array,3);
      ArrayResize(a2.Array,1);
      a1=a2;
    }
    Earlier, the "a1" array size was equal to 3 after the function call. Now, the size will be 1.

  5. MetaTester: Updated rating calculation algorithm for MQL5 Cloud Network testing agents. The rating is now determined more accurately and is changed less frequently.
  6. Documentation has been updated.

The update will be available through the Live Update system.

 

Thank you very much for focusing more on improving the reliability of the platform rather than just adding new features quickly.

 

Dear MetaQuotes software engineers and developers!

There is a function with the standard C/C++ preprocessors and the
Stack Overflow page with the following URL is exactly about this.

https://stackoverflow.com/questions/12734075/can-i-split-a-long-include-directive-into-two-lines

It would be a good thing to modify the MQL preprocessor to operate
with the `#include' directives like the standard C/C++ preprocessors
to implement this. This is easy and the results can be good because
with difficult and large projects this include solution can be effective.
I have many hundreds of thousands of lines of MQL source codes and
the preprocessor issues and the current limitations of the typedef
are the main issues due to which the MQL is not enough yet for more
complex programming. Please implement the missing features! 

>>>>
#define STRINGIFY(x) #x
#define PATH(path) STRINGIFY(/my/very/long/path)
#include PATH(foo.h)
#undef PATH
#undef STRINGIFY
<<<<

Please implement this preprocessor function!

Many thanks for considering my request!

Yours sincerely and best wishes to you: László Müller, Dombóvár, Hungary.

Can I split a long #include directive into two lines?
Can I split a long #include directive into two lines?
  • 2012.10.04
  • Jonathan Mayer Jonathan Mayer 1,056 9 9 silver badges 14 14 bronze badges
  • stackoverflow.com
I wish there was a way to split a #include directive across two lines, so that my code can conform to 80 characters per line, despite the necessity of a very long include path. Other than expanding the search path of the compiler, how can I manage this? Is there a way to split my very long path string into two lines...
 

Hi,

Concerning the backtester/optimiser;

I still see memory problems arising when I have to process a lot of passes. The only way to solve this is to stop the optimising process and restart it; than it continues with the remaining not processed passes.

This problem exists since many releases before and is still not solved.

I'll hope the development team will attack this very annoying issue.

Regards,

Danny

 
Daniel Weckhuyzen:

Hi,

Concerning the backtester/optimiser;

I still see memory problems arising when I have to process a lot of passes. The only way to solve this is to stop the optimising process and restart it; than it continues with the remaining not processed passes.

This problem exists since many releases before and is still not solved.

I'll hope the development team will attack this very annoying issue.

Regards,

Danny

Function pointers of typedef'ed functions works in C++, but not in MQL. This and many more tiny limitations make MQL less powerful and unable to handle most developing forms of modern programming.
 

Doesn't work wih 2715:

I have 3 Custom Symbols:

EURUSD3  (copy from Forex\Majors\EURUSD)
US303 (copy from Indices\Indices Spot\Major Spot Indices\US30)
DE303 (copy from Indices\Indices Spot\Major Spot Indices\DE30)

I have imported tick data for each symbol, Charts for each custom symbol are ok, no problem.

If I try to backtest US303(=US30), no problem.
If I try to backtest DE303(=DE30), I get the following error messages:

"EURUSD: no data synchronized, 27 bytes read
"symbol EURUSD history synchronization error
"no prices for symbol EURUSD"

I haven't downloaded any history data, my MT5 is offline.

What's wrong with DE303 backtesting?   MT5 should find EURUSD3 if any convertion from euros to dollars are needed, correct?

Thanks

Documentation on MQL5: Constants, Enumerations and Structures / Trade Constants / History Database Properties
Documentation on MQL5: Constants, Enumerations and Structures / Trade Constants / History Database Properties
  • www.mql5.com
When accessing timeseries the SeriesInfoInteger() function is used for obtaining additional symbol information. Identifier of a required property is passed as the function parameter. The identifier can be one of values of ENUM_SERIES_INFO_INTEGER.
 

Hello Metaquotes,

All the time for MT5 build 2715 (and newest one) for Demo Metaquotes account (Netting and Headging) only during Strategy Tester not correct calculation the following functions

1.  

ValPoint1Lot=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE); //Value 1Point at 1 Lot!! in account currency

the value of 1 point  (deposit currency USD, leverage 1:100, contract size 100 000)  is calculated in Quoted Currency (not Account/deposit Currency)  e.g. for USDJPY it is now 100.0 JPY;  e.t.c.

2. 

CheckSell=(bool) OrderCalcMargin(ORDER_TYPE_SELL,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_BID),Margin1LotSell);
CheckBuy=(bool) OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1.0,SymbolInfoDouble(Symbol(),SYMBOL_ASK),Margin1LotBuy);

Margin Value for 1 lot (deposit currency USD, leverage 1:100, contract size 100 000) using OrderCalcMargin()   now is calculated in base Currency (not Account/deposit Currency) e.g. for GBPUSD it is now  1000.00 GBP : e.t.c. 

Acc. to mql5 manual: 

Function Action
OrderCalcMargin Calculates the margin required for the specified order type, in the deposit currency

Does the way of calculation  for e.g. "OrderCalcMargin()"  or   "value of 1 point" depend on broker or not? 

Note 1: When I attach the same function to chart by EA (for Demo Metaquotes account) all mentioned above functions calculate correct and no problem. 

Note 2: I have paid attention for this issue earlier see : https://www.mql5.com/en/forum/355465#comment_19269261 but no changes also in last build 2724.

Note 3 : For other brokers the same build 2715 (and newest one) for Demo account (and real)  during Strategy Tester and during attaching to chart, all mentioned above functions calculate correct and no problem.


Best Regards,

OldForexTrader

New MetaTrader 5 Platform Build 2690: MetaEditor improvements
New MetaTrader 5 Platform Build 2690: MetaEditor improvements
  • 2020.11.11
  • www.mql5.com
The updated version of the MetaTrader 5 platform will be released on Thursday, November 12, 2020...
 

Here a user found a little bug in the documentation: https://www.mql5.com/en/forum/359081:

Dr Matthias Hammelsbeck 2020.12.29 18:15 | 91.51.87.88 ban  DE
Hi,
may be an error in MQL5 Reference/Market Info/SymbolInfoMarginRate:
initial_margin_rate
should be [out] at the beginning of the next line. 

Not [in]
Documentation Error?
Documentation Error?
  • 2020.12.29
  • www.mql5.com
Hi, may be an error in MQL5 Reference/Market Info/SymbolInfoMarginRate: initial_margin_rate should be [out] at the beginning of the next line...
 
After upgrade Buid 2734 beta version, Market indicators doesn't load. It gives "...failed. [538] " error.
 
ekren Clausewitz:
After upgrade Buid 2734 beta version, Market indicators doesn't load. It gives "...failed. [538] " error.
538 is not a MQL5 Error. You have to provide more info.
 
ekren Clausewitz:
After upgrade Buid 2734 beta version, Market indicators doesn't load. It gives "...failed. [538] " error.

I see. Some market indicators gives "Invalid license" [538]. I gave feedback to authors.

Thanks foe reply.

Reason: