Hat jemand ein erfolgreiches automatisches Handelssystem entwickelt? Was ist Ihr Rat? - Seite 16

 
Aleksei Stepanenko #:
Großartig! Wie sieht es mit dem Gewinn bei OOP aus? Wird es sofort nach dem Lernen gehen?

OOP gibt Ihnen die Möglichkeit, kompakten, klaren und eleganten Code zu schreiben. Sie verbringen ein Vielfaches weniger Zeit mit dem Schreiben, Ändern und Debuggen von Code, was sehr teuer ist. Sie können ein weitaus ausgefeilteres Handelssystem aufbauen und weitaus mehr Handelsoptionen ausprobieren. Wenn Sie keine Ideen für einen profitablen Bot haben, ist es natürlich besser, gar nichts zu tun. Vergessen Sie außerdem nicht die Wahrscheinlichkeit eines direkten Verlusts im Falle von Fehlern, die bei gutem OOP-Code viel geringer ist.

 
Вадим Калашнков #:

OOP gibt Ihnen die Möglichkeit, kompakten, klaren und eleganten Code zu schreiben.

Das ist nicht der Fall.

 
PapaYozh #:

Dies ist nicht der Fall.

Nun, wenn man sich eine Aufgabe stellt, um sie absichtlich zu erschweren, dann gibt es in der Tat mehr Möglichkeiten, sie mit OOP absichtlich zu erschweren.

Aber wenn man nicht dem Affen mit der Brille gleicht, erhält man mit OOP einen viel klareren, strukturierteren und wartbaren Code.

 

Ich bin nicht gegen OOP, Freunde. Ich mag die Idee des Objekts. Und ich verwende es teilweise, aber in Form von Strukturen, oder besser gesagt, einer Reihe von Strukturen. Im Handel reicht es aus, alle Daten aus einem Diagramm zu speichern und nicht für jeden Balken eine Schleife laufen zu lassen. Aber ich denke, das ist alles, was wir brauchen. Natürlich kann man alles in OOP schreiben, wenn man daran gewöhnt ist. Aber sie sind ebenso wenig rentabel wie die verfahrensrechtlichen. Die ganze Frage ist in profitables System, wenn Sie es haben, können Sie es durch goto-Code schreiben :)

Das Thema der Branche schwebt über dem Weg, es zu lösen.

 
Aleksei Stepanenko #:

Und ich verwende sie teilweise, allerdings in Form von Strukturen, oder besser gesagt, einer Reihe von Strukturen.


In Java hat es sogar einen eigenen Namen: POJO (Plain Old Java Object)

;)

 
Georgiy Merts #:

OOP-Code ist deutlich klarer, strukturierter und leichter zu pflegen.

Dies ist nicht immer der Fall und hängt nicht von OOP, sondern von der Sauberkeit des Codes und der Namensgebung ab.

 
Aleksei Stepanenko #:

Ich bin nicht gegen OOP, Freunde. Ich mag die Idee des Objekts. Und ich verwende sie teilweise, aber in Form von Strukturen, oder besser gesagt, eines Arrays von Strukturen. Im Handel reicht es aus, alle Daten aus einem Diagramm zu speichern und nicht für jeden Balken eine Schleife laufen zu lassen. Aber ich denke, das ist alles, was wir brauchen. Natürlich kann man alles in OOP schreiben, wenn man daran gewöhnt ist. Aber sie sind ebenso wenig rentabel wie die verfahrensrechtlichen. Die ganze Frage ist in profitables System, wenn Sie es haben, können Sie es durch goto-Code schreiben :)

Das Thema der Branche schwebt über dem Weg, es zu lösen.

Die Verwendung von Strukturen ist nicht OOP. Alle Vorteile von OOP beginnen, wenn Sie anfangen, OOP-Muster zu verwenden. Vererbung, Singletons, Objektfacetten, Schnittstellenklassen, usw. Außerdem können Sie auf OOP nicht verzichten, wenn Sie mehr als 2 Personen in Ihrem Team haben. Zum Beispiel:

enum Direction
{
  BUY,
  SELL,
  NO_SIGNAL
};

class Signal
{
public:
  Signal() {}
 ~Signal() {}

  virtual Direction check_signal() { return NO_SIGNAL; }
};

Als Nächstes schreiben Sie entweder selbst oder geben Sie 3 Personen den Auftrag, Signale zu schreiben, z. B. für 3 verschiedene Indikatoren:

class RSISignal : public Signal
{
public:
  RSISignal() {}
 ~RSISignal() {}

  Direction check_signal() 
  { 
    Direction result;
    // Checking signal with RSI
    return result;
  }
};

Der Ort, an dem das Signal verwendet wird, ist ausreichend:

Signal* signal;

switch signal_type
{
  case RSI : signal = new RSI;
  case CCI : signal = new CCI;
  case MA  : signal = new MA;
};

if (signal.check_signal())
.....

Sie als Senor sind vollständig von den Implementierungen der Funktionskörper abstrahiert. Die Umsetzung und der verwendete Indikator sind für Sie nicht wichtig. Sie verwenden einfach check_signal und das war's. In diesem Beispiel wird eine Funktion verwendet. Und wenn es viele Funktionen in einer Klasse gibt, muss man überall dort, wo die Implementierung von der Konfiguration oder einer anderen Wahl abhängt, Schalter einfügen. Außerdem müssen Sie, wenn Sie eine Datenbank oder z. B. eine Protokolldatei an mehreren Stellen verwenden, eine globale Variable erstellen und ihren Zustand in allen Phasen kontrollieren (ob die Datei oder Datenbank geöffnet ist usw.). Wenn Sie Singleton für diesen Zweck verwenden, können Sie sicher sein, dass es immer eine Kopie des Objekts gibt, wo Sie die Basis/Datei wieder öffnen können, Statusflags verwenden, ein gepuffertes Protokoll erstellen, damit Sie nicht bei jeder Ausgabe auf die Festplatte schreiben müssen, usw. Bei mehr als 10.000 Codezeilen wird die Funktionalität für den Entwickler zur Hölle auf Erden. Und in einem halben Jahr, wenn Sie die Hälfte Ihres Codes vergessen haben, wird es die Hölle sein, ihn zu überarbeiten. Außerdem erlaubt es ein gutes OOP-Design, neue Funktionen hinzuzufügen oder alte zu bearbeiten, ohne Angst zu haben, dass alles zum Teufel geht, wenn man irgendwo etwas ändert.

 
Valeriy Yastremskiy #:
Was ist der Unterschied zwischen OOP in 5 und 4? Erleuchtung. Der Unterschied in den Einstellungen der Bestandsumgebung ist offensichtlich. Nun, die Balken sind vom Ende her nummeriert. Ich kann keine weiteren offensichtlichen Unterschiede in der Sprache erkennen.

Zumindest wurden eine Reihe von Teleskopfunktionen endlich abgeschafft und, was am wichtigsten ist, eine Standardbibliothek mit einer großen Anzahl von nützlichen Klassen hinzugefügt.

 
Bringt mich das Wissen über OOP irgendwie meinem Traum näher, 200 Pfund aus 100 zu machen?
 
Вадим Калашнков #:

Zumindest wurde eine Reihe von Teleskopfunktionen entfernt, und vor allem wurde eine Standardbibliothek mit einer großen Anzahl nützlicher Klassen hinzugefügt.

insbesondere Object.mqh

direkt aus den Büchern, die du unglücklicherweise zitierst...geniales Muster :-)

Es geht nicht darum, wie gut Sie den OOP-Kurs gemeistert und gelernt haben, ihn zu verteidigen... meiner Meinung nach ist es ein beschissenes Mastering

Wie auch immer, holt eure Lehrbücher und geht morgen zur Schule.