|
Allgemeine Fragen Allgemeine Fragen und Probleme rund um Metatrader 4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
||||
Zitat:
Bei mir dauert soetwas schon einige Hundert Stunden. Alternativ nur einen einzigen Wert Backtesten, dann geht es schneller ! Was sollen die 90% beim Backtesten dir denn sagen ? Ich habe Super-Settings, welche beim Backtesten noch nicht einmal die 25 % erreichen ! Man kann sich auch Kaputt-Backtesten und hat doch im Live-Betrieb nur schite ! |
|
|||
Die Ergebnisse der Backtests ist relativ bescheiden.
Programme die auf Tickbasis arbeiten, lassen sich nicht nachvollziehbar backtesten, zumindest nicht mit Demodaten, und selbst bei Realdaten sind die Ergebnisse kaum aussagefähig. Eine Strategie zu verwenden, die auf Tickbasis arbeitet, läuft bei jedem Broker anders, weil jeder Broker andere Tickdaten hat. Es wird also kaum allgemeingültig funktionieren. Daher habe ich das Tickdaten-Backtesten eingestellt. Bringt nix. Wenn Du eine gute tickbasierte Strategie hast, könntest Du sie ja mal erläutern ;-) Profitrader, die z.B. mit Formationen und Ausbrüchen arbeiten, benötigen keine Tickdaten. Die Markttechnik, die hier schon oft angeschnitten wurde, ist so eine Strategie. Zurück zum Thema, Tickdaten sind normaler nur begrenzt vorhanden, glaube bis max. ein paar Tage, danach werden die Daten konsolidiert, also zusammengefaßt, auch die Ticks werden sehr vermindert. Allein schon daher wird die Aussagekraft eines Backtests minimiert. Gruß Joe |
|
|||
Nun ja, dann schauen wir uns doch mal an, wie der Backtester eigentlich backtestet.
In der Regel existieren für jedes TimeFrame entsprechende OHLC-Daten. Die kleinste Einheit M1 bildet also für jede Minute diese Daten ab. Für M5 können nun nicht nur die eigentlichen OHLC-Daten für jede 5-Minuten-Kerze genommen werden, sondern es wird auch auf die 5 im TimeFrame darunterlegenden 1-Minuten-Kerzen zugegriffen. D.h. eine M5-Kerze besitzt schon 20 Stützstellen, eine M15-Kerze demnach 60 usw. Schaut man sich das Gezappel auf einer M1-Kerze an, fällt auf, dass der Tester innerhalb dieser Kerze mehrmals rauf- und runterfährt. Wie geht das, wenn nur die 4 Werte aus OHLC vorliegen. Nun, MT4 bedient sich hier einfach der Mathematik und interpoliert bzw. approximiert die Tickdaten zwischen High und Low. Nicht mehr und nicht weniger. Wenn man davon ausgeht, dass bei einer Kerze im Reallive nahezu jeder Pip dieser Kerze mindestens ein Mal überstrichen wird, dann ist das Verfahren im Backtester eine Simulation dieser Verhältnisse. Die einzige Unbekannte ist der zeitliche Ablauf der Abrasterung. D.h aus den 4 Daten des OHL als Stützstellen der Kerze wird jetzt ein simulierter zeitlicher Ablauf generiert, der natürlich nicht identisch zum realen Ablauf der "realen" Kerze ist. Aber das Entscheidende für das Ordermanagement ist doch, dass jeder Pip einer Kerze mindestens einmal überstrichen wird, besser natürlich mehrmals pro Kerze. Somit sollte es möglich sein, auch beim Fehlen der Tickdaten, alle Kerzen in allen TimeFrames ordentlich zu simulieren. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
||||
Moin zusammen
Zuerst einmal vielen Dank für die Antworten. Ich gehe davon aus, dass ich komplette Tickdaten habe (Tickstory, Daten von Dukascopy). 5 Jahre Daten sind 100 GB (eine Währung). Ich hätte gern 90% Daten, damit ein erster Durchlauf mir schneller Anhaltspunkte liefert (bei Nutzung dieses genetischen Algorithmus). Dann weiss ich ungefähr, wo ich ansetzen muss. Wenn ich zB StopLoss und TrailingStop zusammen teste, dann sind das relativ viele Durchläufe. 90% Daten würden da reichen, um den Bereich einzuschränken, in dem ich dann alle Kombinationen durchlaufen lasse. Natürlich sind die Tickdaten nicht zwingend erforderlich, aber wenn man nur open und close einer Kerze heranzieht, dann ist das nicht aussagekräftig. Die high / low Werte sollten auch berücksichtigt werden. Ich habe aber keine Quelle gefunden, die diese Werte (über den Zeitrahmen) liefert. Deshalb arbeite ich momentan mit den Riesendateien und das dauert fürchterlich lange. Ich bin ja auch nur dabei, mich mit den Möglichkeiten des MT4 vertraut zu machen; eine gewinnbringende Strategie habe ich (noch?) nicht (und ich erwarte auch nicht, eine zu finden). So wie traderdoc es beschrieben hat (M1 Werte mit open close high low) wäre es ja schon ziemlich genau (zwar nicht so genau wie Tickdaten, aber für die erste Annäherung völlig ausreichend). Ich muss dann mal sehen, wo ich M1 Werte herbekomme, die entsprechend weit zurückreichen. Ich hatte gehofft, dass MT4 die vorhandenen Tickdaten irgendwie auf 90% runterrechnen kann, so dass die Durchläufe schneller werden. Offenbar gibt es da keine Einstellung. Ich werde am Wochenende mal schauen, ob ich da irgendwo passende Daten bekomme. Erst einmal Danke an alle Grüße (und ein schönes Wochenende!!!) Andreas
__________________
Is there anybody out there? |
|
||||
Moin zusammen
Egal, ob 90% backtests nun sinnvoll sind oder nicht.....ich wollte es haben; und ich habe es Ich beschreibe hier kurz das Vorgehen (falls es jemanden interessiert). Man kann das auch googeln, aber die Anleitungen sind stark abweichend, was die Verständlichkeit angeht. Ich habe mir ein blankes MT4 in der aktuellen Version geladen (dann entfällt das einmalige Erstellen eines Demokontos wegen der ansonsten fälligen Aktualisierung). Die beiden Einlog-Screens habe ich weggeklickt (es ist wichtig, mit dieser MT4 Installation NIEMALS zu connecten, da sonst die Daten überschrieben werden). Im History-Folder der Installation habe ich alle *.hst Files gelöscht. Dann habe ich mir M1 Daten heruntergeladen (Google hilft). Danach habe ich diese wie folgt importiert: -F2 drücken -die entsprechende Währung doppelklicken (es ist alles ausgegraut, weil ja gar keine Daten vorhanden sind) -M1 Symbol anklicken -rechtsklicken => Import => die heruntergeladene Datei mit den M1 Daten auswählen -OK klicken und ein paar Sekunden warten Nun ist M1 nicht mehr ausgegraut und alle Daten sind vorhanden (M1 Daten) Um auch die anderen Zeitrahmen zur Verfügung zu haben, geht man wie folgt vor: -Datei => Chart offline öffnen.......hier sollte nur eine Auswahlmöglichkeit vorhanden sein; nämlich die Währung, die man gewählt hat, im M1 Chart. Diesen wählt man nun aus. Nun zieht man das mitgelieferte Script "Period Converter" in den M1 Chart und ändert die standardmäßig eingestellte 3 in die Zeiteinheit, die man zusätzlich haben möchte (5 für M5, 15 für M15, 30, 60, 240, 1440 oder 10080 (monatlich geht nicht wegen der immer unterschiedlichen Anzahl von Tagen)). Man sollte noch in den Optionen (Extra => Optionen => Diagramme) die max. Anzahl der Balken in Historie und Balken im Chart auf 999999999999999999 stellen (beim nächsten Programmaufruf wird dies dann auf die maximale Anzahl runtergesetzt; irgend etwas bei 2,1kkk). Nun kann man den Strategietester starten und in den Zeiteinheiten, die man mit Period Converter erzeugt hat, backtests in 90% Qualität machen. Momentan läuft bei mir geade eine erste Annäherung, und ich brauche für 1280 Schleifen auf 5 Jahre "nur" 39 Minuten. Weitere Annäherungen mache ich dann wieder auf Tickbasis. Viel Erfolg beim Backtesten und ein schönes Wochenende wünscht Euch allen Andreas
__________________
Is there anybody out there? |
|
|||
Hallo Andy,
um eine Strategie auf zukunftsträchtigkeit zu testen, gehe ich so vor: Wenn ich viele Daten habe, nehme ich das vorletzte Jahr und teste die Parameter aus. Mit diesen Parametern teste ich das folgende Jahr, usw... Du wirst dann festellen, das der Markt offensichtlich immer neue Ausprägungen liefert, womit der starre EA nicht klarkommt. Daher habe ich mal für zig Währungspaare immer die letzten 3 Monate on the fly ohne anzuhalten immer wieder neu ausgetestet. Die 8-Kernmachine hat Tag und Nacht am Limit gerumpelt und die jeweils neuen Parameter aktuell eingestellt, und eine sehr ordentliche Stromrechnung produziert. Selbst das ist mir dann später um die Ohren geflogen. Hmm, ich wünsche dennoch viel Glück und Spaß Gruß Joe |
|
||||
Moin Joe,
so eine Idee hatte ich jauch schon einmal (siehe hier: http://www.expert-advisor.com/forum/...-moeglich.html ) Offenbar ist aber selbst das nicht machbar. Mittlerweile ist mir auch klar geworden, dass Backtests wirklich nichts über die zukünftigen Ergebnisse eines EAs aussagen. Trotzdem schaffen es einige, dass die EAs auch im Realeinsatz über Jahre hinweg noch positive Ergebnisse erzielen. Vielleicht muss man da auch anders rangehen: Den EA ohne Moneymanagement immer mit derselben Ordergröße laufen lassen. Wenn er dann irgendwann einmal einen gewissen Drawdown eingefahren hat, den Einsatz beenden (quasi den wochen- oder monatelangen Einsatz wie einen Trade behandeln; Gwinne laufen lassen mit nachgezogenem Stop loss). Das Problem stellt sich nur, wenn der dann wirklich lange gut läuft; dann hat man Unsummen verschenkt. Diese Einsatzmöglichkeit ist aber ein anderes Thema. Gruß an alle Andreas
__________________
Is there anybody out there? |
|
||||
Moin Joe
So etwas hatte ich auch schon einmal angedacht siehe http://www.expert-advisor.com/forum/...-moeglich.html Offenbar ist aber selbst das auf Dauer nicht erfolgreich. Ein anderer Ansatz wäre, den EA wie einen einzelnen Trade zu behandeln: Gewinne solange mitnehmen, bis ein gewisser Drawdown erreicht ist. Dann wäre er ausgestoppt und wird aussortiert. Problem ist nur, dass man zuviel verschenkt, falls er dann doch lange im Plus laufen sollte. Irgendwie schaffen andere es ja auch, dass deren EAs monate- oder sogar jahrelang im Plus laufen. Ich bin ja auch erst einmal dabei, mich überhaupt mit dem Testen zu befassen. Kann ja auch sein, dass ich zu dem Schluß komme, dass das alles nichts bringt Soweit erst einmal....Gruß an alle Andreas
__________________
Is there anybody out there? |
Lesezeichen |
Stichworte |
90%, backtest, backtesting, metatrader backtest, modellierungsqualität, modellierungsqualität 90%, qualität |
|
|