On one application of the OOP - page 10

 
Alexey Volchanskiy:

Geez - the Intel compiler that's tearing everyone apart is going to catch up with the interpreter?

Sanych, don't drink too much ))))

Please read the post carefully:

Your matrix classes will have to use the Intel library for matrix operations,

This is BIBLE!

Expand your horizonsfrom there. To save you the trouble, here it is:

Intel® Math Kernel Library (Intel® MKL) accelerates math processing routines that increase application performance and reduce development time. Intel® MKL includes highly vectorized and threaded Linear Algebra, Fast Fourier Transforms (FFT), Vector Math and Statistics functions.

Geez... Gyyy....

Intel® Math Kernel Library (Intel® MKL) | Intel® Software
Intel® Math Kernel Library (Intel® MKL) | Intel® Software
  • software.intel.com
Intel® Math Kernel Library (Intel® MKL) accelerates math processing routines that increase application performance and reduce development time. Intel® MKL includes highly vectorized and threaded Linear Algebra, Fast Fourier Transforms (FFT), Vector Math and Statistics functions. The easiest way to take advantage of all of that processing power...
 
СанСаныч Фоменко:
By interpreter, I mean your favourite R
 
Комбинатор:
By interpreter I meant your favorite R

Nothing is interpreted in R. All functionality is native code. You call a function and only the command itself is interpreted. That's all.

And the speed of execution of the built-in functions is amazing. You can't do that with your own hands, or with the MKL. Or it's too long, and there's no need.

 
Yuriy Asaulenko:

It's not up to me. I quite believe that vector and matrix operations are at a level there. If not, it wouldn't be in the top 5.

And I have a good attitude to the language itself. But comparing MQL and R is ridiculous.)

application trading language vs. a language for data analysis? how can they even be compared?

Unloaded data (MQL) analysed (R) found an Edge, wrote an ATS (MQL), if necessary, with a link to the necessary functionality of the analytical platform.

If you want to port the required functionality, it's fair enough. All the more possible help is available in the form of developers ported alglib

 

Ideally you could run a whole ecosystem of EAs to model how they survive and change based on GAs to better match historical quotes.

Like in the beginning there were the simplest ones that bought or sold on one simple condition. Then, more complex ones started to form based on the simple ones. In general, extinction and the emergence of new efficient experts to track))) A kind of evolutionary programming based on Boolean crossbreeding of other individuals

 
Avals:

Ideally, an entire ecosystem of EAs could be launched to model how they survive and change based on GAs to better match historical quotes.

Like in the beginning there were protozoa, which were bought or sold on one simple condition. Then, more complex ones began to form on the basis of simple ones. In general, extinction and the emergence of new efficient experts to track))) A kind of evolutionary programming based on Boolean crossbreeding of other individuals

About evolution and "extinction": a notorious company held a competition for AI programming. Everything is adult - predator-prey model, ecology, geography, reproduction, ability to communicate between specimens and other stuff. After numerous runs of AI most sophisticated model wins with the simplest algorithm of behaviour: eat everything you can reach, breed at the first opportunity and if something happens, run together with a herd.

 
Maxim Kuznetsov:

about evolution and "extinction": a notorious company held a competition for AI programming. Everything is adult - predator-prey model, ecology, geography, reproduction, possibility of communication between copies, and so on and so forth. The most simple algorithm of available AI has won after numerous runs: an individual must eat everything it can reach, breed at the first opportunity and if something happens, run together with a herd.

MS arranged it in the early 2000s to popularize C#. Before that, the game was popular in Java.

But MS wrapped it all up in prizes, I won some stage, I don't remember which one. But the strategy was Rat in ambush)))))

I remember something else, postman rang the doorbell, - there was a parcel for you from MS.

I came to the post office - a box of 20 kg, all filled with books on programming)).

 
Alexander Laur:
Your post would have a LOGICAL conclusion if, to support your arguments about the inconsistency of inheritance, you would provide a graphical diagram of your view of the class hierarchy. For clarity! :)
The standard library is not the best example of code, but it's not (s)only in it. Strongly plus.
 
Alexander Laur:
Your post would have a LOGICAL conclusion, if in confirmation of your reasoning about inconsistency of inheritance, you would bring a graphical scheme of your vision of the hierarchy of classes. For the sake of clarity! :)

So far at the level of theses:

There is no silver bullet("NoSilver Bullet" Frederick Brooks, 1986). That is, there is no one-size-fits-all technology for correct software development. Any design method may cause inconsistency, complexity of perception and as a consequence, slow-down or even impossibility to further development.

Inheritance is inherently inconsistent. However, using it is very easy to create a contradictory design, much easier than it might seem at the beginning of the design.

Interfaces and inclusions are more secure.

From what has been said, it seems better to use flat models as a rule: a limited inheritance chain of two, maximum three levels and interchange through interfaces, the functionality of which is better realized through inclusions.

Unfortunately, interfaces are forbidden in MQL5, which is very unfortunate, although they could have been enabled in a neat move: allowing multiple inheritance of purely abstract classes.

ZZY. When I have time I will draw a class tree of my CStrategy project. It will be interesting to compare it. Though I shall emphasize once again: there is no silver bullet, i.e. in no way consider the same CStrategy by the principle "look how it should be done".

 
СанСаныч Фоменко:

If you can't cook cats, keep quiet...

R. This language for statistical data analysis also has 2 object-oriented programming systems

So? There's a lot more in there that MQL doesn't have. So what?

That's not the point. Algorithmic superiority of one language over another does not matter at all after a certain threshold of capability with respect to the subject area.

You're chewing on coder tastes here, and personally I'm here for the sake of commerce.

PS.

Your matrix classes will have to use the Intel library for matrix operations, then maybe you will equal R in this matter.

You stick your matrices in every post you make. Their application in real trading is very limited. 99.9% of Expert Advisors do not use matrix calculations (not to be confused with arrays in MQL).

R was created for rapid data analysis, but not for full-fledged simulation. What about calculations in the sliding window? 99.99% of all calculations in trading are made using sliding window. That is, if you insert a new element into the matrix and remove the old one, and then recalculate it, the cost of this operation must be O(1), and nothing else. In MQL this can be guaranteed in almost all cases, but how to do it in R?

Reason: