Hallo Roger&Torsten,
zunächst einmal der Hintergrund des ganzen! Es soll versucht werden, das NN möglichst weit von der Gefahr in lokale Minimas zu fallen entfernt zu halten und das Modell so "glatt und schlank" wie möglich zu gestalten! Wenn eine Zeitreihe viele Schwingungen hat,kann es zudem sein das die Korrelation fehlinterpretiert wird. Autokorrelation soll vermieden werden. Es gibt aber auch Modelle bei denen man gezielt Autokorrelation sucht! Weiterhin soll damit erreicht werden, Stabilität in das Modell zu bekommen so das dem nachtrainieren keine große Bandbreite angeboten wird! Ideal wäre, wenn man das Netz trainiert,den Ouput im HS (nicht im NN mit GA!) optimiert und dieser nach 3-5 Generationen Maxima erreicht und keine Veränderung bei weiteren Generationen mehr generiert werden! Wenn man das schafft hat man mit hoher Wahrscheinlichkeit ein sehr stabiles Netz. Dieses Modell hat ein anderes Ziel als beispielsweise Intermarket-Systeme! Bei Intermarkets gibt es nach meinen bisherigen Tests Haken in Bezug auf die Inputwahl. Oftmals versucht man passende Pairs mit Hilfe der Korrelation zu finden. Hier kann aber schon ein Fehler beim Auswahlverfahren entstehen. Autokorrelation ist in diesem Fall unerwünscht, da lediglich die gleiche Zeitreihe phasenverschoben bewertet wird!
Ziel ist,was aber mit Investox nicht möglich ist,Datenpunkte zu zerlegen,auszuwerten und einen Filter als Signalpunkt zu berechnen. Das kann man mit einem Statistikprogramm durchführen indem man digitale Filter berechnet (Zerlegung in Frequenzen- mathem. Berechnungsverfahren-als ein Datenpunkt zurück transformieren) und die Datenpunkte wieder importiert.Leider ist das aufwendig! Eine zweite Möglichkeit einen Filter bzw. einen Indikator zu entwickeln ist Datendigitalisierung. Bei der Datendigitalisierung wird über den grafischen Weg eine Zeitreihe "fotografiert" und auf die Arbeitsoberfläche des Programms transportiert!Beim Programm FindGraph kann man die gewünschte Anzahl der digitalisierten Datenpunkte angeben bzw. werden vorgeschlagen oder man fügt manuell Datenpunkte hinzu! Die Auswahl ist groß! Mit Hilfe zusätzlicher Datenpunkte soll ein schnelleres Erkennen der primären Richtung der Zeitreihe erzielt werden,was einen zeitlichen Vorlauf (Forecast) bewirken kann. An der vorigen Grafik sieht man, das dies ganz gut funktioniert und auch meine "Experimente" bestätigen das! Man muss im Fall des "Experiment Modelles" sagen,das es nur die halbe Miete ist,das heißt die primäre Idee wird nicht so generell umgesetzt! Dies ist vom Aufwand,für ein Live Experiment auf Intradaybasis für mich leider nicht machbar! Zudem wird ist auch die Performance Nebensache sondern es soll ermittelt werden welche Methoden man anwenden kann! Wäre das Modell auf Performance getrimmt ,würde ich es verkaufen..
Du nimmst als Input also die ROC des FDAX und subtrahierst davon jeweils die drei GD Filter. Richtig?
Nein,der ROC ist nicht der Input sondern das Prognoseziel-der Output! Dazu muss man den ROC Im-Exportieren
Und als Optimierunsgparameter für das NN dienen die "GD" Paramter?
Wenn Du damit Inputs meinst dann ja!
Könnte man anstelle der "GD" Filter auch Wavelets oder FFTs einsetzten oder sollten diese Zeitreihen dann eher anstelle der ROC eingesetzt werden, oder sogar als Output?
Digitalisierte Filter als Output haben das Problem, das sie nicht direkt handelbar sind.Das Signal müsste einem zeit basierten System zugefügt und synchronisiert werden! Im besten Fall läuft das System auf Tickbasis,der kleinsten Einheit um die transformierten Signale nicht künstlich zu verzögern. Mit Ticks stößt man im Backtest aber schnell an die Grenzen und auch die Berechnung und Optimierung kann sich enorm hinziehen! Daher ist es idealer die Filter als Input zu nutzen! Als Output kann man ROC oder die Basis nutzen. Hier kann man dann noch experimentieren, ob man den Output glättet und/oder dämpft. Bei der Datenglättung über n-Perioden entfernt man den Datenpunkt immer weiter vom Median/Periode so das ein Time Lag entsteht. Für langfristige Anleger spielt das kaum eine Rolle wenn sie nur die Richtung der Datenbasis ermitteln wollen! Daher kommt es immer auf das Prognoseziel an ob eine Aussage richtig oder falsch betrachtet wird!
Man muss sich vorher im klaren sein was man vom NN überhaupt wissen will und welchen Zeitrahmen man in Erwägung zieht! Nach diesen Kriterien entwickelt man das NN auf. Das fertige System sollte man so gestalten, dass das Risiko erträglich und nicht Selbstmord ist! Wenn das NN als Parameter im System die Risikokriterien nicht erfüllen kann ist es für den Anwender nutzlos! Viele NNs die im Internet hausieren haben im Hintergrund sehr viel Kapital,was man auch anhand der Y-Achse der KK ohne Probleme erkennen kann. Das diese Systeme besser laufen als Systeme mit kleinen Konten versteht sich von selbst und ist auf den Risiko- und Money Management Effekt zurückzuführen!
Hat man beim Einsetzen von Wavelets oder FFTs dann nicht das Problem, dass keine Optimierungs-Parameter mit denn das NN arbeiten genutzt werden können?
Hier weiß ich leider nicht genau was gemeint ist! Optimierungsparameter im Sinn von Gradientenabstieg oder GA? GAs verbessern das NN nicht wirklich! Ich würde es als dünnen Anstrich auf die Fassade bezeichnen. Hochgezüchtete NNs könne einen gewisse Zeit laufen aber man muss diese managen können. NN die hochgezüchtet wurden erkennt man oftmals an vielen Stopps! Man nutzt die Epoche so lange bis sie nicht mehr funktioniert, muss aber darauf achten,das man das bis dato angehäufte Kapital nicht mit zu weiten Stopps leichtfertig aufs Spiel setzt!! Diese Systeme können abrupt einbrechen oder die Profitabilität lässt mit der Zeit immer weiter nach. Dieses Nachlassen gilt es rechtzeitig zu erkennen und beim unterschreiten eines vorher festgelegten "Stopp-Levels" das System neu zu trainieren. Ein Level könnte beispielsweise der größte DD im Lernzeitraum sein. Wird der Level um n-Punkte oder Prozent unterschritten setzt man das System zunächst aus und wartet,bis es sich wieder über dem Ziel-Level platziert! Sollte das System innerhalb weniger Perioden mehrmals unter den Level fallen,trainiert man es neu. Mit anderen Algorithmen wie beispielsweise SVM würde man sofort neu trainieren weil die Zeit nur einen Bruchteil dessen eines Backpropagation NNs ausmacht und das optimieren wesentlich sinnvoller als das abwarten ist! Andere Verfahrensweise wären,das habe ich noch nicht so genau getestet,das Rauschen der KK zu ermitteln. Tritt plötzlich ungewöhnlich hohes Rauschen auf,ist Vorsicht geboten.
Das soll's momentan erst mal von mir gewesen sein. Ihr seht schon das man an vielen Ecken und Enden ansetzen muss denn letztendlich hat man beim NN noch eine Unbekannte: "Die Blackbox". Anders als bei konventionellen System kann man die Vorgänge im NN nicht hundert Prozent reproduzieren und das macht es für den Anwender auch risikoreicher! Wenn man ein NN mit Inputs vollpackt und hochzüchtet kann man nur auf eines hoffen: Ein hervorragendes Risk-Management denn ohne dies wird man mit hoher Wahrscheinlichkeit nicht zum Winner auf Dauer...