Dienstag, 16. April 2024, 11:41 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

1

Montag, 18. November 2019, 13:32

Umsetzung Signale beim Live-Trading wie im Backtest Kontrollzeitraum - inzwischen gelöst

Hallo,

ich muss mich gleich zu Beginn für den langen Text entschuldigen. Ich befürchte aber, dass es einige Nachfragen und Missverständnisse gibt, wenn ich den Hintergrund nicht genauer erläutere :-)


Ich möchte gerne das Live-Trading analog dem Backtest umsetzen, was mir mit Einstieg in eine neue Tradingperiode nicht gelingt. Ich habe folgendes Setup:
- gehandelt wird mit Tagesdaten (welche intraday für Stops überwacht werdem)
- gehandelt wird zum Open des Tages (bei mir Forex also um 00:00 Uhr, umgesetzt um 00:10 Uhr; gehandelt wird Forex, daher gehts in der Nacht schon los)
- Einstiegstrigger ist ein NN: gehe long, wenn grösser 0,2; gehe short wenn kleiner -0.2
- Ein Long-Trade wird geschlossen, wenn das NN kleiner -0,2 zurückgibt, ein Short-Trade wird analog geschlossen, wenn das NN einen Wert von grösser 0, 2 zurückgibt
- Alternativ werden Trades natürlich über Stops geschlossen
- in den HS-Regeln ist Ref -1 festgelegt, also der Wert des NN am Vortag triggert einen Ein- und Ausstieg (oder nicht)

Im Backtest (Kontrollzeitraum) habe ich folgendes Verhalten:

Wenn am ersten Tag des Kontrollzeitraums der NN-Wert des Vortages kleiner -0,2 ist, wird short gegangen, long ist analog.
Wenn am ersten Tag des Kontrollzeitraums der NN-Wert des Vorgages zwischen -0,2 und 0,2 ist, erfolgt kein Einstieg (Einstieg also erst sobald die Triggerwerte über-unterschritten werden)


Ich starte mein Live Trading jeden Montag um 00:00 mit neu trainierten Netzen. Bis 00:10 bleibt die Orderfreigabe ausgeschaltet. Um 00:10 schalte ich (per Aufgabenmanager) die Orderfreigabe ein und versende dann den Befehl "Signale jetzt versenden..." ab. Zusatzinfo: es sind nie irgendwelche Trades offen, da ich zwingend am Freitag Abend alle offenen Trades schliesse.

Im Live-Trading habe ich nun das Problem, dass das Handelssystem mehr als den einen Tag (Ref -1) in die Vergangenheit schaut und einen in der Vergangenheit (also vor dem Start des Live-Tests) begonnenen Trade einsteigt. DAS MÖCHTE ICH NICHT. Ich möchte, dass das Live-Handelssystem (so wie im Backtest im Kontrollzeitraum) nur die Ref-1 Periode zurückschaut und damit Signale generiert.

Konkret möchte ich also: wenn der NN-Wert am Vortag <-0,2 dann gehe Short, wenn der Wert >0,2 ist, dann Long. Wenn der Wert dazwischen ist, dann mache NIX!

Ich habe es bisher noch nicht versucht, den Befehl "Signale jetzt versehden..." wegzulassen, da mein Verständnis ist, dass dann Signale die um Vortag (korrekt) generiert werden (also siehe oben), auch nicht umgesetzt werden.

Der eingestellte Zeitraum ist der "Signalzeitraum", welcher immer mit dem jeweiligen Montag (angegeben im Kontrollzeitraum) beginnt.

Wie kann ich also das Verhalten am Montag entsprechend steuern???

Vielen Dank schon einmal für Eure Ideen :-)

-dubi

PS.: würde denn folgendes Vorgehen funktionieren:
- ich setze das HS von 23:59 (Vortag) offline (Rotes Lämpchen) --> Damit kommen keine neuen Daten rein und es können keine Signale generiert werden
- um 00:10 setze ich das System wieder online (Grünes Lämpchen) --> Damit würde die Berechnung, die eigentlich um 00:00 stattfindet um 00:10 nachgeholt und es werden die Signale auf Basis des Vortages generiert.
- Vom Befehl "Signale jetzt generieren..." werde ich künftig tunlichst die Finger lassen, da dieser offensichtlich weiter zurückschaut

Was meint Ihr?

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »dubi« (18. November 2019, 16:59)


dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

2

Montag, 18. November 2019, 16:59

Problem gelöst

Ich antworte mir nun mal selbst. Nach einigen Stunden hin und herdenken bin ich auf folgende Lösung gekommen. Ich ergänze das Live-HS mit einem Anwenderstop, welcher immer am Freitag zieht. Die Berechnung im Anwenderstop (falls es jemand interessiert - bzw. verbessern kann...):

Quellcode

1
2
3
calc #_StopLevel#: 1;
calc #_ExitLevel#: If(DatePart(w)=5, 1, 0);
#_ExitLevel#


Unter Stop-Optionen habe ich unter "Abweichende Ausstiegsbasis" Close eingetragen.

Nun wird im Handelssystem jeden Freitag abend eventuell bestehende Trades geschlossen. Wenn ich dann am Montag mit frisch trainierten NN wieder starte, verhält sich das Live HS nun auch so wie es das vorher im Backtest gemacht hat. Puh - das hat mich etwas Nerven gekostet - ist nun aber gelöst.

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

3

Dienstag, 26. November 2019, 13:30

Umsetzung Signale beim Live-Trading wie im Backtest Kontrollzeitraum - nochmals

Hallo zusammen,

Ich habe eine Korrektur und eine ergänzende Frage:
Die Korrektur: unter "Abweichende Ausstiegsbasis" muss nicht "Close", sondern #_ExitLevel# eingetragen werden. Weiterhin muss die If-Anweisung bei Zutreffen nicht 1 sondern Close zurückgeben:

Quellcode

1
2
3
calc #_StopLevel#: 1;
calc #_ExitLevel#: If(DatePart(w)=5, Close, 0);
#_ExitLevel#"

Die ergänzende Frage:
Wenn ich mit der Datenfeedsimulation den Stop wie oben beschrieben einsetze, wird eine bestehende Position nicht zum Close, sondern zum ersten eintreffenden Kurs am Freitag (=Tag Nummer 5) geschlossen. Wie gesagt, das System ist auf Tagesbasis gebaut und der Stop sollte eben erst zum Close des Tages geschlossen werden :wacko: . Ich befürchte, dass das im Live-Handel dann eben auch so stattfindet (hab ich allerdings nicht geprüft...).
Im Backtest funktioniert das so wie ich das gerne hätte: Ein bestehender Trade wird zum Close-Kurs der Kerze geschlossen.

Also meine Frage: Wie muss ich den Stop definieren, dass eine bestehende Position zum Freitags-Close geschlossen wird?

Danke und viele Grüsse
-dubi

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

4

Donnerstag, 28. November 2019, 12:08

Ich schieb das Thema nochmals hoch, da ich bisher trotz experimentieren keine sinnvolle Antwort gefunden habe.

Als schlechten Workaround hab ich nun den Close auf Tag Nummer 7 (Sonntag) gelegt. Bei Forex-Daten kommen ja da Kurse in der letzten Stunde. So wird ein bestehender Trade zum ersten Kurs am Sonntag Abend geschlossen. Ich suche aber trotzdem noch nach einer "sauberen" Lösung :baby:

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

5

Donnerstag, 28. November 2019, 17:19

Hallo,

wenn mit RTT-Daten gearbeitet wird, könnte z.B. der Indikator Zeitlimitkurs() weiterhelfen (liefert 0, wenn die angegebene Zeit noch nicht erreicht ist). Oder aber das HS Intraday erstellen und die Signalgebung mit Komp()/täglich einbinden.

Viele Grüße
Andreas Knöpfel

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

6

Freitag, 29. November 2019, 12:01

Vielen Dank, Herr Knöpfel - das sind wirklich sehr wertvolle Hinweise. Auf den Indikator bin ich in 20 Jahren Investox noch nie gestossen - wirklich genial, welche Möglichkeiten vorhanden sind!