Diskussion zum Artikel "Individuell Strategien testen basierend auf schnellen mathematischen Berechnungen"

 

Neuer Artikel Individuell Strategien testen basierend auf schnellen mathematischen Berechnungen :

Der Artikel beschreibt die Art und Weise, wie man Strategien individuell testen und einen benutzerdefinierten Analysator für die Optimierungsdurchläufe erstellt. Nach dem Lesen werden Sie verstehen, wie die "Mathematische Berechnung" und der Mechanismus der sogenannten Frames funktionieren, wie Sie benutzerdefinierte Daten für Berechnungen vorbereiten und laden und effektive Algorithmen für ihre Komprimierung verwenden. Dieser Artikel wird auch für diejenigen interessant sein, die an Möglichkeiten interessiert sind, benutzerdefinierte Informationen innerhalb eines Experten zu speichern.

Zum besseren Verständnis der Bedienung des Panels ist die Darstellung mit Tooltips dargestellt: Die wichtigsten Steuerelemente sind mit Rahmen versehen, die die Klasse und die Methoden angeben, die für jede Gruppe von Steuerelementen verantwortlich sind:


Abb. 9. Hauptelemente der Schnittstelle

Autor: Vasiliy Sokolov

 

Ich habe den Quellcode von ResourceCreator.mqh fertig gelesen. Dabei sind einige Fragen aufgetaucht

  1. Warum hat man sich gegen die Verwendung von Standard FileLoad und FileSave entschieden?
  2. Die Entwickler sagten, dass die tester_file-Direktive die entsprechende Datei nur nach erzwungener Komprimierung an die Agenten weitergibt. Ist also die Variante mit dem Einschieben von Anführungszeichen in (ich glaube, Sie haben das so entschieden - habe noch nicht weiter gelesen) EX5 sinnvoll oder ist es eine Alternative zu tester_folder? Haben Sie in diesem Fall eine Geschwindigkeitsuntersuchung durchgeführt?
  3. Verstehe ich das richtig, dass Sie bei jedem Durchlauf die interne Ressource auspacken?
 
Der Moment der Positionserstellung ist der interessanteste in dieser Implementierung. Seine Felder sind vor externen Änderungen geschützt, aber die statische Methode CreateOnBarOpen gibt ein Objekt der Klasse mit korrekt eingestellten Parametern zurück. Es ist nicht möglich, ein Objekt dieser Klasse auf andere Weise zu erstellen, außer durch den Aufruf dieser Methode. Auf diese Weise wird der Schutz der Daten vor unbeabsichtigten Änderungen realisiert.

Sie müssen vergessen haben, den Konstruktor von public zu entfernen. Ich verstehe nur nicht, warum sie nicht einen regulären Konstruktor verwendet haben?

 
Jeder Lauf kann als separate Datei in einem einzigen Zip-Archiv gespeichert werden.

Diese Lösung hat eine Schwachstelle in Form eines abnormalen Terminalausgangs. Sie führt zum Verlust der Daten einer unterbrochenen Optimierung. Und, wie Sie bereits festgestellt haben, können mqd-Dateien nicht wieder gelesen werden.

Außerdem können Sie mit dieser Lösung den Analyser nicht unterwegs verwenden.

 

Ein guter Artikel, um damit zu beginnen! Anmerkungen

  • Es wird tatsächlich vorgeschlagen, eine eigene Handels-API zu verwenden. Das macht die Entwicklung fast überflüssig. Es macht Sinn, einen eigenen Tester im MT5 zu haben, wenn die Handels-API für Ihren Tester mit der Standard-API übereinstimmt. Andernfalls stellt sich heraus, dass Sie einige fertige Tester von Konkurrenten oder dem gleichen R mit dem gleichen Nutzen verwenden können.
  • Bei dem Mechanismus der benutzerdefinierten Symbole ist nicht ganz klar, wofür ein solcher Tester benötigt werden könnte.
  • Es wäre schön, Byte-Manipulationen in einer universellen Form zu sehen.
  • Es fehlt ein Vergleich der Geschwindigkeit Ihres Testers mit der des Standardtesters.
  • Es ist sinnvoll, Ihren Tester auch für einen solchen Zweck zu verwenden.

Forum zum Thema Trading, automatisierte Handelssysteme und Testen von Handelsstrategien.

Technologische Einzigartigkeit von MetaTrader 5

fxsaber, 2017.12.14 14:11 Uhr.

Für benutzerdefinierte Symbole, gibt es eine Option, um Ticks durch CustomTicksAdd zu werfen. Das ist eine sehr praktische Sache! In Analogie dazu würde ich gerne TesterTicksAdd sowie TesterCreate, TesterDestroy sehen. So können Sie Ihre Ticks in den Tester werfen und die Handelsumgebung des aktuellen Status des Testers lesen.

Das wäre ein Durchbruch im Algo-Trading, besser als benutzerdefinierte Feeds, denn das Schema des Schreibens eines TS würde sich komplett ändern. Alle bisherigen TS-Implementierungen würden mit einem Schlag zum alten Standard der algorithmischen Handelslogik werden.

Vielen Dank an den Autor!


Warum wird FrameNext ohne while verwendet?

 

Cool, aber überkompliziert, wie es mir scheint... wirklich, Sie können einige fertige Tester/Optimierer in Python finden und rufen Sie es bei Bedarf, auch auf gpu. Es sollte viele Python-Tester geben.

Übrigens, es gibt keinen einzigen Artikel über die Verwendung von Python-Skripten in mt5, und das kann sehr produktiv sein.

 
fxsaber:
  • Byte-Manipulation würde ich gerne in einer universellen Form sehen.

Das verstehe ich nicht. Was ist eine universelle Ansicht?

fxsaber:

ZY Warum wird FrameNext ohne while verwendet?

Der letzte Durchlauf wird an OnTesterPass übergeben, das FrameNext lädt. While wird in diesem Fall nicht benötigt.
 
fxsaber:

Diese Lösung hat eine Schwachstelle in Form eines abnormalen Verlassens des Terminals. Sie führt zum Verlust von Daten der unterbrochenen Optimierung. Und, wie Sie bereits festgestellt haben, können mqd-Dateien nicht wieder gelesen werden.

Außerdem können Sie mit dieser Lösung den Analyser nicht unterwegs verwenden.

Soweit ich weiß, gehen die Daten nicht verloren, da die Statistiken von einer anderen Instanz des Programms erfasst werden. Im Allgemeinen halte ich die Speicherung aller Läufe in einem Archiv für die erfolgreichste Lösung des gesamten Projekts.

 
Maxim Dmitrievsky:

Cool, aber überkompliziert, wie es mir scheint... wirklich, Sie können einige fertige Tester/Optimierer in Python finden und rufen Sie es bei Bedarf, auch auf gpu. Es sollte viele Python-Tester geben.

Übrigens, es gibt keinen einzigen Artikel über die Verwendung von Python-Skripten in mt5, und das kann sehr produktiv sein.

Nun, wie wollen Sie MetaTrader Cloud in Python verwenden? Auch wie wollen Sie Python-Skript auf MT laufen?

 
fxsaber:

Sie haben wahrscheinlich vergessen, den Konstruktor von public zu entfernen. Ich verstehe nicht, warum sie nicht einen normalen Konstruktor verwendet haben?

Experimente.

 
fxsaber:

Ich habe den Quellcode von ResourceCreator.mqh fertig gelesen. Es sind einige Fragen aufgetaucht

  1. Warum hat man sich gegen die Verwendung von Standard FileLoad und FileSave entschieden?
  2. Die Entwickler sagten, dass die tester_file-Direktive die entsprechende Datei nur nach erzwungener Komprimierung an die Agenten weitergibt. Ist also die Variante mit den eingeschobenen Anführungszeichen (ich glaube, so haben Sie sich entschieden - ich habe noch nicht weiter gelesen) EX5 sinnvoll oder ist es eine Alternative zu tester_folder? Haben Sie in diesem Fall eine Geschwindigkeitsuntersuchung durchgeführt?
  3. Verstehe ich das richtig, dass Sie bei jedem Durchlauf die interne Ressource auspacken?
Das sind alles Optionen, die es zu untersuchen gilt. Vielleicht werde ich in der nächsten Version eine Menge Dinge ändern. Jetzt habe ich es so gemacht, dass es zumindest irgendwie fahren würde.