Wishes for MQL5 - page 3

 
alexnau:
wellx:
I've already written before, but I'll say it again:
- callback functions to work with the terminal itself
- Break/restore connection
- managing the queue of several EAs (mutexes, critical sections....)
- debugger (any)
- direct bar numbering support (from the oldest to the freshest) with messaging about changes of the number of bars
- create dll from MQL functions (will help to create libraries, what will reduce the overall code with a large number of indicators)


Solve the problems with uncertainty, it is unlikely it will improve the updated MQL. Why do we need some alerts to calculate the number of the current bar (zero bar)?

Despite the 'countdown', the logic for determining the necessary bar is clear and simple, in my opinion.

I'm not asking to change the current variant, but only to add support. What this will do is not to recalculate the history at each new bar, you only need to check the change in the number of bars. As a result, the load on the terminal is reduced and paging in is not as frequent.
 
The number of bars can still be controlled. That's what Bars is for.
 
alexnau:
wellx:
- support for direct bar numbering (from the oldest to the most recent) with notification of change in the number of bars


to solve the uncertainty problems, it is unlikely it will improve the updated MQL. Why do we need any alerts to calculate the number of the current bar (zero bar) afterwards?

Despite the "countdown", the logic of determining the necessary bar is clear and simple, in my opinion.


This would reduce the problem of finding the right bar in the history to specifying its 'backwards' index and would be much more economical.

Eh, the former enthusiasm and optimism is gone :), but I'll add my 5 kopecks:

In the tester, instead of the "check points" mode add "all ticks" parameter "number of Expert Advisor starts per bar". The mode "by open prices" should not be cancelled anyway, since more compact fxt is used for it. However, no, it's better to replace it with "at close prices" mode :)

And again:

-Add binding of global variables to program variables in init.

-To make an exe file for the tester.

-To add to indicator buffers ( for each type of variables) - for effective data exchange with Expert Advisor.

 
Also: add the ability to test a given fxt file with an arbitrary name. Why the current rigid relationship between fxt file name and character?
 
Here are my wishes for the new system so far that come to mind (in descending order):

Language
----

Convert double to string with maximum precision (> 8)

Conditional compilation (#ifdef, #ifndef, #define, #undefine)

Ability to replace keywords with #define (for conditional compilation). The value can be empty.
Example:
//#define EXTERN extern // normal
#define EXTERN // contest
EXTERN int opt = 0;

Nested comments /* */.
Not ANSI, but implemented almost everywhere (and disabled). Allows a large chunk of code to be quickly commented out with normal text comments.

Structures (promised)

Multidimensional arrays, better din management.

Debugger (promised?)

Events

Exceptions

API

Pointers or similar, for lists, decks, ...

Interface to the database (SQL or ODBC). The database must not be a server.

Inline functions

Function overload

Obfuscating (difficult to decompile).
Encryption of strings with single decryption at EA initialization, change code flow, code mixing, do not delete unused code,
add junk code and data...
Controlling all this with #pragma.


Terminal
--------
In settings, specify program or MQL script with options (and meta variables) to be called before (and after?) compilation (for custom preprocessing).


Editor
--------
Comment/uncomment operations (by button and/or hotkey)
 
1. Make the tester in a separate program (like MQL editor and terminal).
2. Make a more powerful genetic algorithm (to be able to test at number of variants 10 to the 20th power).
3. Speed up the testing process. (I will hardly wait for 15-30 hours, and it will be a killer task!
4. Introduce the function of position reversal (i.e. if you have a buy position with 5 lots, you can convert it to sell 5 lots).
That's all for now.
 

Another wish for the teeter totter. It would be good if besides the optimization period we could specify the period of cross-checking for found parameters. This feature saves a little from retraining of the trading system (or retraining of the NS).

 
I want a function. The input data is the optimisation data plus a range of returned values. The output is, of course, the optimised values.
 
klot:

Another wish for the teeter totter. It would be good if besides the optimization period we could specify the period of cross-checking for found parameters. This feature saves a little from retraining of the trading system (or retraining of the NS).

This is what we really need.
 
Integer:
drknn:
Well, I have a modest suggestion. I propose to introduce a function into the language, which will return the number of array cell, where the given value lies (or in case of failure to return minus one). Otherwise we have to arrange a loop every time. The ArrayBsearch() function is not suitable - it returns the wrong value.

Value returned by this function will still be checked for equality -1, so you can check the value with index returned by ArrayBsearch for equality to the desired value. Not a big difference

To quote the reference.

int ArrayBsearch(...)
Returns the index of the first found element in the first array dimension.
If there is no element with the specified value in the array, the function will return the index of the nearest element (by value).

Well, when you are searching for the index of not just a number in the array, but of a ticket of the order, this function does not suit at all - why do I need the index of the nearest similar ticket, when I need exactly this ticket, and if it is absent, the order is not among the market ones - it's closed and we should find it in the history! When you work with synchronously shifted arrays, the index is a very important thing, and it must either be accurate, or not available.


Reason: