Donnerstag, 18. April 2024, 06:57 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.

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

41

Montag, 11. August 2008, 10:28

Hallo Udo,

vor einiger Zeit hatte ich bereits einmal einen Wunsch an Investox eingestellt - die Trennung von Entwicklungs- und Produktionssystem.

Für dich als halbautomatischen Trader sind die graphischen Funktionen von Investox ein MUSS. Aber bei einem vollautomatischen HS sehe ich ein Potential, wenn man im Betrieb ausschließlich das konkreten Trading unterstützen würde (Analyse, Ausführung, Kontrolle).

Noch eins, bei externen Algorithmen (oder Funktionen) lassen sich Parallelisierungen oder spezielle Hardware viel leicht einsetzen.

Grüße

Martin

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

42

Montag, 11. August 2008, 10:42

Hallo Martin,

hinsichtlich der grafischen Aufbereitung glaube ich,das sich das auch mancher Systemtraders wünschen würde. Ich habe eine Software getestet die das NN-Training visualisiert! Das heisst In-Output Veränderungen werden realtime visualisiert! Man sieht wie sich die Korrelation der Kurven verändert! Wenn man das ein paar mal beobachtet hat kann man nach kurzer Zeit sehr treffsicher sagen, ob das weitere Training überhaupt sinnvoll ist, oder ob man besser gleich abbricht und die Zeit effektiver nutzt! Bei einer Zahlentabelle sieht man diese Veränderungen nicht gut und Tabellen können nicht den intensiven Eindruck einer Grafik vermitteln! Stell Dir mal vor der RB-Test bestünde nur aus Zahlen und ohne Grafik. In erster Linie wird man,zumindest ich,den Blick auf die Grafik fokussieren und erst danach die Zahlen lesen, die man auf den Eckpunkten der Grafik erzielt! Ich persönlich käme auch bei vollmech. Handel nicht ohne Grafiken aus da sie mir ein besseres Kontrollgefühl vermitteln als eine Zahlenkolonne.

!
Happy Trading

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

43

Montag, 11. August 2008, 11:38

Hallo Udo,

ich bin ganz auf deiner Seite. Für viele Zusammenhänge sind Graphiken absolut notwendig.

Worauf es mir ankommt ist es das konkrete Training in Bezug auf Performance optimal zu gestalten. Nachträgliche Analysen müssen auf jeden Fall möglich bleiben.

Gruß

Martin

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

44

Samstag, 16. August 2008, 00:00

Hallo Martin,

an welche Algorithmen und Filter hast Du gedacht? Bei den Filtern ist es nicht meiner Ansicht schwierig,da man zur Aufbereitung variabel, skalierbare X-Y Achsen benötigt,z.B. wenn Wavelets oder FFT für Frequenzanalysen in Hz oder s zerlegt werden! In der anschließenden Grafik habe ich eine weitere ,interessante Funktion frei skalierbarer Achsen! Die rote Linie dividiert die X/Y-Achse. Die orangen Pfeile markieren den Vorlauf des Indikators! Durch reduzieren oder aufstocken der Perioden kann man die Ausschläge des Indikators entweder auf der x-oder Y-Achse dämpfen..oder auch auf beiden Achsen. Die schwarze Linie ist eine FFT-Glättung n-ter Ordnung. Ich muss aber hier dazu sagen das ich den Chart digitalisiert habe und somit wesentlich mehr Datenpunkte erzeugt habe als der Chart eigentlich hergeben würde. Nach mehreren Tests habe ich den Eindruck das sich das positiv auf die Performance des Indikators (rot) auswirkt! Der Grund ist wohl das die Frequenzabstände wesentlich kürzer sind als sie eigentlich müssten und bei einer X-Y-Achsen Glättung scheint das nicht zum Curve Fitting zu führen: Übrigens wäre ein Kurvenfit auch eine prima Sache aber ich glaube das ist ein zu großer Aufwand? Man müsste erst einmal unterschiedliche Filter programmieren und diese mittels Algorithmus optimieren. Beispiel: FFT n-ter Ordung fitten und als Richtlinie den R-Squared und Standardfehler ausgibt.In der anderen Grafik habe ich, der Vollständigkeit halber, eine grafische Aufbereitung mit Auswertung von FFT 8 Harmonics! Aber das nur am Rande...
»Udo« hat folgendes Bild angehängt:
  • FG.png
Happy Trading

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

45

Samstag, 16. August 2008, 16:49

Hallo Udo,

in den letzten Wochen komme ich wenig dazu mich inhaltlich mit den Themen zu beschäftigen. Ich bin durch ein Projekt bei einem Kunden recht starkt eingebunden. Und so sehr mich die Weiterarbeit an SCM, Time Series Algroithem, FFT, etc auch interessiert, um es richtig zu machen braucht man Zeit, viel Zeit.

Was ich an dieser Stelle anbiete ist weniger die Auswahl der optimalen Algorithmen, Filter und deren Kombination. Aber mir den Kopf über eine sinnvolle technische Einbindung zu zerbrechen geht schon schneller. Da habe ich durch meine Arbeit beste Voraussetzungen.

Als Finanzmathematiker wäre ich ein stümperhafter Anfänger. SVM hat mir dies deutlich vor Augen geführt. Bis ich halbwegs verstand was ich überhaupt mache verging schon einige Zeit. Experimentieren reicht nicht, man muß schon ein wenig in die Theorie einsteigen um nicht blind um sich zu tapsen. Mit NN habe ich mich früher mal mathematisch und technisch sehr viel beschäftig und um ein Haar über das Thema promoviert. Daher sind mir viele Diskussionen über Vorverarbeitung der Daten, Skalierung, Filter, ... gut geläufig. Aber, die Zeit setzt auch natürlichen neurolanen Netzen zu ;) .

Bei der technischen Umsetzung insb. auch der Integration tue ich eigentlich nur meinen sonstigen Job. Ich bin nicht in erster Linie Programmierer, sondern kümmere mich eher darum was man mit seinen Funktionen erreichen will und welche technischen Umsetzungsmuster sinnvoll gewählt werden können.

Drum stehe ich in der Diskussion hier eher in der zweiten Reihe.

Viele Grüße

Martin

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

46

Samstag, 16. August 2008, 18:46

Hallo Udo,

das untere Bild mit der FFT (wahrschinlich Fast Fourie Transformation) auf den FDAX gefällt mir sehr gut.
Gibt es den in dem Programm eine Beschreibung/Formel wie diese Kurve ganz konkret berechnet wird. Vielleicht kann man mit den Boardmitteln von Investox den Algorithmus umsetzen bzw. es so weit vereinfachen, das es möglich wird ...

Man bräuchte eine Berechnungsgrundlage, so in der Form: StandardAbw. berechnen über mehrere NNouts (kein CrossValid. Traningsmethode verwendet)

Viele Grüße
Torsten

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

47

Sonntag, 17. August 2008, 10:06

Hallo Martin,

ups..ich glaube ich habe mich hier etwas unverständlich ausgedrückt! :) Ich meinte mit dem Beitrag natürlich nicht, das Du die Tools programmieren könntest sondern wollte die aus meiner Sicht Zusammenhänge darstellen! Es ist klar, das Du das Investox-Projekt nur am Rande betreiben kannst und viele sind sicher froh, das Du Dich-auch im Rahmen der SVM-überhaupt nebenbei darum kümmern kannst,denn das ist ja nicht selbstverständlich! Allerdings wünschte ich mir etwas mehr Unterstützung seitens Knöpfe- Software für Deine intensive Arbeit,denn Du kannst nicht ein komplettes PlugIn selbst und nebenbei programmieren! Auch hinsichtlich des Feed Forward Tests müsste etwas kommen, denn ohne die Funktion laufen die meisten der stat.-mathem. Tests völlig ins Leere und es wäre,leider muss man es so sagen, unnütz dafür Zeit zu investieren...

@Torsten

Formeln für FFT gibt es beispielsweise bei Wikipedia genügend aber das kann man nicht mit Investox-Bordmitteln umsetzen.Der Grund ist das Fourier-Transformation von der Zeit- in die Frequenzdomäne und umgekehrt umgewandelt werden. Um nun einen Filter mit beliebiger Filtercharakteristik anzuwenden, muss man einfach das Signal in die Frequenzdomäne transformieren, die Filterfunktion anwenden und das Signal in die Zeitdomäne zurück transformieren. Dazu benötigt man eine Statistiksoftware oder eine Finanzsoftware die ein entsprechendes PlugIn bereit stellt, und da ist mir nur eine bekannt! In den Standards der Softwares habe ich diese Funktion noch nicht entdecken können! Die in der Grafik dargestellte FFT-Kurve wurde mit einem vollautomatischen Kurvenfit ermittelt der als Ziel hat, eine möglichst hohe Korrelation zur Basis und einen geringen Standardfehler zu ermitteln! Man muss aber auch aufpassen, das man nicht zu stark filtert ( beispielsweise durch einstellen zu vieler Spektren) um nicht jede Nische in der Basiszeitreihe nachzuvollziehen denn gerade das soll vermieden werden um somit die Ausreißer zu eleminieren! Da ich das ganze nicht unmittelbar in Investox testen und mit einem Standard-GD vergleichen kann,weiß ich leider auch nicht, ob man durch FFT erhebliche Vorteile bei der Glättung hat! Ziel ist, eine möglichst hohe Approximation bei geringen Standardfehlern zu erzielen um die Ausreißer (Anomalien) zu filtern,so das dem NN "saubere" Datenpunkte vorliegen und das rauschen schon in der Datenvorbereitung eliminiert wird! Ein Grund ist auch, das der Backpropagation-Algorithmus langsam ist und dazu neigt, in lokalen Minima stecken zu bleiben. Daher wäre es notwendig mit zusätzlichen Algorithmen zu arbeiten,was bislang aber nicht möglich ist!

Backpropagation-Algorithmus Funktion:

  • Der Fehler des Ausgangssignals eines Neurons wird verwendet, um seine Gewichtung so zu adjustieren, dass der Fehler verringert wird.
    Der Fehler in versteckten Schichten wird proportional zur gewichteten Summe der (geschätzten) Fehler in der Schicht darüber gesetzt

Ein m.A. großer Fehler beim entwickeln von NN ist,das zu viele Neuro-Schichten eingesetzt werden! Je mehr Schichten das Netz beinhaltet, desto besser kann es Approximieren was zur Folge hat,das die Generalisierungsfähigkeit verloren geht! Kritisch ist es,wenn sich das NN zwischen auswendig lernen und generalisieren befindet und man glaubt, das NN könne gut generalisieren. Oftmals kann diese Meinung nur gehalten werden, weil sich das NN in einem,auf die Trainingsdaten bezogenen,günstigen Zyklus befindet! Hier sollte man besonders acht geben! Bei Backprop-Netze ist es wichtig, mit kleinen Modellen zu starten und nach und nach Schichten und Inputs zu erhöhen! Für die meisten Problemfälle reichen für unsere Zwecke 2-3 Hiddenschichten völlig aus.Crossvalidation würde ich persönlich immer verwenden, da diese Methode Boot-Strapping beinhaltet! Das Netz über die internen Einstellungen und Outputs zu manipulieren, hat sich in meinen Tests als "Schuss in den Ofen" erwiesen.Ich denke bei NNs ist es wichtig das man sich von der Börse etwas abkoppelt und rein mathematisch-statistische Vorgehensweisen einsetzt. Bei Intermarkets ist es anfangs natürlich wichtig globale Wirtschaftliche Zusammenhänge zu kennen aber für die Datenaufbereitung spielt das nachher keine Rolle mehr! Wünschenswert wären zusätzliche Algorithmen da die bisherigen zwei,Backprop und GA sehr träge sind und für komplexe Aufgaben zu lange brauchen.Ich will damit nicht sagen, das ie nicht geeignet sind aber für den Intradaybereich nur sehr begrenzt verwertbar sind. Da Backprop die Neigung hat sich in lokalen Minima "festzufressen" sehe ich das zusätzliche puschen der Gewichte mit GA eher bedenklich und man sollte,wendet man dies an,ein sehr gutes Riskmanagement haben.Der meiner Ansicht größte Fehler der sehr schnell zu Curve Fitting führt ist das optimieren mit GAs,vielen Hiddenschichten und bei Crossvalidation zu vielen Samples.Dies gilt für den Backpropagation-Algorithmus! Bei SVM hingegen liegen nach meinen Tests die Schwerpunkteder Modell-Entwicklung auf anderen wichtigen Punkten...
Happy Trading

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

48

Sonntag, 17. August 2008, 10:46

Hallo Udo,

Zitat


Der meiner Ansicht größte Fehler der sehr schnell zu Curve Fitting führt ist das optimieren mit GAs,vielen Hiddenschichten und bei Crossvalidation zu vielen Samples.

- GA's ... aus meiner Sicht braucht man diese, um aus den lokalen Minimas beim Lernvorgang wieder rauszukommen.
- viele Hiddenschichten ... wenn man 1ne zulässt und versucht mit 3 - 5 Hiddenneuronen auszukommen sollte man sich noch im grünen Bereich befinden
- bei Crossvalidation zu vielen Samples ... interessant, das ist mir neu. Wie ist das zu erklären? Ich hätte gedacht, je mehr unterteilt um so schwieriger wird es dem NN gemacht. Das Problem sehe ich eher darin, dass je mehr Samples man hat, um so größer der Berechnungsaufwand wird und das es dadurch nach oben begrenzt wird, insbesondere wenn man dann noch mehrer Outputs definiert hat. Mir scheinen 10 Samples fast schon zu viel zu sein. Wie ist Deine Erfahrung, was wäre ein optimale Anzahl von Samples?

Wenn man ein NN mit CrossValidation trainiert, dann bekommt man neben den eigentlichen Output, auch Min, Max und S. Hat man mehrere NN-Outputs definiert, dann erhöht sich die Anzahl der Ergebniskursreihen noch weiter. Auf der einen seite ist das natürlich schön, dass man soviele Ergebnisdaten bekommt, auf der anderen Seite hat man aber die Qual der Wahl wie man alle diese Daten sinnvoll auswerten kann, um das Maximum herauszuholen. Also man hat sehr viel Spielraum schon alleine bei der Output-Datenauswertung.
Wenn es hier schon praktische, langfristige Erfahrungen gebe, was zu den stabilsten Ergebnissen führt? Das Spielfeld ist sehr groß.
Oder anders gesagt, vielleicht sind die NN's+GA's ja gar nicht so schlecht und man bräuchte überhaupt keine SVM, wenn man es verstehen würde die NN's richtig anzuwenden. Vielleicht bin ich ja nur zu dumm dazu und sehe den Wald vor lauter Bäumen nicht.

Zitat

Formeln für FFT... kann man nicht mit Investox-Bordmitteln umsetzen.

Zitat

FFT-Kurve wurde mit einem vollautomatischen Kurvenfit ermittelt ...

Schade, es scheint auch mehr zu sein, als nur die Transforamtion t-->f und wieder zurück. Im autom. f-Filter liegt dann das eigentliche Know-How, was wahrscheinlich auch nicht öffentlich ist. Wie auch immer, es was nur eine Idee, die Sache erstmal möglichst einfach und mit geringen Aufwand anzugehen ...

Viele Grüße
Torsten

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »sten« (17. August 2008, 11:12)


Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

49

Sonntag, 17. August 2008, 11:54

Hallo Torsten,

eine Zwischenfrage (zu mehr bleibt mir jetzt leider nicht mehr Zeit):

- GA's ... aus meiner Sicht braucht man diese, um aus den lokalen Minimas beim Lernvorgang wieder rauszukommen

Wenn ich das richtig verstanden habe, drückst Du damit aus das mit Hilfe der GA-Algorithmen die NN Backpropagation-Algorithmen wieder "zurechtgerückt" werden, wenn sie sich bei der Fehlerminimierung verhaspeln und die Ergebnisqualität der Netze nicht optimal ist-sehe ich das so richtig?

PS: Die FFT Kurve muss man natürlich nicht unbedingt vollautomatisch fitten,man kann es auch manuell durchführen so viele Harmonic-Stufen gibt es eigentlich nicht zu testen! Meistens genügen 5-20 Samples. Ich habe das nur der Vollständigkeit halber geschrieben. Aber für die Berechnung genügt die Investox-Sprache (zu VB kann ich nichts sagen) nicht..
Happy Trading

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

50

Sonntag, 17. August 2008, 12:40

Hallo Udo,

Zitat

Wenn ich das richtig verstanden habe, drückst Du damit aus das mit Hilfe der GA-Algorithmen die NN Backpropagation-Algorithmen wieder "zurechtgerückt" werden, wenn sie sich bei der Fehlerminimierung verhaspeln und die Ergebnisqualität der Netze nicht optimal ist-sehe ich das so richtig?


Ja, so sehe ich es.

Viele Grüße
Torsten

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

51

Sonntag, 17. August 2008, 23:55

Hallo Torsten,

zuerst einmal zum letzten Beitrag! Leider ist deine Annahme nicht so, sonst hätten wir allesamt wunderbare Netze! :) Genetische Algorithmen und Backpropagation sind zwei Algorithmen. Backprop lernen auf Basis des Gradientenabstieges und GAs bilden Generationen und sind ein reines Optimierungsverfahren das man in großer Bandbreite einsetzen kann um Variable zu optimieren! GAs im NN können eingesetzt werden, die Gewichte zu optimieren/justieren um Ergebnisse zu verbessern. Man kann damit aber nicht in die Rechenschemen der Backprop-Netze eingreifen oder diese verändern! Wenn ein NN überoptimiert ist oder sich im Minima festgelaufen hat können GAs das nicht wieder egalisieren sondern verschlimmern das,weil sie auf den NN-Vorgaben aufbauen und nur versuchen, die Gewichte optimal zu platzieren! Ein stark überoptimiertes NN-Modell wird mit GA-Optimierung noch weiter zum Curve Fitting gelenkt!

- viele Hiddenschichten ... wenn man 1ne zulässt und versucht mit 3 - 5 Hiddenneuronen auszukommen sollte man sich noch im grünen Bereich befinden

5 Neuronen sind schon sehr viele für Mustersuche in einer Zeitreihe. Wenn man weniger Neuronen man einsetzt, zwingt man das Modell eher zum generalisieren! Wenn man die Neuronenanzahl steigert, kann die Zeitreihe exakter "berechnet und projiziert" werden was das auswendig lernen begünstigt! Man sollte aber immer die gesamte Modelleinstellung betrachten und bewerten. Im allgemeinen sollte man aber nach dem Schema "weniger ist mehr" vorgehen, sonst bringt man fast jedes Modell in die Overtrading-Zone.


- bei Crossvalidation zu vielen Samples ... interessant, das ist mir neu. Wie ist das zu erklären? Ich hätte gedacht, je mehr unterteilt um so schwieriger wird es dem NN gemacht. Das Problem sehe ich eher darin, dass je mehr Samples man hat, um so größer der Berechnungsaufwand wird und das es dadurch nach oben begrenzt wird, insbesondere wenn man dann noch mehrere Outputs definiert hat. Mir scheinen 10 Samples fast schon zu viel zu sein. Wie ist Deine Erfahrung, was wäre ein optimale Anzahl von Samples?

Teste ein simples Modell mit 10- und danach mit 3-5 Samples bei sonst unveränderten Einstellungen. In den meisten Fällen wirst Du feststellen, dass das Modell mit 10 Samples besser performt!Investox trainiert für jeden Sample ein neuronales Netz! Wenn man die komplette Historie in viele Samples unterteilt, werden viele NNs trainiert was aber auch zu auswendig lernen führen kann wenn das Modell für die Fakts zu mächtig ist! Wenn man es dem NN schwer machen möchte sollte man die Daten verrauschen,was sich im NN-Dialog einstellen lässt! Beim rauschen werden die signifikanten Signale verwischt und sind für das NN schwer auszumachen. Daher sollte man nicht mit zu hohen Rauschwerten testen!

Wenn man ein NN mit CrossValidation trainiert, dann bekommt man neben den eigentlichen Output, auch Min, Max und S. Hat man mehrere NN-Outputs definiert, dann erhöht sich die Anzahl der Ergebniskursreihen noch weiter. Auf der einen seite ist das natürlich schön, dass man so viele Ergebnisdaten bekommt, auf der anderen Seite hat man aber die Qual der Wahl wie man alle diese Daten sinnvoll auswerten kann, um das Maximum herauszuholen. Also man hat sehr viel Spielraum schon alleine bei der Output-Datenauswertung.
Wenn es hier schon praktische, langfristige Erfahrungen gebe, was zu den stabilsten Ergebnissen führt? Das Spielfeld ist sehr groß.


Ich verwerte nur den Output. Eine Qual der Wahl sollte es bei keinem Modellen geben, sonst kann man das beste Netz gleich würfeln! Wenn man kein statistisches Zielgrößen-Auswahlverfahren hat,sollte man die Zielgröße nicht mit durchklicken oder ausprobieren suchen. NN-Entwicklung ist ohnehin meist eine Trial and Error Angelegenheit und wenn man den Output auch nach diesem Schema auswählt, ist es m.A. nichts anderes als eine 50:50 Chance-ein Game....

Oder anders gesagt, vielleicht sind die NN's+GA's ja gar nicht so schlecht und man bräuchte überhaupt keine SVM, wenn man es verstehen würde die NN's richtig anzuwenden. Vielleicht bin ich ja nur zu dumm dazu und sehe den Wald vor lauter Bäumen nicht.

Jeder Algorithmus bringt Vor-und Nachteile! SVM sind in den primären Funktionen mit NN zu vergleichen,öffnen dem Systementwickler aber ganz andere Möglichkeiten wie z.B. Feed Forward Tests und Zeitgewinn,was auch zu vielfältigen Möglichkeiten bei der Systementwicklung führt! Backprop und GA sind "Breitband-Problemlöser" und auf viele Fakts anzuwenden. SVM-,Heuristik Algorithmen oder ,Kohonen oder Fuzzy-Logik Netze,um nur einige zu nennen sind im Gegensatz zu Backprop/GA spezieller- finden aber in diversen Börsensoftwares bereits Anwendung! Das meiner Ansicht wichtigste beim NN ist das aufbereiten der Daten. Was ich bei Investox nicht ganz so prickelnd finde ist, das man keinerlei grafischen Einblick bei den NN hat und die Aufbereitung der Daten (Skalierung) nicht näher beschrieben ist! Somit stochert man im Nebel und Trial and Error lässt grüßen! Vielleicht könnte das Herr Knöpfel irgend wann einmal verbessern so das man auch sieht was man tut.Bislang arbeitet man mehr oder weniger auf Verdacht....


Schade, es scheint auch mehr zu sein, als nur die Transformation t-->f und wieder zurück. Im autom. f-Filter liegt dann das eigentliche Know-How, was wahrscheinlich auch nicht öffentlich ist. Wie auch immer, es was nur eine Idee, die Sache erstmal möglichst einfach und mit geringen Aufwand anzugehen ...

Der Aufwand für FFT ist für den Anwender gering, wenn die Formel und die Transformation implementiert ist! Die Formel für FFT ist öffentlich und für jedermann zugänglich! Fast jede Statistiksoftware ab 50€ aufwärts beherrscht FFT-Glättungen! Das könnte aber wahrscheinlich (Investox-intern) nur Herr Knöpfel lösen! Die Transformation ist t-s oder t-Hz. Dazu benötigt man zumindest variable Achsenskalierungen...
Happy Trading

upgap

unregistriert

52

Samstag, 23. August 2008, 10:50

Hallo Community,

Ein extrem interessanter Thread :)

Hätte da 2 konkrete Fragen dazu

1) Die SSA-Analyse Software, ist es diese hier: http://www.gistatgroup.com/cat/programs.html ???
2) Was genau ist ein Feed-Forward Test ?
Konnte nach langer (ok, ein paar Stunden) Recherche nix brauchbares dazu finden ...

tia & mfg

Snoopy

unregistriert

53

Samstag, 23. August 2008, 14:45

Hallo upgap,
zu der Software ist Udo der Spezi, und meldet sich noch bestimmt dazu.
Mit Feed-Forward Test meint Udo bestimmt den Walk-Forward. Schau einmal hier
Gruß Snoopy

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

54

Sonntag, 24. August 2008, 10:52

Hallo,

der Feed Forward (oder auch Step Forward,Walk-Forward Test) genannt, kann für Zeitreihenanalysen nur mit bestimmten Algorithmen genutzt werden. Dazu gehören viele statistischen Analysen wie SSA,Arima usw.Die Modelle werden mit Algorithmen gefittet die keine Generationen (so wie das bei NN oder genetische Algorithmen der Fall ist) benötigen, um zu funktionieren. Martin P. hat mit SVM eine externe Möglichkeit geschaffen,einen solchen Algorithmus (SVM) in Investox zu nutzen und damit aber auch die Notwendigkeit eines Feed Forward Tests ausgelöst..;)

Feed Forward Tests kann man,in unserem Fall, für dynamische Zeitreihenanalysen einsetzen! Dynamisch heißt, das die Optimierung immer wieder in regelmäßigen Zeitabständen erneut und vollautomatisch durchgeführt wird. Dies geschieht,am Beispiel von SVM,l innerhalb weniger Sekunden und kann deshalb auch bei kleineren Komprimierungen für Intraday-Systeme eingesetzt werden. Der Hintergrund ist, das man dadurch die Dynamik der Zeitreihen immer wieder neu justiert und somit dem System eine Adaptivität verleiht!

Ein simples Beispiel:

Datenhistorie: 100 Perioden schleifend-das heißt,die eingestellten 100 Perioden Historie werden nicht mehr und nicht weniger und mitgeschleift!

Step: Optimiere nach 5 neuen Perioden das System neu. Hat man Algorithmen wie Heuristik oder Top-Listing muss man noch die Anzahl der Durchgänge für die Optimierung angeben!

Output: Handle das System nach Optimierung 3 Perioden-dann out

FW-Schleifen Step: Optimierung dann ....handle-handle-handle-out-out-optimiere-handle-handle...usw.

Bei den genannten Algorithmen ist der Zustand und die Länge der Historie sehr entscheidend über Erfolg oder Misserfolg. Martin hat in SVM noch andere wichtige Punkte integriert die ebenfalls hoch gewichtet werden sollten aber das nur am Rande! Für SSA Testvorgänge benötigt man unbedingt einen FW Test. SSA projiziert bis n-Perioden in die Zukunft! Die Qualität des Ergebnisses ist vom dynamischen Verlauf der Historie abhängig. Die meisten statistischen Test reagieren nicht auf gleichbleibende Linearität! Das heißt, wenn die Historie an einem stetig steigenden-fallenden Verlauf abgegriffen wird,hat man zu 95% eine falsche Aussage zum weiteren Verlauf der Zeitreihe! Daher sollte man diese Analysen,(gilt auch mit unter für NN und GA-insbesondere NN reagieren wesentlich besser auf nicht lineare Muster) an transformierten Zahlenreihen durchführen. Im einfachsten Fall nimmt man den ROC (Rate of Change) als Underlying-anstatt das Underlying selbst! Das ist zwar ein "brutale Transformation" und nicht so filigran wie das im Frequenzbereich möglich ist,aber mehr geht in Investox-"Standard" (intern) nicht!

Der Feed Forward Test ermöglicht,das System der Dynamik einer Börsenzeitreihe besser anzupassen,birgt aber auch Gefahren! Um diese im Vorfeld auszumerzen testet man wie das System einzustellen ist. Der klassische Backtest ist nicht verwertbar, da er nur die "starre Vergangenheit" auflistet. Der Vorteil ist, das man anhand des FW Tests ermitteln kann, wie man das System ggf. nachjustieren kann und wann es notwendig sein könnte, das System auszusetzen oder neu zu optimieren! Ich hoffe ich konnte das ganze aus meiner Sichtweise und in aller Kürze etwas verständlich darlegen...

PS: Die SSA-Software habe ich mir angesehen! Nachteil ist, das man in der Testversion keine Daten exportieren kann! Auch so scheint mir das Tool etwas unübersichtlich und dünn gestaltet zu sein!? Ist aber nur ein erster Eindruck nach ein paar Mausklicks denn zu mehr bin ich leider noch nicht gekommen.......
Happy Trading

upgap

unregistriert

55

Sonntag, 24. August 2008, 11:34

kurze Anmerkung: hab' diesen Post vor Udos Antwort geschrieben, beim Absenden nicht gesehen, daß es schon eine Antwort gab.
hat sich zeitlich etwas überschnitten,sry.

schon mal vielen herzlichen Dank an Udo für die ausführliche Antwort, höchst interessant;
braucht wohl noch etwas um verdaut zu werden ;)

-------------------------

Walkforward Optimation ist mir natürlich ein Begriff.
Eigentlich sehr schade, daß soetwas grundlegendes nicht unterstützt wird.
Könnte man die BT-Engine programmatisch aufrufen (inkl. Optimierung und Neutrainieren der NNs) hätte man schon gewonnen.
Quasi eine Batchverarbeitungsmöglichkeit für BTs.
Nungut, daß gehört wohl eher in die Rubrik Erwiterungs und Verbesserungsvorschläge; und wurde vermutlich
schon oft diskutiert.
Ist notiert, wie Herr Knöpfle so schön zu sagen pfelgt ;)

Was ich nicht verstehe: Udo meint (wenn ich's richtig verstnaden hab'), daß ein Feed(=Walk?) Forward Test spezielle Algorithmen benötigt, mit NNs nicht möglich sei aber mit SVMs.
Das kann ich nicht nachvollziehen.
Natürlich ist das wesentlich schnellere Training der SVMs ein enormer Vorteil (Minuten versus Wochen/Tage oder so für einen WFO Durchgang), ist das gemeint ??

mfg, upgap

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »upgap« (24. August 2008, 11:53)


Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

56

Sonntag, 24. August 2008, 12:24

Hallo,

der zeitliche Mehraufwand ist nicht generell das Problem (wenn man EOD,EOW,EOM handelt) aber wenn man zwei identische NNs mit gleichen Bedingungen und Einstellungen parallel trainiert, kann es sein das man zwei unterschiedliche Ergebnisse bekommt! Das zweite Problem ist,das der Output nicht immer auf dem Overcross der Zero-Linie oder tangieren einer x-Linie funktioniert. Daher muss der Output auf eine neue Crosslinie justiert werden. Diese Justierung führt man in der Regel mit GA aus. GA bilden keine Listing-Generationen und müssen nach dem "Training" manuell selektiert werden! Das kann man nicht via Automatismus durchführen! Wird ein NN mit GA optimiert,müssen die Generationen ebenfalls selektiert werden. SVM oder Top-Listings halten sich bei der "Optimierung " an das Optimum des Möglichen und liefern konstantere Ergebnisse die man dann via WF-Test fortführen kann! Ein WF Test in dem in irgend eine Form eine manuelle Selektion stattfinden muss funktioniert m.A. nicht oder ist subjektiv und womöglich für den Entwickler nicht reproduzierbar! Dies ist beispielsweise bei SVM oder SSA nicht der Fall da die Aussagen nach der "Optimierung" eindeutig sind und kein manueller Zugriff stattfinden muss! Daher sehe ich keine Möglichkeit NN und schon gar nicht GA Optimierungen mit einem WF Test optimal zu testen. Zudem hat man bei GA-Optimierungen das Problem,das Optima kaum gefunden wird.Wenn man dagegen ein SVM Algorithmus optimiert grenzt man fast immer am Optimalen der Vorgaben.Das ganze liegt an den Funktionsweisen der Algorithmen. SSA-Analysen gibt man eine Historienlänge vor,die Approximation zur Basis und den Vorlauf-das war es. Die Ergebnisse zweier Test bei gleichen Bedingung sind nahezu identisch und konstant! Bei SVM muss man ein bisschen mehr einstellen aber auch hier sind die Ergebnisse unter gleichen Vorbedingungen relativ konstant! Sind die Ergebnisse schon im primären Ergebnis schwankend wirkt sich das bei weiterem Vorgehen immer stärker aus und die Analyse wird zu subjektiv und zum Roulette.
Happy Trading

upgap

unregistriert

57

Sonntag, 24. August 2008, 13:42

Hallo Udo,

Einen Punkt versteh ich noch nicht: Warum MUSS man bei NNs/GA's manuell selektieren ?
Man nehme einfach die Population mit der höchsten Fitness.
Daß man sie manuell auswählen KANN und daß das auch Sinn macht ist schon klar.
Die Problematik, daß Zufall ein große Rolle beim Trainieren der NNs bzw bei GAs spielt, ist mir bewußt.
Aber das könnte man doch mit Statistik erschlagen ?!
Also den Test x=30 bis 100 mal oder so wiederholen.
Sehr schiach/brute force und kaum praktikabel, aber zumidestens als Gedankenexperient für
mich plausibel.

Da SVMs noch eine Rehe weiterer Vorteile hat, gibt's für mich keinen Grund sie tatsächlich einzusetzen, also wirklich nur als gedankenexperiment zu verstehen.

Weitere Fragen:
1) Spricht etwas dagegen die dynamsiche Adaption auch zur realen Laufzeit anzuwenden ?
2) Gibt's noch weitere SSA Implementierungen ?

Nochmals Danke für die ausführliche Erklärung, hat sehr beim Verständnis der Problematiken geholfen :)

PS: Tradstation bietet (ebenfalls) KEINEN WF Test an.

mfg, upgap

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

58

Sonntag, 24. August 2008, 14:30

Hallo upgad,

Zitat

Warum MUSS man bei NNs/GA's manuell selektieren ?
Man nehme einfach die Population mit der höchsten Fitness.

Ich verwende bei der Selektion der NN-generation bisher nur die KK des Handelssystems, wobei das natürlich eine sehr unscharfe, unexakte und langwierige Methode und nicht automatisierbar ist.

Beim Training des NN's werden eine ganze Menge Angaben zu den Generationen ausgegeben. Meinst Du mit der "höchsten Fitness" das Rating oder einen anderen Parameter?

Wenn es möglich sein sollte anhand eines konkreten NN-Generationen-Parameters das beste NN ausfindig zu machen, kann Herr Knöpfel bestimmt eine Max- oder Min-Methode einbauen, die die zugehörige Generation zurück gibt.
Über Tastenkommandosequenzen könnte man sich dann selber einen provisorischen Feed Forward Test in Investox bauen.

Beispiel: siehe Bild
- ist nach Rating sortiert und die beiden obersten Generation haben den höchsten Wert 99 --> Generation 56 & 82
- dann kann man schauen, welche Generation von den beiden hat die höchste Trefferquota --> Generation 82
- welche Generation von den beiden hat die höchste Korrelation --> Generation 82
==> d.h. rein von den Werte wäre die beste Generation die 82
So ein Suchablauf läst sich programmieren, d.h. das könnte man automatisieren.

Man müsste aber nochmal genau hinterfragen, was mit dem Rating konkret gemeint ist und ob diese Vorgehensweise zielführend ist (war jetzt nur ein Beispiel auf die schnelle, inspiriert durch die Aussage "nehme einfach die Population mit der höchsten Fitness").

Viele Grüße
Torsten
»sten« hat folgendes Bild angehängt:
  • 080824_NNergebnisse2.gif

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »sten« (24. August 2008, 14:49)


sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

59

Sonntag, 24. August 2008, 14:56

Zitat

® Die Optimierungshistorie für Neuronale Netze

Die Optimierungshistorie zeigt eine Auflistung der Ergebnisse eines Neuronales Netz im Trainings-, Evaluierungs- oder Kontrollzeitraum. Wählen Sie den gewünschten Zeitraum in der Dropdownliste Ergebnisanzeige. Die Anzeige der Ergebnisse kann durch Klicken auf den jeweiligen Spaltenkopf nach jeder gewünschten Spalte sortiert werden.

Zusätzlich zu den bekannten Testergebnissen finden Sie links in der Liste die Spalte „Rating", die den prozentualen Rang des besten Neuronalen Netzes der jeweiligen Generation im Vergleich zu den übrigen Netzen der Generation anzeigt (der Rang berechnet sich anhand der gewichteten Summe der einzelnen Ergebnisse).


Das klingt doch gar nicht so schlecht. Wobei mir noch nicht ganz klar ist, wie sich das Rating berechnet, sind z.B. die Test-Werte schon mit berücksichtigt?

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

60

Sonntag, 24. August 2008, 17:43

Hallo zusammen,

mit der Implementierung des SVM-Indikators hat mein einen FeedForward Test. Der Indikator wird bei einer einstellbaren festen Schrittweite stets neu trainiert und damit optimiert. Fest bleiben dabei jedoch die Steuergrößen wie z.B. dieZahl der Trainingsperioden, oder der c-Wert.. Eine Optimierung im Sinne von GA über Investox ist damit nicht gegeben.

Dennoch ist die - ich nenne sie mal einfach - Zeitscheibentechnik bei der kontinuierlichen Optimierung ein steter FF-Test. Und genau wegen dieses kontinuierlichen NachVorne-Schauens sind die Ergebnisse des SVM auch nicht geschönt, ein mal - durch Zufall - super performandes SVM wird halt nach dem kurzen Intervall durch das nächste neu trainierte abgelöst. Und dann kanns mit dem Zufall in die andere Richtung gehen :) .

Es wäre aber deutlich besser auch die Rahmenbedingungen aus Investox mit in die fortlaufende Optimierung einzuschließen.

Viele Grüße

Martin

Ähnliche Themen