Freitag, 19. April 2024, 06:23 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

41

Montag, 21. Juli 2008, 23:04

Hallo,

zunächst sollte man sich über die rechnerische Größe des Prognoseziel bewusst werden-Prozentual oder Absolut! Bei Futures verwende ich Punkte weil die Größe für mich ein bessere Begriff darstellt als Prozent. Dann sollte man genauer betrachten was man mit "DÄMPFEN" bewirkt! Das lässt sich in einem Teilchart betrachten. Beim Dämpfen wird nicht der Verlauf geglättet sondern die Spikes reduziert. Angenommen der Output oszilliert um den Null Punkt und lukt immer nur kurz über Null und fällt dann gleich wieder darunter. Die Folge wäre,wenn das Signal bei Overcross 0 liegt, das man jedes mal eine Fehltrade hat. Wenn man den Output dämpft,kann man diese kleinen überschwänglichen Bewegungen filtern. Inwiefern das eine Auswirkung auf das NN hat muss man testen!


**** Output (Prognoseziele) ****
1) Prognose der prozentualen Wertänderung in der nächsten Periode, logarithmisch gedämpftes Signal
Formel:
Calc Basis: Close;
Calc Wertänderung: ROC(Basis,1,%);
Ref(Dämpfen(Wertänderung),1)


**** Inputdefinitionen ****
1.) Rohdaten:
Close;
Open;
High;
Low;


Ich habe in dem Beispiel für jeden Wert eine vordefinierte Schablone verwendet und die letzten 5 Perioden rechnen lassen.. Das Ziel ist,den Chartverlauf für die nächsten drei (zukünftigen) Perioden zu bestimmen! Da der Output linear verläuft ähnelt er sofern der Zeitreihenanlyse (SSP) das er linear fortgeschrieben wird,aber aufgrund des Algorithmus anders berechnet wird und wirkt! Das Ziel ist aber das gleiche, nämlich den Chartverlauf für die nächsten NN Perioden aufgrund kurzfristiger Muster zu bestimmen-falls dieses Outputziel vorgegeben wurde!! Ich habe versucht,ein einfaches mathematisches Muster zu wählen, da für Intermarket Börsen-und Hintergrundwissen nötig ist,was Du nicht hast,wenn ich das richtig Deinen eigenen Aussagen entnehme!


**** Training ****
Bewertungsmethode: Crossvalidation mit 10 Samples
Mindest-Epochen: 200
Max.-Epochen: 500


Die Anzahl der Samples kann das Modell erheblich beeinflussen! Hier kann man aber keinen Standard-Tipp geben,das sollte man direkt im Modell ausprobieren! Die Samples unterteilen die Zeitreihe in jeweils n- Zeitabschnitte,in Deinem Fall 10! Näheres findest Du in der Investox-Hilfe! Die Min-Max Epochen können Einfluss auf Curve Fitting haben! Wenn man beispielsweise sehr viele Inputs und viel Gewichte eingegeben hat, kann sich bei dem fülligen Modell Curve Fitting mit zunehmender Testzeit ausbreiten was zum Curve Fitting und folglich einem instabilen Modell führt!

hm vielleicht versuche ich demnächst ein NN mit min. einer 10 Periodenglättung, um das Rauschen herauszufiltern,

Es gibt Datenvorbereitungen, mit denen sich Daten beinahe "verlustfrei" transformieren lassen. Betrachtet man es genau hat man aber doch noch einige Ausreißer an der Underlying-Linie!Ausreißer sollte man auf jeden Fall so gut wie möglich entfernen!

Transformieren:
Wenn Modellierungstechniken auf hochdimensionale multivariate Probleme angewendet werden, versagen die meisten Methoden wegen der Komplexität des Datenraums. Obwohl es eine Beziehung zwischen den Daten gibt, kann sie nicht modelliert werden, weil die Beziehung von zu vielen Variablen verdeckt wird (oder die Beziehung ist über eine zu große Zahl an Variablen verteilt). In diesem Fall kann eine spezielle Vorverarbeitung der Daten die Ergebnisse beträchtlich verbessern. Wichtig bei der Vorverarbeitung der Daten ist, dass das Wissen über die Daten, das man besitzen sollte, mit einbezogen wird. Allgemein gesprochen, ist die Datenvorverarbeitung also ein Mittel, um spezifisches Wissen über die Daten einzuführen. Im mathematischen Sinn sollte die Vorverarbeitung den Datenraum auf eine Weise transformieren, dass erstens weniger Variablen für das Modell benötigt werden und zweitens die Beziehung zwischen den Deskriptorvariablen und den Zielvariablen einfacher wird! Gibt man dem Modell eine Fülle unwichtiger Daten vor,wird das Ergebnis dementsprechend sein!


ich habe das immer verweigert, weil ich dachte dadurch wird die Verzögerung der signale viel zu hoch ...

Man arbeitet ja mit einem Zielhorizont. Bei FDs sollte man vorsichtig sein aber wenn man beispielsweise mit FFT oder Savitzky-Golay-Filter transformiert (muss man alles extern durchführen!). Das Ziel dieser Filter habe ich vorher kurz beschrieben!. Wenn man glättet hat man eine gewisse Verzögerung. Allerdings muss es kein Vorteil sein, dem NN viel Datenschrott anzubieten weil es damit sehr wenig anfangen kann."Verweigern" sollte man aufgrund von Annahmen besser nichts ,denn oftmals gibt es unerwartete Überraschungen! Und folge Martin's Tipp, und betrachte Adrian's Website! Er ist schon sehr lange mit NNs im Geschäft und hat einiges an Erfahrung! Letztendlich wirst Du aber nur vorwärts kommen wenn Du eigene Erfahrungen sammelst und Testreihen anlegst...
Happy Trading

Registrierungsdatum: 29. Dezember 2007

Beiträge: 297

Wohnort: Bad Homburg

42

Dienstag, 22. Juli 2008, 10:46

Hallo,

Habe die Demoversion gerade mal ausprobiert, aber leider funktioniert die Kurserzeugungsfunktion in der Demo nicht.
Man kann die Kurse aus Investox in eine Textdatei kopieren, aber vertragen sich die Formate? Hat das vielleicht schon mal jemand ausprobiert?




Nein, leider noch nicht. Ich hatte mich allerdings mit Herrn Butzlaff ein wenig über sein Tool unterhalten und war schon mehrfach soweit es mir zu kaufen. Leider habe ich aktuell auch etwas wenig Zeit für R&D - hoffe das ändert sich nochmal 8)

Nachtrainieren...:)

wir sprachen ja von der Selektion der NNs. Dort wollen wir ja noch nicht nachtrainieren ;)

Ich meinte etwas anderes. Man sollte - auch - bei den künstlich erzeugten Datenreihen darauf achten, dass in den Testmustern

Bullen-, Bären- und Seitwätsmärkte gleichermassen gut vertreten sind.

Ich habe gelesen dass historisch z.B. der Dow Jones eine ca 30/30/30-Aufteilung hat. Ich könnte mir vorstellen, dass dies auch für andere Börsen gilt.

Achtet man nicht darauf und verwendet Testdaten mit einer starken Bullenmarktausprägung, werden sicherlich die NNs ausgewählt, die diese Marktlage gut bedienen können. Wenn man pech hat folgt dann - nicht nur nach murphy - ein Seitwärtsmarkt in dem die NNs vielleicht völlig versagen.....
Grüße,

Christian

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

43

Dienstag, 22. Juli 2008, 23:17

Hallo,

Zitat

Nein, leider noch nicht. Ich hatte mich allerdings mit Herrn Butzlaff ein wenig über sein Tool unterhalten

Schade, dann muß man ja trotzdem noch einen Konverter programmieren, damit die Formate kompatibel werden.

Gibt es vielleicht irgendwo eine Beschreibung, wie so ein Datascrambling-Algorithmus funktioniert?
Vielleicht ist das ja gar nicht so kompliziert.

Viele Grüße
Torsten

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

44

Mittwoch, 23. Juli 2008, 00:16

Hallo Christian,

die NNs sollen demnach mit GA optimiert werden! Zu dieser Vorgehensweise bin ich skeptisch eingestellt weil das Ergebnis meist ein überoptimiertes Netz ist. Die Kunst danach ist,das gefittete Netz so lang wie möglich am Leben zu erhalten. Netze die überoptimiert sind erkennt man oft an den vielen Stopps! Man versucht den gelernten Zyklus vollends auszureitzen und entwickelt Methoden Tendenzen der Schwäche festzustellen! Es gib vor dem entwickeln der Netze zwei unterschiedliche Überlegungsansätze wie z.B.:

  • Ein Netz für den gesamtem Zeitraum
    Ein Netz für bestimmte Ereignisse und Phasen


Der erste Ansatz wird sich hinsichtlich der Approximation nicht so gut funktionieren, da bei vielen Bewegungsmuster viele Datenpunkte verwendet werden. Das heißt, das man die Nischen nicht erreicht und,nennen wir es Amplituden und die Datenpunkte hoch ausfallen können. Spezielle,für bestimmte Phasen vorbereitete Netze sind aber auch nicht ohne denn wenn man die eine hohe Approximation sucht, führt es zum Curve Fitting! An dieser Stelle müsste man das Datenrauschen entfernen.


Bullen-, Bären- und Seitwätsmärkte gleichermassen gut vertreten sind.

Wie o.g. kommt es darauf an welchen Typ von Netz man entwickelt! Wenn man NNs oder Handelssysteme spezialisiert, ist der Anteil von Bullen-Bären eigentlich egal! Für ein NN ist ohnehin alles nur "Curve Fitting"..;)

Ich habe gelesen dass historisch z.B. der Dow Jones eine ca 30/30/30-Aufteilung hat. Ich könnte mir vorstellen, dass dies auch für andere Börsen gilt.

Das kommt auf den Betrachtungszeitraum an! Ich glaube nicht, das man das so salopp aufteilen kann!

Wenn man pech hat folgt dann - nicht nur nach murphy - ein Seitwärtsmarkt in dem die NNs vielleicht völlig versagen.....

Genau! Deshalb handle ich halbautomatisch! :D Heute befand sich der FDAX in einem typischen Stimmungswechsel. News machen den Markt und im kurzfristigen Zeitraum nehmen News erheblichen Einfluss auf Kursmuster. Wenn man zum Beispiel an einer Kurve eine stat. Cyclic-Analyse durchführt, korreliert der Forecast Zeitraum fast 90% mit dem nachher tatsächlichen Muster! Wenn News dazukommen können extreme Ausreißer entstehen. Ausreißer sind Momentaufnahmen und werden meist nach kurzer Zeit egalisiert- oder führen zu einem massiveren Stimmungswechsel! Wählt man größerer Komprimierungen werden die News-Peaks verwässert,falls die Kursmuster über mehrere EOD-Perioden abgegriffen werden!

Um noch einmal auf die Selektion der Generationen zu kommen hatte Reiner m.A. auch einen gewissen diskretionären Anteil bei seiner Vorgehensweise! Sobald man selbst Entscheidungen treffen muss, hat man keinen Vollautomatismus mehr und gerade diese eine Entscheidung setzt die Maßstäbe ob man Winner oder Looser aus dem Rennen geht! Was macht man, wenn man n gleich gute Generationen zur Auswahl hat? Man kann nur die statistische Stabilität des Testzeitraums bis dato messen,wenngleich hohe Stabilität nicht gleich hoher Gewinn sein muss! Ob es bei einem sauber entwickelten NN überhaupt notwendig ist Generationen zu selektieren bezweifle ich ein wenig! Bei Data Scrampling sollte man unterscheiden für welchen Zweck das NN entwickelt wurde und in welcher Methode in Schwerpunkte liegen. Gerade bei gezielt entwickeln Netzen ist DS nicht immer angebracht! Angenommen man entwickelt ein Intermarket System-wie will man das via DS testen? Insofern ist DS eine von vielen Methoden aber eben auch nur eine! Wenn man dem Netz mit DS die gleichen Kursmuster vorlegt die es "gelernt" hat wird es wieder gute Ergebnis liefern,falls es generalisiert und nicht Vers 1-Vers 10 in genauer Reihenfolge auswendig aufsagen kann..;)
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

45

Mittwoch, 23. Juli 2008, 01:08

In der anschließenden Grafik ist ein NN, da sich auf Kursmuster innerhalb Kursmuster "spezialisiert" hat! Die Filterung findet für die Bewertung und Output statt. Die Qualität eines solchen Netzes ist sehr stark von der Einstellung des Kursmusters abhängig ! Die größte und umfangreichste Arbeit ist die Klassifizierung des Kursmusters,dal man bei jeder Änderung des KOEFF, das NN neu trainieren muss. Es ist in den seltensten Fällen absehbar, wie sich die Sensibilität des Kursmuster-KOEFF auf das NN-Konzept auswirken wird! Man muss es beinahe als Glücksfall bezeichnen wenn man nach ein paar versuchen einen Volltreffer landet! Hier fehlt eine Methode zur eindeutigeren Klassifizierung,aber mir fällt dazu leider auch nicht viel ein! Was ich aber sagen möchte ist, das man für diesen Typ NN Prognose Data Scrampling nur bedingt einsetzen kann!
Happy Trading

chied

unregistriert

46

Mittwoch, 23. Juli 2008, 10:13

Hallo Udo

erst einmal vielen Dank für deine grossartigen Beiträge!Daraus kann man wirklich unheimlich viel lernen.

Darf ich fragen, welche Erfahrungen du bei der Selektion von NN Generationen mittels SetGen über Robustheitstest hinsichtlich des Auswahklzeitraums gemacht hast? Denn ich bin mir zur Zeit nicht sicher, ob ich die "beste" Generation aus dem Trainingszeitraum oder dem Gesamtzeitraum auswählen soll.

Meiner Meinung nach geht man beim Gesamtzeitraum natürlich ein erhöhtes Curve Fitting Risiko ein, andererseits ist das Netz aber auf einen anderen und kürzeren Zeitraum trainiert und deshalb nicht zwangsweise in dem Out Of Sample Zeitraum überoptimiert.

Vielen Dank und

beste Grüsse

roger

P.S Darf ich Fragen, was du unter KOEFF genau verstehst?

Registrierungsdatum: 29. Dezember 2007

Beiträge: 297

Wohnort: Bad Homburg

47

Mittwoch, 23. Juli 2008, 10:26

Hallo Udo,

von mir auch ein grosses Dankeschön für die tollen Ausführungen :P

Wie ich sehe arbeitest Du noch, wenn ich schon im Bettchen liege und einen neuen Arbeitstag entgegenschlummer.

Aber ich könnte mir gut vorstellen, dass dir die "Arbeit" sehr viel Spass macht und somit ja garkeine ist...

Ich finde diese Themen ebenfalls super interessant und würde mich liebend gerne mehr damit beschäftigen...

Leider ist es bei mir aktuell "nur" ein Hobby...

@Torsten

Ich könnte mir vorstellen, dass Du das Tool direkt in Kombination mit Investox verwenden kannst.

"Normalerweise" können diese Tools OCLH(V)-Daten im- und exportieren. Ruf doch einfach mal kurz Herrn Butzlaff an...
Grüße,

Christian

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

48

Freitag, 25. Juli 2008, 00:00

@roger


Zunächst empfehle ich Anfangs nicht einmal an GA Optimierung zu denken,geschweige ein NN damit zu optimieren,aber ich möchte mal von Anfang an beginnen!:)

Viele die erstmals mit NN arbeiten gehen davon aus, das ein NN Regeln in Inputschablonen mittels KI sinngemäß wie im konventionellen HS in die Zukunft projizieren! Damit das Ergebnis verbessert ,eine steigende KK verbessert wird,setzt man GA ein um die vielen Gewichte (umso mehr desto besser ;) ) optimal zu verschieben! Natürlich hat man in dem Paket kaum einen annähernden Überblick der Vorgänge und Abläufe im NN und man weiß nicht, wie der Output entstanden ist. Gut, das weiß man nie den im Rechenzentrum ist das NN eine Blackbox die man nur unzureichend haargenau steuern kann!

Was ich an Investox an dieser Stelle bemängele ist, das Features für die statistische Datenvorbereitung gänzlich fehlen und man keinen Einblick hat, wie die Daten von Investox skaliert und vorbereitet werden! Wenn man sich ernsthaft mit NN auseinandersetzt kommt man meiner Ansicht an einer Statistiksoftware zur Datenmanipulation,-Glättung und Vorbereitung nicht gänzlich vorbei! Zunächst sollte man sich Gedanken machen, ob man das Underlying vorbereiten kann oder ob man die Inputs dementsprechend vorbereitet. Wie kann man die Daten vorbereiten? Vor einigen Jahren hat man beispielsweise FFT für die Vorbereitung eingesetzt (Bernhard "hungerturm" ist bei dem Thema Experte). In letzter Zeit hat man Wavelets eingesetzt. Diese Art von Glättung ist setzt man ein,um die Form eines realen Signals zu bewahren was sogar bei Signalen mit plötzlichen Änderungen funktioniert -zumindest soll!So sieht das ungefähr aus:



Es gibt auch bei den Wavelets unterschiedliche Verfahren. Leider habe ich noch nicht die Möglichkeit gehabt, das ganze live zu testen!
Wen das ganze vom mathematischen Hintergrund interssiert kann die PDF näher betrachten!


Es gibt noch weitere statistische Glättungsverfahren aber man muss darauf achten das die Approximation hoch ist,das Signal weitestgehend erhalten bleibt und trotzdem kein Curve Fitting provoziert wird! Die klassischen gleitenden Durchschnitte haben diese Vorteile nicht und verzögern bei starker Glättung zu sehr,so dass das Resultat der Annäherung nicht gerade berauschend ist!

Wenn man Unmengen Daten in das Netz leitet und es überinformiert sollte man annehmen,das es nicht sehr lange funktioniert-wenn überhaupt! Stelle es Dir so vor: Du betrachtest zwei Charts. Im einen sind zwei GDs und im anderen sind zwei GDs und noch 10 Indikatoren! Aus welchem Chart kannst Du ein klares Signal auslesen? Das Brain kann keine 12 Signal auf einmal erfassen und verarbeiten und das NN kann es ,neigt aber zunehmend zu auswendig lernen und kann die Informationen nicht mehr generalisieren..Ableitungen für die Zukunft projizieren!

An dieser Stelle sind wir immer noch bei der Datenvorbereitung und haben das NN noch nicht mal trainiert! Ich könnte hier jetzt noch viele Punkte ansprechen bevor man überhaupt zur GA-Optimierung kommt! Ich glaube in den meisten Fällen ist die GA-Optimierung gar nicht notwendig! Wenn man Generationen via GA selektieren muss, ist es für mich kein typisches NN mehr denn bei einem stabilen und gut sortierten NN muss in der Regel nichts selektieren! Jede Selektierung mittels statistischen Berechnungen bringen zusätzliche Zufallsvariable ins Spiel! Wenn Du auf den Seiten von NRCM einmal genauer liest wirst Du einige stat. Glättungsvarianten und Datentransformationen finden...warum wohl? ;) GAs basieren im Gewissen Sinn auf Zufall, da Pseudoeinstiege berechnet werden! GAs gehören genau genommen nicht in die Gruppierung KI und bringen zu dem vorher genannten noch eine zufällige Variante in das Paket! Letztendlich kommt eine überoptimierte Output heraus bei dem es eine Frage der Zeit ist, bis die Drawdowns "quadratisch" anwachsen und für den Entwickler der Zeitpunkt kommt, wo er ein total hochgezüchtetes System wieder in die Spur bringen muss. Das dies kein einfache Aufgabe ist, kann man sich vorstellen und nicht selten muss man das System komplett zerreißen und neu aufbauen! Dann fängt man wieder von vorne an!

In der Umfrage zu NNs wurde viele Wünsche geäußert! Leider ist das jetzige Inv-NN Paket,gerade für den Einsteiger aber auch für den fortgeschrittenen Eigenentwickler, und da betrachte ich User die NN s nicht im wissenschaftlichen und zertifizierten Institut in München kaufen,nicht sehr informationsfreudig und ein großer Teil auf Ausprobieren und Glück aufbaut! Wesentliche visuelle Features oder statist. Testmöglichkeiten und Datenvorbereitungs-Tools fehlen-zumindest dem Eigenentwickler! Es wäre wünschenswert, das nach den vielen Jahren auch das NNs Paket insgesamt rundereuert wird, und den neusten Stand der Möglichkeiten anbietet! Dazu gehören u.a. auch unterschiedliche Algorithmen,Graphen,visuelle Kontrolle usw....die Liste ist lang....und wird immer länger! :) ;)
Happy Trading

Ähnliche Themen