Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 61
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
Ich bin nun auf ein Problem gestoßen, wenn die Historie mehr als 1000 Geschäfte enthält und ich die Funktion zur Verarbeitung der Historie aufrufe, um z.B. den Gewinn der Historie zu berechnen. + Die Informationen auf der Karte werden langsamer und das Terminal bleibt hängen. D.h. die Angebote kommen mit einer Verzögerung.
Ohne den Code kann man nur raten.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Eigenheiten von mql5, Tipps und Tricks
Alexey Navoykov, 2017.07.21 17:04
Es ist enttäuschend, dass es in MQL keine Mehrfachvererbung gibt. Aber wir können es auf jede erdenkliche Weise zum Laufen bringen - mit Vorlagen und Makros - wie können wir sie vermeiden?)
Das habe ich gemacht.Alle Quellklassen sollten als Vorlagen deklariert werden, die die übergeordnete Klasse definieren.
Natürlich gibt es einige Feinheiten, die mit der Tatsache zusammenhängen, dass Klassen nacheinander (in der von uns festgelegten Reihenfolge) und nicht gleichzeitig (wie bei echter Mehrfachvererbung) vererbt werden. Insbesondere bei einer Überlastung haben sie unterschiedliche Prioritäten. Wenn ein und dieselbe Vorlagenklasse mehrmals an der Vererbungskette teilnimmt, handelt es sich außerdem um völlig unterschiedliche Klassen, die in keiner Weise miteinander verwandt sind. Wir müssen hier also vorsichtig sein. Aber es gibt keine Probleme mit Schnittstellen, Sie können ohne Einschränkungen vererben.
Wie sieht es aber ohne Deklaration in Form von Vorlagen aus?
Wir haben zum Beispiel zwei fertige, autarke Bibliotheken:
class CLib1 : public CClass1 { };und
class CLib2 : public CClass2 { };
Wir müssen dafür sorgen, dass es eine solche Vererbung in der Programmklasse gibt:
CLib1--> CLib2 --> CProgram, damit beide Bibliotheken in der Klasse CProgram verfügbar sind. Und die CLib1-Bibliothek wird in CLib2 verfügbar sein.
Der Code der beiden Bibliotheken darf in keiner Weise verändert werden.
Ist das möglich?
Bei Mehrfachvererbung würde es wahrscheinlich so aussehen
class CProgram : public CLib1,CLib2 { };
Wie wäre es ohne eine Mustererklärung?
Wir haben zum Beispiel zwei fertige, autarke Bibliotheken:
class CLib1 : public CClass1 { };und
class CLib2 : public CClass2 { };
Wir müssen eine solche Vererbung in der Programmklasse vornehmen:
CLib1--> CLib2 --> CProgram, damit beide Bibliotheken in der Klasse CProgram verfügbar sind. Und die CLib1-Bibliothek wird in CLib2 verfügbar sein.
Dadurch wird verhindert, dass beide Bibliotheken in irgendeiner Weise verändert werden.
Ist dies möglich?
Bei Mehrfachvererbung würde es wahrscheinlich so aussehen
class CProgram : public CLib1,CLib2 { };
Sie werden nichts verlieren, wenn Sie dies tun:
class CProgram { CLib1 lib1; CLib2 lib2; };
Sie werden dadurch nichts verlieren:
Die wahrscheinlich beste Möglichkeit, Daten von asynchronen Kopierfunktionen (CopyRates, CopyTicks usw.) zu erhalten, ist über EventChartCustom.
Besonders relevant für Indikatoren.
Es ist möglich zu wissen, dass sich der Handelsserver geändert hat, nicht nur das Konto -AccountInfoString (ACCOUNT_SERVER) in OnDeinit (EA, nicht Indikator) wird den neuen Handelsserver zurückgeben.
Memo
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Meine Unzufriedenheit mit der Strategie Tester. zu MQL-Entwickler
fxsaber, 2017.12.04 09:11
Ergebnis
Es gibt eine ganze Reihe von Indikatoren, die Preisdiagramme anderer Symbole auf dem Preisdiagramm überlagern. Sie werden auf die gleiche Weise durchgeführt - über Indikatorpuffer.
Im MT5 gibt es jedoch ein wunderbares OBJ_CHART, mit dem Sie diese Aufgabe viel schöner und ohne Indikatorpuffer realisieren können.
Sie können zum Beispiel einen beliebigen Indikator einsetzen und sofort sehen, wie er auf einem anderen Symbol aussieht.
Slave-Schema - mehrere Diagramme werden als Hintergrund des Hauptdiagramms angezeigt.
Sie können zum Beispiel jeden Indikator werfen und sofort sehen, wie er auf einem anderen Symbol aussieht.
Slave-Schema - mehrere Diagramme werden als Hintergrund des Hauptdiagramms angezeigt.