My approach. The core is the engine. - page 106

 
Aliaksandr Hryshyn:
Why 3D? Figure out the purpose first. 3d graphics? Doubtful stuff. What's the purpose of 3d?

To make the profits bigger, and the profitability of the trade in general)!

 
Реter Konow:

Then the world of 3D opens up. The technology is a bit of a head-scratcher, but I'll do it. The three-dimensional shapes will twist and turn.

Peter, you've gone off the deep end again. Focus on current functionality, otherwise your engine will never make it to release. Roll out the basic functionality and then implement your new ideas: 3d, 4d, 6d, Power Surround, etc.

 
Aliaksandr Hryshyn:
Why 3D? Figure out the purpose first. 3d graphics? Doubtful stuff. What is 3d for?

The market existed before computers even existed. Imagine that you were transported by time machine to the 20s in America. Knowing modern electronics and programming, you decided to build a computer, write a platform and sell trading robots to everyone.

If you had approached traders with a description of what you wanted to create, you would have been considered insane. No one would understand what you were saying. Not a single word. Because there were no such concepts back then. You couldn't explain anything to anybody. Until about the mid '40s. Then Alan Turing's calculating machine came along, and telling him your plans would have given you a modicum of understanding. Closer to the '80s, you'd get an even better understanding...

You have to understand that profit from the market is a fiction. The real profit is... conquering new territory.. In this case,the territory is MQL-technologies. The more technology I create, the more territory I will conquer. And there, in that territory, you can find your gold mine....

So, I strive to do as much as I can.

 
Vasiliy Sokolov:

Peter, you've gone off the deep end again. Focus on the current functionality, otherwise your engine will never make it to release. Roll out the basic functionality and then implement your new ideas: 3d, 4d, 6d, Power Surround, etc.

By and large, I have one task left to implement in the release: a new communication mechanism between the engine and the EA.

The rest could take months to finalize. Fix bugs, add features...

 
Реter Konow:

For the release, I basically have one task left to implement: a new communication mechanism between the engine and the EA.

The rest could take months to finish. Fix bugs, add features...

So concentrate on the connection between the engine and the EA. Leave other tasks like 3d, 4d, 6d for later. Right now, the goal is release. Everything else later.

 
Vasiliy Sokolov:

So concentrate on linking the engine to the EA. Leave other tasks like 3d, 4d, 6d for later. Right now, the goal is release. Everything else is for later.

If you say so, that's how it is. The first objective is to get the audience interested. You had to do a lot of interesting and unusual things to do that. If the public is already interested, then you have to move on to the second objective - release and distribution.

 
Реter Konow:

So, I aim to do as much as possible.

The approach is strange).

 
Реter Konow:

Guys, with all due respect, program as you please. I will program in my own way.

OOP is needed for a team of programmers working on a project that is beyond the capabilities of one person.

Simple animation does not require OOP. Also, when hunting a hare, you don't need to bring a bazooka.))

You're wrong, Peter.

OOP is required by any programmer, who out of his feeble mind cannot remember the purpose and relationships of some few thousands of objects (say, I can't - I'm brain-deprived).

You can easily keep it all in mind - that's why you don't need OOP. Only extra gestures, and you are understandable.

But not everyone is such a titan of memorization. I, for example, can no longer remember the subtleties of what I wrote a few days ago. And what I wrote six months ago, if necessary, I'm forced to figure it out from the beginning. That's why for me encapsulation, hiding implementations, cutting off access to everything, minimizing global variables is a good thing. All of this keeps me from "going in" where I shouldn't. However, this is solely due to my poor memory - I can't remember a thousand little things.

 
Vitaly Muzichenko:

To make the profit more, and the profitability of the trade as a whole) !

Exactly !

Expert Advisor that displays the results in the form of a three-dimensional surface a la the three-dimensional chart in MetaTrader - immediately becomes much more profitable !

So do not bother Peter to form new traders. In reality - for those who know how to program, but who prefer to trade by hand - all Peter's developments are very interesting. True, I somehow do not see such people, but Peter says that they can be nurtured, created. Obviously, by showing the advantage of such a manual trade.

It's just a matter of showing this advantage. While I have seen Peter's visual controllers and have an idea of what they are, I have not noticed the advantages of manual trading.

Well, then... We are waiting !

 
Реter Konow:

This animation cannot be implemented with CCanvas. There's no mechanism for connecting one canvas to different resources. And without it, you need to redraw the original kanvas content at each animation shift. Otherwise, you will get a dead picture.

Redrawing takes time and everything starts to slow down. I had to implement my own mechanism of reconnecting canva to two resources in turn and as a result I accelerated animation many times over.

What's more, CCanvas class is designed to work with only one canvas. And I can draw on different kanvases at the same time.

That's what OOP is good for!

You don't have to "tear out" functions from the class. You are lucky that the ripped out functions do not "pull" anything. By the way, thanks to encapsulation and absence of global variables. If this class was not written in OOP-style, you would not have been able to rip out this code so easily.

But that's not the main point. If you need to organize several instances of canvas, you create several instances of the object. If you need to work with object "internals", you inherit from it and work.


You can do it the way you do it. But in this case the risk to encounter an error is much higher because you didn't write the class and you don't know all the details of its work. "Tearing" code out of a class is a very dangerous practice. Imagine, if I took a couple of functions from your library - do you think I would have succeeded? Unlikely, because with functions you'd have to "drag" all global variables, of which you have quite a few. And the links between internal objects - not the fact that I will take them all into account. I don't have enough memory for that.

But, you are lucky. Your memory is excellent. I envy you.