Donnerstag, 18. April 2024, 08:42 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 399

1

Dienstag, 18. März 2008, 14:05

HS auf Tagesbasis: am selben Tag aus- und wieder einsteigen

Hallo,

ich habe ein Handelssystem auf Tagesbasis im Backtest simuliert und möchte die Ergebnisse nun über eine Datenfeed-Simulation im Virtuellen Broker möglichst 1:1 replizieren. Ein Ausschnitt ist hier zu sehen.



Das System steigt am 25. ein, weil das High über das gelbe Triggerniveau steigt. Am 27. verletzt der Close den grauen Stoplevel und das System steigt zum Open des 28. aus. Das ist soweit in Ordnung und in Backtest und Datenfeed-Simulation identisch.

Im Backtest aber erfolgt gleich am 28. ein Wiedereinstieg, weil nach dem Open das High wieder über den Triggerlevel ansteigt. In der Datenfeed-Simulation aber bleibt das System am 28. aus dem Markt und ein Kaufsignal erfolgt erst wieder am 29.

Sollte nicht auch in der Datenfeed-Simulation direkt am 28. ein Kaufsignal geroutet werden, weil ich im Handelssystem ja "Signale auch bei unvollendeten Perioden" aktiviert habe? (Die Anzahl der Signale pro Tag habe ich in den Aktualisierungseinstellungen nicht begrenzt.)

Was kann ich tun, um den Wiedereinstieg am 28. zu erreichen?

Viele Grüße
Cornelius

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cnolte« (18. März 2008, 14:26)


cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 399

2

Dienstag, 18. März 2008, 15:00

P.S. Habe vergessen zu erwähnen, dass ich die Datenfeed-Simulation mit einem BT in 5-Minuten-Komprimierung laufen lasse. Auch von daher müßten der Ausstieg zum Open und der Wiedereinstieg bei Überschreiten des Triggerlevel am selben Tag doch möglich sein.

P.P.S. Enter-Basis ist Delay 0.

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 399

3

Dienstag, 18. März 2008, 15:42

Hallo,

ich möchte nochmal zeigen, wie es im Backtest aussieht:





So möchte ich es auch in der Datenfeed-Simulation hinbekommen: Ausstieg und Wiedereinstieg am 28.

Grüße
Cornelius

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

4

Dienstag, 18. März 2008, 21:19

Ich weiß leider nicht wie Deine Formeln für den Einstieg genau aussehen.

Kann es denn sein, dass der Potentielle Wiedereinstieg vor dem Ausstieg liegt an dem Tag?
Also sprich, wie sieht der Intradaychart für den entsprechenden Handelstag aus.
Wird zuerst der Stop ausgelöst und anschließend geht´s wieder nach oben, oder ist es andersherum?
Wenn letzetres, dann hätte Dein Backtest unrecht und die Datenfeed Simulation recht.

Das kannst Du in Deinem EOD Backtest nur dann abfangen wenn Du Intradaydaten in Dein HS benutzt und dieses auf täglich komprimierst.
Dann kannst Du mittels

Quellcode

1
TickOrder(High(),Low())

abfragen obzuerst high() oder low() erreicht wurde.

In Deinem Fall bei einem Longtrade müßte für einen wiedereinstieg zuerst das LOW() erreicht werden.
Dann würde der Stop auslösen und anschließend kommt das Kaufsignal zum Rentry.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 399

5

Mittwoch, 19. März 2008, 15:59

>> Kann es denn sein, dass der Potentielle Wiedereinstieg vor dem Ausstieg liegt an dem Tag?

Hallo Joachim,

das ist nicht so. Zuerst erfolgt der Ausstieg zum Open und danach steigt der Kurs wieder über das Triggerlevel, so dass am selben Tag der Wiedereinstieg erfolgen müßte - wie im Backtest korrekt gezeigt.

Tatsächlich erfolgt der Wiedereinstieg in der Datenfeed-Simulation aber erst am 29.:




Ich weiß im Moment nicht, warum. Weiß jemand, woran es liegen könnte?

Die Einstiegsbedingung ist

High > Triggerlevel and Ref(High, -1) <= Triggerlevel.

Die Testbedingungen sind:




Signale auch bei unvollendeten Perioden ist aktiviert.

Hoffentlich hat jemand eine Idee - ich hänge im Moment fest.

Grüße
Cornelius

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

6

Donnerstag, 20. März 2008, 09:59

Hallo,

da auch der Chart der Datenfeed-Simulation einen Backtest zeigt (nämlich zum jeweiligen Zeitpunkt der Simulation), kann die Ursache des Unterschieds eigentlich nur in der Datenherkunft liegen. Vielleicht liegt es also doch an der Komprimierung des Berechnungstitels. Oder die Signale ändern sich bei Änderung des Zeitraums (Gesamt/Aktuell)?

Viele Grüße

Andreas Knöpfel

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 399

7

Donnerstag, 20. März 2008, 12:10

Hallo,

danke für den Hinweis!

Ich denke ich kann die Problematik jetzt eingrenzen: der Anwenderstop scheint den Wiedereinstieg in derselben Periode zu blockieren.

Die Einstiegsbasis ist in beiden unten gezeigten Fällen EntryLevelLong (das ist die gelbe Triggerlinie), Delay 0.
Die Ausstiegsbasis ist in beiden Fällen Open, Delay 0.

Die Einstiegsregel lautet: High > EntryLevelLong and Ref(High, -1) <= EntryLevelLong.

Wenn ich den Anwenderstop nun unverzögert definiere mit

calc #_StopLevel#: TradeEntryPrice * 99.90/100;
DailyPrice(close) < #_StopLevel#

dann erfolgt der Ausstieg am 27. (das System schaut dann aber in die Zukunft, weil der Ausstieg zum Open erfolgt, obwohl ja der Tagesschlusskurs unter dem Stoplevel liegen muss) und am 28. steigt das System korrekt wieder ein:




Wenn ich den Anwenderstop verzögert definiere mit

calc #_StopLevel#: TradeEntryPrice * 99.90/100;
Ref(DailyPrice(close), -1) < #_StopLevel#

dann erfolgt der Ausstieg am 28. zum Open (weil der Tagesschlusskurs am 27. unter dem Stoplevel lag), aber es erfolgt kein Wiedereinstieg, wenn der Kurs dann am 28. über den gelben Triggerlevel steigt:




Die Zwangspause des Stops steht auf 0 Perioden!

Viele Grüße
Cornelius

Tim

unregistriert

8

Donnerstag, 20. März 2008, 12:37

Hallo Cornelius,

und was passiert, wenn Du anstelle von Dailyprice(close) die Syntax LastDP(close) verwendest ?


Außerdem ist mir aufgefallen :

Die Einstiegsbasis solltest du bei Deinem System für einen korrekten Backtest wie folgt setzen:

Max(open, EntryLevelLong) ; Delay 0 für Long Trades bzw.
Min(open, EntryLevelShort); Delay 0 für Short Trades


Stoplevel:
Deine Formel berechnet nicht das Stoplevel, sondern bisher nur die Punktzahl, die vom Einstiegspreis abzuziehen ist. Eigentlich dürfte dieser Stop so kaum ausgelöst werden ?
Korrekt wäre m.E.:

calc #_StopLevel#: Tradeentryprice-(TradeEntryPrice * 99.90/100);

Cu Tim

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 399

9

Donnerstag, 20. März 2008, 13:05

Danke für Deine Hinweise, Tim!

mit LastDP(close) < #_StopLevel#

läuft es wie bei Ref(DailyPrice(close), -1) < #_StopLevel#

(das sollte von den Funktionen her ja auch so sein), also korrekter Ausstieg am 28., aber kein Wiedereinstieg am 28.

Ich kann mir das momentan nur so erklären, dass der Anwenderstop den Wiedereinstieg in derselben Periode blockiert, OBWOHL die Zwangspause auf 0 Perioden gestellt ist.

Aber vielleicht gibt es ja noch eine andere Erklärung?

Viele Grüße
Cornelius

P.S. Das Stopniveau wird durch meine Gleichung auf 99,9% des TradeEntryPrice gelegt, m.a.W. ein Verluststop von 0,1%.

Tim

unregistriert

10

Donnerstag, 20. März 2008, 13:18

Zitat

Das Stopniveau wird durch meine Gleichung auf 99,9% des TradeEntryPrice gelegt, m.a.W. ein Verluststop von 0,1%.


Ja stimmt.Ich habe nicht nachgerechnet. :engel:

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 399

11

Mittwoch, 26. März 2008, 18:28

Anwenderstopp blockiert Wiedereinstieg am selben Tag?

Hallo Investox-Gemeinde,

inzwischen bin ich mit meinen ersten Schritten zur Datenfeed-Simulation etwas weiter gekommen. Die eingangs gestellte Frage habe ich aber noch nicht gelöst:

Kann es sein, dass ein Ausstieg aus einer Position durch einen Anwenderstopp zum Open des Tages den Wiedereinstieg während des Tages blockiert obwohl die Option "Signale auch bei unvollendeten Perioden" unter Handelssystem einstellen / Aktualisierung angehakt ist)?

Ich habe ein Handelssystem auf Tagesbasis, das ich mit einem BT in 5-Minuten-Komprimierung Datenfeed-simuliere.

Im Backtest liefert das HS Ende Juni 2007 folgende Situation:




Das System geht am 25. Long, weil das High über die gelbe Triggerlinie steigt. Am 28. steigt es zum Open aus, weil am 27. der Close unter der grauen Anwenderstopp-Linie liegt.

Den Anwenderstopp habe ich definiert mit der Zusatzbedingung:

calc #_StopLevel#: TradeEntryPrice * 99.90 / 100;

LastDP(close) < Ref(#_StopLevel#, -1)
and DatePart(y) - ValueWhen(DatePart(y),TradePeriods = 1, 1, V) > 1
and DatePart(y) - ValueWhen(DatePart(y),TradePeriods = 1, 1, V) < 4

Im weiteren Verlauf des 28. steigt das High wieder über die gelbe Triggerlinie, so dass am 28. ein Wiedereinstieg erfolgen sollte. Das ist im Backtest (s.o.) so, und auf 5-Minuten-Basis kann man es auch beobachten:




In der Datenfeed-Simulation des Systems auf Tagesbasis erfolgt allerdings kein Wiedereinstieg, wenn das High am 28. das Triggerniveau wieder überschreitet:





Kann es also sein, dass der Ausstieg durch Anwenderstopp zum Open den Wiedereinstieg während desselben Tages blockiert?

Viele Grüße
Cornelius

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 399

12

Samstag, 29. März 2008, 11:24

Wiedereinstieg in selber Periode nach Stopp

Hallo Investoxler,

hier noch das Ergebnis meiner Anfrage:

Nach Auskunft von Herrn Knöpfel verhindern sämtliche Stopps außer Intradaystopps den Wiedereinstieg in der Ausstiegsperiode.

In der aktuellen Version 5.2.1 kann man nun unter Zusatzbedingungen festlegen, dass ein Anwenderstopp wie ein Intradaystopp behandelt wird und damit den Wiedereinstieg in der Ausstiegsperiode ermöglichen.

Viele Grüße
Cornelius