Samstag, 20. April 2024, 05:31 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.

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

1

Montag, 8. September 2003, 11:00

Methode zur Überprüfung der NNselektion

Hallo,

ich suche Kriterien nachdem man die NN-Generation (NN...Neuronales Netz), welche auch zukünftig eine steigende Kapitalkurve (KK) erzeugt, finden kann. :baby:
Hierfür möchte ich eine Methode vorstellen, welche die Datenfeed-Simulation (seit dem letzten Investox-Update enthalten) nutzt.

Bisheriges Problem:
Man hat ein NN angelegt und z.B. über 100 Generationen trainiert. Man selektiert jetzt nach Kriterium xy eine Generation heraus und baut darauf das Handelssystem auf. Dann wartet man ein halbes Jahr oder länger und kann dann erst abschätzen, ob die Generationswahl die richtige war (KK steigt weiter?!).

Neue Methode ermöglicht Beurteilung innerhalb weniger Sekunden:
Man benötigt ein trainiertes NN mit NN-Generationen, welche im Januar oder noch früher trainiert wurde, z.B. auf den Basiswert QQQ.
Man legt ein Investoxprojekt mit dem Titel QQQ an und bringt das Handelssystem, welches das NN auswertet dazu.
Mit Hilfe der Datenfeed-Simulation schneidet man die QQQ-Kursreihe im Januar ab und fügt diesen Titel QQQgekürzt ebenfalls in das Investoxprojekt ein.
Jetzt kann man mit Hilfe des Robustheitstest auf dem Titel QQQgekürzt eine NN-Generationsselektion durchführen und sofort das Ergebnis überprüfen, indem man das vollständige QQQ für das Handelssystem verwendet.
Man kann jetzt sehr gut sehen, wie sich die KK seit Januar weiter entwickelt hat und hier sehr schnell die verschiedensten Selektionskriterien ausprobieren.

Diverse Untersuchungsergebnisse mit der neuen Metode
Bisher habe ich solche KK ausgesucht, die sich über allen Zeitbereiche sehr gleichmäßig aufwärts entwickelt haben. Leider scheinen gerade diese KK besonders häufig im freien Tradingzeitraum abzuknicken, wie man jetzt sehr leicht überprüfen kann
Man kann die Metode auch so anwenden, daß man aus heutiger Sicht eine NN-Generation auswählt, die eine steigende KK hat (z.B. Generation 61)
und dann versuchen Kriterien zu finden, die in der Vergangenheit (auf QQQgekürzt ) dazu geführt hätten, diese Generation 61 auszuwählen.
Habe diese rückwirkende Untersuchungsmetode mal auf alle in Investox verfügbaren Kriterien, welche man im Robustheitstest auswählen kann (z.B. max. Nettoprofit, min. oder max. Wölbung, usw.), durchgeführt, aber es scheint kein eindeutiges, einfaches Kriterium zu geben.

Warum habe ich diese Untersuchungsmethode hier im Forum veröffentlicht?
Mir fehlt leider die Zeit systematisch alle möglichen Kriterien auszuprobiere, man kann sich ja auch Kombinationen vorstellen, oder auch neue Berechnungen ausprobieren. Ich alleine kann diese Aufgabe mit meinen zeitlichen Ressourcen nicht stemmen. Ich hoffe, daß sich viele Investoxnutzer, die sich für NN begeistern können, hier mitmachen und nach geeigneten Selektionskriterien suchen und auch bereit sind Ihre Ergebnisse hier im Forum zu veröffentlichen. Wir alle würden davon profitieren !!!
Vielleicht kann man zukünftig auch einen "Bewerter für NNs" in Investox fest einbauen, falls wir fündig werden.

Gruss
Torsten

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sten« (8. September 2003, 11:08)


Thomas

unregistriert

2

Montag, 8. September 2003, 12:13

Hallo Torsten,

zu dem Zitat:

"Man benötigt ein trainiertes NN mit NN-Generationen, welche im Januar oder noch früher trainiert wurde"


Meiner Meinung nach benötigt man zur Beurteilung eines NN in einem unabhängigen Zeitraum nicht unbedingt NNs die schon vor geraumer Zeit trainiert wurden. Es genügt eigentlich einen ausreichenden Zeitraum bei der Auswahl des Trainings- und Kontrollzeitraums aussen vor zu lassen, in dem du den Gesamtzeitraum z.B. bis Januar begrenzt. Man muss ja nicht zwangsläufig alle vorhandenen Daten für Trainingszwecke verwenden. Einen dritten Zeitraum, der dem NN nicht bekannt war braucht man auf jedem Fall, denn eine Auswahl nach dem Trainings- und Kontrollzeitraum ist nicht zielführend.

100 Generationen habe ich übrigens noch nie trainiert. Das Maximum lag einmal bei 20. Welche Zahl sinnvoll ist kann ich allerdings nicht beurteilen. Tendenziell waren bei mir bei den brauchbaren NNs sowieso alle Generationen tendenziell gut, es gab dann nur noch feine Unterschiede zwischen den Generationen.

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

3

Montag, 8. September 2003, 13:12

Ergänzung

Hallo Thomas,

sorry, ich habe es nicht ausdrücklich erwähnt, aber den "unabhängigen Zeitraum", oder auch Testzeitraum habe ich natürlich auch verwendet und hat eine Größe von ein paar Monaten bis Jahren und liegt in meinen oben erwähnten Beispiel noch vor dem Januar.
Ich verwende einen Trainingszeitraum, Kontrollzeit und Testzeitraum.
Die Selektion der NN-Generation erfolgt nach dem Testzeitraum. Danach beginnt der reale Tradingzeitraum, wo das Handelssystem gehandelt wird.

Die Kurse in Testzeitraum werden zwar beim trainieren und bewerten der NN nicht berücksichtigt, aber der Handelssystementwickler nutzt diesen Zeitraum bei der NN-Generationselektion (wenn die KK im Testzeitraum fällt, dann werde ich diese NN-Generation verwerfen).
Somit ist der Testzeitraum nicht wirklich ein unbekannter Bereich, sondern hat indirekt Einfluß auf das Handelssystem.

Ob das Handeslssystem profitabel ist oder nicht entscheidet sich letztendlich erst im realen Tradingzeitraum.

Gruss
Torsten

PS:
Wie hoch ist bei Dir die Erfolgsquote, d.h. von 100 NN basierten EoD-Handelssystemen sind wieviele profitabel (zumindestens für ein paar Monate) bzw. wieviele laufen seitwärts bzw. stürzen nach dem Erstellungszeitpunkt schon sehr schnell ab, ohne jemals Gewinn abgeworfen zu haben?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sten« (8. September 2003, 13:14)


Thomas

unregistriert

4

Montag, 8. September 2003, 20:40

Hallo Torsten,

sorry, da hatte ich dich missverstanden. Mir war nicht klar, dass du bereits einen Testzeitraum verwendest. Da ich dies jedoch für ganz wesentlich bei der Auswahl von NN-Generationen, bzw. der Beurteilung von NNs generell halte, wollte ich es noch einmal erwähnen. Nimmt man keinen dritten Zeitraum für die Auswahl hinzu braucht man im günstigsten Fall länger um die Qualität des NN zu beurteilen, im schlechteren Fall - dann nämlich wenn man das NN direkt tradet - wird man möglicherweise schnell viel Geld verlieren. Doch die Bedeutung des Testzeitraums ist natürlich auch in Abhängigkeit der Trainingsmethode unterschiedlich stark ausgeprägt. Bei GA-Optimierung ist er jedenfalls unerlässlich.

Nutzt man den Testzeitraum bei der Auswahl von NN-Generationen, dann ist das natürlich auch eine Form der Optimierung. Umso mehr, je mehr Generationen man zur Auswahl verwendet.

Wenn ich die Erfolgsquote auf die Gesamtzahl von NNs beziehe, mit denen ich von Anfang an experimentiert habe, dann sind etwa 4-5% profitabel. Diese Quote ist sicherlich höher, wenn man etwas Erfahrung mit der Konzeption von NNs gesammelt hat. Anfangs habe ich alle möglichen Arten von Inputs in verschiedenen Kombinationen ausprobiert um erst einmal herauszufinden welche Inputs man in welcher Form sinnvoll verwenden kann.

Mittlerweile verwende ich fast ausschließlich oszillierende Inputs in relativ einfach gestrickten Schablonen. Weiterhin bin ich dazu übergegangen, verschiedene Intermarktetitel in Beziehung untereinander zu verwenden, also nicht unbedingt deren Beziehung zum Basistitel (das NN ist damit sicherlich nicht überfordert ;-)). Weiterhin bin ich der Meinung, dass man ruhig auch andere Titel (z.B. die Indexbestandteile oder andere Indizes) einmal auf das NN testen sollte. Wenn das NN die wesentlichen Marktwenden gut trifft haben alle Titel einen gleichmäßigen Kapitalkurvenverlauf. Klar, wenn der Markt steigt steigen mittelfristig alle Aktien, jedoch sind bei verschiedenen NNs hier Unterschiede in der Signalqualität erkennbar.

Josefine

unregistriert

5

Montag, 8. September 2003, 21:35

Hallöchen,

Zitat

...ich suche Kriterien nachdem man die NN-Generation (NN...Neuronales Netz), welche auch zukünftig eine steigende Kapitalkurve (KK) erzeugt, finden kann...


Ich "lehne mich mal hier weit aus dem Fenster" aber diese Suche führt in eine Sackgasse.
Ich habe tausende Netze trainiert, ausgewertet, verfolgt ... . Es ist deffinitiv nicht möglich ein auch in Zukunft laufendes NN zu finden.
Das hängt unter anderem damit zusammen, das das Netz regelmäßig nur einen "Schnappschuß" des Marktes abbildet. Auch wenn Training, Kontrolle und Generalisierungszeitraum gut sind und evtl. ebenfalls ein linear gleichmäßiges Aussehen haben.

Wichtig ist bei der Beurteilung von NN, die KK. Die darf (!!!) auf keinen Fall solche linearen Ausmaße annehmen wie ich mein Super neuronalen Netzes hier versucht habe darzustellen. Diese Netz ist eindeutig überoptimiert: Ich verwende diese Netze um die evtl. Einstiegs-/ Ausstiegskriterien "Marktgerecht" (anders als z.B. NRCM mit seinen Sinus-/ Cosinus SynthetikKursen) auf einen Titel zu entwickeln.

Als Anhaltspunkt ob ein Netz generalisiert ist der Trainingszeitraum zu betrachten. Man sollte peinlichst genau darauf achten, dass sich hier die KK Wellenartige entwickelt (evtl. muss man hier die Enterbedingungen weiter weg der Nullinie ansetzen -wie bei meinem Generalisierungsnetz im gleichen Beitrag).
Alle Netze die sich im Trainingszeitraum mehr linear entwickeln und stark vom Kontroll- u.o. Generalsieirungszeitraum unterscheiden sind zu verwerfen.
Anders ausgedrückt, die KK muss in allen Zeiträumen ähnliche Fehlerquoten aufweisen. Meist zeigen sich in Wellen. Deshalb auch mein Verweis in einem vorherigen Posting auf die Wellentheorie nach Elliot, allerdings bei mir auf die KK angewendet.

Alle Netze welche eine KK aufweisen, die Linear ist (wie z.B. die meisten NN- KK`s von NRCM) sind eindeutig Curfitting und werden nicht in dieser Qualität halten.
Dies ist unter anderen auch ein Grund warum NRCM soviele Stops verwendet (HS_Weisheit: Schlechte Systeme kann man mit den richtigen Stopstrategien profitabel gestalten. Gute Systeme nicht wesentlich verbessern.) Allerdings ist hierzu auch eindeutig zu sagen, das solche Netze in Zukunft dann auch kein Geld verlieren. Die KK geht dann (meist) über in eine ebensolche schwankungsarme Waagerechte über.

Zitat

...100 Generationen habe ich übrigens noch nie trainiert. Das Maximum lag einmal bei 20. Welche Zahl sinnvoll ist kann ich allerdings nicht beurteilen. Tendenziell waren bei mir bei den brauchbaren NNs sowieso alle Generationen tendenziell gut, es gab dann nur noch feine Unterschiede zwischen den Generationen...


Als guter Mittelwert sind 50 Generationen anzunehmen. Die Ausbeute ist manchmal nur 1 (!!!) Netz was gut bzw. brauchbar ist.
Allerdings wenn tendenziell alle Generationen gut sind, dann sollte man die GA verbessern u.o. die verwendeten Freiheitsgrade verändern. Das Netz muss "Platz" und "Kraft"zum Suchen haben.

Fritz

unregistriert

6

Montag, 8. September 2003, 21:37

Hallo allerseits,
grundsätzlich möchte ich empfehlen, das man sich an die im Programm verwendeten Bezeichnungen (hier der Zeiträume) hält. Dies beugt Missverständnissen vor.
Wie man die Zeiträume bewertet hängt nun wiederum von der Einstellung
unter Training ==> Bewertungszeitraum ab. Wenn man hier Crossvalidation (die sinnvollste Einstellung) oder Evaluierungszeitraum einstellt, so ist nachher der Kontrollzeitraum auch ein echter Kontrollzeitraum wenn man ihn nicht anschließend durch die Hintertür als Optimierungshilfe bei der Auswahl div. Generationen verwendet.
Ich halte überhaupt nichts vom Schielen auf den Kontrollzeitraum.
Ich schaue bei der Auswahl bei NN wie auch beim HS grundsätzlich nur auf den Optimierungszeitraum und verwende nur die beste Generation in diesem Zeitraum. Wenn bei dieser Generation dann das Ergebnis im Kontrollzeitraum ebenfalls zufriedenstellend ist, dann interessiert es mich überhaupt nicht, ob es möglicherweise in einer anderen Generation im Kontrollzeitraum noch etwas besser ist. Die so ausgewählten NN bzw. HS haben zwar meist einen Knick zwischen Optimierungs- und Kontrollzeitraum, aber der Verlauf des Kontrollzeitraums setzt sich tendenziell auch über diesen Zeitraum hinaus fort.
Alles andere betrachte ich als Selbstbetrug und das Hinzufügen eines weiteren Testzeitraums als reine Zeitverschwendung.

Gruß Fritz

Josefine

unregistriert

7

Montag, 8. September 2003, 21:47

Zitat

Original von Fritz
...Ich schaue bei der Auswahl bei NN wie auch beim HS grundsätzlich nur auf den Optimierungszeitraum und verwende nur die beste Generation in diesem Zeitraum. Wenn bei dieser Generation dann das Ergebnis im Kontrollzeitraum ebenfalls zufriedenstellend ist, dann interessiert es mich überhaupt nicht, ob es möglicherweise in einer anderen Generation im Kontrollzeitraum noch etwas besser ist. Die so ausgewählten NN bzw. HS haben zwar meist einen Knick zwischen Optimierungs- und Kontrollzeitraum, aber der Verlauf des Kontrollzeitraums setzt sich tendenziell auch über diesen Zeitraum hinaus fort.
Alles andere betrachte ich als Selbstbetrug und das Hinzufügen eines weiteren Testzeitraums als reine Zeitverschwendung...


Hallöchen,

im Prinzip stimme ich dir uneingeschränkt zu, aber bei Crossvalidation wo willst du da den Optimierungszeitraum "finden" bzw. begutachten. Deshalb wäre als logischer Schluß ausdrücklich der Kontrollzeitraum/ Out off Sample zur Begutachtung herranzuziehen. Hier zeigt sich schon ob das Netz was taugt und dann geht man über die restlichen Zeiträume zu begutachten. Zumindest bei NN Entewicklung gehe ich so vor.

Adrian

unregistriert

8

Dienstag, 9. September 2003, 04:10

Hallo,

ich trainiere meine NN meistens mit Crossvalidation, 10 Samples, 1 Generation, 15 Eltern, 70 Nachkommen, mind. 150 Epochen, max. 500 Epochen, Abbruch nach 100 Epochen ohne Erfolg.

Auf diese Weise finde ich eine beliebige, (hoffentlich) funktionierende Inputkombination. Mehr Generationen führen bei mir zum Übertraining.

MfG

Adrian

Fritz

unregistriert

9

Dienstag, 9. September 2003, 08:40

Hallo Josi,
ich möchte zum besseren Verständnis noch etwas nachbessern.
Der Optimierungszeitraum (OZ) ist nach meinem Verständnis der Zeitraum, den das NN zur Optimierung betrachtet. Das bedeutet bei Einstellung der möglichen Bewertungskriterien:
1. Trainingszeitraum ==> OZ = Trainingszeitraum,
2. Kontrollzeitraum ==> OZ = Gesamtzeitraum,
3. Evaluierungszeitraum ==> OZ = Trainings- und Evaluierungszeitraum,
4. Crossvalidation ==> OZ = Crossvalidationszeitraum (wie 3. mit dem Unterschied das Trainings und Evaluierungszeiträume in Abhängigkeit der eingestellten Sample variieren)
Den Kontrollzeitraum betrachte ich als angenommenen realen Tradezeitraum. Da ich nicht in die Zukunft schauen kann, kann ich mir also auch nicht in Abhängigkeit des Kontollzeitraumes eine NN bzw. HS Generation heraussuchen. Für mich existiert zum Zeitpunkt der Entwicklung nur der Optimierungszeitraum.
Diese Betrachtungsweise verhindert automatisch einen überzogenen curve fitting Effekt, da überoptimierte Entwicklungen dann ohne Rückfahrkarte durch das Kontrollsieb fallen.
Im Übrigen ist diese Vorgehensweise ja nichts anderes als wenn man den Kontrollzeitraum in seine Entwicklungsentscheidungen mit einbezieht und anschließend eine out of sample Phase abwartet. Nur führt meine schneller zum Ziel.

Gruß Fritz

Josefine

unregistriert

10

Dienstag, 9. September 2003, 09:27

Hallöchen,

@Fritz - ja wir meinen beide das Selbe - deshalb auch mein Hinweis "Kontrollzeitraum/ Out off Sample "

@Adrian - hm, nu weiß ich nicht wie deine Inputs(chablonen) sind, aber am bessten bekommst du herraus welche Einstellung dafür passen, indem du die NN jeweils immer kopierst und lediglich diese Einstellungen änderst - kontrollierst ...

ich weiß das dauert, aber wenn du mit jeder Einstellung die es so gibt so vorgehst hast du bald ein Gespür dafür was dein Netz postiv beeinflusst und was nicht,

aber ich denke, bei meinen Netzen weiß ich es 100 %, das jede Einstellung die mit sovielen Eltern, Töchter, Schwiegertöchter, etc. trainiert werden überoptimiert sind - mach doch einfach mal einen Test mit beliebigen/ zufälligen Inputs(chablonen) und trainiere diese mit soviel wie möglichen Eltern (100), Nachkommen (999), Generationen (50 - 3 reichen für das Beispiel sonst rechnet der PC bis Weihnachten :O), Lernversuchen (10), Epochen (mind. 100, max. 999, Abbruch nach 777)
du wirst mind. 1 Generation haben welche ein zauberhafte KK produziert (auch im Kontrollzeitraum/ Out off Sample)

und dann wenn du das Netz einsetzen willst und schon Dollarzeichen vor Augen hast, in eine Waagerechte übergeht oder schön Schwankungsarm abfällt,

was ich damit zeigen möchte ist das ein Netz alles lernen kann aber mit dem wenigsten Generalisiert.
Das ist wie mit einem Streber in der Schule, der alles auswendig lernt, adaptiert, schleimt etc. nur um gute Noten zu erhalten und dann im wahren Leben kläglich versagt.
Wichtig sind die Inputs(chablonen), diese müssen das Marktgeschehen abbilden (können) und gleichzeitig das Rauschen was darin herrscht vollkommen "übersehen".

Fritz

unregistriert

11

Dienstag, 9. September 2003, 11:11

Hallo Josi,

eine nicht ganz einfache Aufgabe mit so wenigen Worten

Wichtig sind die Inputs(chablonen), diese müssen das Marktgeschehen abbilden (können) und gleichzeitig das Rauschen was darin herrscht vollkommen "übersehen".

so treffend zu formulieren, dafür meine Anerkennung.
Die noch kürzere Formulierung,

Generalisierung, Generalisierung und nochmals Generalisierung (frei nach Lenin) wird leider von den wenigsten verstanden.

Grüße Fritz

Josefine

unregistriert

12

Dienstag, 9. September 2003, 11:41

Zitat

Generalisierung, Generalisierung und nochmals Generalisierung (frei nach Lenin) wird leider von den wenigsten verstanden.


Hi,

ja zu allen Schwierigkeiten die NN und deren Entwicklung bringt ist dies der "Heilige Gral".

Und nach alledem was ich bisher mit meinen Tests bei NN- Entwicklung herrausgefunden habe:

Zitat

Es ist deffinitiv nicht möglich ein auch in Zukunft laufendes NN zu finden.
Das hängt unter anderem damit zusammen, das das Netz regelmäßig nur einen "Schnappschuß" des Marktes abbildet. Auch wenn Training, Kontrolle und Generalisierungszeitraum gut sind und evtl. ebenfalls ein linear gleichmäßiges Aussehen haben.


Und wie man bisher weiß wurde der "Heilige Gral" auch schon tausend Jahren gesucht - und nicht gefunden.

Aber es ist trotzdem Möglich, zumindest Näherungsweise, den Markt bzw. das Marktgeschehen abzubilden und zu nutzen. Dazu vielleicht in einem anderen Beitrag.
Was ich hier sagen wollte/ will: Die Suche nach dem Generalisierungsnetz führt in die Sackgasse und ist verlorene Zeit. Insbesondere die Suche nach schönen sauberen KK.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josefine« (9. September 2003, 11:50)


Adrian

unregistriert

13

Dienstag, 9. September 2003, 12:45

Hi Josefine,

warum machst Du es so kompliziert? Der einfachere Weg ist es doch, sich eigene Zeitreihen zu erstellen und diese mit Investox vorherzusagen.
Angefangen habe ich mit:

1-2-3-4-5-6-7-8-9-1-2-3-4-5-6....

Danach:

1-3-5-7-9-11-13-15-1-3-5...

Danach:

2-4-16-256-65536-2-4-...

und als Variante:

2-4-16-256-65536-256-16-4-2-4-16...

u.s.w.

Hat man nun eine Funktion f(x) erstellt, die mit sich selbst oder mit einer anderen Funktion (f2(x)) beschrieben werden kann - was ja in meinen Beispielen sehr einfach ist - dann kann man jederzeit repräsentative Aussagen über die Qualität der eigenen Inputschablonen erstellen. Wagt man sich dagegen direkt an Aktien, Indizes, Rohstoffe etc., so begeht man meiner Meinung nach die Fehler, dass man
a) das Ausmaß und die Größe des Modells gar nicht abschätzen kann
b) nahezu unendlich viele Variablen (Anzahl der Epochen, Inputschablonen, Auswahl der Trainingszeitraume...) in eine womöglich zufällig verlaufende Datenreihe steckt
und auf diese Weise keine repräsentativen Aussagen über die Qualität der Veränderungen im Modell treffen kann.

Meine Sicht der Dinge...

MfG

Adrian

Registrierungsdatum: 2. September 2002

Beiträge: 433

Wohnort: Freiburg

14

Dienstag, 9. September 2003, 13:21

Hallo zusammen,

dann werde ich mich jetzt auch mal in die Diskussion stürzen....

Das wichtigste hat ja FRITZ schon gesagt:
Das Netz muss Generalisieren, Generalisieren und Gerneralisieren.

Die grosse Frage ist, wie erreicht man das??

Meiner Erfahrung nach geht das am besten, indem man es dem Netz so schwer wie möglich macht.
Also sehr kleine Modelle, sehr wenig Inputs, sehr kurze Trainingszeiten, sehr viele Trainingsdaten siehe da, es kommen
STABILE NNs dabei heraus. Die Netze haben keine genialen KK, aber sie sind sehr robust und die Inputs spielen auch nur noch eine untergeordnete Rolle.

Wenn ich hier immer die Leute sehe, die ihre Rechner 999 Generationen rechnen lassen und dann die besten NNs rausfiltern wollen, dann kann ich immer nur den Kopf
schütteln. Robustheit heisst nicht nur Robust gegenüber den Parametern (also z.B. Einstiegsschwellen), sondern eben auch ROBUST gegenüber den INPUTS. Und das sind dann solche
MEGA NNs nicht. Das hängt natürlich davon ab, ob man eine Methode gefunden hat, ein Versagen eines NNs Vorherzusagen. Aber ich gehe mal davon aus, dass dies 99,99% der Leute
nicht gelungen ist. Also muss das Ziel sein, möglichst robuste NNs zu erstellen. Alles andere ist nur akademischer Firlefanz...

Mit dieser Herangehensweise kann ich inzwischen auch stabile NNs bis hinunter auf 5 min Basis machen (1 min geht wahrscheinlich auch, habe ich nicht probiert). Stabil heisst, sie funktionieren auch noch 3 Jahre in einem echten Out of Sample Bereich (5 min Basis).

Also wie erreicht man das Ziel Generalisieren:

WENIGER IST MEHR !!!!

Und nicht zu vergessen. Ein NN ist nur ein kleiner Teil der Miete, es kommt auch noch auf das HS drumherum an.
Und für dieses gilt: ROBUST, ROBUST, ROBUST..... muss es sein.

Grüsse
Bernhard

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hungerturm« (9. September 2003, 13:22)


Josefine

unregistriert

15

Dienstag, 9. September 2003, 13:22

Hallöchen,

Zitat

warum machst Du es so kompliziert? Der einfachere Weg ist es doch, sich eigene Zeitreihen zu erstellen


hm, ich will ja keine eigene Zeitreihen "vorhersagen" können, sondern den Basiskurs XYZ.

Zitat

dann kann man jederzeit repräsentative Aussagen über die Qualität der eigenen Inputschablonen


mit deiner Methode eben nur für deine synthetischen Zeitreihen. Der Markt reagiert aber anders. Deshalb ist es nur an Originalzeitreihen möglich überhaupt einen Anhaltspunkt über die Generalisierung (= repräsentative Aussagen) von NN zu bekommen

Zitat

dass man
a) das Ausmaß und die Größe des Modells gar nicht abschätzen kann
b) nahezu unendlich viele Variablen (Anzahl der Epochen, Inputschablonen, Auswahl der Trainingszeitraume...)


und da fängt die "Kunst" an ein gutes NN zu entwerfen. Die Größe des Netzes kann man sich relativ "einfach" auf die "richtige" Größe stutzen über die GA. Was dein b) betrifft habe ich auch schon etwas geschrieben, es führt kein Weg daran vorbei durch Trail and Error ein "Gefühl" für die Leistungsfähigkeit von NN zu erhalten - auch wenn man sich von div. Netzentwicklern/ -Experten die richtigen/ relevanten Einstellungen zeigen lässt.

Zitat

womöglich zufällig verlaufende Datenreihe


Das muss man schon vorher untersucht haben. Aber da wir hier von Zeitreihen im Finanzmarkt sprechen, ist im allg. davon auszugehen das diese weder Zufällig noch Regungslos sind (Stichworte Null- Hypothese, chi²- Test). Aber die Zusammenhänge verändern sich ja ständig. Die Märkte korrelieren, differgieren oder laufen vollkommen aus dem Zusammenhang.
Dies ist auch ein Grund warum es ja so schwierig ist überhaupt relevante Daten zu finden und ganz zu schweigen das diese auch noch in Zukunft gelten.

Josefine

unregistriert

16

Dienstag, 9. September 2003, 13:38

Zitat

... die ihre Rechner 999 Generationen rechnen lassen... WENIGER IST MEHR !!!! Ein NN ist nur ein kleiner Teil der Miete, es kommt auch noch auf das HS drumherum an.
Und für dieses gilt: ROBUST, ROBUST, ROBUST..... muss es sein.


Ja genau das will ich sagen. Mein kompl Umdenken hat stattgefunden als ich einziges Netz über ca. 200 h (!!!!) mit einem High Performence Rechner trainiert hatte und nix gescheites dabei herrauskam.
Mittlerweile lasse ich meine Netze mit max. 10 (!!!) Epochen über 1 Genaration grob drüber laufen und meist findet der Algorythmus schon nach 4- 6 Epochen sein globales - stabiles - Minimum.
Zum Handelssystem gilt ebenso das selbe zu sagen (obwohl ich da nicht mit einem solchen Wissen oder Erfahrungsschatz wie viele hier aufwarten kann). Ein NN welches nicht stabil mit >/< "0" im HS läuft taugt nichts. Jede Optimierung der Signale über hochkomplizierte Berechnungen (wie es IV in Hülle und Fülle bietet) stellt regelmäßig nur den aktuellen Ausschnitt des Marktes dar und führt somit unweigerlich zum Curvfitting.

Adrian

unregistriert

17

Dienstag, 9. September 2003, 14:11

Hi Bernhard,

aber was nützt mit ein kleines stabiles EOD-NN, wenn mein Konto die Drawdowns nicht verkraftet? Es ist doch frustrierend, monatelang vor dem Rechner zu sitzen und auf eine "baldige Besserung der Kapitalkurve" zu hoffen. :baby:
Und Geld für 10 verschiedene Futures (Märkte) habe ich auch nicht. Das eine ist Theorie, das andere die bittere Praxis. :] Es mag ja bei Intraday-NN anders sein, aber fürs Intraday-Trading fehlt mir einfach die Zeit.
Ich denke deshalb, dass man nicht so pauschal sagen kann, was "besser" und was "schlechter" ist. Die persönlichen Faktoren spielen einfach eine zu große Rolle. Mit Haus, Frau, Kind, Hund, Katze im Nacken tradet es sich einfach nicht so "locker von der Hand". Da bekommt man (ich) nach dem dritten Fehltrade in Folge Gewissenbisse. :(

MfG

Adrian

Registrierungsdatum: 2. September 2002

Beiträge: 433

Wohnort: Freiburg

18

Dienstag, 9. September 2003, 15:10

Hallo Adrian,

leider ist auch bei einer Trefferquote von 80 % eine relativ hohe Wahrscheinlichkeit, dass 3 Fehltrades hintereinanderkommen.
Aber nehmen wir einfach mal Dein EST50 System. Ich würde sowas nie handeln, weil es einfach nicht robust ist. Wie gesagt, als einzige
Ausnahme lasse ich zu, dass man irgendeinen Indikator entwickelt hat, der einem ein Versagen seines Modells anzeigt. Ob es sowas gibt steht auf einem ganz anderen Blatt...

Drawdowns:
Die gehören zum Traderleben und die muss man durchstehen. Die hat man und locker fallen einem die nie. Aber gerade da hilft einem eben auch die Sicherheit, dass ein System robust ist, diese durchzustehen.
Unser Daytrading System hatte am Anfang auch gleich einen Drawdown, die Slippage war 5 mal so hoch wie erwartet. Hätten wir da alles nicht ausreichend getestet und uns bei der Sache sehr sicher, hätten wir
wahrscheinlich schon wieder aufgehört (überlegt hatten wir das sogar). Jetzt hat sich das alles wieder normalisiert und alles ist so, wie wir es erwartet hatten.

Mit wenig Geld würde ich verschiedene US Aktien EOD traden, da kann man sehr schön diversivizieren und die Gebühren steigen einem auch nicht über den Kopf...

Grüsse
Bernhard

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

19

Dienstag, 9. September 2003, 15:47

Hallo,

ich finde es Spitze, daß sich so viele Entwickler an der Diskussion beteiligen und ich werde versuchen die Anregungen und Ideen auszuprobieren.
Danke.

Zitat

Wenn ich hier immer die Leute sehe, die ihre Rechner 999 Generationen rechnen lassen und dann die besten NNs rausfiltern wollen, dann kann ich immer nur den Kopf schütteln.


Ich muß leider gestehen, ich gehöre zu diesen Leuten. Auch gebe ich zu, daß es die "faule Leute"-Methode ist, auch wenn die Ursache bei mir mehr Zeitmangel ist.
Die Überlegung die dahinter steht ist folgende:
Die aufwendigere Vorgehensweise wäre, man sucht über Divergenz- und Correlationsberechnungen mit der Direktabfrage die geeignetsten Intermarketkursreihen heraus und kann damit ein kleines NN zusammenbauen. Aber es ist zeitaufwendig, man muß es öfters wiederholen, und man erfasst nur lineare Zusammenhänge, wogegen NN eigentlich mehr können (nichtlinearitäten Auswerten).
Nun könnte man ja auch den GA's die Arbeit übergeben, die relevanten Inputs (z.B. 30 bis 60) aus einen großen Masse von Kursreihen (>200) vollautomatisch herauszufinden. Ich glaube es gibt auch ein original Investoxprojekt (für DAX?), welches mit ausgeliefert wird, wo man genau diese GA-Selektions-Methode anwendet.
Um möglichst viele verschiedene Eingangskombinationen abzudecken, habe ich die Anzahl der Generationen auf den max. möglichen Wert 999 erhöht. Der Rechner hat dann gut eine Woche zu tun, im 24h Betrieb.

Mein Ziel ist es stabile NN's zu erzeugen. Wenn diese "faule Leute"-Methode hierfür vielleicht doch nicht so optimal ist, dann werde ich es mal mit kleineren Netzen versuchen, so wie Bernhard vorschlägt.

Gruss
Torsten

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »sten« (9. September 2003, 16:50)


sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

20

Dienstag, 9. September 2003, 16:59

Hallo Bernhard,

noch eine kurze Frage dazu.

Zitat

Also sehr kleine Modelle, sehr wenig Inputs, sehr kurze Trainingszeiten, sehr viele Trainingsdaten siehe da, es kommen ...


Wenn der Trainingszeitraum sehr kurz gewählt wird (z.B. von 3 Jahren, auf 1 Jahr bei EoD), dann verringert sich auch die Anzahl der Trainingsdaten.
Es sei denn Du trainierst das NN auf mehrer Kursreihen? Oder indirekt, durch eine Erhöhung der Anzahl der Outputs?

Gruss
Torsten

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sten« (9. September 2003, 17:00)