New MetaTrader 5 Platform build 3980: Improvements and fixes

 

The updated version of the MetaTrader 5 platform will be released on Thursday, September 21, 2023. It features a number of platform fixes and improvements.

New MetaTrader 5 Platform build 3980: Improvements and fixes


MetaTrader 5 Client Terminal build 3980

  1. Terminal: New trading report improvements. Fixed the display of the total swaps value and the profit chart by symbols.
  2. Terminal: Optimized deposit and withdrawal pages. For further details about the new platform integration with payment systems, please read the build 3950 release notes.
  3. Terminal: Optimized recalculations of financial operations across the entire platform, including the strategy tester. Now profit, margins, and many other parameters are calculated faster.
  4. Terminal: Updated user interface translations.
  5. MQL5: Added Conjugate methods for complex, vector<complex> and matrix<complex> types. They implement complex conjugate operations.
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       complex a=1+1i;
       complex b=a.Conjugate();
       Print(a, "  ", b);
       /*
       (1,1)  (1,-1)
       */
    
       vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i};
       vectorc vb=va.Conjugate();
       Print(va, "  ", vb);
       /*
       [(0.1,0.1),(0.2,0.2),(0.3,0.3)]  [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
       */
    
       matrixc ma(2, 3);
       ma.Row(va, 0);
       ma.Row(vb, 1);
       matrixc mb=ma.Conjugate();
       Print(ma);
       Print(mb);
       /*
       [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
        [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]]
    
       [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
        [(0.1,0.1),(0.2,0.2),(0.3,0.3)]]
       */
       
       ma=mb.Transpose().Conjugate();
       Print(ma);
       /*
       [[(0.1,0.1),(0.1,-0.1)]
        [(0.2,0.2),(0.2,-0.2)]
        [(0.3,0.3),(0.3,-0.3)]]
       */
      }
  6. MQL5: Added handing of ONNX model outputs of the 'Sequence of maps' type.

    For ONNX models that provide Map sequences in the output layer (ONNX_TYPE_SEQUENCE of ONNX_TYPE_MAP), a dynamic or fixed array of structures should be passed as the output parameter. The first two fields of this structure must match the ONNX_TYPE_MAP key and value types and be fixed or dynamic arrays.

    Consider the iris.onnx model created by the following Python script:
    from sys import argv
    data_path=argv[0]
    last_index=data_path.rfind("\\")+1
    data_path=data_path[0:last_index]
    
    from sklearn.datasets import load_iris
    iris_dataset = load_iris()
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
    from sklearn.neighbors import KNeighborsClassifier
    knn = KNeighborsClassifier(n_neighbors=1)
    knn.fit(X_train, y_train)
    
    #  Convert into ONNX format
    from skl2onnx import convert_sklearn
    from skl2onnx.common.data_types import FloatTensorType
    initial_type = [('float_input', FloatTensorType([None, 4]))]
    onx = convert_sklearn(knn, initial_types=initial_type)
    path = data_path+"iris.onnx"
    with open(path, "wb") as f:
        f.write(onx.SerializeToString())
    Open the created onnx file in MetaEditor:


    Viewing the ONNX model in MetaEditor


    The Map sequence is passed as "output_probability". It has a key of INT64 type (which corresponds to long in MQL5) and the float type value. To receive data from this output, declare the following structure:
    struct MyMap
      {
       long              key[];
       float             value[];
      };
    Here we used dynamic arrays with appropriate types. In this case, we can use fixed arrays because the Map for this model always contains 3 key+value pairs.

    Since the Map sequence is returned, an array of such structures should be passed as a parameter for receiving data from output_probability output. This array can be dynamic or fixed, in accordance with the properties of a particular model. Example:
    //--- declare an array to receive data from the output layer output_probability
    MyMap output_probability[];
    
    ...
    
    //--- model running
    OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);
  7. MetaEditor: Fixed display of output types in the ONNX model viewer.

MetaTrader 5 Web Terminal build 3980

  1. Added Contact Broker section in the web terminal's main menu.
  2. Added error handling for SSL authentications. This authentication type is not supported in the web terminal. One-time passwords can be used instead.
  3. Fixed desktop platform download link in the main menu.
  4. Fixed accounts managing dialog. If the broker does not provide the demo or real account opening option, the relevant menu item will be hidden.


The update will be available through the Live Update system.

 
Is it also working for parallels on mac with ARM M1 ?
 

Forum on trading, automated trading systems and testing trading strategies

Update to MT5 verison 5.00 build 3980, Email malfunction

Lei Zhu, 2023.09.25 15:47

When you restart MT5 after updating to latest build 3980 of version 5.00 MT5, immediate test email in "Email" tab of "Options", the Journal show email test send to ***@**.com. This is normal.
but just 2 minutes later, you retest Email tab, the Journal show "connect to **** failed".
then I test 4 other MT5, the results are same, beginning is OK, several minutes failed. it is seemed that latest version has the bug with email.
Anyone could help me this.

 
seatrips #:
Is it also working for parallels on mac with ARM M1 ?

Yes, it does.

 

Am i the only person in this forum that finds the new report worse than the previous one? It is a pity that you spent so long working on it but the result doesn't satisfy. Here is some constructive feedback of the report:

- Let the user have more input in the report, for example, it would be great if you could have reports by: Magic number, symbol, filter by date (I can't believe that you missed this one on this last refactor)

- The amount of information in the Profit & Losses pages is averaged automatically to the whole life of the account, as you can imagine, I may not be interested on how things went last year, but it would be great if I can have an extended detail for example of the last 30 days or 3 months, to the choice of the user

- Net profit by symbol is taking the top 3 and bottom 3, what about the rest? vital information lost.

- The whole Symbol page loses it's meaning, what's the usability on knowning how many deals or how much money have you invested per Symboll, it would be great if the graphic actually showed you the performance of each symbol clearly over time, like in the Summary page.

- Graphs look nicer, but we lost so much data in exchange for a nice graph... Bring them back or improve the resolution of the new graphs.

- I'm not sure what's the purpose of the Long & Short view at all, what's the key learning I'm intending to find there?

Thanks
 
Comments that do not relate to this topic, have been moved to "Problem : email set up in metatrader4".
 

Suggestion to the terminal, options board, Columns:

- Add SYMBOL column;

- Add BID column;

- Add ASK column;

- Allow to add/remove any columns, not just Open Price, Last Price, Theoretical Price, and Profit.

Keep up the good work!


 
Hello, @MetaQuotes!

Please implement Dark Mode for the MetaTrader 5 Desktop interface.
MetaTrader 5 Mobile already has this functionality. Missing in the Desktop version.
This is very useful for people with eye limitations.
There are several people looking for this when searching on the internet.

Guys,
Anyone who reads this topic, please comment below.
MetaQuotes needs to know this is relevant.

Thank you very much!

#DarkMode #MT5
 
Eduardo Carvalho #:
#DarkMode #MT5
Yes, we realy need dark mode on the desktop version
 

A bug, that may have been present for many builds before this one ...

Forum on trading, automated trading systems and testing trading strategies

How to set indicator level color to transparent?

Fernando Carreiro, 2023.09.28 12:52

I took the time to create my own test example code, and these are my findings:

  • When setting the "Levels" via the terminal's Indicator properties tab, the Colour, Line Style and Line Width are set globally to affect ALL the levels (this differs from the MQL method).
  • When setting the "Levels" programmatically via MQL, each level can have it's own local Colour, Line Style and Line Width (this differs from the properties tab).
  • When programmatically setting the colour to "clrNONE", this always produces "white" and not "None" as what happens when setting from the properties tab.

This confirms, the OP's findings that setting the level colour to "clrNONE" does NOT work as expected.

This could be considered a bug, but I don't know if MetaQuotes is going to do anything about it.


#property indicator_separate_window
#property indicator_maximum 10
#property indicator_minimum -1

input color i_clrLevel = clrNONE;

int OnInit() {
   IndicatorSetInteger( INDICATOR_LEVELS, indicator_maximum );
   for(int i = 0; i < indicator_maximum; i++ ) {
      IndicatorSetDouble(  INDICATOR_LEVELVALUE, i, (double) i            );
      IndicatorSetInteger( INDICATOR_LEVELCOLOR, i, i_clrLevel            );
      IndicatorSetInteger( INDICATOR_LEVELWIDTH, i, 1                     );
      IndicatorSetInteger( INDICATOR_LEVELSTYLE, i, STYLE_DOT             );
      IndicatorSetString(  INDICATOR_LEVELTEXT,  i, "Level " + (string) i );
   };
   
   return INIT_SUCCEEDED;
};

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[]) {
   return rates_total;
};
 
for libraries, which .NET Framework version does this version supports?
Reason: