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

Donnerstag, 6. Dezember 2007, 12:41

Meine Voreinstellung ist "willkürlich".

Du kannst natrürlich mit Ref(Open, 1) arbeiten und dem ENTER BASIS OPEN DELAY 0. Du musst nur beachten, dass der Indikator WekaInvestox nicht in die zukunft schauen darf. In meinem HS berechne ich ihn für die aktuelle Periode. Also müsste er bei ENTER BASIS 0 die aktuelle Periode mit berechnen und damit in die Zukunft schauen.(?)

Um das Problem zu vermeinden müsste dann der Indikator mit Global calc signal: Ref(WekaInvestox(...) , -1); aufgerufen werden. Dann sollte es klappen. (?)

Danke für die Weiterentwicklung.

Martin

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

42

Donnerstag, 6. Dezember 2007, 12:58

Hallo Martin,

es geschehen sonderbare Dinge..:)) Ich muss erst noch beobachten um genaueres zu schreiben!

Wenn die Inputs keine CLOSE-Berechnungen beinhalten, sollte das System mit OPEN DELAY 0 nicht in die Zukunft blicken Ansonsten könnte man die Inputs mit REF-xy berechnen-wie z.B. den ADX,wenn man Open DELAY einsetzen möchte! Sobald CLOSE-HIGH-LOW berechnet wird,Historien=0 vorgegeben und ohne OPEN ohne DELAY gehandelt wird blickt das ganze in die Zukunft!Kann über die INI REF-1 schon in den Inputs korrekt verarbeitet werden?
Wenn WEKA-INDEX nicht im internem Prozess zeitlich verschoben werden kann, sollte man unter DEFINITION mit REF-xy hinkommen.Wichtig ist nur das der verschlüsselte Indikatoren-Teil WEKA-INDIKATOR auf der Zeitschine nicht her gleiten kann...

Ein Vorschlag: Ist es für Dich machbar das man im Indikator Zeit und Datum vorgeben kann wo und wann der Zeitreihe eine Stichprobe entnommen wird? Ideal wäre injizieren von Zufall-Zeitreihen-wie schon vor einer Stunde geschrieben! Dann könnte man sich zunächst die "Stichproben" sparen...
Happy Trading

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

43

Donnerstag, 6. Dezember 2007, 13:08

Hallo Udo,

so ganz verstehe ich deinen Vorschlag vermutlich noch nicht. Insbesondere die Sache mit der Zufall-Zeitreihe kann ich nicht nachvollziehen.

Bezüglich der Stichprobe würde ich dich bitten etwas detaillierter zu formulieren was du von der Stichprobe erwartetst. Ich könnte dem Parameter ein Datum inkl. Uhrzeit übergeben und dann die Stichprobe in eine externe Datei schreiben lassen. Die Rückmeldung an Investox geht nicht so einfach, da ich "Ergebnis" ja bereits verwende.
Testen könnte man auch, ob ein weiterer Parameter die Stichprobe entgeben nehmen könnte.

Aber zuvor müsste ich wissen, welche Werte du für den übergeben Zeitpunkt haben möchtest.

Viele Grüße

Martin

Peratron

unregistriert

44

Donnerstag, 6. Dezember 2007, 13:12

Hallo Peratron,


aus deiner Darstellung wird mir nicht deutlich, was du mit Testzeitraum meinst. Im Indikator gibst du als Beipiel die 10 an. Und anschließend sprichst du von 1.

Wenn du den Testzeitraum auf 1 stellst bedeutet dies, dass du für genau diese eine Periode einen Prognosewert für die "Zukunft erhälst. Angezeigt über den Indi wird die Prognose für den vorangegangen Trainingszeitraum plus diese 1 Periode.

Ein einfacher Simulationstest sollte zum Beispiel mit einer je Periode neu berechneten SVM funktionieren können. Im Indikator müsste testPerioden dann auf 1 stehen. Der Indikator wird wie jeder andere indikator in Investox dann je Periode neu ermittelt (refreshed). Zur Zeit ist er so gebaut, dass er bei jeder neuen Ermittlung die aktuellen Daten an die SVM exportiert, trainiert und die Prognose an das HS zurückgibt. D.h., in dieser Konfiguration kannst du nur jeweils mit 1-Periodenschritten nach vorne gehen. Für weitergehende Anforderungen müsste ich ihn erweitern.

Hilft dir diese Antwort?

Viele Grüße

Martin


Hallo Martin
Wenn ich im Backtest mit dem Wert 10 in testperioden eine gute Prognosegüte erziele dann möchte ich real natürlich diese 10 Perioden nicht angezeigt bekommen
sondern handeln. Somit sollte ich doch testperioden auf 1 Stellen diese 10 Perioden handeln und nach 10 Perioden eine neue Prognose veranlassen.
Hier müsste man den Indikator aber um ein Feld "Anzahl der Periode des Refresh" integrieren. Grüße Peratron

Peratron

unregistriert

45

Donnerstag, 6. Dezember 2007, 13:12

@Udo
@Martin

Ich hab den ganzen Morgen ein HS auf 15Min Basis laufen lassen. Folgendes ist mir aufgefallen.
Durch ständige Aktualisierung des Indikator´s WekaInvestox erhält man sozusagen einen
Walkforwardtest für jede Periode. Und somit für jede Periode eine neue Prognose. Durch
ständig neue Prognosen kann es sein das ein Enter Long bzw. Short Signal durch eine neue Prognose revidiert wird.

Folgende Möglichkeiten hat man jetzt.

Ich steig aus sobald mein Signal und Depotposition gegenläufig sind
Ich gehe mit Hold rein und nehm die gleiche Position ein wie mein HS Signal.
Ich beachte keine HoldSignale und handle nur EnterSignale

Durch den Walkforwardtest ist die KK makulatur, da sich jede Periode eine neue Prognose ergibt.

Hier wäre eventuell eine Erweiterung auf Anzahl Perioden des Refresh ganz nützlich!

Somit hätte jede Prognose um die Anzahl der Perioden im Refresh bestand. Bei einer neuen
Prognose könnte es trotzdem zu einer Überschneidung von Enter und Hold Signalen geben.
Wie man dies behebt fällt mir momentan aber nicht ein.

Grüße Peratron

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Peratron« (6. Dezember 2007, 13:36)


Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

46

Donnerstag, 6. Dezember 2007, 13:25

Hallo Martin

STICHPROBE

Angenommen man hat eine Historie von mehreren Wochen vorliegen und stellt in WEKA-Indikator 20 Lern- und 10 Testperioden ein. Addiert ist das ein Gesamt-Periodenblock über 30 Perioden. Die 30 Perioden werden an der Zeitreihe mit Stichproben getestet. Dazu wird eine Startzeit (manuell oder per Zufall) eingegeben und von dem StartZeitpunkt----->EndZeitpunkt (30 Perioden) eine Stichprobe entnommen. Im Idealfall werden die Ergebnisse (Testzeitraum) der Stichproben gelistet und (grafisch) ausgewertet-das aber nur am Rande..

Noch ein anderes Problem: Wenn man simuliert, wird alle n-Perioden das System aktualisiert. Die SVM-Lern-Testdekade von WEKA-INDI wird nach geschleift und ändert bei Aktualisierung die Signalfolge in der Zeitreihe-so zumindest eine noch unbestätigte Beobachtung. Kannst Du das eventuell bestätigen?
Happy Trading

Fritz

unregistriert

47

Donnerstag, 6. Dezember 2007, 14:30

zu spät

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

48

Donnerstag, 6. Dezember 2007, 16:47

@Peratron,

ich werde darüber nachdenken ...

@Udo

dafür hatte ich eine Art Offset vorgesehen. Dieser Offset ist die Anzahl der Perioden (vom letzten Wert aus) die weder für Test noch für Training Verwendung finden. Zum Beispiel
Die Zeitreihe hat 1000 Perioden.
testPerioden = 20
trainPerioden = 70
Ohne Offset würde von Periode 911 bis 1000 prognostiziert und von Periode 911 bis 980 trainiert.
Wenn jetzt Offset = 100 ist verschiebt sich alles zu von Periode 811 bis 900 prognostiziert und von Periode 811 bis 880 trainiert.

Martin

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

49

Donnerstag, 6. Dezember 2007, 16:50

Leider war der Admin gestern um 22:00 Uhr nicht mehr gegenwärtig und ich habe improvisiert... 8)
Der Admin pflegt früh ins Bett zu gehen, da er morgens früh aufstehen muss.....er bittet um Verständins, dass er nicht im Forum schläft... 8)
Viele Grüße,
Hans-Jürgen

sven

unregistriert

50

Donnerstag, 6. Dezember 2007, 17:04

Hallo Martin,
und wie kann man diesen Offset nutzen ?

Gruß
Sven

Peratron

unregistriert

51

Donnerstag, 6. Dezember 2007, 17:05

@Peratron,

ich werde darüber nachdenken ...


Super....danke!

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

52

Donnerstag, 6. Dezember 2007, 17:14

@Sven,

er ist wie gesagt in der Pipeline, also noch nicht drin

Martin

hajo

Meister

Registrierungsdatum: 20. Oktober 2002

Beiträge: 553

53

Donnerstag, 6. Dezember 2007, 20:33

Hallo Martin ,

wenn ich das richtig verstehe könnte man mit dem "Offset" (zurückgerechnet) einen Zeitraum wählen, in dem man -nach persönlicher Einschätzung- ähnliche Kurs-Muster erkennt wie im heutigen Kursverlauf (bzw. der letzten ...Perioden).
Wenn dies so von Dir angedacht wurde, oder bereits in der Pipeline ist, wäre es natürlich sehr elegant wenn eben dieser Offset nicht selbst errechnet werden muß, sonder durch die Eingabe z.B. des Enddatum des vom User gewählten Zeitraums der Offset berechnet wird.

Auf jeden Fall nochmals einen Dank für Deine Arbeit.

Gruß,
hajo

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

54

Donnerstag, 6. Dezember 2007, 21:10

Guten Abend,

peratrons Angaben kann ich bestätigen. Vorher müsste man folgendes klären: Funktionieren SVMs genauso wie GA oder NN-das heißt ohne erneutes Training wird trotzdem ein Output geliefert? Andererseits könnte man mit einem Feed Forward Test einen kompletten Backtest erstellen-egal ob die Init-Analyse immer geändert wird oder nicht.

Beispiel:

Ein SVM Test hat sich im "Backtest mit TRAIN 20 Perioden und TEST 5 Perioden bei den Stichproben- so wie in der Simulation profitabel erwiesen. Im Live-Trading entfällt der Testzeitraum und über den Feed Forward Test werden alle n-Perioden SVMs neu trainiert! Die dabei anwachsende Kapitalkurve (zeitlich gesehen) wird von Investox aufgezeichnet-egal ob sich die Signal-Historie im Taktgeber (SVM) ändert oder nicht,entscheidend ist das aktuelle Signal! Der Feed Forward Test spult ein vorgegebenes Programm durch und liefert das Ergebnis grafisch-numerisch und in Kennzahlen auf der investox-Oberfläche!

Man könnte versuchen, den WEKA-IND in einem Berechnungstitel anzulegen und das System über Master-Slave zu steuern damit man die zeitliche Steuerungen separat einstellen kann und einen Kapitalkurve aufgezeichnet wird.In ORM wird sie ohnehin aufgezeichnet- aber leider hat mit hier zu wenig Kennzahlen und Testmöglichkeiten!
Ein Depot wäre ideal da Trades nicht mehr revidiert werden können!

Martin, ich habe Ziel mal ausschließlich mit REF OPEN +1 eingegeben. Kurioserweise werden ganz andere Kapitalkurven generiert als wenn ich mit Deiner Init-Basisvorgabe arbeite die letztendlich auch REF OPEN +1 ermitteln soll! Kannst Du Dir einen reim darauf machen?
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

55

Donnerstag, 6. Dezember 2007, 22:31

Hallo,

mit dem momentan angesteuerten Algorithmus ist ganz entscheidend welche historischen Muster für die Prognose trainiert werden! Zudem spielt der Lernzeitraum eine entscheidende Rolle. Bei Konsolodierungsmustern scheinen die Prognosen mit einem sehr kurzen Lernzeitraum besser zu funktionieren. Swings und volatilere Phasen benötigen einen etwas längeren Zeitrahmen-aber auch nicht zu lang (erste Vermutungen!). Weitere Fragen stellen sich hinsichtlich der Aufbereitung der Inputs! Werden Inputs in Rohform eingegeben oder müssen sie vorher normiert werden! In welcher Form kann WEKA Daten am besten für prognosen verarbeiten? Angenommen man gibt einen GD vor-sollte man den GD (und auch alle anderen Inputs) auf einer 0-Linie normieren oder einfach die Rohform anwenden? Bei NNs beispielsweise ist das ein ganz entscheidender Punkt!

Hier noch eine Grafik wie eine Stichprobe aussehen könnte! Wenn ein Feed-Forward Test-oder eine anderes ,ähnliches Verfahren Stichproben abgreifen und listen kann, könnte man eine jahrelange Historie mit einem Zufallsgenerator abfragen und somit testen ob die Prognosen gleich verteilt sind oder doch Überhang auf eine Seite haben!
»Udo« hat folgendes Bild angehängt:
  • Magical Snap - 2007.12.06 22.16 - 002.png
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

56

Donnerstag, 6. Dezember 2007, 23:16

Ein Tip: Setzt "cValue" testhalber auf max.500! Die 0-Punkt Oszillation des Outputs wird um ein vielfaches effzienter!
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

57

Freitag, 7. Dezember 2007, 09:06

Hallo,

der angesteueret Algorithmus neigt m.A. stark zum Curve Fitting-wenn man es provoziert! Entscheidend ist die Anzahl und Auswahl der Inputs. Mit einem beispielsweise mehrfach verwendeten ROC-Input ist Überoptimierung so gut wie vorprogrammiert. Dies kann man ein wenig abbauen indem man den Lernzeitraum erheblich kürzt. Was mich stutzig macht ist, das im Stichprobenverfahren ein Lernzeitraum über 5 Perioden bei 70-80% der Proben einen Testzeitraum über 10 Perioden immer profitabel prognostziert hat,auch wenn es Aussreisser bei den DD gab. Ohne Stichproben und aufzeichnen der Ergebnisse so wie einen Feed-Forward Test ist ein aussagekräftiger "Backtest" einfach nicht drin. An dieser Stelle müsste Herr Knöpfel Tools implementieren, die das ermöglichen. Darüberhinaus ist ein Feed-Forward Test nicht nur für SVM geeignet ,sondern es können damit andere Algorithmen die keine Generationen-oder auch automatische Pyramiden-Generationen ("Auto-Sort") getestet werden!
Happy Trading

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

58

Freitag, 7. Dezember 2007, 11:29

Zur Aufbereitung der Daten

Das eingesetze Trainingsverfahren für SVM ist zur Zeit der Standard aus Weka für SVM . Dort werden die Daten normalisiert. Ohne weitergehende Transformationen könnte man die Daten alternativ standardisieren oder so belasssen, wie sie ursprünglich hereinkommen.

Martin

halobungie

unregistriert

59

Freitag, 7. Dezember 2007, 18:49

Bringe das Tool von MartinP nicht zum Laufen

Hallo zusammen,

ich bringe das Tool bzw. HS "WekaInvestox" von Martin einfach nicht zum Laufen. Vielleicht hatte ja jemand von Euch dasselbe Problem wie ich und brachte das Tool anfänglich nicht zum Laufen.

Folgende Installation liegt bei mir vor:
- Investox XL Version 5.1.1 (also letztes Update wie von Fritz beschrieben wurde ebenfalls durchgeführt)
- Folgende Indikatoren wurden installiert: "Zeiten" und "WekaInvestox"
- Java (TM) SE Runtime Environment (build 1.6.0_03-b05)
- WEKA 3.4.11 und WEKA 3.5.6
- Im Ordner "C:\weka" sind folgende Dateien enthalten: "weka.ini" und "InvWeka.jar" / die Dateien "data_train.arff" und "debug.txt" wurden automatisch angelegt

Problem: Wenn ich das Handelssystem "WekaInvestox" starte kommt folgende Fehlermeldung:
Logbuch Protokoll vom 07.12.2007 18:43:48
Investox in C:\Programme\Investox

***** Indikatoren *****

[07.12.2007 18:42:50] Fehler im Script aufgetreten (Type mismatch)
Details:
Fehler im Script: Type mismatch in Linie:
Ergebnis(EndIndex - UBound(val) + i + 1 - offset) = val(i)

[07.12.2007 18:42:50] Fehler bei der Berechnung einer Definition.
Details:
Projekt: WekaInvestox
System: WekaIntegration
Vorgang: Indikatorberechnung
Datenreihe: AX_RAD
Indikator: WekaInvestox
Meldung: Das Script konnte nicht berechnet werden.


In der Datei "debug.txt" steht nur X-Mal "run" sonst nichts. Weis vielleicht jemand von Euch Rat, wie ich das Tool zum Laufen bringe oder was ich falsch mache?

Besten Dank im Voraus für Eure Vorschläge!
halobungie

hajo

Meister

Registrierungsdatum: 20. Oktober 2002

Beiträge: 553

60

Freitag, 7. Dezember 2007, 20:35

Darf ich mich da mit einer Frage anschließen ?

Daß Weka in C:\ installiert sein muß hatte Martin bereits am Anfang geschrieben.
Meine Frage : Muß Investox auch in C:\ installiert sein oder darf es in einer anderen Partition sein ?

Gruß,
hajo