Freitag, 26. April 2024, 21: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.

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

41

Dienstag, 13. September 2005, 16:21

Hallo Herr Knöpfel,

Sie schreiben weiter oben mit Tickdaten testen!Sie meinen aber nicht, ein EOD komprimiertes System über 5 Jahre mit Tickdaten testen?
Happy Trading

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

42

Dienstag, 13. September 2005, 21:19

Hallo zusammen,

ich bin leider etwas knapp mit der Zeit, könnte zu Udos

Zitat

a) EOD-komprimiert
b) mit LimitKurs(Ref(Spalte(ST), -2), S, HL, C, 0)
c) P&F berechnet auf Open-Kurse


noch etwas beitragen , weil die Erklärung einfach Zeit braucht. Ich denke, dass ich das vielleicht morgen Abend nachholen kann.
Viele Grüße,
Hans-Jürgen

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

43

Dienstag, 13. September 2005, 21:45

Hallo,

es ist vermutlich sinnvoll, immer auf die konkrete Vorlage, also auf Hans-Jürgens HS zurückzugehen, damit wir nicht aneinander vorbeireden. Wenn ich mir das HS in der letzten Fassung ansehe, so funktioniert es problemlos (jetzt mal ohne Stops betrachtet), auch in der Simulation.
Die Frage war jetzt, warum das Ergebnis in der Simul abweicht, wenn man den Trigger im LimitKurs()-Indikator mit High/Low auswertet. In der Tat ist das Backtest-Ergebnis im Vergleich zur Simul in diesem Fall zu gut. Den Grund kann man in der Simul. beobachten. Durch die High/Low-Auswertung wird das Signal im Backtest u.U. um einen Tag vorverlegt. Warum? Weil die Auswertung LP > 0 auf Closekursen beruht. Sobald diese zutrifft, wird dann der Trigger mit High/Low ausgewertet, so dass das Signal (Limitkurs>0) auf einmal früher erscheint. Angenommen in Periode n erscheint eine neue Spalte. In n+1 ist dann SP >0 erfüllt. Aber bereits in n hatte das High das Limit erreicht. Daher ist nur eine Auswertung mit C hier korrekt. Kurz gesagt: sobald im Setup eine Berechnung auf Close vorliegt, muss auch der Trigger im LimitKurs-Indikator Close verwenden.
Die Frage zum LImitkurs-Indikator ist damit jetzt vielleicht geklärt. Das Thema Stops sollten wir dann ebenfalls mit einem konkreten Bezug besprechen. Also welcher Stop soll jetzt in dieses System eingebaut werden und welche Probleme treten dabei auf.

Viele Grüße
Andreas Knöpfel

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

44

Dienstag, 13. September 2005, 22:28

Hallo Herr Knöpfel

>>Aber bereits in n hatte das High das Limit erreicht. Daher ist nur eine Auswertung mit C hier korrekt.

Das würde aber auch heissen, das Limit Kurs ein zeitbasiertes HIGH_LOW auswertet wenn die P&F Spalte noch gar nicht generiert ist denn wenn man HIGH_LOW n+- 0 auswertet und Close +-0 einsteigt müsste eigentlich ein binärerer Wert =1 stehen falls der Trigger erreicht wurde. Somit wird ein zeitbasierter Balken REF-1 ausgewertet! Habe ich das richtig verstanden?

Angenommen das System soll zum P&F Close in der gleichen Periode (Tag)einsteigen wenn der zeitbasierte Komprimierung den Trigger erreicht hat! Kann man das realisieren?

Beispiel:

Der Trigger liegt bei 4000 Punkten. Das High des heutigen Tages erreicht 4000 Punkte und gibt ein Signal. Das P&F System steigt zum Close ein!

Was wird berechnet wenn man im gleichen Zusammenhang anstatt ENTRY Close ENTRY Open DELAY 1 einsetzt?Welcher Wert wird von Limit_Kurs zurückgegeben?
Happy Trading

Mikel

unregistriert

45

Mittwoch, 14. September 2005, 09:24

Hallo Herr Knöpfel

Zu den Stops:
Wenn wir Hans-Jürgens EOD-System als Grundlage nehmen, soll dort ein Stop aus dem Stop-Katalog eingebaut werden.
Als Auswahl möchte ich den Kursverlust-Stop, alternativ den Trailing-Stop vorschlagen.
Nehmen wir also an, dass wir einen Kursverlust-Stop von [L_Stop] Prozent haben, wobei [L_Stop] nachher noch optimiert werden soll.

Falls es ein universelles Vorgehen gibt, können andere Stops dann vermutlich analog implementiert werden.

Das Problem ist jetzt die Abrechnungsbasis. Wenn der Stop innerhalb der P&F abgerechnet werden soll, sehe ich keinen Weg, dies korrekt zu berechnen.

Gruss, Michael

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mikel« (14. September 2005, 09:38)


Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

46

Mittwoch, 14. September 2005, 09:58

Hallo,

@udo:
Das könnte in diesem Beispiel sogar auch sein, da P&F auf Close berechnet wird. Auch da muss man mit High/Low als Trigger aufpassen. Man sollte High/Low also nur verwenden, wenn alle Komponenten der Berechnung ebenfalls auf Open bzw. High/Low basieren.

@Mikel: da würde ich einen Intraday-Verluststop verwenden, der ab der 2. Spalte der Position wirksam ist. In der ersten Spalte wird es in diesem System mit Stops (für den Backtest) wie schon gesagt schwierig, weil schon der Einstieg per Limit erfolgt ist. Wenn das gewünscht wird, müsste man System noch auf eine zeitbasierte Basis stellen.

Viele Grüße
Andreas Knöpfel

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

47

Mittwoch, 14. September 2005, 20:16

Hallo zusammen,

Herr Knöpfel hat ja schon einiges klargestellt, u. a.:

Zitat

Man sollte High/Low also nur verwenden, wenn alle Komponenten der Berechnung ebenfalls auf Open bzw. High/Low basieren


Uneingeschränkte Zustimmung! Ich gehe sogar noch weiter (alles für P&F-Systeme/Komp > Tick):
Basiskomp: Close
hier sollte man nur mit Limitkurs(xxx, C, C, 0) nur Close, Delay 0, als EnterBasis zurückgeben lassen, wenn man den Sofortgewinn-Stopp verwenden will.

Basiskomp: Open
hier sollte man nur mit Limitkurs(xxx, O, O, 0) nur Open, Delay 0, als EnterBasis zurückgeben lassen, wenn man den Sofortgewinn-Stopp verwenden will.

Alles andere führt zu Ergebnissen, die zu gut sind, wenn man den Sofort-Gewinn-Stopp verwendet. Spätestens wenn man 80% profitable Trades in der Liste hat, sollte man davon ausgehen, dass das Zusammenspiel von Basiskomp und Limitkurs() "fehlerhaft" ist.

Nur bei Sofortstopp:
Man muss sich dabei immer vorstellen, wie sich der P&F-Chart aufbaut und was in der kleineren Komp passiert bzw. wie die Candle dort aussieht.
Beispiel für einen Trade, der nicht möglich ist, im Backtest aber auftaucht und somit das HS zu gut macht (kein Fehler von Limitkurs, sondern ein Fehler im Design des HS):
Basiskomp: Open (EoD); Sofortgewinn-Stopp; LimitKurs(XXXX, O, C, 0)
Das sieht auf den 1. Blick ganz ok aus. Limitkurs soll, wenn das Open eine Marke (Doublebottom etc.) getriggert hat, das Tages-Close als EnterBasis zurückgeben. Es sieht nicht so aus, das dabei etwas in die Zukunft schaut, der P&F-Chart steht mit dem Open fest und das Close wird auch problemlos ermittel.
(O-Spalte/Short-Trade): Eröffnet der Kurs aber so tief, dass die Marke XXX getriggert wird und steigt der Kurs nach dem Open stark, wird LimitKurs(XXXX, O, C, 0) das Close zurückgeben und der Sofortgewinn-Stopp wird ausgelöst, wenn das Gewinnziel kleiner Close - Open oder wenn das Gewinnziel kleiner Reversal - Open ist. Bei diesen Fällen wird immer ein Gewinn im Backtest verbucht, obwohl der Kurs gar nicht mehr in die Gewinnrichtung lief.

Das kann man jetzt für die anderen Varianten auch durchspielen und man wird auf das gleiche Ergebnis kommen. Sauber läuft der Backtest nur, wenn man obige Hinweise beachtet.
Viele Grüße,
Hans-Jürgen

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

48

Mittwoch, 14. September 2005, 21:30

Hallo Hans-Jürgen

Zitat

Basiskomp: Close
hier sollte man nur mit Limitkurs(xxx, C, C, 0) nur Close, Delay 0, als EnterBasis zurückgeben lassen, wenn man den Sofortgewinn-Stopp verwenden will.

Basiskomp: Open
hier sollte man nur mit Limitkurs(xxx, O, O, 0) nur Open, Delay 0, als EnterBasis zurückgeben lassen, wenn man den Sofortgewinn-Stopp verwenden will


In Bezug auf den Sofort Stopp ist noch einen zweite Variante möglich: Wenn Limit_Kurs des ersten Levels abgeprüft wird und den Sofort Stopp nicht erreicht kann man mit Delay einsteigen!Es ist komlpizierter zu programmieren,funktioniert aber! Allerdings werden durch das Filtern des ersten Levels auch Trades eliminiert die u.U. laufen würden und das ist der Nachteil!

Ich habe das System etwas überarbeitet! Es ist problematisch weil man BOX_SIZE und Reversal nicht mit GA optimieren kann. Ich habe ca. 30 Minuten an beiden Einstellungen gedreht und denke das es immer noch nicht das Optimum ist!Es bringt nicht mehr ganz so viel Profit aber man kann es sicher noch weiterausreitzen aber mit einzelnen Mausklicks (BS,Reversal) ist es sehr mühselig!



@ Herrn Knöpfel

Leider ist es so, das vieles von der P&F Einstellung, BOX_SIZE und Reversal, abhängig ist! Wenn ich dieses System mit einem 2 Reversal berechne sind die kennzahlen wesentlich schlechter!In Bezug auf die BOX_Size ist es stabiler! Ich hoffe das Sie in absehbarer Zeit, BS und Reversal zum bearbeiten mit GAs einfügen können!
»Udo« hat folgendes Bild angehängt:
  • Forum.png
Happy Trading

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

49

Donnerstag, 15. September 2005, 21:32

Hallo Udo,

kannst du deine Speziallösung posten, damit man es nachvollziehen kann. Am WE findet ich bestimmt Zeit dazu.
Viele Grüße,
Hans-Jürgen

Mikel

unregistriert

50

Donnerstag, 15. September 2005, 21:56

Hallo Udo,

Das würde mich auch interessieren. Das mit den Stops kriege ich einfach nicht vernünftig hin.

Gruss, Michael

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

51

Donnerstag, 15. September 2005, 22:19

Hallo,

meint ihr das prüfen des ersten Levels wenn Kurs_Limit mit Delay arbeitet oder das System in der Grafik?

Wie schon geschrieben ist es so,das ein nachfolgender Level den Stopp abermals erreichen kann! Man müsste demzufolge den ersten Level und die folgenden nach dem ENTRY Level prüfen! Ich habe es so gelöst, das der erste Level nie grösser sein darf wie LEVEL Kurs_Limit Delay1, Abstand OPEN-STOPP, was nicht optimal ist! Ist der erste Level > Stopp steigt das System nicht ein, da angenommen werden muss das Level 1 das max.High sein könnte!Ich werde es,vermutlich am WE,detailliert beschreiben und posten!
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

52

Donnerstag, 15. September 2005, 22:34

@ Herrn Knöpfel

Eine Frage wegen der Verbindung Master_Slave:

Wäre es nicht realisierbar das Master keinen Zeitstempel sendet sondern nur ein Signal? Wo kein Zeitstempel ist muss nichts syncronisiert werden! Wenn Slave von MASTER ENTER_LONG empfängt, steigt es ein was den Vorteil hat das es individuell nach der eigenen X-Achse arbeiten kann! Somit würden die Syncronisationsprobleme behoben? Man könnte auf dieser Basis m.M. sogar sehr einfach eine Subsystem Verkettung programmieren...
Happy Trading

Vuego

Meister

Registrierungsdatum: 30. August 2002

Beiträge: 999

53

Donnerstag, 15. September 2005, 23:21

Hallo Udo,
Wieso sendet Master einen Zeitstempel?
Es wird normalerweise lediglich ein Signal geschickt nachdem dieses im Master entstanden ist.
Natürlich besitzt dieses Signal im Slave anschließend einen Zeitstempel, der logischerweise identisch mit dem Signalzeitpunkt im Master sein muß.
Man kann dann im Slave unabhängig vom Master weiterarbeiten.
Gruß, Vuego

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

54

Donnerstag, 15. September 2005, 23:37

Hallo vuego,

ich fürchte so ist es nicht ganz denn sonst würde Slave nicht auf den exakten Zeitstempel vom P&F Master zurückspringen,aber genau das tut es!

Beispiel:

Wenn man einen P&F Ausbruch tradet und dieser erfolgt am dritten Tag nach Spalte(SE) springt das zeitbasierte HS exakt auf das Datum der Spalteneröffnung zurück anstatt die aktuelle Zeitperiode direkt zu nutzen! Demzufolge muss der Master Zeitimpuls einen gewisse Zeit-Steuerung in Slave übernehmen denn sonst würde Slave die eigene X-Achse für die Signaljustierung einsetzen und sich nicht steuern lassen!

Da P&F nicht mit der X-Achse verbunden ist würde ein Signal-Impuls für Slave genügen! Slave kann das Signal anschliessend auf der X-Achse rasten, und zwar dort, wo sich der Kurs zum Zeitpunkt des Master-Impulses exakt befindet! Somit wäre eine Übetragung 1:1,Master_Slave ohne grösseren programmiertechnischen Aufwand gewährleistet!
Happy Trading

Vuego

Meister

Registrierungsdatum: 30. August 2002

Beiträge: 999

55

Freitag, 16. September 2005, 00:09

Hallo Udo,
das ist doch die alte Diskussion:

1 - alternativer BoxZeitstempel was aber anscheinend nicht oder sehr schwer/aufwendig zu machen ist
2. mit Komp() im Slave arbeiten. Dann bräuchte man auch nicht zwangsweise ein Master/Slave-Konstrukt.

unabhängig davon:

Zitat

und zwar dort, wo sich der Kurs zum Zeitpunkt des Master-Impulses exakt befindet!

das geht wohl schlecht, denn dann was passiert in so einem Fall, wenn man einen Chart zu/aufmacht? Alles was im RAM wäre weg...
Man muß auch später anhand der Datenhistorien Signale anzeigen können.
Gruß, Vuego

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

56

Freitag, 16. September 2005, 09:43

Hallo vuego,

das Problem mit Master_Slave tritt nur bei nicht zeitabhängigen Chartformen wie RENKO,P&F,Spannencharts usw.auf da sie nicht an einen Zeitachse gebunden sind bzw. aufgrund der gestapelten Chartform sich mehere Time-Peaks überlagern!Investox kann verständlicherweise aber nicht eine gestapelte X-Achsen darstellen und somit mehrere Peaks innerhalb einer Spalte berechnen! Stapeln liessen sich nur Wertachsen wie man sie bei der Häufigkeitsverteilung findet!


Sendet man ein Signal an einen Chart der zur Darstellung an einen Zeitachse gebunden ist wird der erste Time Stamp der P&F Spalte geliefert!Ob dieser von Spalte(SE) bis zum Signal 3 Tage oder 3 Wochen Abstand hat spielt keinen Rolle und hier liegt das Kernproblem was das exakte projizieren verhindert!Würde man das beheben können dann wäre Master_Slave eine sehr einfache Sache!

Wie man es dreht und wendet hindern immer wieder die gestapelten Time Stamps der Spalte zum simplen projizieren! Kurs_Limit wurde in erster Linie für den Backtest konzipiert! Es stellt sich nun die Frage ob Kurs_Limit in der Lage ist einen Zeitstempel zu übertragen denn es scheint auf einer zweiten Zeitebenen rechnen und K_L einzubinden!Aber da K_L ein Indikator und keine Zeitreihe ist, kann kein Time_Stamp projiziert werden!Zudem ist es ebenfalls ein gestapelter Wert der sich nur auf die Y_achse bezieht! Folglich könnte K_L nur ein wertt projizieren,keinen Time Stamp!

Fazit: Kurs_Limit müsste einen Wert bzw. einen Impuls ohne Berücksichtigung der Zeit an Slave übertragen.Ein Backtest ist weder mit einem Übetrag des Zeitstempels noch eines Wertes durchführbar.Die Zeitstempelsyncronisation ist nur durchführbar wenn eine zweite "echte" Zeitebene auf einer Subebene existieren würde aber nicht auf der gleichen Y-Achse wie der P&F Chart!Zudem müssten Indikatoren Zeitstempel versenden können was man ev. in einem BT (und viel Phantasie) lösen kann aber nicht innerhalb der Underlyings selbst!Was bleibt ist in der Tat,so wie es aussieht nur die Transformation in KOMP!
Happy Trading

Vuego

Meister

Registrierungsdatum: 30. August 2002

Beiträge: 999

57

Freitag, 16. September 2005, 10:05

Hallo,

Zitat

Fazit: Kurs_Limit müsste einen Wert bzw. einen Impuls ohne Berücksichtigung der Zeit an Slave übertragen.


Du meinst wohl genau andersherum -
wenn KursLimit() in der Lage wäre einen Zeitstempel zu liefern, dann könnte man einfach im Slave synchronisieren

Das war im übrigen ein zweiter Vorschlag meinerseits: TimeIndiStamp()

Gruß, Vuego

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

58

Freitag, 16. September 2005, 10:29

Hallo vuego,

nein,ich meinte schon einen Wert und Impuls,keinen Time Stamp .Für den Backtest ist das ohnehin nicht von belang da der TimeStamp von K_L wieder gestapelt wäre und auf einer Subebene abgeglichen werden müsste!K_L ist ein Indikator und daher abhängig vom Time Stamp der Basis_Komp. Eventuell können interne Zeitstempel berechnet werden die aber nicht projiziert werden können!Für den real Betrieb würde somit ein Impuls genügen damit Slave"weiss" das ein Signal anliegt.Der Nachteil ist m.M. das mit beiden Varianten kein Backtest durchgeführt werden kann und das Signal lässt sich historisch nicht auf der Subebene abspeichern und anschliessend abfragen!

Entweder man findet eine praktikable Lösung hinsichtlich der Stopps innerhalb der P&F Komprimierung oder man transformiert mit KOMP was aber auch nicht ganz so einfach ist vor allen dann nicht, wenn die Regeln komplex sind!
Happy Trading

Vuego

Meister

Registrierungsdatum: 30. August 2002

Beiträge: 999

59

Freitag, 16. September 2005, 10:43

Hallo,

Zitat

...da der TimeStamp von K_L wieder gestapelt wäre

Was soll denn gestapelt sein? Wenn man Ausbrüche handelt, gibts ohnehin nur 1 * den LimitKurs() pro Spalte.
Ggfs. hätte man ja dann mehrere TimeStamps von LimitKurs(), die man chronologisch ja im Slave zur weiteren Bearbeitung nutzen könnte.
Oder halt mit Komp() arbeiten....

Mikel

unregistriert

60

Freitag, 16. September 2005, 10:54

Hallo Udo,

Gemäss meinen Versuchen funktioniert das mit der Komp-Transformation nicht immer zufriedenstellend.
Gemäss meinen Versuchen sind die Stops dann zwar ok, die Signalgenerierung kann dann aber Probleme bereiten.

Weitere Nachteile mit Komp:
- Performance-Einbruch, da mehr Ressourcen verbraucht werden
- Umprogrammierung recht heikel.

Schon das recht einfache HS von Hans-Jürgen, zweite Fassung, lässt sich nicht zu 100% umsetzten.

Das Grundproblem ist, wie mir scheint, dass hier zwei Komprimierungen aufeinander treffen, die so nicht ohne weiteres vereinbar sind. Auf der einen Seite die Komprierung durch Kurs, auf der anderen über die Zeit.

Der Konflikt lässt sich aus meiner Sicht im Moment leider nur zu 100% sauber lösen durch die Verwendung von Tickdaten. Dadurch verschwindet quasi die Zeitebene, und die Abrechnung über P&F passiert korrekt.

Eine andere Möglichkeit läge in einem speziellen Berechnungsmodus, welche Herr Knöpfel einprogrammieren müssen.
Hier würde Investox überprüfen, welche Komprimierung die Daten hat, und dann das HS seqenziell über die Zeit abrechnen. Dies wäre dann wie die Datensimulation im Schnelldurchlauf.
Diese Art der Abrechnung würde natürlich viel länger dauern, wäre dann aber zu 100% richtig und die Stops wären auch kein Problem mehr.

Ich wäre nicht beschränkt auf Sofort und Intraday-Stops.

Nur so ein paar Gedanken. :]

Grüsse, Michael

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mikel« (16. September 2005, 10:56)