Donnerstag, 18. April 2024, 16:32 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

81

Dienstag, 2. September 2008, 13:10

Hallo upgap,

ich fragte nur weil sich andere Programme "einfacher" bedienen lassen und man meist nicht viel an Outputs und Parameter einstellen kann. Ich hätte auch geantwortet wenn Du nicht mit Investox arbeiten würdest...;) Hoffe Du hast das nicht falsch verstanden aber ich habe es oben bereits erwähnt.Die Vor-und Nachteile resultieren aus den unterschiedlichen Funktionsweisen der Algorithmen! Damit erschließen sich für SVM folgende Vorteile:

*schnelles Training und somit immer aktuelle Prognosen
*Einsatz für Intraday-Systeme mit sehr kleinen Time Frames
*einfaches nachtrainieren da die Zufallsvariable (Backprop) am Optimierungsstart fehlt
*daraus resultierend stabile Prognoseergebnisse bei mehrmaligen nachtrainieren und unveränderten Parametern
*Einsatz eines Feed Forward Tests möglich
*Massentraining (über Nacht) mit Hilfe einer Batchdatei und Steuerelementen ohne zusätzliche Generationen Selektion möglich-falls NN mit GA optimiert wurde

Intermarket:

Nach meinen bisherigen Tests,sehen wir vom Algorithmus ab,ist SVM in der Mustererkennung an Zeitreihen-Rohdaten (Börse) nicht so effektiv wie Backpropagation! Was ich noch nicht getestet habe ist die Wirksamkeit wenn man Inputs via Preprocessing vorbereitet. Hier könnte ich mir einen verbesserten Effekt vorstellen. Preprocessing (PP) kommt auch dem Backpropagation-NN zugute.Dennoch muss man beim PP beachten, das man nicht "maskierte" ,signifikante Signale ausradiert sonst ist es vorbei mit guten Prognosen! Leider können diese Vorgänge nur auf dafür bestimmten Software durchgeführt werden. Die meisten Vorbereitungen müssen-zum Leid für die Anwender extern ausgeführt werden und erfordern zumindest Einsteigerkenntnisse in der Statistik! Allerdings sei am Rande erwähnt das die Statistiksoftware Entwickler ihre Programme immer mehr für nicht Mathematiker und Statistiker programmieren so das auch der Laie ohne Vorkenntnisse tiefgreifender Mathematik Analysen erstellen und auswerten kann!

Du hast vielleicht auch schon einmal bei anderer Software festgestellt (Namen möchte ich nicht nennen denn wir sind im Investox Forum..;) ) das diese Prozesse über die wir reden, intern verarbeitet und dem User zum anklicken angeboten werden. Das ist einerseits prima-andererseits weiß man nicht was sich hinter dem Vorhang verbirgt!Letztendlich kann man sagen das der Algorithmus hinsichtlich der Performance nur die halbe Miete ist. Der andere Teil bezieht sich auf das Preprocessing-die Datenvorverarbeitung! Das schließt aber die o.g. Liste aus, denn die genannten Punkte sind mit NN kaum bis überhaupt nicht umsetzbar!

Jeder Algorithmus hat seine Vor-und Nachteile und man kann nicht jeden Algorithmus für jede Problembewältigung gleichermaßen gut einsetzen! Allein für NN gibt es schon neben Backpropagation mehrere Modifikationen und jeder optimiert die Daten unterschiedlich! Was man aber für Finanzprognosen benötigt sind schnelle und stabile Algorithmen die nicht endlos Datenhistorie und Trainingszeit benötigen. Sie sollen auch Intraday anwendbar sind-vor allen ressourcensparend arbeiten können und mit einem Feed Forward Test harmonieren-was ich persönlich als einen der wichtigsten Punkte bei Finanzprognosen betrachte! Aufgrund der hohen Dynamik der Zeitreihen entstehen immer wieder neue Fakts die sich nicht den vorigen ähneln oder nur Nuancen abweichen. Dies kann leicht dazu führen dass die Power des NNs sehr schnell nachlässt selbst wenn man Lernbeschränkungen implementiert hat.
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

82

Dienstag, 16. September 2008, 10:09

SSA-Analyae

In der Grafik habe ich das FDAX Szenario bis zum 10. Oktober mittels SSA-Forward Analyse ermittelt. Die Approximation der "Lernkurve" wurde dabei bis 99% an das Underlying angelehnt. Das heißt, dass einige Ausreißer im Original-Underlying "entfernt" und somit rauschen unterdrückt wurde! Schaun mer mal ob es wirklich so kommt! Die Analyse wurde mit Kursen vom 12.09.2008 (Freitag) berechnet und hat bislang (der heutige Tag ist aber noch nicht vorbei) ins Schwarze getroffen. Allerdings sollte man bei dem aktuellen Szenario auch einmal den Verstand walten lassen und nicht alles der Maschine überlassen. Hiobsbotschaften gibt es momentan genug und die können mechanisch nicht ausgelotet werden!

Bei Analysen mit SSA oder auch SVM sollte man (nach jetzigen,subjektiven Erkenntnissen) nicht mehr als 3-5 Perioden Forward (Out-Of Sample) testen und handeln. Danach sollte mit Hilfe eines Feed Forward Test eine neue Prognose erstellt werden. Das liegt an der Art der Daten-Klassifizierung der unterschiedlichen Algorithmen die sich in beiden Fällen sehr stark an die Lerndaten anpassen und dazu neigen diese fortzuschreiben! Das bedeutet,so wie bei der Wetterprognose, das jede Prognose über Zeitraum X extrem aus dem Ruder laufen kann wenn der Zyklus umschlägt! Die Strategie für diese Methode könnte so aussehen:

System entwickeln-3 Perioden handeln-nachtrainieren-3 Perioden handeln-usw.

Diese Steps werden von einem Feed Forward Test automatisiert und in einem Backtest überprüft! Anhand des Backtests kann man erkennen, ob man für die Algorithmen gute Einstellungen gewählt hat oder ob man diese nacharbeiten muss!

In der zweiten Grafik habe ich eine SSA-Analyse dargestellt. Die blaue Linie trennt den Test- vom Lernzeitraum. Die extern ermittelten Datenpunkte wurden nach Investox importiert und mit Hilfe einer Differenzanalyse (mathematisch- nicht zu Verwechseln mit Differenziale~ Yd/xd) in einer Inputschablone ausgewertet. Das Ergebnis sieht man anhand der Equity! Leider kann ich diese Methode noch nicht zu 100% bestätigen da der ständige Im-Export hohen Zeitaufwand bedeutet und davon habe ich momentan wenig.Es sind weitere Test unbedingt notwendig die ich aber noch durchführen werde so bald es zeitlich klappt!

Die Erkenntnis ist, das der Schwerpunkt bei Investox- NN auf folgenden Fakten beruhen sollte:

  • Aufbereitung und Auswahl der Inputs
    Auswahl des Prognoseziels
    Bei Crossvalidation die Anzahl der Samples



Ein NN sollte so "schlank" wie möglich gehalten werden. Tricksen an der Netzwerkstruktur kann kurzzeitig Verbesserungen bringen,sollte aber nie und nimmer als Garant für ein stabiles Netz herangezogen werden! "Fette und aufgeblähte" Netze,so wie manipulierte Netzstrukturen,Outputs ect. sollte man hinsichtlich der Stabilität unbedingt vermeiden! Für Datenaufbereitung ist eine externe Software empfehlenswert-ich würde sogar sagen notwendig! Mit den zur Verfügung stehen Funktionen ist meiner Ansicht kein überproportionales profitables und langfristig stabiles Netz erreichbar.Überproportional heißt in dem Fall auch,das die DDs nicht in den Himmel wachsen und man ein hohes fünfstelliges Konto benötigt um das ganze zu handeln.Falls sich hinsichtlich Grafik 2 Neues ergibt, werde ich es hier näher beschreiben. Wenn nicht..... landet es im Papierkorb..:-)
»Udo« hat folgende Bilder angehängt:
  • SSA.png
  • SSA2.png
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

83

Dienstag, 16. September 2008, 12:07

Hier sieht man einmal, wie "gewitzt" ein NN doch sein kann wenn man das "richtige Futter" zur Verfügung stellt. Die Einstellungen die zu diesem Ergebnis führen sind hinsichtlich der Netzstruktur Standard-nichts außergewöhnliches. Das Training hat ca 1: 30 Minuten gedauert für 8 Jahre Historie-EOD !Die ENTRY-EXIT Punkte hat das NN aus einer Differenzberechnung gezogen! Ein NN kann ein gutes System verbessern-sogar perfektionieren aber es lässt sich nicht "austricksen"! Austricksen heißt in dem Fall,das aus einem mäßigen HS/Inputs/Prognosezielen ein stabiles und generalisierendes NN wird! Zudem bin ich der Meinung, dass das NN einen Wegweiser benötigt, bevor es generalisiert! Mit anderen Worten: Wenn im Lernzeitraum Optima gefunden wird-das heißt, das globale Minima wurde gefunden und der Komplex schlank gehalten wird, das NN in der Lage ist zu generalisieren! Man kann zusätzlich die Daten "normalisieren. Normalisieren heißt hier, dass die Ergebnisse der Inputs zwischen 1 und -1 schwanken-genau der Bereich auf den Investox NN "normiert" ist! Manchmal macht es auch Sinn das komplette Underlying zu normalisieren. Die Y-Achsenskala schwankt hier zwischen 0&1. Damit werden Differenzberechnungen in den Schablonen oftmals etwas besser ausgewertet da alle Daten im gleichen "Normbereich" berechnet werden!

Erklärung zur Grafik:
Die rote Stufenlinie ist ein,über 6 Perioden,extern berechneter Kalman-Filter und die blaue Stufenlinie zum Vergleich der GD-OMA! Grafik 2 im Beitrag über diesem beschreibt ,wie dort erwähnt, eine ca.99% Annäherung zum Underlying,ausgehend vom SSA-Algorithmus!
»Udo« hat folgendes Bild angehängt:
  • KAL.png
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

84

Mittwoch, 17. September 2008, 00:24

Eine bislang erfrischende Nachricht am Rande: Die Datenpunkte der oben gezeigten Systemanalyse mit dem Kalman Filter werden vom externen Programm bislang stabil geliefert. Das heißt durch das hinzufügen neuer Datenpunkte werden die vorherigen nicht revidiert oder alte Werte verändert! Das gleiche erwarte ich auch in der oben gezeigten ersten Grafik mit SSA- getestet habe ich es aber noch nicht! Es aber leider immer so, das man bei sehr stark ansteigenden KKs und traumhaften Kennzahlen Misstrauen haben sollte und natürlich ist bei den Ergebnissen, die sich in beiden Systemen abzeichnen, Skepsis angebracht! Mal sehen, wie es sich weiter entwickelt.Sollte sich Stabilität abzeichnen, klingelt die Kasse... :thumbsup: ;) Aber man sollte sich nie zu früh freuen -so viel habe ich in den vielen Jahren mit Investox "gelernt"! Sicher ist erst etwas, wenn das Geld auf dem Kontoauszug steht...vorher nicht!
Happy Trading

chied

unregistriert

85

Mittwoch, 17. September 2008, 09:53

Hallo Udo

Gerne würde ich dir ein paar Verständnissfragen an dich adressieren:

[i]>> Wirksamkeit wenn man Inputs via Preprocessing vorbereitet[/i]
Was vestehst du bitte unter PP? War das nicht die Aufbereitung der Daten mit bspw. Wavelets oder FFT?
Wo genau lässt du die aufbereitete Daten einfliessen? In die Inputs oder bereits in die Definition der Outputziele?
Würden aufbereitete Daten als Intermarketinputs sinnvoll erscheinen?

[i]>> Die extern ermittelten Datenpunkte wurden nach Investox importiert und mit Hilfe einer Differenzanalyse (mathematisch- nicht zu Verwechseln mit Differenziale~ Yd/xd) in einer Inputschablone ausgewertet[/i]
- [i]ermittelten Datenpunkte [/i]
Meinst du damit die mit Wavelets ect aufbereiteten Daten?
- [i]Differenzanalyse[/i]
Wie sieht diese genau aus? extern ermittelte Datenpunkte (Wavelets) minus Underlining als Inputschablone? Welche Optimierungsparamter würde man hierzu einsetzen?

[i]>> Auswahl des Prognoseziels ; Bei Crossvalidation die Anzahl der Samples[/i]
Sollte man bereits das Prognoseziel auf aufbereitete Daten (Wavelets) beziehen, damit sich das Training nicht am "Rauschen" orientiert? Oder reicht ein GD of die ROC auch?
Welchen Einfluss hat die Anzahl der Samples? Auf welche Faktoren sollte man bei der Evaluation der Anzahl Samples achten?

>> [i]Training hat ca 1: 30 Minuten gedauert für 8 Jahre Historie-EOD !Die ENTRY-EXIT Punkte hat das NN aus einer Differenzberechnung gezogen![/i]
Wie hast du das in kurzen 1:30 Min hingebracht? Lag das zur Hauptsache an den Inputs? Wieviele Inputschablonen sollte man deiner Meinung nach max. einsetzen um einer
Überoptimierung zu begegnen?

>> [i]Manchmal macht es auch Sinn das komplette Underlying zu normalisieren. Die Y-Achsenskala schwankt hier zwischen 0&1. Damit werden Differenzberechnungen in den Schablonen oftmals etwas besser ausgewertet da alle Daten im gleichen "Normbereich" berechnet werden![/i]
-komplette Underlying zur normalisieren: Wie kann man das bitte umsetzen?
- Differenzberechnungen: das will mir einfach nicht ganz in den kopf : (

>> [i]Sollte sich Stabilität abzeichnen, klingelt die Kasse
[/i] Viel viel Glück!!

besten Dank

Roger

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

86

Mittwoch, 17. September 2008, 14:32

Hallo Roger,

ich versuche in Etappen zu antworten!

Wo genau lässt du die aufbereitete Daten einfliessen? In die Inputs oder bereits in die Definition der Outputziele? Würden aufbereitete Daten als Intermarketinputs sinnvoll erscheinen?

In der Regel sind mir die Inputs am wichtigsten! Es kommt darauf an,welches "Problem" man mit dem NN lösen möchte und daran orientiert sich die Fragestellung-der Output oder das Prognoseziel! In unserem Fall sind in Investox schon sinnvolle Ziele vorgegeben die man eventuell später im Wertebereich ändern könnte. Die Definition der Outputs sollte für meisten Anforderungen genügen denn die Fragen lauten wahrscheinlich meist:Wo steht der Kurs in n Perioden? ODER steigt/fällt der Kurs? ODER Wie stark steigt/fällt der Kurs? Demnach sehe ich es für den Einstieg sinnvoll die Outputs erst einmal so zu belassen. Später kann man selbst Outputs definieren oder mehrere Outputs im HS mischen!

Intermarkets sollte ebenfalls normiert und nicht in Rohform in die Schablone eingegeben werden. Dividiert,subtrahiert oder addiert man Rohdaten von zwei Underlyings sollten diese vorher normiert werden. Das heißt, man bringt sie in den gemeinsamen Bereich zwischen 1/-1 oder 0/1 auf der Y-Skala. Man kann aber auch so vorgehen das man beispielsweise das Momentum von Wert x mit dem Wert y vergleicht. Das ganze kann man auch mit dem ROC,Korrelation-Indikator; RS_Indikator usw. durchführen. Eine Differenz zwischen Basisdaten einem Filter (GD oder GD-ähnlich) kann man notfalls direkt eingeben. Problematisch könnte es später werden, wenn man mit GA Optima sucht,da der Streubereich je nach Ergebnis der Division weit über/unter 0 ausschlagen kann! In dem Fall kann man das Ergebnis noch beispielsweise durch 10;1000;1000 dividieren um den Suchbereich für die Algorithmen zu verkleinern! Oder man normiert auch hier im Vorfeld. Auf jeden Fall sollte man in Wertbereichen arbeiten die vom NN gut verarbeitet werden können und hier liegt Optimal zwischen -1/1. Ein sehr guter Output benötigt keine GA-Optimierung und wird beim Overcross 0 die volle Leistung liefern! In der anschließenden Grafik siehst Du ein 30 Minuten Testsystem mit einer einzigen Inputschablone das Im HS auf OVERCROSS "0" steht. Weder das NN noch das HS sind mit GA optimiert! So long erst einmal...:)

PS: Was ich schreibe ist eine individuelle Vorgehensweise die natürlich nicht gesetzt ist! Andere Entwickler haben vielleicht andere Schemen und es kommt darauf an, welche Erfahrungen man mit den Vorgehensweisen macht! Das Testumfeld für NN und den gesamten Systemhandel ist bekanntlich riesengroß so das kaum Grenzen gesetzt sind! Wie wir wissen führen viele Wege nach Rom..;)
»Udo« hat folgendes Bild angehängt:
  • NN-ZERO.png
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

87

Mittwoch, 17. September 2008, 16:18

Hier noch einmal der Test etwas hineingezoomt! Das ist eine Heidenarbeit weil man jede halbe Stunde im-exportieren muss! Die weiße Linie ist ein Kalman Filter über 5 Perioden. Man sieht schon wie nah sich dieser Filter in die Nischen bewegt-im Vergleich zu einem GD- Diese Filter,Kalman oder FFT (im Frequenzbereich aufbereitet und re-transformiert als Datenpunkt) sind in der Regel sentensiver als z.B. der schnellste GD "Lin.-Reg oder" Zero-Lag". Dazu zählen auch Wavelets!
»Udo« hat folgendes Bild angehängt:
  • Kalman.png
Happy Trading

chied

unregistriert

88

Mittwoch, 17. September 2008, 17:24

Udo,

in Gottes Namen, mit welchen Inputs zauberst du ein derart gutes NN!?! Hast du das nicht mit dem SSA Verfahren gemacht?
Und in wie fern fliesst der Kalmanfilter in dein HS ein? Hast du ihn als Input verwendet?

Viele Grüsse

Roger

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

89

Donnerstag, 18. September 2008, 00:15

Hallo Roger,

ich versuche nur so gut wie möglich umzusetzen, was ich Eingangs beschrieben habe. Ein schlankes Netz mit Schwerpunkt auf die Inputs für die Auswertung von Zeitreihenverläufen. Man sollte allerdings vermeiden Autokorrelation zu erzeuge-zumindest im Backpropagation NN ohne Feed Forward Test. Hätte man einen Feed Forward Test und SVM, könnte man ggf. mit Autokorrelation "spielen"! Autokorrelation heißt hier,das Sample 1-2 mit Sample 3-4 der gleichen Zeitreihe stark korreliert wobei Zeitraum n aber unbekannt ist! Da die Gleichung eine "Unbekannte" hat müssen wir X mit einem Feed Forward Test auflösen...;) Da das momentan nicht möglich ist,können wir diese Strategie getrost at Akta legen! Der Kalman Filter wurde als Input verwendet und grundsätzlich verwende ich als Startoption zur Initialisierung 2-3 Gewichte-Crossvalidation-3-5 Samples. Alles andere lasse ich so,wie Investox es anbietet,auch die Definition des Outputs. Meist verwende ich die beiden ersten Prognoseziele die Investox anbietet.Schlank beginne-steigern kann man immer noch. Dieser Prozess ist aber zugegeben ein wenig Trial and error und kann nicht eindeutig klassifiziert werden!

Warum schlanke Netze?

Man sollte damit rechnen, das Netze nicht ewig performen und ggf. nachbearbeitet werden müssen. Hat man ein fettes,aufgeblähtes und an allen Ecken und Enden manipuliertes Netz mit GA hochoptimiert, wird es schwierig bis unmöglich dieses Netz erneut zu justieren-schließen wir den Part "Blackbox" einmal aus.Wenn die Ergebnisse zweier Testläufe zu weit auseinander driften oder etwa gegenläufige Ergebnisse produzieren und erst durch GA Optimierung einigermaßen performen erkennen lassen..vergiss es, denn das wird auf Dauer nichts! Du kannst einmal versuchen so einen Komplex nach einer gewissen Zeit,wenn die Performance nachlässt,nachzujustieren! Ich kann Dir versprechen Du wirst Deine helle Freude haben das NN in ähnlicher Weise hin zu bekommen wie das initiale Netz!..:) Das liegt aber nicht nur daran das jedes neue Training zufällige Einstige bei der Initialisierung verwendet. Übrigens setzen auch GA bei jeder neuen Rund "zufällige" Initialwerte! Daher wird das Optimierungspaket A niemals Optimierung B gleichen!

SSA läuft so, das wie bei SVM ein Zeitraum abgetastet wird. Anhand der Lernergebnisse projiziert SSA die Kurse n- Perioden in die Zukunft! SSA Eigenschaften sind vergleichbar mit SVM-genauso schnell und abhängig vom Muster des Zeitraums,auf den getestet wird! Leider kann ich SSA nicht testen denn auch hier fehlt Feed Forward! Ich habe ein Netz gebastelte, das mir selbst nicht geheuer ist. Ich bin noch nicht dazu gekommen es ausführlich zu testen. Es muss geprüft werden ob die Approximation,die extern berechnet wird,über den kompletten Zeitraum stabil ist,wenn die Zeitreihe neu initiiert wird. Das hat im Grunde nichts mehr mit SSA zu tun denn ich versuche mit Hilfe der Funktion eines externen Programmes das Kursrauschen auszuschalten bzw. zu mindern! Ich habe dazu einen Test am EOD FDAX laufen lassen, dessen unoptimiertes Ergebnis in Grafik 1 zu sehen ist! Ich lasse es einfach mal so im Raum stehen da ich noch nicht viel dazu sagen kann! Man sollte bei statistischen Filtern immer die Ableitung genauer betrachten,die ich leider nicht für alle Filter zur Verfügung habe. Ein schönes Beispiel ist der SAVITZKY-GOLAY-FILTER dessen Datenpunkt nach n Perioden revidiert wird da er mit n vorher bekannten Datenpunkten arbeitet! Er verändert die fortlaufenden Ergebnisse im Nachhinein und darauf muss man in dem Umfeld höllisch aufpassen!
»Udo« hat folgendes Bild angehängt:
  • SSA-APPROX..png
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

90

Donnerstag, 18. September 2008, 10:51

>>>>> Die extern ermittelten Datenpunkte wurden nach Investox importiert und mit Hilfe einer Differenzanalyse (mathematisch- nicht zu Verwechseln mit Differenziale~ Yd/xd) in einer Inputschablone ausgewertet ermittelten Datenpunkte<<<<

Meinst du damit die mit Wavelets ect aufbereiteten Daten?
Ja,die Rohdaten werden via txt Datei exportiert-im externen Programm aufbereitet und wieder importiert! Das ist manchmal aufwendig da man für die Aufbereitung nicht mit einem Zeit skalierten Raster arbeiten kann. Die Raster sind Teils wissenschaftlich oder dezimal skaliert. Allerdings kann man einmal angelegtes Schema in Excel schnell in Zeitreihen mit dem für Investox bekannten Zeitraster umwandeln. In Investox selbst könnte man das beispielsweise mit variablen Achsen selbst variieren. Darauf bezog sich dann auch mein, vor einigen Wochen vorgestellter Vorschlag "vaiable Achsen"! Externe Berechnung die nicht zeit skalierte Koordinaten nutzen könnten nach Synchronisation eingelesen werden! Will man damit einen unsynchronisierten Backtest fahren, müsste man das über einen Simulator der beide Ebenen ansteuern kann durchführen!



Wie sieht diese genau aus? extern ermittelte Datenpunkte (Wavelets) minus Underlining als Inputschablone? Welche Optimierungsparamter würde man hierzu einsetzen?

Es kommt darauf an welche Datenpunkte verglichen werden. Wenn der Input schon im Vorfeld um den Nullpunkt pendelt kann man auch 0-Basiswert verwenden. Andere Möglichkeiten sind Close(Basis)-Close (extern) oder Close/Close(extern).

Ich versuche im NN selbst nichts zu optimieren-sprich GA ist generell abgeschaltet!Im NN selbst kann man ohnehin nur Gewichte mit den GA hochoptimieren. Die Variablen in den Schablonen werden nicht berücksichtigt! Bei 2-3 Gewichten und schlanken Netzen gibt es nicht viel zu optimieren wobei ich meine Meinung zur Optimierung weiter oben beschrieben habe. Will man dennoch optimieren, sollte man gleichzeitig ein zuverlässiges Modell zur Kontrolle der Kapitalkurve haben! Die Kontrolle sollte in der Lage sein,Strukturbrüche im Vorfeld zu erkennen-wie man das mit diversen statistischen Testverfahren (M.-W- Test;ROC-Curve usw.),unter anderem auch mit der Differenzialanalyse testen könnte! Der RAFF-Channel ist die simpelste Methode aber ob man damit ein Portfolio stabil steuern kann bezweifle ich! Die Underwater-Equity ist für mich nur interessant, wenn der Abstand TRADE-ENTRY-DD gemessen und abgetragen wird. Der "theoretische DD,TOP-LOW,spielt für mich keine Rolle. Das sind individuelle Ansichten die von anderen Entwicklern differenziert gesehen werden können. Klar,jeder hat ein etwas anderes Schema mit dem gute Erfahrungen gemacht wurden und darauf baut man in der Regel auf! Man kann Systementwicklung bis zu einem gewissen Punkt verallgemeinern aber aber Punkt X mündet der Weg in tausend Seitenstraßen und jeder hat die Wahl, einen anderen Weg zu nehmen damit Punkt X erreicht wird! Siehe System vs diskretionären Handel: Es kann sein das beide das Ziel X erreichen-einer ja der andere nein-oder aber auch keiner von beiden..


Sollte man bereits das Prognoseziel auf aufbereitete Daten (Wavelets) beziehen, damit sich das Training nicht am "Rauschen" orientiert? Oder reicht ein GD of die ROC auch?Welchen Einfluss hat die Anzahl der Samples? Auf welche Faktoren sollte man bei der Evaluation der Anzahl Samples achten?

Als Prognoseziel habe ich immer die Investox Standard eingegeben.Hier muss man auf nichts besonderes acht geben. Man kann, wie oben beschrieben, die Wertbereiche der Outputs anpassen oder verändern und dem Problem,das gelöst werden soll,anzupassen! Aber die Investox-Vorgabe-Outputs beschreiben ja schon "unsere Problemchen"! Soll das NN ausschließlich gehandelt werden und nicht teil des Systems sein suchen wir meist die Wertveränderung in den kommenden n-Perioden oder fragen "Wie stark steigt-fällt der Kurs" in n- Perioden! Für weitere Inputschablonen kann man auch bei Knöpfel Software die Muster-NN laden und diese näher betrachten. Ist auch sehr interessant!

Die Samples teilen die Basiszeitreihe in Abschnitte auf und sollten im Zusammenhang mit dem Output erhöht oder gesenkt werden. In dem Umfeld muss man selbst testen indem man so vorgehen könnte: Anfangs steigt man mit 3-5 Samples ein. Ist das Netz stabil (Out of Sample) erhöht man schrittweise die Samples. Knickt der Out of Sample Zeitraum ab,lernt das Netz die Samples auswendig und hat die Fähigkeit zur Generalisierung verloren! Dieser Test sollte ohne jegliche GA Optimierung von NN oder Output im HS durchgeführt werden,da ansonsten die Wahrheit verwässert werden kann! Hat man ein NN, das nach dem Training im Out of Sample Bereich einbricht und erst nach GA Optimierung stabil wird...vergiss es wenn Du nicht eine Methode entwickelt hast, die KK zu stabilisieren-bzw. Strukturbrüche im Vorfeld auszuloten.

Mein Vorschlag zur NN-Entwicklung ist generell das man mit sehr kleinen Modellen startet und dann aufstockt. Sobald die Ergebnisse wieder schlechter werden sollte man die Veränderung im Netz rückgängig machen und nicht versuchen das Netz noch weiter mit Infos vollzustopfen oder mit Optimierung "das Problem zu lösen"..;)
Man sollte schon bei der Entwicklung daran denken wie man vorgeht,wenn das Netz erneut justiert werden muss. Schließlich soll die Neuausrichtung keine Woche dauern..;) So long ...
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

91

Donnerstag, 18. September 2008, 23:37

Heute habe ich den extern berechneten Filter erneut getestet. Der Filter so wie die externe Software haben einwandfrei gearbeitet. Dazu wurde das Testsystem in der beigefügten Grafik verwendet. Der heutige Tag brachte (incl. Slippage und Kosten;Open Delay 1) 1900 Euro im FDAX mit einem Kontrakt! Ich gehe davon aus,das wenn man die Perioden des Filters weiter anpasst und hier und da noch etwas justiert ein brauchbares NN dabei herauskommt! Mit dieser Methode könnten theoretisch sämtliche Zeitreihen quer Beet getestet werden! Ich werde morgen Abend noch einmal die Performance für den kompletten Freitag hier einstellen. Im nächsten Test werde ich die Approximations-Linie von SSA näher betrachten! Eventuell könnte man ein System live verfolgen aber aufgrund des Aufwandes könnte ich das lediglich auf EOD-Basis durchführen! Man sollte beachten, das insbesondere Handelssysteme von den derzeit chaotischen Bewegungen im Markt in Mitleidenschaft gezogen werden können! Im Backtest so wie Out of Sample waren die Schwankungen und DDs des System nicht stark wie insbesondere am heutigen Tag! Trotz der kurzen Historie kann man beim betrachten des KK-Verlaufs sagen,das man diese jetzt sehr genau beobachten sollte. Zudem sollte unter Analyse MAE/MFE betrachtet werden! Ein nachlassen der Asbeutung/Gewinntrade kann auch schon gewisse Hinweise liefern!
Schaun wir mal morgen Abend was passieen wird...

Die beiden Grafiken zeigen das Testsystem. Es wurde alles korrekt berechnet.Ein Risk-Management gibt es nicht und das ganze ist hinsichtlich der Performance nicht vollends ausgereizt, da das ganze lediglich zu Testzwecken dient!
»Udo« hat folgende Bilder angehängt:
  • NN1.png
  • NN2.png
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

92

Freitag, 19. September 2008, 13:11

>>>>Training hat ca 1: 30 Minuten gedauert für 8 Jahre Historie-EOD !Die ENTRY-EXIT Punkte hat das NN aus einer Differenzberechnung gezogen!<<<<

Wie hast du das in kurzen 1:30 Min hingebracht? Lag das zur Hauptsache an den Inputs? Wieviele Inputschablonen sollte man deiner Meinung nach max. einsetzen um einerÜberoptimierung zu begegnen?

Indem ich das Netz schlank und die Historie nicht ultralang gestaltet habe!Der Vorteil der Methode ist,das man in kurzen Historien genügend Fakts hat und die Historie nicht bis in die "Steinzeit" strecken muss! Wenn man beispielsweise Intermarket Netze entwickelt ,und in 5 Jahren nur etwa 10-20 Fakts zur Verfügung hat, muss man deutlich weiter zurück um mehr Fakts zu bekommen! Aber bei Intermarkets sollte man nicht außer acht lassen,das sich die Markt-Korrelationen im Laufe der Jahre verändert haben! Durch die Globalisierung sind die Weltmärkte enger verquickt so das immer mehr Störfeuer hinzukommen die frühere,gut funktionierende Korrelationen über den Haufen werfen!. Manche Korrelationen die vor 10-20 Jahren funktioniert haben treffen noch heute zu da die Abhängigkeit dauerhaft ist! So weit der "Ausflug" zu Intermarkets-ist aber nicht direktes Thema...:)

Um Curve Fitting so gut wie möglich vermeiden sollte man,ich sag's lapidar,so wenig wie möglich Schablonen einsetzen! Am besten wären 1-2! Aber Vorsicht: Schablonenanzahl ist nicht gleich Inputanzahl! Für ein stabiles Ergebnis sind meiner Ansicht zwei Dinge notwendig: Ein schlankes Netz und es sollte unoptimiert generalisieren können! An einem Netz das auswendig gelernt hat (sieht man bereits an der Form der KK Out of Sample relativ schnell) sollte man schlicht und ergreifend nicht weiter arbeiten, da es m.A. Zeitverschwendung ist! Auch eine Manipulation mit Hilfe von GA sehe ich als bedenklich hinsichtlich der Stabilität! Das Non Plus Ultra wäre,wenn man mit Investox "Live-Training" durchführen könnte. Das heißt,das Prognoseziel wird ständig und realtime mit dem Output auf Korrelation verglichen und visualisiert, so das man schon beim Init-Training sieht,ob eine schnelle Annäherung stattfindet oder ob die Approximation sehr zäh voran geht!

-komplette Underlying zur normalisieren: Wie kann man das bitte umsetzen?

Ich mache es mir ganz einfach und normiere in einem Statistikprogramm! Das Underlying wird in einen Wertbereich (Y-Achse) zwischen 0+1 gebracht! Vergleicht man nun zwei Underlyings-z.B. den DOW und den DAX direkt hat man eine "normierte" Skalen und somit einen relativ gleichmäßigen Output! Oriogin bietet 4 oder 5 Normierungsfunktionen an...

Differenzberechnung = nicht Differnzieren! Die Differnzierung bezieht sich auf die Basisformel f(x)=x2 und deren Ableitungen! Was ich meine, ist ganz einfach Wert A minus Wert B oder WERT A dividiert WERT B!
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

93

Samstag, 20. September 2008, 10:26

Externe Programme nutzen

Externe Software ist mit Vorsicht zu genießen. Bei einigen Programmen sind die Ableitungen für Filter und Smooth wunderbar aufgeschlüsselt und die Formel offen gelegt. Andere Programme wiederum zeigen weder die Ableitung noch halten sie sich an die Grundzüge der "Norm-Ableitungen". Daher ist es wichtig,das man externe Programme auf Herz und Nieren prüft bevor man sie für die NN- Entwicklung einsetzt! Oftmals bleibt kein anderer Weg, als die Funktionalität dieser Programme in kleiner Fielselarbeit zu testen. Das geht zwar krass an die Nerven..aber mit 5 Liter Kaffee und 3 Päcks Zigaretten/3 Stunden kriegt man jede Nervenbahn ruhig! 8o 8o Ich verwende Programme die teils die verwendeten Ableitungen anzeigen,dann ist es einfach denn man nur lesen und weiß was berechnet wird-aberteils verschlüsselt! In der Grafik unten sieht man den Filter einer verschlüsselten Ableitung! Schon der Anblick der KK lässt nichts Gutes erahnen denn solche KKs gibt es nur in "tausendundeiner Nacht"! Also...ab in der Papierkorb und den 500 PS starken Zuffenhaus'ner Volkswagen-Killer wieder abbestellen.... :D

Was erstaunt: Das NN scheint exakt zu erkennen, wie am Punkt x gehandelt werden muss! Punkt x könnte beispielsweise völlig wo anders liegen,worauf das NN versagen würde. Das ist umso erstaunlicher da der verwendete Filter keinerlei Vorlauf zu Zeitreihe hat sondern nur Datenpunkte um die Basis markiert die mit einer Differenzberechnung erfasst werden! Wenn man beispielsweise im Input "REF 5" verwendet weiß man, das man die Vergleichsdatenreihe um 5 Perioden vorverlegt, aber das ist hier nicht der Fall!

Das in der Grafik gezeigte Problem ist, das einige Filter und Smooths die Stützpunkt-Berechnung über die Historie verschieben. Verlagert man die Historie, werden die Stützpunkte anders platziert als bei kurzen Historien. Der Kalman-Smooth hingegen zeigt sich nach wie vor stabil-auch bei Veränderung der Historienlänge! Ich werde demnächst versuchen manuelle Stützpunkte anzulegen. Entweder werden die Zwischenpunkte (Stützp. bis Stützp.) Random berechnet oder,was auch mal interessant wäre, nach von mir festgelegt Schemas! Random heißt in dem Fall, das die Abstände zur Basis in einer bestimmten Bandbreite um den Basisdatenpunkt herum mit zufälligen Datenpunkten erzeugt werden! Ein Schema legt fest, ob der so berechnete Datenpunkt unter-oder über Close platziert wird! Bei der Variante gehe ich allerdings nicht von einem stabilen NN aus sondern es ist nur ein Versuch um sicher zu gehen das RANDOM nicht die gleiche Performance liefert wie nachher manuell gepinnte und schematisierte Punkten!
»Udo« hat folgendes Bild angehängt:
  • Filter.png
Happy Trading

chied

unregistriert

94

Dienstag, 23. September 2008, 12:47

Hallo Udo

hab nun mal ein paar meiner NN die bereits über GA trainiert wurden ohne GA Optimierung dupliziert. Zu meinem erstaunen sind
die Ergebnisse wesentlich besser als mit GA Optimierung ausgefallen. Kann ich nun daraus den Schluss ziehen, dass ich in Zukunft eine
Inputkombination erst ohne GA, und falls sie gute Ergebnisse liefert mit GA trainiere? Und kann ein NN das ohne GA optimiert wurde
grundsätzlich besser generalisieren? Ich verstehe den Prozess hinter einem Training ohne GA nicht ganz ... : (

Vielen Dank und

beste Grüsse

Roger

chied

unregistriert

95

Dienstag, 23. September 2008, 13:57

Udo

ich spiele eben mit den Wafelets und der Differenzanalyse ohne GA Optimierung rum.

Für den Input nach ich folgende Formel:

calc Daten:
Close-Close("GBL_WFilter2");

Ref(Daten,0);
Ref(Daten,-1);
Ref(Daten,-2);
Ref(Daten,-3);
Ref(Daten,-5);
Ref(Daten,-8);
Ref(Daten,-13);

Nun ist das Ergebniss nach ca. 25 sek. Training mit der Regel Ref( NN > 0 ,-1) bzw. Ref( NN<0 ,-1) und Delay 0 so gut ausgefallen,
dass ich wohl davon ausgehen muss, dass das NN in die Zukunft schaut.
Wenn ich in der Inputschablone Ref(Daten,0) weglasse, so verliert das NN stark an Qualität. Würdest du mir demnach zustimmen, dass der Input Ref(Daten,0)
das Fehelrpotential in sich birgt? Bisher habe ich Ref(Daten,0) aber auch in aderen Inputs verwendet ohne eine zukunftsblickenden Fehler entdeckt zu haben.

Danke und Gruss

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

96

Dienstag, 23. September 2008, 14:47

Hallo Roger,

bei Deiner ersten Frage sollte man zunächst die Funktionsweise der GA so wie die des Backpropagation Algorithmus näher betrachten,was einen etwas größeren Schreibumfang bedeutet und auf die Schnelle nicht erklärt ist. Versuche es später in Etappen zu erläutern..

Dein zweiter Beitrag stellt sich die Frage, aus welchem Programm Du die Wavelets entnommen hast und welche Wavelet-Methode verwendet wurde? Die bislang kürzeste Einstiegsmöglichkeit die ich mit Origin erreicht habe ist Close DELAY 1, wenn Close Daten als Underlying zur Verfügung gestellt wurden! Für Open Daten dito.

Bei REF 0 in der Inputschablone wird die aktuelle Periode in die NN-Auswertung einbezogen. Beinhaltet ein Indikator xy CLOSE Berechnungen und man steigt OPEN DELAY 0 in den Trade ein bekommt man falsche Signale! Der frühestmögliche Einstieg bei dieser Konstellation wäre CLOSE DELAY 0! Da einige Investox-Indikatoren im Hardcode verschlüsselt sind kann man den verwendeten Formel-Code nicht einsehen. Daher ist man immer auf der sicheren Seite wenn das HS Close Delay 0 oder Open Delay 1 einsteigt. Auf Indikatoren die man nicht für eine Input- Schablone verwenden kann ist (meines Wissens betrifft das alle) hingewiesen! Wird ein Indikator über 2 REF- Perioden berechnet-bzw. benötigt zwei Peaks um einen Peak zu justieren muss man den Einstiegszeitpunkt für das HS um n Perioden die Zukunft schieben! Der Nachteil ist, das man zur Wavelet Auswertung nicht in eine kleinere Zeitebene wechseln und diese in Investox synchronisieren kann! Bei externen Programmen sollte man die Schwächen in meinem vorigen Beitrag unbedingt berücksichtigen! Daher hätte ich,wenn programmtechnisch möglich, moderne Filtermethoden lieber in Investox direkt zur Verfügung so das man nicht selbst zeitraubende Funktionstests mit externen Programmen durchführen muss! Ich habe hier auch mal einen "losgelösten Test" durchgeführt...;)
Happy Trading

chied

unregistriert

97

Dienstag, 23. September 2008, 16:41

Hallo Udo

mach dir bitte keine all zu grossen Umstände bzgl. GA und BB Algo. Habe dazu noch einige Artikel bzw. Links, die du gepostet hattest, gelesen. Mein Interesse diesbezgl. bezieht
sich eher auf die Robustheitsunterschiede von NN mit GA- und ohne GA-Training.

Weiter wollte ich dir mitteilen, dass ich das Wavelet Modell unter [url='http://www.foretrade.com/cgi-bin/DownloadOK.asp#2.%20%20%20%20Wavelet%20Download%20(beta)']Wavelets Download[/url] runtergeladen habe. Ich konnte leider nichts bzgl. Methode finden.
Ich habe einfach die Kursdaten Open, High, Low und Close einzeln eingefügt um som einen [i]kompletten[/i] Wavelet Kurs zu erhalten und nach INV
importiert. Dies geht wie auch bei dir natürlich nur mit Delay 1. Da alles EOD läuft, ist das durchaus zu bewältigen.
Mittlerweile habe ich weitere Tests durchgeführt. Dabei habe ich die Ref(Daten,0) weggelassen, das Open Delay auf 1 und sogar das Close Delay auf 1 geschaltet.
Dennoch ist die KK so gut, dass ich wohl ab Morgen nicht mehr zur Arbeit kommen werde ; )

Wenn es dich interessiert, könnte ich dir das ganze HS inkl. NN und Wavelet Titel mal zusenden.
Ich hab wirklich keinen Plan mehr, was falsch an dem System sein könnte.

Viele Grüsse

roger

Dago

unregistriert

98

Dienstag, 23. September 2008, 17:30

Hallo Roger,
so etwas ähnliches hatte ich auch mal. Irgend jemand vom Forum (Ich weiss nicht mehr wer) hat berichtet, er hätte von SVM abgeschaut und ein NN mit EoD 3 Monate trainiert und nur einen Tag gehandelt, mit super Ergebnissen. Ich habe das gleich ausprobiert: INV Standard NN, banale Inputs, eine Generation, bis z.B.15.9 trainiert und das Signal am 16.9. gehandelt. Die Ergebnisse waren mit bis zu 80% Trefferquote berauschend. Um so bodenloser war der Absturz beim Papertrading. Bis heute habe ich dafür keine Erklärung gefunden, denn die Inputs haben sicher nicht in die Zukunft geblickt und die Einstellungen waren Open / Delay 1.
Grüße
Dagobert

chied

unregistriert

99

Dienstag, 23. September 2008, 18:09

Vielen Dank für die Info Dago. Ich befürchte, dieses Ergebniss wird sich auch bei mir in wenigen Tagen einstellen.

@Udo,
wäre es möglich, dass die Wavelets in die Zukunft blicken? Ich denke nicht, da die Wavelets j nur die Daten nehmen können die ich im- bzw. exportiere.
Interessanterweise hört mein Wavelet Import am 31.7 auf. Demnach müsste doch auch zu diesem Datum das Systemende erreicht sein. Erstaunlicherweise
hört das HS aber erst 2 Perioden später auf und signalisiert das Systemende. Wäre das ein möglicher Indikator, dass das HS in die Zukunft blickt?

Vielen Dank und

Gruss

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

100

Dienstag, 23. September 2008, 19:46

@Roger,

ich vermute, dass deine Erfahrung auf einer anderen Ursache beruht als das Problem von Chied. Beim täglichen Neutrainieren hatte ich nämlich beim Aufbau des SVM-Indikators ein systematisches Problem mit dem in die Zukunft sehen.

Wenn ich die SVM "trainiere" gehe ich ja immer auf einen Zielwert in die Zukunft. Wenn ich nun nur bis zu einem Zeitpunkt in der Vergangenheit trainierte waren meine SVM-Schätzungen für die Zukunkt anfänglich super-performant. Ich wäre jetzt schon ein zweiter Bill Gates :rolleyes: .

Aber bald stellte ich die Ursache fest. Wenn ich z.B. bis zum 30.09 die SMV trainiere und meine Zielfunktion die Wertänderung in zwei Perioden ist, dann griff mein Indi für die Berechung des vorletzten Wertes 29.09 bereits auf den Zukunftswert der des 1.10 zu. Der war in meiner Datenreihe ja vorhanden. Nur hätte ich ihn im realen Handel nicht gehabt. Drum habe ich eine Periodenkorrektur für die Zielgrößen in der Zukunft eingerichtet und verhindere, dass die Performance im Testbereich geschönt wird.

Wenn in Investox bei NN dies nicht beachtet wird, kann das gleiche Problem auftreten. Du solltest dein Experiment mit entsprechend abgeschnittenen Zeitreihen machen bei denen nie Werte aus der "Zukunft" vorhanden sind. Wenn du dann noch immer auf 80 % kommst sollte Investox richtig arbeiten und du hast gute Chancen. Wenn nicht, kann es sein, dass Investox bei NN's in die Zukunft schaut.

@Chied,

bei mir war es immer ein Zeichen für in die Zukunft sehen, wenn mein HS Signale für die Zukunft brachte.
Wie ist dein HS aufgebaut?

Ähnliche Themen