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
Der Grund für die Hauptverlangsamung von MT5 ist die Nachahmung der vollständigen Handelsumgebung. Bei der überwiegenden Mehrheit der Expert Advisors ist eine solch genaue Simulation nicht erforderlich. Eine hervorragende Lösung für solche Expert Advisors wäre der Wechsel zu einem vereinfachten Testmodus mit einer einfachen Modellierung der Handelsumgebung. Eine solche Möglichkeit gibt es jedoch nicht. Aber wenn Sie Ihren eigenen, vereinfachten Strategietester schreiben und ihn im Modus der mathematischen Berechnungen laufen lassen, wird die Geschwindigkeit der Optimierung ein Feuerwerk sein! Ich schlage vor, dass jeder, der die Geschwindigkeit der EA-Optimierung drastisch erhöhen möchte, darüber nachdenken sollte.
In CStrategy werden die Handelsoperationen direkt über CTrade durchgeführt. D.h. CStrategy hat überhaupt keine eigene Handelslogik. In dem getesteten Expert Advisor habe ich keine andere Handelslogik gesehen als das Öffnen/Schließen einer Position nach N Sekunden. CStrategy speichert auch keine historischen Positionen, so dass dieses Beispiel in CStrategy leider nicht realisierbar ist.
CTrade speichert auch keine Historie, aber das hat uns nicht daran gehindert, die Variante damit zu implementieren.
Die Tatsache, dass OOP-Code langsamer ist als prozeduraler Code, sagt mir gar nichts. Kommen wir zur Sache: Welche CTrade-Methoden sind ein Flaschenhals? Und warum? Was sagt Ihnen das Profiling dieser Methoden? Wie können Sie langsame Codeabschnitte im Tester identifizieren?
Ich habe die Gründe für die SB-Bremsen nicht analysiert, aber ich glaube nicht, dass es an OOP liegt, denn MT4Orders ist auch mit OOP geschrieben, wenn auch nur minimal. Nach einer Anfrage an den BOD haben die Entwickler die SB beschleunigt. Ich weiß nicht, ob sie die SB selbst oder den Compiler optimiert haben.
Ich analysiere zuerst absolute Bremsen, dann relative Bremsen
MetaTrader 5 verfügt über eine hervorragende Funktion zur Erstellung eines Profils für einen Expert Advisor anhand historischer Daten. Aber abgesehen von der Tatsache, dass sie langsam arbeitet (im visuellen Modus), wird das Endergebnis in relativen Einheiten angegeben, d.h. es ist unmöglich, die Leistung in absoluten Zahlen zu vergleichen.
Der Grund für die Hauptverlangsamung von MT5 ist die Nachahmung der vollständigen Handelsumgebung. Bei der überwiegenden Mehrheit der Expert Advisors ist eine solch genaue Simulation nicht erforderlich. Eine hervorragende Lösung für solche Expert Advisors wäre der Wechsel zu einem vereinfachten Testmodus mit einer einfachen Modellierung der Handelsumgebung. Eine solche Möglichkeit gibt es jedoch nicht. Aber wenn Sie Ihren eigenen, vereinfachten Strategietester schreiben und ihn im Modus der mathematischen Berechnungen laufen lassen, wird die Geschwindigkeit der Optimierung ein Feuerwerk sein! Ich empfehle Ihnen, darüber nachzudenken, wenn Sie die Geschwindigkeit der EA-Optimierung drastisch erhöhen wollen.
Durch benutzerdefinierte Symbole können Sie eine Beschleunigung um Größenordnungen bei voller Simulation erreichen. Tatsächlich ist es sogar jetzt im Beta-Modus der benutzerdefinierten Symbole möglich, dies zu erreichen. Ich werde es später tun.
MT4Orders:
MQL5 erwies sich als langsamer als die Bibliothek in der gleichen MQL5 geschrieben werden! Ich begann zu untersuchen und fand den Grund, indem ich diese Ersetzung vornahm
Die MQL5-Variante des Expert Advisors begann, diese Leistung zu zeigen.
Stupid Ersatz von PositionSelect mit PositionGetTicket erhöht die Backtest-Geschwindigkeit um 7%!
MT4Orders hinkt dem maximal optimierten reinen MQL5 um weniger als ein Prozent hinterher.
Die Plätze wurden wie folgt verteilt
Ich habe die SB selbst optimiert (Teile der SB, die vom Expert Advisor verwendet werden), ohne ihre Funktionalität und Vielseitigkeit zu verändern. Es wurden nicht 84%, sondern 97%.
Diejenigen, die SB verwenden, beachten Sie die potenzielle Möglichkeit der Beschleunigung.
Es ist interessant, die Leistung desselben MT4-Mehrwährungs-Expert Advisors zu vergleichen, der auf unterschiedliche Weise konvertiert wurde.
Vollständige Konvertierung
und handwerkliche (schnelle) Konvertierung
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.
Expert Advisors: Spreader
fxsaber, 2016.09.03 11:18 AM.
Ergebnisse der Leistungsmessung.
Vollwertige Version
Artisanal
Der Artisanal verliert deutlich. Der Grund ist einfach - wenn man schnelle Zeitreihen will, kann man die MT4-Zeitreihen nicht frontal konvertieren
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.
Bibliotheken: CPrice
fxsaber, 2016.08.28 10:36 AM
Schau dir eine solche Option an.
Du kannst, wie in MT4, Open[bar], High[bar], Time[bar], Volume[bar], usw. aufrufen. Und auch iHigh(...), iClose(...) und andere.
Sie müssen (nicht nur für Busch, sondern auch für vollwertige Varianten) Lösungen wie diese verwenden.
Die handwerkliche eine verliert deutlich. Der Grund ist einfach - wenn Sie schnelle Zeitreihen wollen, können Sie MT4-Zeitreihen nicht direkt konvertieren.
Falsche Schlussfolgerung. Der Grund für die Bremsen ist ein ganz anderer. Fügen wir nur eine Zeile in jede der MT5-Varianten ein
Und messen Sie erneut
Die Vollversion ist 67% schneller, die Artisanal-Variante ist 108% schneller! Zusammenfassend lässt sich sagen, dass der Abstand jetzt gering ist - Full-fledged ist ~11% schneller als Artisanal. Hier scheint der Grund im OOP-Overhead zu liegen.
Aber das ist nicht die Hauptsache. Mit einer einzigen Zeile haben wir es geschafft, EAs zu beschleunigen! Und das im Optimiser, wo Comment keine Rolle spielt.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Bibliotheken: TesterBenchmark
fxsaber, 2017.07.24 14:13
Trading SB ist 1,5 mal langsamer als reines MQL5!
Das wurde im Sommer zusammen mit der SD-Anwendung geschrieben. Ich bin überrascht, dass alles gleichmäßig ist! Oder ist es logisch? Wie kann man über die Supergeschwindigkeit des Testers sprechen, wenn fast alle EAs (mit SB) in der Geschwindigkeit versagen, Geld in der Cloud fressen, usw.! Anscheinend ist das normal.
Ich habe den Quellcode vereinfacht, indem ich die Arbeit mit History und MT4Orders rausgeschmissen habe. Ich habe nur noch reines MQL5 und SB
SB-Ergebnis
Ergebnis der reinen MQL5
Alles das gleiche 1,5 Mal! Aber die Trottel kümmern sich nicht, lassen Sie uns weiterhin Super-SB verwenden .
Dasselbe 1,5 Mal! Aber den Trotteln ist das egal, sie wollen weiter den Super-SB benutzen .
Das ist die Art von SB-Tweaks, die
die die SB-Berater auf wundersame Weise beschleunigen. Ist es kompliziert?
Ehrlich gesagt, sollte die Handels-SB, ohne die API-Logik zu ändern, fast vollständig neu geschrieben werden. Jeder Teil davon ist schlecht.