PLO - Seite 6

 
Rosh:
Es gibt keinen Unterschied, solange Sie nicht ausdrücklich auf das Objekt als Zeiger verweisen. Probieren Sie es selbst aus und lesen Sie den Artikel When to use pointers in MQL5
Ich danke Ihnen!
 
Serj_Che:

Bitte treten Sie mich nicht, sondern erklären Sie mir an den Fingern, was ein OOP ist und wie man es zubereitet.

Ich hoffe auf eine Antwort der MKL5-Entwickler und Programmierer, die darum gebeten haben, OOP in MKL5 zu machen.

Soweit es sich um eine Beschleunigung oder Verlangsamung handelt. Auf den ersten Blick ist MKL5 ein Ressourcenfresser ohne Geschwindigkeitszuwachs im Vergleich zu MKL4.

Ich würde gerne konkrete Beispiele für Leistungssteigerungen sehen.

Mit OOP können Sie verschiedene Situationen simulieren und auch Berechnungen parallelisieren. Tetris ist kein sehr gutes Beispiel, es kann ohne OOP geschrieben werden, nur mit mehr Code. Versuchen Sie zum Beispiel, ein Fischglas zu erstellen, in dem jeder Fisch seine eigene Geschwindigkeit und seine eigene Flugbahn hat und es 500 davon gibt. - Für diese Art von Aufgaben ist das OOP genau das Richtige! Nehmen wir zum Beispiel Expert Advisors in Forex, dann kann ein Objekt mit bestimmten Parametern durch die Historie laufen, während der EA selbst zu diesem Zeitpunkt handelt. Oder dieselben grafischen Panels - Toolboxen - zum Beispiel, mehrere unabhängige Datenfenster. Wo Parallelität von Arbeit und Berechnungen erforderlich ist, kommt OOP zum Einsatz.

 

OOP hat nichts mit Parallelisierung zu tun.

 
papaklass:
Die Aussage "Wo Parallelität von Arbeit und Berechnungen erforderlich ist, sollte OOP zum Einsatz kommen" ist also nicht wahr?

CUDA zum Beispiel ist in einfachem C geschrieben, und OOP kommt dort nicht in Frage.

Soweit ich weiß, gibt es heute keine Sprachen, die OOP direkt für die Parallelisierung verwenden.

 
papaklass:
Die Aussage "Wo Parallelität von Arbeit und Berechnungen erforderlich ist, sollte OOP zum Einsatz kommen" ist also nicht wahr?
Nicht ganz. Bei der Anwendung von OOP sollten Sie die Ressourcenbilanzierung berücksichtigen, z. B. gibt es nicht 500 Millionen Fische, sondern 5 Millionen davon plus Algen). Nehmen wir ein Beispiel: Sie haben einen Expert Advisor, der mehrere Money-Management-Systeme verwendet. Und Sie möchten die gesamte Dynamik des EA sehen, der mit verschiedenen Geldverwaltungssystemen arbeitet. Wenn wir nicht OOP verwenden, müssten wir für jedes Schema nacheinander Berechnungen anstellen, was dazu führen kann, dass ein Tick veraltet. Oder machen Sie die Ausführung jedes MM-Schemas in einem Objekt. Da es eine Reserve an Ressourcen gibt, würde alles fast "gleich" - "parallel" - ausgegeben werden. Das ist die Art von Parallele, die ich im Sinn hatte.
 
papaklass:
Die Aussage "Wo Parallelität von Arbeit und Berechnungen erforderlich ist - da passt OOP hinein" ist also nicht wahr?

Ja. Das ist nicht wahr.

 
Serj_Che:

OOP ist ein Fehler, wie "Niva" oder "Lada".

Verwenden Sie die reguläre prozedurale Programmierung in MetaTrader 5.

Sie ist hier genauso zugänglich wie im MetaTrader 4.

Schade, dass MetaQuotes dies nicht hervorhebt.

 
MoneyJinn:

OOP ist ein Fehler, wie "Niva" oder "Lada".

Verwenden Sie die reguläre prozedurale Programmierung in MetaTrader 5.

Sie ist hier genauso zugänglich wie im MetaTrader 4.

Schade, dass MetaQuotes dies nicht hervorhebt.


Ein Fehler, warum sollten sie?
 
MoneyJinn:

OOP ist ein Fehler, wie Niva oder Lada.

Verwenden Sie die normale prozedurale Programmierung in MetaTrader 5.

Sie ist hier genauso verfügbar wie im MetaTrader 4.

Es ist schade, dass MetaQuotes dies nicht hervorhebt.

Meiner Meinung nach irren Sie sich gewaltig!

Sobald Sie große Projekte haben (mindestens ein paar tausend Zeilen Code), werden Sie sehen, dass die Programmierung mit Klassen (OOP) es sehr einfach macht, den Entwicklungsprozess und vor allem das Debugging zu kontrollieren.

Außerdem bringt OOP die Projekte näher an das wirkliche Leben heran, denn im wirklichen Leben haben wir es nur mit Instanzen von Objekten zu tun (ein Haus, ein Baum, ein Mann, ein Auto, ein Auftrag usw.), d. h. mit einer Reihe von Eigenschaften und Methoden :)

Versuchen Sie, etwas in OOP zu machen, Sie werden sehen, dass es eleganter und klarer ist. Es ist einfacher als prozedurale Programmierung!

 

MoneyJinn:

OOP ist ein Fehler, wie Niva oder Lada.

Verwenden Sie die normale prozedurale Programmierung in MetaTrader 5.

Sie ist hier genauso verfügbar wie im MetaTrader 4.

Es ist schade, dass MetaQuotes sich nicht darauf konzentriert.


Solange die Verwendung von OOP keinen praktischen Nutzen in Form von Geld bringt, wird es Argumente geben. Ich bin kein Befürworter von Argumenten, schließlich kann man bei Wikipedia nachlesen und die Vor- und Nachteile von OOP und Parallelisierung googeln. Wenn Sie Beispiele benötigen, finden Sie viele davon in der Sammlung der Terminalprogramme. Selbst dieser Satz von Terminalprogrammen hat das Schreiben von Programmen nicht einfacher gemacht? Konventionelle prozedurale Programmierung ist weniger vielseitig.

Ich habe mehrere Objekte, von denen jedes etwas anderes tut - für jedes müssen Sie Prozeduren schreiben und warten, bis sie der Reihe nach erledigt sind - das ist nicht nötig.

OOP ist ein Fehler, wie "Niva" oder "Lada". - tapfer! Ich frage mich, wie viele Programme auf Ihrem Computer installiert sind, einschließlich Betriebssysteme? Und wie ist das Verhältnis zwischen Programmen, die OOP verwenden, und solchen, die das nicht tun?