Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Optimieren eines EAs (http://www.expert-advisor.com/forum/showthread.php?t=1581)

mike-111 05.09.11 17:28

Optimieren eines EAs
 
Hallo zusammen,

ich bin neu hier und beschäftige mich seit kurzem auch mit der Entwicklung eines eigenen EAs. Es ist schon erstaunlich, was man alles mit MetaTrader realisieren kann.

Aktuell würde ich gerne die Parameter eines EAs optimieren (Einstiegspunkte, SL, TK, etc.).Dazu müsste ich aber den Strategy Tester automatisiert mit einem Script steuern und (sehr) oft hintereinander aufrufen. Das Ergebnis möchte ich später vergleichen. Toll wäre auch, wenn man die Parameter des Strategy Testers verändern könnte, um beispielsweise verschiedene Zeiträume der Testdaten gegeneinander vergleichen zu können.

Gefunden habe ich dazu leider nichts. Geht das irgendwie?

Viele Grüße
Mike-111

Bobs 06.09.11 18:46

Möglichkeiten
 
Ja, MQL4 viele Möglichkeiten. Die Testergebnisse können in einer Datei gespeichert werden und anschließend analysiert die von anderen Anwendungen. Unterschiedliche Zeiträume können fortlaufend nummeriert und beginnen zu optimieren.

JoeDormann 07.09.11 01:37

Zitat:

Zitat von Bobs (Beitrag 4932)
Ja, MQL4 viele Möglichkeiten. Die Testergebnisse können in einer Datei gespeichert werden und anschließend analysiert die von anderen Anwendungen. Unterschiedliche Zeiträume können fortlaufend nummeriert und beginnen zu optimieren.

Sehr interessant,
könntest Du uns mal etwas detailierter darüber schreiben, oder passende Links offerieren? Würde auch gerne eine permanente Optimierung laufen lassen und den Output on the fly verwerten und einem EA damit füttern.
Das sollte dann ja kein Problem mehr darstellen, oder?
Also ein Optimizen, das nach Beendigung wieder automatisch neu gestartet wird ?

Interessant wäre auch eine Variante, die einen bestimmten Zeitraum(2Wochen) optimiert und einen nachfolgenden Zeiraum(1Woche) testet. Nach Beendigung des Tests, falls bestimmte Echkdaten eingehalten werden, sollte der Optimizie-Zeitraum um eine Woche nach vorn verschoben werden und der Gesamtablauf sich wiederholen. Das solange bis man bei heute ankommt. Ansonsten soll der gesamte Prozess in Rahmen der Backtestvariablen erneut am Anfang beginnen.
Wäre quasi ein automatisches Foreward-Optimizing.
Geht das überhaupt, und wenn ja wie?
Wäre für jede Idee dankbar :-)

Gruß Joe

Bobs 07.09.11 12:39

Zur Ausgabe von Daten in eine Datei von einer Gruppe von Funktionen für das Arbeiten mit Dateien (FileOpen(), FileWrite(), ...) verwendet. Ihre Beschreibungen liegt in der Hilfe für die MQL.

Zur Optimierung der Zeiträume, können Sie:
Code:

extern int nTF = 5; / / Anzahl der Zeiträume(1=1, 2=5, 3=15, 4=30, 5=60 Minuten ...)
...
  switch(nTF)
      {
      case 1: TF=    1; break;
      case 2: TF=    5; break;
      case 3: TF=  15; break;
      case 4: TF=  30; break;
      case 5: TF=  60; break;
      case 6: TF=  240; break;
      case 7: TF= 1440; break;
      case 8: TF=10080; break;
      case 9: TF=43200; break;
      }
...
//Und weiter Variable TF benutzen, zum Beispiel:
iLow(Symbol(),TF,0)

Wie für die "automatisches Foreward-Optimierung", ich denke, es ist sehr schwer zu tun. Etwas wie ich sah im russische Internet: [http://articles.mql4.com/ru/336]

JoeDormann 11.09.11 04:02

Jou,

die Russen sind da schon sehr weit.

Habe mir das Public-Zeugs gezogen und versucht erstmal zum Laufen zu bringen. Pft... schwitz. ziemlich heavy. :confused::rolleyes::o

Läuft leider noch nicht, wird aber, sobald ich etwas mehr Zeit habe.

Frage an alle: Hat da schon mal jemand eine Anpassung hinbekommen?

Gruß Joe

JoeDormann 28.05.13 06:37

Zitat:

Zitat von mike-111 (Beitrag 4905)
Hallo zusammen,

ich bin neu hier und beschäftige mich seit kurzem auch mit der Entwicklung eines eigenen EAs. Es ist schon erstaunlich, was man alles mit MetaTrader realisieren kann.

Aktuell würde ich gerne die Parameter eines EAs optimieren (Einstiegspunkte, SL, TK, etc.).Dazu müsste ich aber den Strategy Tester automatisiert mit einem Script steuern und (sehr) oft hintereinander aufrufen. Das Ergebnis möchte ich später vergleichen. Toll wäre auch, wenn man die Parameter des Strategy Testers verändern könnte, um beispielsweise verschiedene Zeiträume der Testdaten gegeneinander vergleichen zu können.

Gefunden habe ich dazu leider nichts. Geht das irgendwie?

Viele Grüße
Mike-111

Bei einem erneuten Anlauf habe ich sowas hinbekommen.
Läuft jetzt in meinem neuen EA.

Das Hauptproblem, das sich dabei stellte, war, das im Test und Optimizing in den Bereich:
C:/programme/mt4Dir/tester/files geschrieben wird.
Im Betrieb jedoch wird das files-Verzeichnis unterhalb ../experts geschrieben.

Wenn sich die Testbereiche ändern sollen, muß man einige Files zwischen den Optimierungsläufen umschreiben und Dateien verschieben.
Sowas ist ziemlich verwirrend, kann man aber über eine externe Steuerung mit Dos-Batches sauber erledigen.
Leider gibt es kaum zusammenhängende Informationen darüber.
Jetzt könnte ich ein kleines Buch darüber schreiben ;-)

Zudem ändern sich bei jedem Optimizerstart die internen Datenreihen, sodaß es immer nur nicht reproduzierbare Ergebnisse gibt.
Hier kann man abhelfen, indem man für die Ergebnisse zur Laufzeit eigene Filter benutzt.

Vielleicht hilft dies jemandem weiter, der sich zukünftig mit dem Autooptimizing näher beschäftigen möchte.

Gruß Joe


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:43 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum