Wochen Rythmus handeln
Forums › ProRealTime Deutsch forum › ProOrder Support › Wochen Rythmus handeln
- This topic has 12 replies, 2 voices, and was last updated 2 weeks ago by robertogozzi.
-
-
11/20/2024 at 9:48 AM #240570
Hallo Ich möchte eine Wochenstrategie handeln.
Ich möchte ein Datum als Startdatum eingeben, dies wird immer ein Montag sein!
Ab diesem Startdatum an jedem xten Montag, soll ein Trade um 16 Uhr eröffnet werden und am nächsten Montag um 09 Uhr gesschlossen werden.
Jetzt kommt das schwierige…
Mit dem xten Montag ist gemeint, dass die Strategie zum Beispiel in einem 10 Wochen Rythmus kauft.
Hier ein Beispiel.
Startdatum ist der 29.07.2023, nun kauf die Strategie um 16 Uhr 1 kontrakt und verkauft es wieder eine Woche später am Montag um 16 Uhr. Dies alle 10 Wochen!
Der nächste Trade wäre dann am 09.10.2023, dann wieder am 18.12.2023 und dann 26.02.2024
Man müsste dies im Code sicher mit den Kalenderwochen kombinieren!
In welchem Rythmus die Strategie kauft, möchte ich später mit einer Variable testen!?
Die Strategie soll auch über mehrere Jahre arbeiten und somit muss sie beim Jahreswechsel, wo es wieder mit Kalenderwoche 1 los geht fortlaufend weiter zählen
Es wäre gut wenn dies so codiert wäre.
Ich weiß nicht ob das überhaupt geht?
Vielen Dank
11/20/2024 at 5:59 PM #240601Der 29. Juli 2023 war NICHT auf einem Montag. Bedeutet das, dass wir, wenn das Startdatum nicht Montag ist, bis zum ersten folgenden Montag warten müssen?
11/20/2024 at 9:02 PM #24060711/22/2024 at 12:54 PM #240650123456789101112IF (DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1]) AND OnMarket THENSELL AT MARKETENDIFIF (DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1]) THENTally = Tally + 1ENDIFIF (DayOfWeek = 1) AND (Time = 160000) AND (Tally > 10) AND Not OnMarket THENBUY 1 CONTRACT AT MARKETTally = 1ENDIF//graph (DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1])//graph Tally11/23/2024 at 8:25 PM #24069811/25/2024 at 12:36 PM #24071711/25/2024 at 5:35 PM #240724Das sollte funktionieren. Sie können das Datum nach Belieben ändern.
123456789101112131415ONCE Tally = 0IF Date >= 20240205 THENIF (DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1]) AND OnMarket THENSELL AT MARKETENDIFIF (DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1]) THENTally = Tally + 1ENDIFIF (DayOfWeek = 1) AND (Time = 160000) AND ((Tally MOD 10) = 1) AND Not OnMarket THENBUY 1 CONTRACT AT MARKETTally = 1ENDIFENDIF//graph (DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1])//graph Tally11/27/2024 at 12:49 PM #240803Hallo, danke. das System startet nun am Datum wie ich es gern wollte.
Leider ist es so, dass wenn der Montag in der Woche als handelstag fehlt, dann zählt das system die woche nicht und handelt eine Woche später.
Im Bild in habe ich das system am 16.10.2023 im ES auf Stundenbasis gestartet.
Da in den Wochen bei Weihnachten kein Montag gehandelt wird handelt das system erst nach 18 Wochen weiter??!!
Das heißt, wenn es keinen Montag gibt, an dem der Trade schließen kann, muss der Trade am Dienstag 9 Uhr geschlossen werden und dann auch am Dienst um 16 neu eröffnet werden, bis es wieder einen Montag gibt?!
Im Bild sind die Montage grün gemacht das man besser zählen und erkennen kann.
Vielen Dank
11/27/2024 at 1:15 PM #240805Hier der geänderte Code ich habe die Wochenrythmus auf 16 geändert (MODE 16)
ONCE Tally = 0
IF Date >= 20231014 THEN
IF (DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1]) AND OnMarket THEN
SELL AT MARKET
ENDIF
IF (DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1]) THEN
Tally = Tally + 1
ENDIF
IF (DayOfWeek = 1) AND (Time = 160000) AND ((Tally MOD 16) = 1) AND Not OnMarket THEN
BUY 1 CONTRACT AT MARKET
Tally = 1
ENDIF
ENDIF
graph (DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1])
graph Tally11/27/2024 at 4:58 PM #240809Ich habe meine Version so geändert, dass:
- Wenn die Einreise am Montag geschlossen ist, erfolgt die Einreise am ersten darauffolgenden Tag.
- wenn der Veröffentlichungsmontag geschlossen ist, erscheint es am ersten darauffolgenden Tag;
- wenn der Montag geschlossen ist, wird die Woche gleich gezählt:
12345678910111213141516ONCE Tally = 0IF Date >= 20240205 THENIF ((DayOfWeek = 1) OR (DayOfWeek > 1) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) AND OnMarket THENSELL AT MARKETENDIFIF ((DayOfWeek = 1) OR (DayOfWeek > 1) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) THENTally = Tally + 1ENDIFIF ((DayOfWeek = 1) OR ((DayOfWeek > 1)) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) AND ((Tally MOD 10) = 1) AND Not OnMarket THENBUY 1 CONTRACT AT MARKETTally = 1ENDIFENDIF//graph ((DayOfWeek > 1) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) AS "Other" coloured("Red")//graph ((DayOfWeek = 1) AND (DayOfWeek <> DayOfWeek[1])) AS "Monday" coloured("Green")//graph Tally11/28/2024 at 11:52 AM #24085012/10/2024 at 8:39 PM #24131912/12/2024 at 8:52 PM #241375Ersetzen Sie Zeile 3 durch Folgendes:
1IF ((DayOfWeek = 1) OR (DayOfWeek > 1) AND ((DayOfWeek[1] = 0) OR (DayOfWeek[1] > DayOfWeek))) AND (DayOfWeek <> DayOfWeek[1]) AND OnMarket AND (Tally = 3) THEN1 user thanked author for this post.
-
AuthorPosts