
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Interpreters are just not suited for trading. It involves interpreting each statement while running it, very poor for trading. The only thing I was not sure of is if it produce native or intermidiate code. Although I guess any one who designs such a platform would go for native compiled code, the most reasonable choice.
I'm not sure what you mean. There is lot of web-based trading clients running JavaScript. And also many others providing their own scripting languages, such as Pine in TV.
I'm not sure what you mean. There is lot of web-based trading clients running JavaScript. And also many others providing their own scripting languages, such as Pine in TV.
I've always taken the "knowledge" that MQL is a "compiled" language at face value. Someone in another forum is claiming that MQL is in fact encrypted and then interpreted.
Back in the day, I think this was called P-code for "precompiled code" or "portable code" depending upon the context.
This slideshow, second page, describes this a bit for "portable code."
https://www.slideshare.net/Sandeep_Rv/p-code
I've always just assumed that MQL was compiled to P-code and interpreted somehow, much as described in this link.
Back in the day, I think this was called P-code for "precompiled code" or "portable code" depending upon the context.
This slideshow, second page, describes this a bit for "portable code."
https://www.slideshare.net/Sandeep_Rv/p-code
I've always just assumed that MQL was compiled to P-code and interpreted somehow, much as described in this link.
Let's say for sake of argument that MQL is compiled. If that is so - shouldn't these two source files compile and produce ex4's with an identical file hashes?
result:
Different hashes.
Let's say for sake of argument that MQL is compiled. If that is so - shouldn't these two source files compile and produce an ex4 with an identical file hash?
result:
Different hashes.
Every time you compile even the same source file you'll get different executable. This fuzzification is done intentionally to make it harder to decompile.
I don't know about them but surely they will not get in an intepreted script language the prformance of a compiled oop language.
This depends from use case. If it's not HFT or some kind of deep learning/data mining - scripting language can fit as well.
This is not a question of beleif. This is a fact. MQL5 is definitely a compiled language, producing native 32 and 64 bit code. You can find some posts about compilation on the russian forum, for example this one.
The main proof of the fact is that the speed of compiled mql5 program is very close to a compiled c++ program. This can't be for an interpreter.
Yes, the final output is encrypted, but this does not mean that compilation is somehow impossible.
As for the original question, I'm not sure I get the point. If you change the source code and do not recompile it, you'll get old error messages from the running old executable.
Many Python binding modules that wrap C++ libraries also run at nearly the speed of a native C++ program. What I'm not understanding is if the MQL source code is being compiled to machine code then how do run-time errors know the exact line number and char-count to point to in the original source file?
Every time you compile even the same source file you'll get different executable. This fuzzification is done intentionally to make it harder to decompile.
Ok, I understand now... Thanks for the clarification.
Let's say for sake of argument that MQL is compiled. If that is so - shouldn't these two source files compile and produce ex4's with an identical file hashes?
result:
Different hashes.
And even if it would, the fact that the files are not identical can be asked on the output of an interpreter as well, meaning it does not prove it's not compiled.
Every time you compile even the same source file you'll get different executable. This fuzzification is done intentionally to make it harder to decompile.