Wishes for MQL5 - page 16

 
Please send us your feedback on MQL5.

The development of MQL5 is in full swing and it is one of our key features of the new trading platform. We are purposely not participating in discussions for the sake of peace of mind at the moment. But in a while we will start to publish information about the new language, libraries and programming environment.
 
Renat:
Please give us your feedback on MQL5.
Only for the language, or for the editor with the terminal as well?
 
komposter:
Renat:
Please express your wishes for MQL5.
Only to the language, or to the editor with the terminal as well?
For language and editor. To the terminal - that's in a separate thread. For now, it would be better to discuss MQL5 and the editor.
 
  • In Fortran there was a wonderful thing - a subprogram. The parameter list was not only inbound but also outbound. Now everything is through the global...
  • It is desirable to have customizable properties of special functions. For example, a tick-by-tick start, start with a given frequency, looped withautomatic environmentrefreshing.
  • Possibility to call another application program from the Expert Advisor, e.g. indicator (both standard and custom) with possibility to display it on the chart.
  • Access to names of programmes loaded into window
  • Access to the list of available application programs and libraries (.
  • Access to all indicator arrays of indicators, loaded manually, from Expert Advisor and script.
  • Exchange of information between terminals and programmatic access to correspondence (it is possible that commerce will go the way of selling signals).
  • Multiple graphical layers and complete freedom (e.g. indicator layer on top) (or: a separate layer for each order, because in today's single layer environment the top order lines cannot be selected if there are multiple orders at one price - graphical horizon).

----

  • The editor, of course, needs a debugger.
  • Ability to collapse groups of lines into a line.
  • Labels should not disappear when ME is closed.
  • Highlight custom function names in colour.
  • Blinking brackets (if you highlight the left one, the right one blinks).
 
Ability to print in colour directly from the ME.
 
By editor:
  • auto-completion when entering user variables and functions;
  • tooltips when entering parameters for user-defined functions (as for normal functions);
  • commenting/uncommenting a block;
  • window "immediately" - instant execution of the entered code string;
  • remove bugs with search of short lines and "shading" of uncommented text.

For interaction with the terminal:
  • when compiling the EA, only restart it on the chart or do not restart anything!
  • when compiling a file which is referenced to another file, compile it too;
  • start/stop script/expert/indicator from the code (from the same "immediately" window).
By language:
  • list of symbols from the code;
  • ALL symbol parameters from the code (so that you can calculate everything the terminal calculates);
  • events - trade, interface, error events;
  • Comment function - expand functionality (do not erase previous text, select font and colour, angle of binding, ...);
  • Global Variables Terminal - ability to hide from user, save to disk on command or immediately after change.
Well, and I join almost all the previous speakers, I'm done for now.
 

Without knowing the properties of special MQL5 functions, it's hard to say in advance, but MQL4 has such a problem.

Start() is looped in. It works. A user connects to another account. Environment information from the new account becomes available to the Expert Advisor in the current session before start() is forcibly closed. The Expert Advisor (based on its internal analysis) reports that the orders (that were in the previous account) have been closed, swaps, Stop Levels, etc. have changed, etc. with all ensuing consequences.

The Expert Advisor does not explicitly track information about a new account followed by a decision to deinit-init-start() either. I have not managed to catch the pattern, but deinitialization does not always happen. For example, if the terminal has just been loaded and connection to account A has been established, the transition to account B takes place without deinit-init-start. After one minute the switch from B to A occurs with the expected deinit-init-start and the subsequent switch from A to B or between any other accounts is also normal. It seems that the problem is somehow related to the fact of first connection to the account. The effect is persistent.

In general, the wish is: when switching to another account first deinit the current account in the current environment, and then - as if from scratch (connect to a new account and run in the terminal the new environment values).

 

If you've implemented an object model, then look at that object model, available methods, properties, etc., as well as in debugging.

Otherwise, everything suggested above is part of what is available in most modern development environments, all you need to do is replicate, for example, Microsoft's Visual Studio. For example, when switching from VB 6 to VB .NET, not much has changed, the functions have simply become part of a separate class, for those who don't immediately find the alternatives, only the scale of approaches has increased. Only low-level functions were removed, thanks to which I expanded my knowledge and even changed the programming language, of course those who didn't know about such functions as objptr didn't need it :) Of course, after that all the alternative functions and classes were learned, but the ease of accessibility of such small features as work with pointers, did not allow me to go back to the past century and opened up new fields, without logical reasoning in the C++ fog, while I tried to write in VB, I studied ASM and tried to create a programming language, but further learning system programming, led me to the fact that the best of all that was created for applied programming is .NET, I never understood the logic of Java and before

P.S.: This is as an example of what to strive for:)

The most important thing that provoked the serious development of .NET technology is Reflection and the opportunity to study the source code to understand how it works down to the smallest detail, no description and examples will not give more than the opportunity to see to the root. All the disassemblers and many other tools that have been developed for low-level approaches pale into insignificance. For example I know many details and differences between .NET 1.0 and 1.1 and even more so between .NET 2.0, not because I know that the new version is good or better, but because I have seen the difference in source code and machine code and I still see all the new heights that .NET reaches.

Let's assume that I have also studied the terminal and its language and let's assume that there will be something to compare in consideration of what we have:) I do not trust words, I trust my eyes:)

 

1) drag and drop dragging of orders as in one program, I do not remember the name now, it is beautiful))

2) In the tester W1

3) Visual EA editor, so any beginner, not knowing the MQL language at all, could implement his own ideas in EAs to check them on the history, because ideas that have been checked turn out to be illusions, and without a programmer there is no chance to give up illusions))

the last one sounds fantastic I understand, but if it is implemented, mt will make a quantum leap, will become truly mass-market and will leave competitors behind forever))

 
Ability to create strategies visually, based on the rules applied to the indicators. Just as it is implemented in the Trading Solutions visual environment. It is convenient that there is no need to bother with the indicator, creating the code of the Expert Advisor just to check its signals.
Reason: