Dienstag, 16. April 2024, 10:28 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

G.Funke

unregistriert

1

Freitag, 19. Oktober 2007, 19:44

ATR Trailing Stop

Hallo,

ich habe ein kleines Problem.

Ich benutze nun seit einiger Zeit ein HS auf Tagesbasis.
Dieses HS verwendet als Stop einen ATR Trailing Stop.
Als Delay habe ich 1 und als Einstiegs bzw. Ausstiegsbasis Open() angegeben

Nun möchte ich ein Intraday System dazu verwenden um die ( vom Tagessystem generierten .... ) Ein bzw. Ausstiege zu optimieren.

In dieses Intraday System habe ich die Enter Long bzw. Short Funktionen des Tagessystems mit einer Tageskomprimierung und Ref(.....,-1) eingegeben.

Das funktioniert auch einwandfrei. Die Signale werden genau so wie im Tagessystem ausgelöst.

Was nicht funktioniert ist der ATR Trailing Stop. Dieser Stop soll nur die Schlusskurse ( also nicht die laufenden Intradaykurse .... ) des Vortages zur Berechnung verwenden um dann den Stop auszulösen.

In den Definitionen des Intraday Systems habe ich hierzu folgendes eingegeben:

calc myATR: Komp(#Ref(ATR(10) * 2,-1)#, #T#);
calc myClose: Komp(#Ref(Close(),-1)#, #T#);
global calc ATRLimit: myClose - myAtr;

Ich habe es nun mit verschiedenen Trailing Stops versucht und unter "Bezugsdaten zur Berechnung des Stoplevels" ATRLimit eingegeben.
Die Stops funktionieren auch ... nur ..... ATRLimit wird jeden Tag neu berechnet und nicht im Sinne eines Trailingstops fortgeführt.

Der Intraday Trailing Stop soll also erst dann auslösen wenn die Bedingungen des Tages Trailing Stops vom Vortag eintreffen.
In diesem Stop könnte man dann unter "Zusatzbedingungen" weitere Optimierungen vornehmen.

Ist hoffe mich einigermassen verständlich ausgedrückt zu haben.

Wäre schön wenn mir hier jemand einen Tip geben könnte

Grüsse

Gerd Funke

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

2

Sonntag, 21. Oktober 2007, 01:01

Wie wäre es mit einem einfachen exit short:
Close > Limit
Long andersrum.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

G.Funke

unregistriert

3

Sonntag, 21. Oktober 2007, 14:28

Hallo,

bei einem einfachem Exit Short bzw. Long würde das System bei der Definition

--> calc myATR: Komp(#Ref(ATR(10) * 2,-1)#, #T#);
--> calc myClose: Komp(#Ref(Close(),-1)#, #T#);
--> global calc ATRLimit: myClose - myAtr;

immer nur den ATR des Vortages verwenden und nicht wie gewünscht eine Trailing Funktion haben.

Bin aber dank dieses Forums etwas weiter gekommen.
Ich verwende nun einen Anwenderstop mit folgender Definition:

-->calc myATR: Komp(#Ref(ATR(10) * 2,-2)#, #T#);
-->calc myClose: Komp(#Ref(Close(),-1)#, #T#);
-->calc Limit: myClose - myAtr;

-->calc StopLimit: HighestSince(Limit, TradePeriods=1, 1);

-->calc #_StopLevel#: StopLimit;

-->myClose < StopLimit

Das funktioniert auch in einigen wenigen Fällen so wie im Tagessystem .... aber eben nur in wenigen.
In den allermeisten Fällen werden hier völlig andere ( viel zu tiefe .... ) Limits als im Tagessystem berechnet.

Und den Grund suche ich nun schon fast zwei Stunden und finde ihn nicht.
Ich habe die Erleuchtung leider noch nicht gehabt.

Einfach wäre es wenn man eine Variable deklarieren könnte die beim Start des Trades mit dem Startlimit initialisiert würde und die dann bei Bedarf einfach erhöht wird.

Grüsse

Gerd Funke

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

4

Sonntag, 21. Oktober 2007, 15:02

Lass Dir Deine Berechnung doch einmal im Chart als Formel anzeigen.

Dann erkennst Du am ehesten, wo der Fehler liegen kann.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

G.Funke

unregistriert

5

Sonntag, 21. Oktober 2007, 15:47

Hallo,

Mach ich schon die ganze Zeit .....

Dieses war schon mal ein Denkfehler:

-->calc myATR: Komp(#Ref(ATR(10) * 2,-2)#, #T#);

muss heissen

-->calc myATR: Komp(#Ref(ATR(10) * 2,-1)#, #T#);

Die Limits werden aber trotzdem anders als im Tagessystem berechnet.

Grüsse

Gerd Funke

:baby:

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

6

Sonntag, 21. Oktober 2007, 21:44

Zitat


ATRLimit wird jeden Tag neu berechnet und nicht im Sinne eines Trailingstops fortgeführt.


Der 10 Tage ATR ändert sich ja auch jeden Tag.

Generell muss ich gestehen, habe ich gerade Verständnissschwierigkeiten was Du überhaupt wann genau erreichen willst. ?(

Du kannst in einem Intraday Trailingstop eine Zusatzbedingung definieren, zB

Quellcode

1
close>lastdp(close)+Komp(#Ref(ATR(10) * 2,-1)#, #T#)


Wenn das nicht hilft, stell doch ein paar Charts ein und zeichne ein, wo welcher Stopp warum greifen soll.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

G.Funke

unregistriert

7

Montag, 22. Oktober 2007, 19:41

Hallo,

ist relativ einfach zu verstehen ....

Ich habe ein HS auf Tagesbasis. Dieses HS handel ich nun seit fast 9 Monaten real.
Erfreulicherweise mit Erfolg ......
Als Delay für Enter und Exit ist 1 eingestellt.
Als Enter und Exitbasis verwende ich Open().
Das heisst ich kaufe bzw. verkaufe sobald das System ein Signal abgibt am Begin des nächsten Tag zum Open Market Price.

Nun ist Open sicherlich manchmal gut und auch manchmal schlecht.
Wer weiss das schon ???????

Und genau das wollte ich mit einem Intraday Sytem testen und möglichst optimieren.

Um das aber möglichst genau abzubilden musste ich den im Tagessystem verwendeten Stop Intraday nachbilden.
Die Einstiege waren mit dem Komp() indikator und Ref(...,-1) einfach.

Nur der Stop hatte es in sich.

Daher hier meine Frage .......

Hab es aber zwischenzeutlich gelöst.

Folgendes bildet den Stop bei einer 10 Minuten Komprimierung des Intradaysytems ( deshalb Berechnung erst ab der 51 Periode) fast 100 %ig nach ....

Long .... Short genau umgekehrt ....

-->calc myATR: Komp(#Ref(ATR(10) * 2,-1)#, #T#);
-->calc myHigh: Komp(#Ref(High(),-1)#, #T#);
-->calc myClose: Komp(#Ref(Close(),-1)#, #T#);

-->calc Limit: If(TradePeriods < 51, 0.01,myHigh - myAtr);

-->calc StopLimit: HighestSince(Limit, TradePeriods=1, 1);

-->calc #_StopLevel#: StopLimit;

-->myClose < StopLimit

Habe das ganze gerade mal ausprobiert.

Die Enterbasis lässt sich erheblich verbessern .... :D
Bei der Exitbasis ist das bisher verwendete Open() besser .... :wacko:

Insgesamt ist das bisher von mir real gehandelte System auf dem Wege deutlich besser zu handeln. :D :D :D

Zitat

Der 10 Tage ATR ändert sich ja auch jeden Tag.


Natürlich ändert der sich jeden Tag. Wollte aber einen Trailing Stop.

Grüsse

Gerd Funke