
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Und wie wollen Sie das Nachziehen an verschiedene Parameter anpassen?
Vorzugsweise sollten sie zu einer bestimmten Aufgabe führen. Eine solche Beschreibung ist nicht sehr klar. In meiner Praxis ändert sich der Algorithmus nicht durch die Änderung externer Parameter. Sie wird im Voraus für beliebige Werte dieser Parameter universal gemacht. Daher ist es nicht ganz klar, was Sie meinen. Beschreiben Sie es anhand eines konkreten Beispiels.
Dank der OOP ist das Hauptprogramm sehr kurz und übersichtlich. Dies ist nur das erste Beispiel, das mir einfällt. Wenn Sie die Anzahl der Aufträge häufig berechnen müssen, liegen die Vorteile auf der Hand. Beim ersten Mal ist es schwer zu verstehen. Aber auch Funktionen, selbst mit Parametern, waren früher eine Schwierigkeit
Versuchen wir es mit einer bestimmten Aufgabe. Falls ja, geben Sie dies bitte an.
Spezifische Aufgabe. Der Kunde hat einen Expert Advisor für zwei MAs bestellt, der alle in der Codebasis verfügbaren Trailing-Varianten enthalten würde, aber im Tester nicht verlangsamt wird.
Der EA sollte auch die Aussicht haben, in Zukunft (zu geringen Kosten) mit neuen Schleppvarianten aktualisiert zu werden.
Dank OOP ist das Hauptprogramm sehr kurz und übersichtlich. Dies ist nur das erste Beispiel, das mir einfällt. Wenn die Anzahl der Aufträge häufig berechnet werden muss, liegen die Vorteile auf der Hand. Beim ersten Mal ist es schwer zu verstehen. Aber auch Funktionen, sogar mit Parametern, waren früher eine Schwierigkeit
Ich verstehe nicht, warum nicht eine Funktion "int Number_orders()" erstellt wird, die immer die obige Schleife durchläuft und den Zählerwert "SELL" zurückgibt?
Zum Beispiel:
Warum brauchen wir hier eine Klasse?
So müssen beispielsweise 100 Trailing-Stop-Varianten in einen Expert Advisor gepackt werden. Wenn man prozedural programmiert, entsteht ein Chaos wie dieses:
100 identische Codefragmente. Wenn das Programm läuft, enthält es in der Regel nur einen Trailing-Stop, die restlichen 99 Ifs verbrauchen nur Ressourcen.
Nun zur OOP-Variante. Während der Initialisierung des Expert Advisors skalieren wir das Array mit Zeigern entsprechend der Anzahl der nachlaufenden Balken und erstellen nur Objekte für die aktivierten nachlaufenden Balken. Daher wird der folgende Code immer funktionieren:
Wenn ein nachlaufender Balken aktiviert ist, dann ist cnt=1, d.h. es gibt nichts Unnötiges.
Erstellen Sie ein Array mit Funktionsnamen, wählen Sie den Namen aus dem Index und greifen Sie zu.
OOP hat damit nichts zu tun. Dies ist eine Sprachbeschränkung, die sie mit OOP zu lösen versuchen
Ich habe es nicht ausprobiert, aber man kann zum Beispiel keine untypische Sprache ohne OOP entwickeln.
Ich verstehe nicht, warum nicht eine Funktion "int Number_orders()" erstellt wird, die immer die obige Schleife durchführt und den Zählerwert "SELL" zurückgibt?
Spezifische Aufgabe. Der Kunde hat einen Expert Advisor für zwei MAs bestellt, der alle in der Codebasis verfügbaren Trailing-Varianten enthalten würde, aber im Tester nicht verlangsamt wird.
Und mit der Aussicht, dass in Zukunft weitere Varianten hinzugefügt werden (nicht teuer).
Wenn ich die Klasse verfeinere, erhalte ich x.SELL x.BUY x.ALL und was sonst noch benötigt wird. Und es wird sehr einfach sein, sie anzusprechen. OOP-Klassen - der Einfachheit halber
Erstellen Sie ein Array mit Funktionsnamen, wählen Sie einen Namen aus dem Index und rufen Sie ihn auf.
Das hat nichts mit OOP zu tun. Dies ist eine sprachliche Einschränkung, die sie mit Hilfe von OOP zu lösen versuchen.
Es gibt keinen Funktionsaufruf mit dem als String definierten Namen. Und in den Sprachen, in denen es so etwas gibt, geschieht das über einen Hash einer Tabelle, das heißt, es ist ein schrecklicher Nachteil.
Ein normaler Weg, dieses Problem zu lösen, wäre die Verwendung von Zeigern auf Funktionen (darüber habe ich hier geschrieben). Aber warum nur Zeiger verwenden, es gibt einen bequemeren Weg - OOP, der es nicht nur erlaubt, die Vorteile von Funktionszeigern zu nutzen, sondern auch Daten und Code bequem zu strukturieren.