What I would like from the "terminal" as a professional programmer. Another thread with wishes for MQL5. - page 8

 
However, if() by any JMP - unconditional or conditional still branches + while/for
 
In the interview with the MQL5 developers it was said that the interpreter will now compile in the x86 code of the platform, not in the byte-code of the interpreter. So, basically it is possible to disassemble and see the API for working with the terminal. Even libraries can be written based on it and written even in VC++.
 

It would be very convenient to double-click on a position in the tester results to jump to an event on the chart.

In the meantime, having to search for the moment by hand is tiring.

 
majestic >> :

It would be very convenient to double-click on the position in the tester results to jump to the event on the chart.

In the meantime, you have to use your hands to find the moment - it's stressful.

Isn't what's already there a good fit?

 

MProgrammer, why do you need a dotnet module that will draw charts? Moreover, what interest in MQ to give such a module of charts for free to third-party programmers.

Is it not possible now to give our calculated data from C# that we need to display on a chart through a simple file with loading and displaying objects using the script or indicator, written in MQL4? I.e. C# program >> data >> file >> script, indicator or synchronous access by EA.

If you want to create Expert Advisor in C# or any other programming language you are used to, you can make a chain of connection with MT, like


for Expert Advisor:

MQL4 Expert Advisor >> Dll >> sync socket >> C# program (working with quotes) >> (results) >> sync socket >> Dll >> MQL4 Expert Advisor (displaying graph objects, opening and closing positions)


for your optimiser or tester:

MQL4 script >> Dll >> sync socket >> C# program (working with quotes, multiple runs) >> (results) >> sync socket >> Dll >> MQL4 Expert Advisor (displaying graph objects and positions of the run as after the tester)


Advantages of this approach:

- You can develop program in language and environment you are used to, because all higher level languages support socket handling.

- It is possible to debug the strategy program.

- You can make your own optimizers, whose computing power is distributed across processors (multiple threads) and even computers in the network

(the distribution of course is a lot of work, but the optimization speed will be increased at several times). For example, running optimizer on desktop computer at home it will give a part of runs to laptop on local network and also to your friend's computer and maybe even to computer at work, where your optimization module is also running (unauthorized use of office capacity for personal purposes :))).


Cons:

- In MQL4, data transfer to Dll is not conveniently implemented. That is, the structures and arrays of structures can not be passed only arrays of double, but in MQL5 this problem has been promised.

Although, taking into account that msvc++ is faster to work with double than with other data types, the existing approach is probably even better, although less convenient.

- I'll have to create a connection module and debug it (but for a professional programmer it's no problem - it's easier than creating own charts, as the author of this thread said).


The communication module I want to implement myself on a socket for dot.net and java. I have the similar module in Delphi and WM_COPYDATA using - it works well and is used in the program linked with MT and trading on the real account.

By the way, I recently did some tests with real and integer numbers in Java and C++.

In general, if you use java machine in -server mode, then starting from the second or third run speed of java test of working with integers overtakes MSVC++ program.

With double data types msvs++ outperforms java, but when using float types java takes the lead. So there is dynamic optimization of the java program at runtime.

I'm not tested on C#, but I'm disappointed in delphi - it lags behind both C++ and Java in speed tests. Although it may be when working with many small objects (sorting, moving, deleting, creating) Delphi will show its best side.

 

Dear friends, let me say a few words about GOTO.

This whole story began long before the appearance of even those ancient personal computers, which some people remember with nostalgia.

"In 68 the situation was completely exploded by the famous article of Dijkstra "About goto operator's harmfulness", and that was at the time when not a single program could do without goto operator. It turned out that programmer's skill is inversely proportional to the number of goto operators he uses in his program. It was a revolutionary shock not only in the field of programming, but also in programming methodology in general.

Then there were a number of papers on structural programming, where it was shown that any program could be drawn without a GOTO, using 3 basic structures: sequence, branching and loop. Somewhere I even have Hoare's book "Structured Programming" lying around. I don't remember exactly, maybe the second author was Wirth.

"In '69, the Pascal language appeared, which was a pure implementation of Dijkstra's ideas".

" So can you or can't you use the goto operator ? In 1974 appeared Knuth's article "Structured programming with goto operator".

And so on and so forth.

In short, the discussion died down long ago; the use of goto is discouraged, and all sorts of break, contunue, exit, halt, hande hoch and other GOTO substitutes appeared, although many languages still use goto. I think that MQL-developers are familiar with this history, that's why there's no GOTO in MQL5. It's clear that they're hiding their motives by tradition. :-)

 

to Dedushka
anyone canshame and reproach a programmer,
Especially someone who does not know the colour of the cover of the
"Structured programming" and does not know that its author is Iodan (Iordan)
Yes, you have dates of beating GOTO adjusted to the landing of the Americans on the moon, but why?
Besides you're not aware of events that followed the release of C#, and why?
One last thing - in Dijkstra's time the number of GOTOs in programs was as high as 50%)))),
but for a very different reason than qualification.
To make it clearer, it's like someone saying that a grandfather's performance should be judged by the number of minor repairs
- the fewer repairs, the more qualified the grandfather is.

and to make the grandfather work better, his tools should be taken away from him.

 
Korey писал(а) >>

to Dedushka
Everyone canshame and reproach a programmer,
Especially someone who doesn't know what colour the cover of
"Structured programming" and does not know that its author is Iodan (Iordan)
Yes, you have dates of beating GOTO adjusted to the landing of the Americans on the moon, but why?
Besides you're not aware of events that followed the release of C#, and why?
One last thing - in Dijkstra's time the number of GOTOs in programs was as high as 50%)))),
but for a very different reason than qualification.
To make it clearer, it's the same as for someone to say that a grandfather's performance should be judged by the number of minor repairs
- the fewer repairs, the more qualified grandpa is.

and to make the grandfather work better, the tools should be taken away from him.

Dear Korey, I reread my post several times just in case... By God, I do not see any hint of trying to reproach or shame anyone.

I wasn't even thinking about it, it's just that I got to know the subject of the discussion about 30 years ago... And like a kindly Grandpa decided to tell me where it's coming from. :-)

About "structural programming" - yes, there's such a thick book in yellow paperback, classic work: W. W. Dahl, E. Dijkstra, and K. Hoare, "Structured Programming", Moscow, Mir, 1975.

And finally I am talking about the old days, all my books are from the previous century, and I am really "out of touch with events following the release of C#", because I am not a practicing programmer for a long time. I just works as a watchman at a small company :-). But I'm interested in MQL5, and it seems I need to relax and get out of hibernation - I have much to program, and I have no one to help me. So I came to this forum hoping to get some help from, like you, dear... Please don't swear, I don't like it...

 

to Dedushka

1. looking at your avatar, I see a sailor's chest like a sailor and the nickname "Grandpa" - yes, it means ship's mechanic, the chief mechanic went to the stock trade.
2. the level of "swearing" on the forum is acceptable, trade is identity, and one cannot trade without identity)))
2) the level of "swearing" on the forum is acceptable. trading is a form of self-sufficiency without self-interest, no way to trade without self-interest.
3. Whether you personally want to swear or not, you have already been swearing, especially since MQL4 as a language and as an environment is bad = )))
You just happen to join the shameful ones for "four-letter operator".
You're also ashamed of not understanding the deep thought of MQL creators))))
- If you remember the shape of punch-holes in punch-carriers, you will soon understand the price of MQL and MT-4.
4. goto is being tweaked and shamed as a reproach for being unintelligent, i.e. allegedly intellectually lame, and shameful.
for proof read this thread as well))
= took away the goto operator from programmers, supposedly let them jump around now.
5.
However, on the subject:
the goto shameful word may not be used, but SRAM itself and its shameful word goto operator - SHOULD

 

It should, it should be - just for the sake of art. There are situations where goto is the only way to code briefly and elegantly.