New MetaTrader 5 Platform Build 2280 - page 3

To add comments, please log in or register
László Müller
35
László Müller  
Dear MetaQuotes Software Corp.!

It would be very useful if we can programming with non-type template arguments like
integer literals and compilation time computable expressions of them. For example
for arrays and template metaprogramming. Please implement these facilities for the

MQL4 and MQL5 programming languages.

Many thanks for considering my request!

Yours faithfully and best wishes: László Müller, Dombóvár, Hungary.
How to Order a Trading Robot in MQL5 and MQL4
How to Order a Trading Robot in MQL5 and MQL4
  • www.mql5.com
The main advantage of the MetaTrader trading terminal is the ability to create automated trading systems that can perform trading operations without the intervention of the trader, thus eliminating the influence of psychology on the results of the trade. To do this, we need to formulate a trading strategy and implement it in the form of a...
László Müller
35
László Müller  

Dear MetaQuotes Software Corp.!

I think that your developers must implement the  functions of the MQL preoprocessor
as the C/C++ CPP functions. With the following code snippet the second macro for the
indirection is now not necessary.

#define p_paste(arg_0, arg_1, arg_2) arg_0##arg_1##arg_2
#define p_evaluate_paste(arg_0, arg_1, arg_2) p_paste(arg_0, arg_1, arg_2)
#define apple 11
#define mouse 12
#define table 13

void f()
{
    int i = 10 + p_evaluate_paste(apple, mouse, table);
    PrintFormat("%d\n", i);
    return;
}

After the recent updates the `p_evaluate_paste' macro is not necessary anymore.
But why? Now it is not possible to pass for example the `apple' argument as a string
to a macro without the replacement of it. The solution is not complete now and not
a good solution. You have to implement the MQL preprocessor facilities and functions
to operate similar as the facilities and functions of the C/C++ CPP, the C preprocessor.

Please consider this issue too! You have to program the preprocessor with the above
mentioned possibility. The correct solution is the usage for example the `p_paste' and
the `p_evaluate_paste' macros, whichever you need!

Please fix these issues as soon as possible! I have at least 400,000 lines of MQL code
in my ATS framework now and I have to program with some advanced features like
this.

Many thanks for considering my request!

Yours sincerely: László Müller, Dombóvár, Hungary.

Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
  • www.mql5.com
//| Expert initialization function                                   | //| Expert deinitialization function                                 | //| Expert tick function                                             | //| test1                                                            |...
László Müller
35
László Müller  

Dear MetaQuotes Software Corp.!

There is another small issue with templates. Consider the following code snippet and create a
compilable `.mq4' or `.mq5' file with it. Why is the `main_1' not compilable? I think it should be.

#property strict

int func_0 (int x)
{
    return 5 + x;
}

int func_1(int x)
{
    return 8 + x;
}

typedef int (*funcs_type)(int);

template<typename value_type, typename func_0_type, typename func_1_type>
value_type apply(value_type x, func_0_type func_0, func_1_type func_1)
{
    return func_1(func_0(x));
}

//This is compilable with 0 errors, 0 warnings.
void main_0()
{
    funcs_type f_0 = func_0;
    funcs_type f_1 = func_1;
    int x = 10;
    PrintFormat("%d\n", apply(x, f_0, f_1));
    return;
}

//This is not compilable! Why it is necessary to
//create a function type with a `typedef' and to
//create 2 variables with that type? Please fix
//this issue!
void main_1()
{
    int x = 10;
    PrintFormat("%d\n", apply(x, func_0, func_1));
    return;
}

//This is not compilable! Just for trying something.
void main_2()
{
    int x = 10;
    PrintFormat("%d\n", apply(x, &func_0, &func_1));
    return;
}

//This is compilable! Just for trying something. But
//why is the cast necessary?
void main_3()
{
    int x = 10;
    PrintFormat("%d\n", apply(x, (funcs_type)func_0, (funcs_type)func_1));
    return;
}

Please fix these issues! With the template metaprogramming and the multiple inheritance
from interfaces your MQL4 and MQL5 languages (MQL) will be really useful with many many
functions and opportunities! This is a must.

Many thanks for considering my requests!

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

Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
  • www.mql5.com
//| Expert initialization function                                   | //| Expert deinitialization function                                 | //| Expert tick function                                             | //| test1                                                            |...
László Müller
35
László Müller  

Dear MetaQuotes Software Corp.!

Please change the current "right click" -> `New File' function of the MetaEditor!
After the activation of the `MQL Wizard: File' -> `Include (*.mqh)' function, one can
set the `Name' field which was setted to `Include\' as the default. Why have I to
set  manually the entire relative path name of the file which will be generated? Why
this is functioning well just for the `MQL5\Include' subdirectory? Not everybody create
source code files just in that directory. I have a big MQL source code base entirely
externally from the `Data Folder' and I create soft links to the appropriate directories
of my bigger project. The wizard must set the relative path with computation from the
location of the subdirectory whose icon was selected with the computer mouse click.
And this must functioning well outside the `MQL5\Include' subdirectory, for example
for a subdirectory under `MQL5\_link\_exte\'... Of course I set the include pathes relative
to the `MQL5\Include' subdirectory.

Please improve this function in the above described way and with the option of
empty `.mqh' files too! Not everybody wants the default file templates. Of course
I can delete the content manually. This is not important.

Many thanks for considering my requests!

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

Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
  • www.mql5.com
//| Expert initialization function                                   | //| Expert deinitialization function                                 | //| Expert tick function                                             | //| test1                                                            |...
Daniel Weckhuyzen
183
Daniel Weckhuyzen  

Hi,

I'm experiencing windows 10 crashing during the backtest optimalisation. Mouse and keyboard is freezing and I can't do anything anymore. The only thing I can do is a hard reset of my computer.

I was optimising with OHLC data over 2.5 year history data.

Also CTRL+ALT+DEL does not work.

It's possible that it's related with the latest windows 10 update.

What I've seen also is that although the backtester was not running, that the process-manager still shows several metatrader 5 jobs running. I see very often memory problems showing up. Sometimes after the optimising, the computer starts behaving very slow and the only way to resolve it, is by restarting the computer.


Regards,

Danny

Testing trading strategies on real ticks
Testing trading strategies on real ticks
  • www.mql5.com
The article provides the results of testing a simple trading strategy in three modes: "1 minute OHLC" using only Open, High, Low and Close prices of minute bars; detailed modeling in "Every tick" mode, as well as the most accurate "Every tick based on real ticks" mode applying actual historical data. Comparing the results allows us to assess...
Galaxxy1
5
Galaxxy1  
I cant place a new trade in binary.com mt5, The "new trade" button is greyed out. I have reintalled after unintalling. Other things such as deposit and withdrawal, experts, one click trading are all greyed out. Any help please
Nelson Wanyama
398
Nelson Wanyama  
László Müller:

Dear MetaQuotes Software Corp.!

There is another small issue with templates. Consider the following code snippet and create a
compilable `.mq4' or `.mq5' file with it. Why is the `main_1' not compilable? I think it should be.

Please fix these issues! With the template metaprogramming and the multiple inheritance
from interfaces your MQL4 and MQL5 languages (MQL) will be really useful with many many
functions and opportunities! This is a must.

Many thanks for considering my requests!

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

That's a whole bunch of complaints!

Have you taken into consideration that they are trying to keep the language as simple and less confusing, for everyone's use? I think they had pretty good reasons as to why they didn't include the things you mentioned as "MUST". 

I'd only request that they add a "Center_Mode" for metaeditor in full screen. It's not a must though. 

Btw, Metaquotes Software Corp. Thank you very much for the good job you are doing. I cannot imagine the hustle you go through trying to make everyone comfortable with both the trading and the dev's platforms. Keep it up!!!

Peace.

123
To add comments, please log in or register