On one application of the OOP - page 5

 
Dmitry Fedoseev:

Does it make a difference if you write like this every time:

SymbolInfoDouble(Symbol(),SYMBOL_ASK) 

or like this:

s.Ask() 

?

Is there a difference between:

a<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

And there are more interesting ones, for example:

c <- b*a

where all identifiers are matrices and this matrix operation is performed using the most efficient code for Windows.

??????

It's not about that

When MQL4 was a language perfectly balanced between simplicity and possibilities, a lot of coders started to discuss all the "goodies" and they just couldn't settle down. And that's how they got the asshole and the HAPPENING of losses.

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

Is there a difference between:

a<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

And there are more interesting ones, for example:

c <- b*a

where all identifiers are matrices and this matrix operation is performed using the most efficient code for Windows.

??????

It's not about that

When MQL4 was a language perfectly balanced between simplicity and possibilities, a lot of coders started to discuss all the "goodies" and they just couldn't settle down. And that's how they got the asshole and the HAPPENING of losses.

It is incorrect to compare languages operating with matrices and numbers.
 
СанСаныч Фоменко:

Is there a difference between:

a<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

And there are more interesting ones, for example:

c <- b*a

where all identifiers are matrices and this matrix operation is performed using the most efficient code for Windows.

??????

It's not about that

When MQL4 was a language perfectly balanced between simplicity and possibilities, a lot of coders started to discuss all the "goodies" and they just couldn't settle down. So they got an asshole and a HEAVY of losses.

What was, all remains. You don't want to, don't use OOP. You can not touch the PLO, not think about it, live as before.

After your "with <- b*a" before opening a position a number of actions still need to be performed, if you perform them using OOP, life becomes more pleasant and fun.

Why don't you complain to the creators of R or matlab about the fact that it is impossible to open positions from these programs and in general, that they are not tied directly to the execution of trades? You can get to any programming language the same way, almost no language has action with matrices etc. You are comparing things from different categories.

 
Dmitry Fedoseev:

What was there, it's all there. You don't want to, don't use OOP. You don't have to touch OOP, you don't have to think about it, you live like before.

After your "with <- b*a" before opening a position there are still a number of actions to be performed, if you perform them using OOP life becomes more pleasant and more fun.

Why don't you complain to the creators of R or matlab about the fact that it is impossible to open positions from these programs and in general, that they are not tied directly to the execution of trades? You can get to any programming language the same way, almost no language has action with matrices etc. You are comparing things from different categories.

Let me add, using OOP, if necessary, you can create a CMatrix class that implements matrix operations and override + - * / = in it.

And everything would be as simple as that. I don't even need to create a CMatrix, everything has already been implemented in any of the libraries.

CMatrix m1, m2;
// заполняем матрицы
CMatrix m3 = m1 + m2;

By the way, I'm going to upset San-Sanych )). Dear Sir, do you know that your favourite R also has two OOP systems? )))))))) Just do not get drunk with grief ))

R. This language for statistical data analysis also has 2 object-oriented programming systems, S3 and S4. Both are inherited from the S language (which is not surprising given that R is an open source implementation of the commercial S). S4 is, for the most part, consistent with the OOP implementations of modern mainstream languages. S3 is a lighter variant, elementary implemented by means of the language itself: one general function is created, which dispatches requests by the "class" attribute of the received object.

 
Alexey Volchanskiy:

Additionally, using OOP, if necessary, you can create a CMatrix class that implements matrix operations and override + - * / = in it.

And everything will be just as easy. I don't even need to create CMatrix, everything has already been implemented in any of the libraries.

You can, but SanSan8 will answer that it would not be done in the best way, in this R, as SanSan8 believes, these matrix operations are done in the best way, probably by coding in pure assembly language.

The difference with R is that in R everything is ready-made, you just take it and use it, while here you have to do everything yourself.

 
Dmitry Fedoseev:
You can, but SanSan8 will answer that it would not be done in the best way, it's like in this R, as SanSan8 thinks, these matrix operations are done in the best way, probably by coding in pure assembler.

I added to my previous post - turns out R has OOP. (Terrible)).

By the way, I've tried this R - it's a rare brake. No wonder - it's an interpreter. So, no Asm.

 
Alexey Volchanskiy:

I added to my previous post - turns out R has OOP. (Terrible)).

By the way, I've tried this R - it's a rare brake. No wonder - it's an interpreter. So, no Asm.

If you don't know how to cook cats, keep silent...

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

So what? 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 coders' tastes here, and personally I'm here for the sake of trade.

PS.

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

 
Vasiliy Sokolov:

Here you go. Hierarchy of trading classes in the standard library:

It implies that the money management module is an Expert Advisor. Trailing stop is also an Expert Advisor. Expert Advisor includes other Expert Advisors. This inconsistent inheritance results from the fact that both trailing stop and money management need access to some private data and methods of the base Expert Advisor.

Well, this is just an ill-conceived class system.

On the other hand, my Expert Advisor template is based entirely on the Standard Library classes, and I don't see any particular problems. The ideology of the Expert Advisor parts factory is implemented. For the user of classes, writing an EA consists of writing this very factory, which can create a generator of inputs, filters, definers of SL-TP, and other components of the TS.

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

There was MQL4 - a language perfectly balanced between simplicity and features, but no, a bunch of coders started talking about "goodies" and can't settle down. And that's what we have got - an asshole and a LOSS of losses.

Something I don't understand... Well, don't use MQL5 innovations, that's all.

I really like inheritance and virtual functions. But when I want to do something simple in a hurry - I don't use them. At the same time, when complex processing of complex data is required - with OOP it's done much more conveniently and, what's important - further maintenance is also very easy.

 
George Merts:

I don't get it... Well, don't use innovations of MQL5, that's all.

I like inheritance and virtual functions very much. But when I want to make something simple in a hurry - I don't use them. At the same time, when complex processing of complex data is required, it's much more convenient to use OOP and, what's important, further maintenance is also very easy.

I would completely agree with you, were it not for one unpleasant circumstance: MQL has NO tools at all for statistical analysis of quotes. This is especially noticeable when dealing with R. Every trifle requires programming. And I'm even silent when speaking about models.

But that's not all.

External libraries are forbidden, hence the R marketplace. If it were not for this restriction I would simply get rich without any risk by selling very high quality indicators.

But that's not all.

The site has a group of battle coders who hawkily argue that this is a programmers' site, so trading-related posts are inappropriate.

That's the backdrop for OOP. Otherwise, it is a matter of taste.