Dienstag, 16. April 2024, 20:14 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

1

Mittwoch, 3. April 2013, 12:28

Überlegung um Komp() ohne inneres Ref-1 in Intraday-HS einsetzen zu können

Hallo,

ich habe ein 60min Intraday-Handelssystem und möchte dort einen GD() reinlegen der seine eigene Periode (im Bereich 1 bis 70min) hat.
Könnte man im Pyseudocode so umsetzen:

Zitat

Ref(Komp(#Ref(GD(Close,10),-1)#,#1-70min...robustbar#),-1)

, d.h. mit inneren und äußeren Ref-1 um sicherzugehen, dass der Indikator nicht in die Zukunft schaut.

Ich suche eine Möglichkeit zumindestens ein Ref-1 einzusparen (das innerer) und trotzdem keinen Zukunftsblick zu riskieren.

Dazu müsste man doch eigentlich nur erreichen, dass die interne Investoxberechung auf den Close der Perioden synchronisiert.
Ich stelle mir das so vor, wenn man die beiden Perioden graphisch, nebeneinander darstellen würde:
.......60min
.....|------------|Close (HS-Komprimierung)
.......63min
..|---------------|Close (dynamische Komp-Periode)

dann müsste eigentlich die obere Komp()-Berechnung ohne inneres Ref-1 auskommen, d.h. selbst dann wenn der Komp()-Indikator einen größeren Wert als 60min für seine Komprimierung verwenden würde, kann er die zusätzlichen Minuten (im Bsp. 3min) gegenüber der HS-Komprimierung aus der Vergangenheit holen.

Ist meine Denkweise erstmal so korrekt?
Wenn ja, wie muss Investox konfiguriert werden, damit intern so gerechnet wird? Möglicherweise hängt das ja nicht nur vom Komp()-Indikator, sondern auch noch von globalen Einstellungen ab?

Danke.

Viele Grüße
Sten

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sten« (3. April 2013, 12:34)


Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

2

Mittwoch, 3. April 2013, 22:50


Ist meine Denkweise erstmal so korrekt?


Nein, das ist alles in meinen Augen ziemlicher Unsinn.

eine KOMP() muss imho immer ein vielfaches der Grundkomprimierung des HS sein.
Also HS auf 1 Minuten Bars, dann kannst Du 60 minuten Komp verwenden um Deine Signale zu berechnen und von mir aus auch 67 Minuten um irgendwas anderes drüber zu legen.
Aber einen 60 Minuten Bar auf 63 Minuten zu komprimieren wird Dir nicht gelingen.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

3

Donnerstag, 4. April 2013, 16:00

eine KOMP() muss imho immer ein vielfaches der Grundkomprimierung des HS sein.

Das ist imho mit Nichten der Fall. Mit Neffen auch nicht :D

Innerhalb von Komp() wird eine eigene Zeitreihe ab den Tickdaten bzw. des Titels auf der Platte neu eingelesen, komprimiert und erst dann auf das Close der Basis-Komprimierung synchronisiert. Daher kann der ganze Formelsallat (ja, da kann ja nicht nur ein Titel stehen, ganze HS-Konstrukte können dort unabhängig vom Basis System und dessen Kontext eingenistet werden) innerhalb der Komp() Formel zunächst einmal unabhängig vom Grundsystem aggieren. Die Komp-Formel ist sozusagen eine völlig autarke Umgebung, fast wie ein HS im HS!

Um keinen Zukunftsblick zu erzeugen, muss dann, wenn die Komp-Komprimierung > Basiskomprimierung ist (oder auch variablen Zeitabschnitten wie Spanne und Renko etc., die potentiell geeignet sind, einmal grösser als die Basis-Komprimierung zu werden) innerhalb der Komp() Formel mit Ref( ,-1) gearbeitet werden. Letzterer Fall ist besonders tückisch, ist solch ein HS doch oft "immer" zeitstabil, aber dann plötzlich einmal doch nicht!

Damit das so erzeugte Konstrukt bei der Synchronisation auf das Close der Basis-Komprimierung nicht flattert, wird bei Open, Delay 0 dann natürlich noch ein äusseres Ref(,-1) um die gesamte Komp() Sache herum nötig (übrigens kann man mit KompSynch() auf anderes synchronisieren, z.B. auf das Open der Basis Komprimierung, dann würde m.E. das zusätzliche äussere Ref(,-1) bei Open, Delay 0 entfallen).

Langer Rede kurzer Unsinn, am Ende im Ergebniss stimme ich mit Lenzelott soweit überein, dass ich keine Möglichkeit kenne oder sehe, auf das innere Ref(,-1) dann zu verzichten, wenn die Komp() Komprimierungs-Angabe bei Open Delay 0 grösser als die Basis Komprimierung ist oder werden kann, wenn das Signal nie flattern können darf. Ich sage sogar, dass es noch ein äusseres Ref(,-1) benötigt! Andererseits stimme ich in dem anderen Punkt nicht überein: imho kann die Komp() Komprimierung kleiner sein als die Basis-Komprimierung.

Dass letzteres verschärft trickreich ist, weil sich innerhalb einer Basis-Periode mehrere Komp() Perioden die Hand reichen, steht natürlich ausser Frage :P Warum das so ist, ist jetzt mit diesen Ausführungen vielleicht klarer geworden.

Für sten: ich sehe keine Möglichkeit, wie im Beispiel 63 Minuten Komp() Perioden exakt am Close (oder mit KompSynch() am Open) einer 60 Minuten Periode enden zu lassen. Vielmehr werden die Prioden (Basis- und auch Komp()) um Mitternacht los laufen, mit den erwähnten Ref(,-1)sen zeitlich stabilisiert werden müssen und können dann erst sauber verwendet werden (sauber = Backtest entspricht realhandel). Der Kasus Knacktus ist sicher, dass ab Mitternacht vorwärtsgerechnet wird - nicht ab einer Basis-Komprimierungs Periode rückwärts in der Zeit. Imho. Es sei denn, Herr Knöpfel hat dafür nen lustigen Haken an Bord, den ich dann doch noch übersehen habe :D

Übrigens Lenzelott: wenn das wahr wäre: "eine KOMP() muss imho immer ein vielfaches der Grundkomprimierung des HS sein. ", dann könnten keine variablen Komp() Komprimierungen verwendet werden in einer zeitlich festen Basis-Komprimierung - hier floatet der Komp() Kontext ja ganz offensichtlich potentiell zwischen < und > als die Basis Komprimierung :rolleyes:
Gruss
Bernd

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

4

Donnerstag, 4. April 2013, 20:22

Aus den von Bernd beschriebenen Problemen der Zeitstabilität habe ich das hier geschrieben:

eine KOMP() muss imho immer ein vielfaches der Grundkomprimierung des HS sein.


Damit spart man sich das eine oder andere Ref(,-1) und bekommt die Signale stabil ohne Zeitverzögerung und wegen ein paar Ref(,-1) weniger auch frühzeitiger.
Dann gibt es auch zumindestens theoretisch Sinn eine 60 Minuten Komprimierung mit einer 63 Minuten Komprimierung zu mischen (auf 3 Minuten Bars kann man dann beide Signale synchron "hochkompen").
If you think it´s expensive to hire a professional, wait until you hire an amateur.

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

5

Sonntag, 21. Juli 2013, 15:12

Hallo,

Zitat

Damit das so erzeugte Konstrukt bei der Synchronisation auf das Close der Basis-Komprimierung nicht flattert,
wird bei Open, Delay 0 dann natürlich noch ein äusseres Ref(,-1) um die gesamte Komp() Sache herum nötig
(übrigens kann man mit KompSynch() auf anderes synchronisieren, z.B. auf das Open der Basis Komprimierung,
dann würde m.E. das zusätzliche äussere Ref(,-1) bei Open, Delay 0 entfallen).

Zitat

Damit spart man sich das eine oder andere Ref(,-1) und bekommt die Signale stabil ohne Zeitverzögerung und wegen ein paar Ref(,-1) weniger auch frühzeitiger.


Ich würde mal so versuchen die Aussagen wie folgt zusammen zu fassen:

1.Variante: KompSynch() mit Minutenschritten
HS: 60min mit Open & Delay=0

Zitat

Ref(KompSynch(#Open#, #60-120min mit step=1...robusten#, O),-1)


2.Variante: KompSynch() ist immer ein Vielfaches der Grundkomprimierung des HS
HS: 60min mit Open & Delay=0

Zitat

KompSynch(#Open#, #60-600min mit step=60...robusten#, O)


Aus meiner Sicht wird kein inneres Ref-1 in beiden Fällen benötigt, weil das HS auf Open & Delay=0 läuft, KompSynch() auf Open synchronisiert wird und der Openkurs sofort am Anfang der Periode fixiert ist, d.h. kann sich danach nicht mehr ändern.

Würde das so passen?

Danke.
Viele Grüße,
Sten

PS:
Gibt es denn nicht vielleicht irgend eine Möglichkeit, diese Komp() bzw. KompSynch()-Problematik so zu visualisieren (z.B. im Chart mit einer synthetische Kursformation), dass man sofort sieht, ob ein Zukunfsblick auftritt oder nicht???
Es gibt hier zu viele Variationen, z.B. Komp-Periode kleiner bzw. größer HS-Komprimierung, Komp(), KompSync() auf O H L C, Schrittweite beim robusten von min, usw., wo es sehr schwer ist ein einheitliche Regelwerk zu finden, wann man auf ein äußeres bzw. inneres REF-1 verzichten kann.

Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »sten« (21. Juli 2013, 16:22)


Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

6

Dienstag, 23. Juli 2013, 13:00

Gibt es denn nicht vielleicht irgend eine Möglichkeit, ... Problematik so zu visualisieren ... dass man sofort sieht, ob ein Zukunfsblick auftritt oder nicht???

Eine Anekdote aus meinem Leben, ein Schwank sozusagen: vor ca. 25 Jahren war ich Berater für eine Bank im mittleren Segment, alles IBM Grossrechner: der Systemer stürmte mein Büro, es war meine ganze Crew anwesend. Sein Statement war: "Sie ersetze ich mit einem Stück Silizium" :rolleyes: Möglicherweise waren wir in seinen Augen zu teuer oder was auch immer ihn geritten hat.

Ich würde ihm wünschen, dass es ihn noch gibt; im Besten Fall ist er inzwischen lange pensioniert. Tatsächlich gibt es noch keinen solchen Mechanismus, der einen erfahrenen Programmierer oder gar Systementwickler ersetzt. Nicht einmal annähernd. Nix in Sicht in diesen Tagen, was das Denken und die Erfahrung ersetzt.

Natürlich würde es auch mich in meiner aktuellen Tätigkeit freuen, wenn Herr Knöpfel da eine adäquate Idee in Investox manifestieren könnte :)
Gruss
Bernd

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

7

Freitag, 26. Juli 2013, 12:30

Hallo,

stellen wir mal die Idee für ein "einheitliche Regelwerk" für den Moment zurück und betrachten wir nur diese beiden Spezialfälle:

1.Variante: KompSynch() mit Minutenschritten
HS: 60min mit Open & Delay=0

Zitat

Ref(KompSynch(#Open#, #61-120min mit step=1...robusten#, O),-1)


2.Variante: KompSynch() ist immer ein Vielfaches der Grundkomprimierung des HS
HS: 60min mit Open & Delay=0

Zitat

KompSynch(#Open#, #60-600min mit step=60...robusten#, O)


Aus meiner Sicht wird kein inneres Ref-1 in beiden Fällen benötigt, weil das HS auf Open & Delay=0 läuft, KompSynch() auf Open synchronisiert wird und der Openkurs sofort am Anfang der Periode fixiert ist, d.h. kann sich danach nicht mehr ändern.

Ist das so korrekt zusammengefasst oder habe ich hier einen schönen "Gugi" (mit Zukunftsblick) gebaut?

Viele Grüße,
Sten

PS:
Ich habe zum besseren Verständnis als Bild die 1.Variante mit Ref(KompSynch(#Open#, #110#, O),-1) angehängt, wobei diese Zeitreihe als Punkt dargestellt wird, über den 60min-KerzenChart der HS-Komprimierung. Die KompSynch()-Punkte liegen nur zum Teil dort, wo ich sie erwarten würde.
»sten« hat folgendes Bild angehängt:
  • 130726_60minKerzenchart_mitKomp(O,110min)alsPunkt2.GIF

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »sten« (26. Juli 2013, 13:03)