PLO

 

Bitte treten Sie mich nicht, sondern erklären Sie mir mit 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.

 
Serj_Che:

Bitte treten Sie mich nicht, sondern erklären Sie mir mit 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.

Lesen Sie diesen Artikel https://www.mql5.com/ru/articles/116
Написание советника в MQL5 с использованием объектно-ориентированного подхода
Написание советника в MQL5 с использованием объектно-ориентированного подхода
  • 2010.07.12
  • Samuel
  • www.mql5.com
Эта статья посвящена использованию объектно-ориентированного подхода для создания советника, рассмотренного в статье "Пошаговое руководство по написанию советников для начинающих". Большинство людей думают, что это сложно, но могу вас заверить, что после прочтения этой статьи вы сможете написать свой собственный советник на основе объектно-ориентированного похода.
 
sergey1294:
diesen Artikel lesen https://www.mql5.com/ru/articles/116

Ich habe dir gesagt, du sollst mich nicht treten, lies meinen Beitrag noch einmal.

P.S. Ich habe es nachgeschlagen, aber nie verstanden, was es damit auf sich hat.

 
Serj_Che:

Ich habe dir gesagt, du sollst mich nicht treten, lies meinen Beitrag noch einmal.

P.S. Ich habe es getan, aber ich weiß immer noch nicht, was der Grund dafür ist.

Die Hauptsache ist, dass man komplexere Algorithmen in einem Programm erstellen kann.
 
sergey1294:
Nun, soweit ich verstanden habe, ermöglicht OOP die Erstellung komplexerer Algorithmen in einem Programm.

Komplexe Algorithmen sind nicht gleichbedeutend mit effektiven Algorithmen.

Um in ein Haus zu gelangen, kann man durch eine Tür, ein Fenster oder einen Schornstein einsteigen.

Deshalb habe ich nach Beispielen gefragt (vorzugsweise für den Handel, nicht für Tetris).

 

Versuchen Sie, die Artikel zu lesen

Ich habe es gelesen. Es hilft.

 

Natürlich ist OOP kein Allheilmittel.

es wird mehr Ressourcen verbrauchen

weil es das gesamte Objekt lädt

bei der strukturierten Programmierung verwirft der Compiler nicht verwendete Funktionen

Im Gegensatz zur strukturierten Programmierung hat die einfache Programmierung also ihre eigenen Vorteile

Im Allgemeinen ermöglicht OOP die Erstellung einer Struktur zur Speicherung von Daten mit spezifischen Methoden.

All dies eröffnet natürlich viele Möglichkeiten von OOP und den Unterschied zur Struktur

aber jeder muss für sich selbst entscheiden, welchen Ansatz er wählt

 
CoreWinTT:

Versuchen Sie, die Artikel zu lesen

Lesen hilft.

Das habe ich. Das ist nicht der Fall.

Deshalb frage ich, ob OOP für den Handel nützlich ist und nicht für Tetris. Ich konnte keine Beispiele finden.

 
Serj_Che:

Lesen. Das ist nicht hilfreich.

Deshalb frage ich, ob OOP überhaupt für den Handel und nicht für Tetris geeignet ist. Ich konnte kein einziges Beispiel finden.

OOP erhöht die Leistung nicht. Sie ist nützlich - zum Beispiel, wenn eine Funktion mit einigen Parametern aufgerufen wird (z.B. EMA-Berechnung), verwendet die Funktion eine statische Variable, um den vorherigen EMA-Wert zu speichern. Da die Funktion den letzten Wert speichert, auf dessen Grundlage die Berechnungen durchgeführt werden, kann sie beim nächsten Funktionsaufruf nicht mit anderen Parametern (Symbol, Zeitrahmen, Glättungsperiode) aufgerufen werden. Wenn die Funktion also mit anderen Parametern aufgerufen werden muss, ist es notwendig, eine Kopie mit einem anderen Namen zu erstellen oder eine globale Variable zu verwenden, die als Referenz übergeben wird, anstatt einer statischen. Dies ist der einzige Fall, in dem es bequemer ist, ein Objekt zu verwenden - Sie laden eine Objektinstanz, setzen ihre Parameter und rufen dann die Methode ohne Parameter auf. Wenn das Objekt Methoden enthält, deren Ausführung nicht von früheren Ausführungen oder allgemein von irgendwelchen Parametern abhängt, mit denen das Objekt geladen wird, führt es zu nichts anderem als zum Verbrauch von Ressourcen.

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5
 
Serj_Che:

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

Ich hoffe, die Antwort von MKL5-Entwicklern und Programmierern zu hören, die OOP in MKL5 machen wollen.



Also, ein wenig über OOP (ich erkläre es an meinen Fingern, wie ich kann)...

DieOOP (Generic-orientierte Programmierung ) - ein Programmierparadigma, in dem die grundlegenden Konzepte sind die Konzepte der Objekte und Klassen.

In Bezug auf MQL5 sind die grundlegenden Elemente von OOP: Strukturen, Klassen (die ihre eigenen Eigenschaften und Methoden haben), Objekte und Ereignisse.

Unabhängig von der Sprache, in der programmiert wird, ist es notwendig, die folgenden Konzepte zu kennen (wie ein Gebet oder eine Multiplikationstabelle): Datenabstraktion, Kapselung, Vererbung und Polymorphismus.

Die MQL5-Standardbibliothek umfasst derzeit die folgenden Handelsklassen: CAccountInfo, CSymbolInfo, COrderInfo, CHistoryOrderInfo, CPositionInfo, CDealInfo und CTrade.

Soweit ich weiß, sind die Entwickler dabei, die Liste der Objekte der Standardbibliothek zu erweitern (und niemand verbietet, eine eigene Bibliothek von Objektklassen zu bilden).

Serj_Che:

Wird die Arbeit dadurch beschleunigt oder verlangsamt? Auf den ersten Blick ist MKL5 ein Ressourcenfresser ohne Geschwindigkeitszuwachs im Vergleich zu MKL4.

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

Selbst wenn MQL4(wie durch ein Wunder) nur die Hälfte von dem implementiert, was MQL5 bereits ermöglicht, wird es 100 Mal mehr Ressourcen verbrauchen, als Sie erwarten (so seltsam das auch klingen mag). Ich meine hier rein MQL4, ohne Drittanbieter-DLLs und anderes Programmtuning...

Tatsächlich würde das in MQL5 implementierte OOP (zusammen mit den Ressourcen des Terminals selbst) bei einem normalen Ansatz eine erhebliche Steigerung der Arbeitsgeschwindigkeit bewirken.

 
Serj_Che:

Lesen. Das ist nicht hilfreich.

Deshalb frage ich, ob OOP nicht eher für den Handel als für Tetris geeignet ist. Ich konnte kein einziges Beispiel finden.

Ich denke, dassMACD Sample.mq5 und Moving Average.mq5 nicht mehr Beispiele für TARGET-Experten sind (übrigens, niemand sollte Tetris die Schuld geben, es war ein gutes Beispiel für die Arbeit mit Objekten)? Und es scheint, dass es nicht mehr 2 EAs in der Basis gibt...
Grund der Beschwerde: