Samstag, 27. April 2024, 18:06 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.

halobungie

unregistriert

1

Donnerstag, 10. Januar 2008, 20:38

Robustheitstest für beste Komprimierung?

Hallo,

hier eine Frage die mich schon lange beschäftigt:
Kann man mit Hilfe des Robustheitstests auch die am besten geeignete Komprimierung (z.B. 5 Min., 240 Min., 1 Tag etc.) für ein Handelssystem herausfinden?

Das würde doch Sinn machen, denn die "richtige" Komprimierung ist oft entscheidend für die Performance. Kann mir diesbezüglich jemand weiterhelfen?

Besten Dank!
halobungie

Chris

unregistriert

2

Donnerstag, 10. Januar 2008, 22:21

Auf die Möglichkeit warten glaub ich viele schon lange. So weit ich weiß, gibt es sie bisher leider nicht.
Könnte aber auch sehr schnell zur perfekten Überoptimierung führen.

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

3

Donnerstag, 10. Januar 2008, 22:55

Hallo zusammen,

man könnte beispielsweise in einem 1 Minuten System versuchen, sämtliche Formeln mit REF-1 KOMP,wobei die kleinste KOMP-Einheit >1 Minute sein sollte, aufzubereiten und KOMP (Perioden) variabel gestalten. Aber das ist eine Heidenarbeit und bei komplexen System nahezu unrealistisch!

Chris,überoptimieren kann man damit-so meine Meinung- nicht großartig! Man testet nur, aus in welcher Zeiteinheit ein Indikator oder eine Kombination am besten funktioniert, ohne die Variablen via Optimierung an die Historie anzupassen. Andererseits: Stell Dir vor Du hättest genau die Komprimierung (ganz zufällig)ausgewählt,in der die gewählte Kombination super performt! Hättest du dann überoptimiert obwohl Du nicht optimiert hast oder ist es eine "Time-Ineffizienz"? :) Es aber wäre schon eine kleine Hilfe, wenn man Klick by Klick Live Veränderungen im Chart/Kennzahlen sehen könnte. das würde zwar etwas länger dauern, aber dennoch könnte man mit der "Live-Show" relativ schnell arbeiten...
Happy Trading

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 071

Wohnort: Iringsweg

4

Donnerstag, 10. Januar 2008, 23:22

Hallo Udo

Ich habe da tatsächlich so ein System, bei dem ich mit einer kleinen Grundkomprimierung arbeite und die Perioden von KOMP() als Konstante definiert sind, welche ich durch den Robtest nudle.

Du schreibst:
und KOMP (Perioden) variabel gestalten

D.h. Du siehst eine Möglichkeit, als Perioden bei KOMP() eine Variable anzugeben? Ich habe das seinerzeit nicht geschafft (ich meine es gab irgendwelche Fehlermeldungen, wenn ich das Coding schliessen/speichern wollte). Wenn es doch geht, die Perioden über die Zeit variabel zu gestalten, z.B. in Abhängigkeit von der Vola, dann laß' mich bitte nicht dumm sterben ... wie geht das?
Gruss
Bernd

Fritz

unregistriert

5

Freitag, 11. Januar 2008, 10:56

Hallo,
die gewünschten Komp-Werte als Listeneinträge anlegen, dann klappts auch mit ...........

Gruß Fritz

halobungie

unregistriert

6

Samstag, 12. Januar 2008, 10:09

Hallo Fritz,

könntest Du mir bitte genauer erklären oder Dein Konstrukt hier aufzeigen, wie dies genau zu handhaben ist, damit man die besten Komprimierungen via Robtest herausfinden kann? Ich könnte dies nämlich im Moment wirklich sehr gut gebrauchen. :rolleyes:

Vielen Dank!
halobungie

Fritz

unregistriert

7

Samstag, 12. Januar 2008, 10:26

Hallo,
in dieser Version werden die Werte in der Wertetabelle als Variable eingegeben und die Fehlermeldung kommt.
global calc test: Komp(#High-Low#, #[TS:15,15,60,15,60,15,1]#);

In dieser Version werden die gewünschten Variablen in den Listeneinträgen vorgenommen

global calc test1: Komp(#High-Low#, #[TS:15,15|30|60]#);

und damit lässt sich der Robtest durchführen.

Gruß Fritz

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

8

Samstag, 12. Januar 2008, 12:06

Hallo Bernd,

sorry-habe die Frage zu spät gelesen aber Fritz hat schon so gut wie alles aufgedröselt... :)

das Thema hatten wir vor langer zeit schon einmal. Es ist nicht ganz so einfach die Komprimierung direkt zu optimieren-obwohl es manchmal effektiver ist als nach passenden Variablen und Entry-Formeln zu suchen! Ich hatte in längeren Testreihen Systeme, die z.B im Bereich von 25-32 Ticks performten, aber darüber und darunter völlig versagten und das unter gleichen Bedingungen!Was sagt uns das: Man muss ein glückliches Händchen haben das ein System performt...war natürlich ein Scherz... :D
Happy Trading

halobungie

unregistriert

9

Samstag, 12. Januar 2008, 15:29

Hallo Fritz,

sorry, jetzt steh ich auch auf dem Schlauch (wie ein anderer im Forum schrieb)... :S
Wo genau ist die Formel: global calc test1: Komp(#High-Low#, #[TS:15,15|30|60]#); einzutragen, damit die beste Komprimierung (15, 30 oder 60) ermittelt werden kann? Etwa unter den Definitionen? Wenn ich die Formel dort eintrage, kann ich den Robtest darüber fahren. Es sind dann jedoch alle "Balken" gleich hoch, was jedoch in diesem Fall nicht sein kann.

Im Voraus vielen Dank für Deine Hilfe!
halobungie

Snoopy

unregistriert

10

Samstag, 12. Januar 2008, 16:04

Hallo halobungie,
am besten die Listeneinträge als Konstante anlegen:
global const TS:[TS:60.0,15|30|60];

Dann in jeder deiner Enter- und Exitregeln die mit Komp programmiert sind, die Konstante TS eintragen:
Komp(#Ref(deine Regel, -1)#, #TS#)

Gruß Snoopy

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

11

Samstag, 12. Januar 2008, 16:32

Hallo,

Die Handelssystemkompr. automatisiert zu verändern wäre ein ganz super Sache und würde ich gerne nutzen.

Zitat

man könnte beispielsweise in einem 1 Minuten System versuchen, sämtliche Formeln mit REF-1 KOMP,wobei die kleinste KOMP-Einheit >1 Minute sein sollte, aufzubereiten und KOMP (Perioden) variabel gestalten. Aber das ist eine Heidenarbeit und bei komplexen System nahezu unrealistisch!


Vielleicht gibt es aber noch einen anderen Weg, das Ziel "einfacher" zu erreichen, d.h. ohne Modifikation des bestehenden HS.

Über ein externes Programm, welches Investox über Tastaturkommandos steuert, wie folgt:
1.) Investox starten und auf das zu modifizierende HS "stellen"
2.) Tastenkommandos:
Ctrl + E
4x TAB
ENTER
3x TAB
Zahlenwert für Minuten reinschreiben, z.B. von 1 bis 60 min hochzählen, mit step=1
ENTER
7x TAB
ENTER
... fertig, jetzt ist der neue Wert im HS eingestellt und die KK wird berechnet
3.) das komplette Monitorbild abspeichern, mit HSname_XYmin.gif

gehe zu 2) und stelle neue HS-Komprimierung ein und laufe in einer FOR-Schleife so lange diese Schritte ab, bis der gewünschte höchste Minutenwert erreicht ist.

Das ganze kann man dann stundenlang automatisiert laufen lassen und schauf sich am Ende nur noch die gif-Bilder an.
Am besten mit einem Diabetrachter mal schnell durchklicken.
Das Bild, wo die KK am besten ist, diesen HS-Komprimierungswert ist der gewünschte optimale Werte.

Die Idee für so ein externes Tastatursteuerprogr. habe ich schon eine ganze Weile im Hinterkopf nur bin ich leider noch nicht dazu gekommen, es umzusetzen. Es gibt da auch noch ein paar kleine technische "Herausforderunge" zu lösen, z.B. wie kann man prinzipiell aus Java heraus, Tastaturkommandos an ein anderes Programm senden?

Aber vielleicht hat jemand etwas Zeit und möchte die Idee aufgreifen.
An einer Lösung für das Problem wäre ich sehr interessiert.

Viele Grüße
Torsten

halobungie

unregistriert

12

Samstag, 12. Januar 2008, 18:20

Snoopy:
Sorry, ich habe eine lange Leitung... Es klappte bisher nicht.

Unter Definitionen habe ich folgende Formel eingetagen:
global const TS:[TS:60.0,15|30|60];

Meine einfache Enter-Long-Formel lautet wie folgt: "signal > 0"
Nun habe ich unter Enter Long folgendes eingetragen:
Komp(#Ref(signal > 0, -1)#, #TS#)

Erhalte dabei jedoch folgende Fehlermeldung:
Indikator: Komp
Meldung: Die im Parameter angegebene Datenreihe steht nicht zur Verfügung. Der Fehler kann auch unter 'Definitionen' enthalten sein.


Was habe ich da falsch verstanden?


Torsten:
Interessante Idee. Was ich nicht verstehe ist, wieso dieses Tool nicht bereits in Investox integriert ist? Das wäre doch wirklich eine sehr hilfreiche Sache!!!

Viele Grüsse
halobungie

Snoopy

unregistriert

13

Samstag, 12. Januar 2008, 19:10

Hallo halobungie,
Ich kenne deine Regeln signal>0 nicht.
Entweder fehlt die Variable signal
oder
Bei signal darf aber nicht eine mit bereits Komp berechnete Formel stehen.

Wahrscheinlich hängt es an der Art der Programmierung.
In der mit Komp Regel für die Konstante mit der Liste, musst direkt die Berechnung, für die der Timeframe optimiert werden soll.

Hier ein Beispiel für eine Enterregel, wo nach dem besten Timeframe gesucht werden soll.
Komp(#Ref(close, -1)#, #TS#) > Komp(#Ref(close, -3)#, #TS#)

Probiere es mal mit dieser Formel und starte den Robustheitstest.

Gruß Snoopy

halobungie

unregistriert

14

Samstag, 12. Januar 2008, 19:28

Hallo Snoopy,

vielen Dank! :thumbup: Mit Deiner Enter-Long-Formel hat es geklappt. Jetzt muss ich dies noch auf meine Formel adaptieren. Das dürfte dann nicht so einfach werden, aber mal schauen...

Besten Dank!
halobungie

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 071

Wohnort: Iringsweg

15

Sonntag, 13. Januar 2008, 22:54

Hallo Fritz,
Hallo Udo

sorry-habe die Frage zu spät gelesen aber Fritz hat schon so gut wie alles aufgedröselt...

Eigentlich ist da nichts aufgedröselt. Wie schon geschrieben ...

bei dem ich mit einer kleinen Grundkomprimierung arbeite und die Perioden von KOMP() als Konstante definiert sind, welche ich durch den Robtest nudle.

... mache ich das ja schon lange so, wie von Euch beschrieben.

Dein Posting, Udo, hat mich nur hoffen gemacht, dass man bei KOMP() eben nicht nur eine Liste oder einen Wertebereich angeben könnte für den Robtest. Sondern eben echte Variable, also Berechnungen, die sich über die Zeit ändern. z.B. sowas wie

global calc PL: 100 + VolaCH(10,10);
global calc PerHigh: KOMP(#HIGH#, #PL#);

... damit man eben NICHT erst Robtesten muss, sondern sich die Zeitfenster selbst adjustieren. Na, aber das geht dann wohl doch nicht ;(
Gruss
Bernd

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

16

Montag, 14. Januar 2008, 08:35

Hallo Bernd,

eine Berechnung kann KOMP bislang nicht auswerten-so wie alle #---# Indikatoren das nicht können! Im besten Fall kannst Du es noch so schreiben:

const PL: [100,2,100,2,100,1,3,I];
calc PerHigh: Komp(#HIGH#, #PL#);


Die von Dir erwähnte Möglichkeit wäre ein Verbesserungsvorschlag! :) Wenn man live-durchklicken könnte wäre es auch noch eine Alternative! Das würde zwar länger dauern, aber dennoch eine gute Annäherung sein.

"Live-Klick" (ich nenne es mal so):
Man hat das Projekt geöffnet und klickt via Maus oder Pfeiltaste die Komprimierung nach oben/unten. Dabei ist das Ergebnis ohne weiteren Zwischenschritt sofort im Chart sichtbar! Ein Kennzahlenlisting könnte diese Funktion unterstützen. Das Listing würde die Kennzahlen nach Performance listen und automatisch eine Rangfolge anzeigen! Dabei kann man ja einstellen welche Kennzahlen man bei welchem Niveau als besonders schwergewichtig einstuft!
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

17

Montag, 14. Januar 2008, 09:05

Für das Verfahren würde sich ein FWT und SVM Algorithmen besonders gut eignen denn man kann lt Seminar Unterlagen von YALE auch die besten Indikatoren-Kombinationen finden!Wenn das ebenso schnell geht wie bei den Systemen kann man es sogar intraday anwenden Wenn man die Komprimierung über eine Berechnung mit GAs abstimmen würde müsste man ewig auf das Ergebnis warten. Stell Dir vor Bernd, Du hast jeweils 50 Generationen eingestellt- wie lange der PC zum testen der Kombinationen ackert, und dann ist das ganze noch nicht einmal selektiert und gelistet!
Happy Trading

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 071

Wohnort: Iringsweg

18

Montag, 14. Januar 2008, 19:14

Hallo Udo

Stell Dir vor Bernd, Du hast jeweils 50 Generationen eingestellt- wie lange der PC zum testen der Kombinationen ackert,

Das stelle ich mir nicht vor, das ist so. Leider läuft einer meiner Investox PCs fast jede Nacht und fährt diese Robtests (also nicht GA, dauert dafür noch'n bisschen länger ;( ). Gerechnet werden gegeneinander verschobene Zeitfenster, das macht die Sache nicht schneller. Die Ergebnisse sehen sehr gut aus - aber es ist Intraday nicht zu machen und wie Du sagst, dann ist es nur gerechnet und noch nicht selektiert. Ich wäre extrem an einer Innovation im Bereich KOMP() - Perioden interessiert.
Gruss
Bernd

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

19

Montag, 14. Januar 2008, 19:54

Hallo Bernd,

meiner Meinung ist ein Massentest in dem Umfang mit GA unrealistisch! Dazu sollte man andere Algorithmen zur Verfügung haben! SVM wäre eine- Heuristik eine weitere Möglichkeit ohne manuelle Selektion klar zu kommen! Bei Overnight-Tests sollte die Selektion, so wie ein "Besten-Listing" vollautomatisch funktionieren, sonst verbringt man die halbe Nacht mit dem sondieren der Ergebnisse und das ist mit GA-Algorithmen so gut wie nicht realsierbar zudem man bei komplexen Suchen mindestens 30-50 GA-Generationen benötigt! Aber selbst dann ist noch nicht gesagt, das Optimal erreicht wird! Genau hier sollte SVM (oder ähnliche Suchverfahren) weiter helfen: Optimum ohne krasses Curve-Fitting und mit (hoffentlich) Stabilität...
Happy Trading

halobungie

unregistriert

20

Mittwoch, 23. Januar 2008, 19:00

Hallo zusammen,

muss die Formel:
Komp(#Ref(Enterlong > 0, -1)#, #TS#);

zwingend Ref(...,-1) bzw. Minus 1 enthalten? Ist es korrekt, wenn Ref(...,-1) fehlt, das Handelssystem dann mit der neu ermittelten Komprimierung in die Zukunft schaut? Ich vermute dass es so ist, hätte jedoch noch gerne eine Bestätigung eines Experten.

Besten Dank für Eure Hilfe!
halobungie