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

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Giuseppe Männlich

Meister

Registrierungsdatum: 31. März 2004

Beiträge: 556

Wohnort: Wien

1

Donnerstag, 3. März 2016, 23:33

TickOrder liefert 0 obwohl beide Limits erreicht wurden

Hallo liebe Kollegen,

ich entwickle gern Ausbruchsysteme und erwische mich immer wieder dabei, wie ich in einer Periode zwei Ausbruchslevels definiere. Ein Level für die Long- ein für die Short-Seite. So lange die Bedingungen für nur eine Ausbruchsrichtung zutreffen, ist alles ok. Wenn aber beide Ausbruchsrichtungen in einer Periode unter/überschitten werden, ist ja fraglich welches Trade umgesetzt werden sollte. In Investox ist es bei der Simulation das letzte Signal. Das bedeutet, dass wenn bereit ein Short-Trade läuft (weil Short-Ausbruchslevel in laufender Periode unterschritten wurde) und der Kurs anschließend steigt und den Long-Ausbruchslevel überschreitet, wir das Short-Trade zu einem Long-Trade. Solches Verhalten entspricht natürlich nicht dem Realhandel und kann beim Backtesten zu falschen Schlußfolgerungen bei der Beurteilung von Handelssystem führen.

Die mögliche Vorgehensweisen, die mir bis jetzt bekannt sind, um das beschriebene Problem umzugehen sind:

1) Nur ein Ausbruchslevel pro Periode definieren. Also entweder Long oder Short.
2) Niedrigere Komprimierung nehmen - am besten wahrscheinlich Tickdaten. Wobei wenn man von Tages- zu Tick-Komprimierung wechselt, spürt man es gleich an Lade- und Optimierungs-Zeiten. Somit nicht ganz optimal.
3) Verwendung von TickOrder. Investox Hilfe:

Zitat

Ermittelt, ob in einer Periode zuerst ein High- oder ein Low-Limit aufgetreten ist.

Die Funktion „TickOrder“ berechnet die Reihenfolge von High-/Low-Limits auf Tickbasis. Es kann damit festgestellt werden, ob sich die Kurse in einer Periode zuerst auf ein High- oder auf ein Low-Limithin bewegt haben. Der Indikator kann damit als Triggerfür ein Limitsystem eingesetzt werden.

Hinweis: Die Auswertung kann nur bei RTT-Titeln auf Tickbasis erfolgen. Die Berechnung kann bei längeren Datenhistorien auf der Basis einer großen Tickanzahl längere Zeit dauern.
Mein Versuch TickOrder zu verwenden (wie in Investox Hilfe beschrieben) dokumentiert das beiliegende Bild:

Zitat

TickOrder(Ref(High,-1), Ref(Low, -1))

Hier wird berechnet, ob in der aktuellen Periode zuerst das High oder das Low der Vorperiode erreicht wurde. Wird keines der beiden Limits
erreicht (in diesem Fall also ein „InsideBar“), ist das Ergebnis für die Periode der Wert 0.



Wie man sieht, in der untersuchten Periode wurde sowohl das High als auch das Low der Vorperiode (rote und grüne senkrechte Linien) erreicht. TickOrder liefert aber 0 - laut Hilfe wurde keine der beiden Limits erreicht. Ich habe hier entweder 1 oder -1 erwartet.

Kann mir das bitte jemand erklären? Was mache ich falsch? ?(

Danke!
Giuseppe
keep going on...
Inv [7.6.7]

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Donnerstag, 3. März 2016, 23:49

Klingt nach Systeme trennen und beide gleichzeitig laufen lassen, eines darf nur Long, eines nur Short. Hilft nicht?, oder noch nicht in Betracht gezogen?
Gruss
Bernd

Giuseppe Männlich

Meister

Registrierungsdatum: 31. März 2004

Beiträge: 556

Wohnort: Wien

3

Freitag, 4. März 2016, 08:30

Hallo Bernd,

danke für deine Antwort. Hmm... ich bin mir nicht sicher ob das die Lösung wäre. Ich habe folgenden bedenken:

1) entweder würde man in zwei vorgeschlagenen Systemen gleichzeitig Long und Short sein (bezogen auf das Realhandel)
2) oder würde man die erste Position mit der zweiten eliminieren (bezogen auf das Realhandel, angenommen die Stückzahl ist bei beiden gleich)
3) in beiden Systemen würde man ja trotzdem nicht wissen welches Level zuerst erreicht wurde (bezogen auf Backtest)

Mein Ziel ist, in den oben beschriebenem Fall, nur eine Position zu öffnen und zwar die, bei der Limit zuerst über-/unterschitten wird. Sollte dann das zweite Limit, bei einer schon geöffneten Position ein Signal generieren, soll dieser Signal ignoriert werden. Und es geht mir momentan nur darum solches Setup zu Backtesten.

LG
Giuseppe
keep going on...
Inv [7.6.7]

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

4

Freitag, 4. März 2016, 12:39

Klingt nach Systeme trennen und beide gleichzeitig laufen lassen


genau so mache ich das.

Zitat

2) Niedrigere Komprimierung nehmen - am besten wahrscheinlich Tickdaten. Wobei wenn man von Tages- zu Tick-Komprimierung wechselt, spürt man es gleich an Lade- und Optimierungs-Zeiten. Somit nicht ganz optimal.

Direkt von der Oberfläche der Sonne in die Arktis, was ein Unfug.
Dein Problem wird sich auf 15 Minutenbars mit Sicherheit auflösen.

Generell:
Wenn in einem System beide Enterregeln (long und Short) gleichzeitig zutreffen, nimmt Investox glaube ich immer nur den Long Trade.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Snoopy

unregistriert

5

Freitag, 4. März 2016, 20:03

Hallo Giuseppe,
eine Möglichkeit wäre Tickorder. Dieser benötigt aber sehr viel Ressourcen. Welche Grundkomprimierung hast du für den Wochenchart bei deinen beschriebenen Fehler?

Gruß Snoopy

Giuseppe Männlich

Meister

Registrierungsdatum: 31. März 2004

Beiträge: 556

Wohnort: Wien

6

Samstag, 5. März 2016, 11:10

Hallo Snoopy,
eine Möglichkeit wäre Tickorder
Ja, diese Möglichkeit versuche ich jetzt auszuprobieren.
Welche Grundkomprimierung hast du für den Wochenchart bei deinen beschriebenen Fehler?
Chart: Wöchentlich. Basis-Kombititel: Tageskomprimierung. Ich verstehe es so, dass je kleiner die Basis-Komprimierung desto genauer die TickOrder Ergebniss. Und bei Tick-Komprimierung sind dann die TickOrder-Daten genau. Also je genauer die Ergebnisse von TickOrder = je kleinere Komprimierung von Basis-Zeitreihe, deste größer ist der Ressourcen-Verbrauch.

Zu dem Fehler: ich denke ich habe das Problem identifiziert. In dem getesteten Kombititel hatte ein einen anderen Kombititel gehabt. Nachdem ich diesen entfernt habe, scheinen die Ergebnisse von TickOrder plausibel zu sein.
Dieser benötigt aber sehr viel Ressourcen
Ja, kann ich bestätigen :)

Kannst du meine Annahmen in zweitem Teil bestätigen?

Danke!

LG
Giuseppe
keep going on...
Inv [7.6.7]

Snoopy

unregistriert

7

Sonntag, 6. März 2016, 19:06

Hallo Giuseppe,
für den Tickorder Indikator sind Tickdaten erforderlich, das heißt er schaut nach den Close Daten (Tickdaten). In der Basis-Komprimierung Tageskurse schaut er welches Tages-Close zuerst das vorherige Wochen High/ Wochen Low berührt hat.

Zitat

Mein Ziel ist, in den oben beschriebenem Fall, nur eine Position zu öffnen und zwar die, bei der Limit zuerst über-/unterschitten wird. Sollte dann das zweite Limit, bei einer schon geöffneten Position ein Signal generieren, soll dieser Signal ignoriert werden. Und es geht mir momentan nur darum solches Setup zu Backtesten.

Mit der langen Historie wäre der Einsatz vom Tickorder Indikator beim Backtest nicht empfehlenswert, da soviel Rechenpower notwendig wäre. Ich würde empfehlen das System mit z.B. 60min Komprimierung zu erstellen.


Gruß Snoopy