letzter Handelstag im Monat
Forums › ProRealTime Deutsch forum › ProOrder Support › letzter Handelstag im Monat
- This topic has 12 replies, 2 voices, and was last updated 4 weeks ago by
axmichi.
-
-
02/14/2025 at 9:12 AM #243822
Hallo,
ich möchte gern immer am letzten Handelstag im Monat einsteigen.
Da jeder Monat unterschiedliche Anzahl von Handelstagen hat, kann ich nicht die Funktion EntryDay = 22 daür nehmen
Als Ausstieg möchte ich den 5. Handelstag verwenden, dies kann ich mit der folgenden Funktion machen
ExitDay = 5
if longonmarket and ((Day = ExitDay) OR ((Day > ExitDay) AND (Day[1] < ExitDay))) thensell at marketendifWie kann ich den letzten Handelstag im Monat im Code schreiben??Die Trades sollen im Stundenchart um 09 Uhr eröffnet und geschlossen werden.Vielen Dank02/14/2025 at 10:46 PM #243857Dieser Code funktioniert im täglichen Zeitrahmen.
Die Variable LastTradingD gibt den letzten bekannten Handelstag an (Feiertage dürfen nicht bekannt sein):123456789101112131415161718192021222324252627282930313233343536373839404142Timeframe(Monthly,default)thisMonth = OpenMonththisYear = OpenYear//Timeframe(Daily,UpdateOnClose)LastTradingD = 0IF thisMonth <> thisMonth[1] THENthisDay = OpenDaythisDoW = OpenDayOfWeekLastDay = 31IF (thisMonth = 4) OR (thisMonth = 6) OR (thisMonth = 9) OR (thisMonth = 11) THENLastDay = 30ELSIF (thisMonth = 2) THENLastDay = 28IF (thisYear MOD 4) = 0 THENIF (thisYear MOD 4) = 100 THENIF (thisYear MOD 4) = 400 THENLastDay = 29ENDIFELSELastDay = 29ENDIFENDIFENDIFi = thisDayj = thisDoWLastTradingD = iwhile(1)IF j >= 1 AND j <= 5 THENLastTradingD = iENDIFj = j + 1IF j = 7 THENj = 0ENDIFi = i + 1IF i > LastDay THENbreakENDIFWENDENDIFRETURN LastTradingD AS "Last Trading Day"1 user thanked author for this post.
02/16/2025 at 6:58 PM #24392502/16/2025 at 11:10 PM #243928Du hast recht, tut mir leid. Entfernen Sie die letzte Zeile und verwenden Sie die Variable LastTradingD, um den letzten Handelstag herauszufinden.
02/17/2025 at 11:59 AM #24394302/17/2025 at 8:50 PM #243956Bei mir werden die Operationen korrekt auf der Grundlage des am letzten Tag des Monats generierten Signals eröffnet (auf der Grafik sehen Sie also den Eintrag am folgenden Tag), wenn ich in meiner Eintragsbedingung OpenDAY verwende.
Wenn ich am letzten Tag einsteigen möchte, muss ich DAY verwenden, also den Tag am Ende der Kerze vor dem Einstieg.
Ich habe diesen Code verwendet:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051Timeframe(Monthly,default)thisMonth = OpenMonththisYear = OpenYear//Timeframe(Daily,UpdateOnClose)IF thisMonth <> thisMonth[1] THENthisDay = OpenDaythisDoW = OpenDayOfWeekLastDay = 31IF (thisMonth = 4) OR (thisMonth = 6) OR (thisMonth = 9) OR (thisMonth = 11) THENLastDay = 30ELSIF (thisMonth = 2) THENLastDay = 28IF (thisYear MOD 4) = 0 THENIF (thisYear MOD 4) = 100 THENIF (thisYear MOD 4) = 400 THENLastDay = 29ENDIFELSELastDay = 29ENDIFENDIFENDIFi = thisDayj = thisDoWLastTradingD = iwhile(1)IF j >= 1 AND j <= 5 THENLastTradingD = iENDIFj = j + 1IF j = 7 THENj = 0ENDIFi = i + 1IF i > LastDay THENbreakENDIFWENDENDIF//RETURN LastTradingD AS "Last Trading Day"//Timeframe(default)IF OnMarket THENsell at MarketELSIF Day = LastTradingD THEN //or OpenDaybuy at marketendif////graph LastTradingD AS "Last Trading Day" coloured("Red")//graph OpenDay AS "Current DAY"02/18/2025 at 9:48 AM #24397002/25/2025 at 3:43 PM #24434502/25/2025 at 4:07 PM #244348Entschuldigen Sie, ich konnte das vorher nicht überprüfen.
Wie Sie der Liste der geschlossenen Trades entnehmen können, wurden von Januar 2023 bis heute alle Trades am Monatsende eröffnet.
Ich kann dir keine Erklärung geben. Bitte überprüfen Sie Ihren Code sorgfältig.02/25/2025 at 4:17 PM #24435002/25/2025 at 5:55 PM #244355Hallo ich habe es auf Tagesbasis in der APPL Aktie getestet und diesen Code verwendet.
Im Jahr 2023 fehlt der Juli und im Jahr 2024 fehlt bei mir der September und der November. siehe Bild
hier der Code:
Timeframe(Monthly,default)
thisMonth = OpenMonth
thisYear = OpenYear
//
Timeframe(Daily,UpdateOnClose)
IF thisMonth <> thisMonth[1] THEN
thisDay = OPENDay
thisDoW = OpenDayOfWeek
LastDay = 31
IF (thisMonth = 4) OR (thisMonth = 6) OR (thisMonth = 9) OR (thisMonth = 11) THEN
LastDay = 30
ELSIF (thisMonth = 2) THEN
LastDay = 28
IF (thisYear MOD 4) = 0 THEN
IF (thisYear MOD 4) = 100 THEN
IF (thisYear MOD 4) = 400 THEN
LastDay = 29
ENDIF
ELSE
LastDay = 29
ENDIF
ENDIF
ENDIF
i = thisDay
j = thisDoW
LastTradingD = i
while(1)
IF j >= 1 AND j <= 5 THEN
LastTradingD = i
ENDIF
j = j + 1
IF j = 7 THEN
j = 0
ENDIF
i = i + 1
IF i > LastDay THEN
break
ENDIF
WEND
ENDIF
//RETURN LastTradingD AS “Last Trading Day”
//
Timeframe(default)
IF OnMarket THEN
sell at Market
ELSIF Day = LastTradingD THEN //or OpenDay
buy at market
endif
//
//graph LastTradingD AS “Last Trading Day” coloured(“Red”)
//graph OpenDay AS “Current DAY”//ExitDay = 5
//if longonmarket and ((Day = ExitDay) OR ((Day > ExitDay) AND (Day[1] < ExitDay))) then
//sell at market
//endif02/27/2025 at 8:56 PM #244438Ich verstehe, wo das Problem liegt. Dies liegt daran, dass die Bestellung am Ende jedes Balkens beginnen muss.
- Wenn Sie DAY verwenden, wird der Tag zum Schluss eines Balkens geprüft, sodass die Entscheidung zum Einstieg zum Schluss des vorherigen Balkens getroffen werden muss. Im Fall von Juli 2023 ist der letzte Tag Montag, der 31., aber der vorherige Balken ist Freitag, der 28.; zum Handelsschluss am Freitag ist der nächste Balken jedoch nicht bekannt, weil der Handel geschlossen ist. Wenn der Handel am Montag wieder aufgenommen wird, wird die Strategie am Ende des Balkens geschlossen und nimmt daher den 1. August 2023 als Datum an. Der 31. Juli kann daher NICHT berücksichtigt werden.
. - Wenn Sie OPENDAY verwenden, wird das Schlussdatum jedes Balkens berücksichtigt. So lösen Sie das Problem von JULI 2023. In anderen Monaten treten jedoch ähnliche Probleme auf. Außerdem wird das Datum des letzten Tages beim Schließen der Kerze berücksichtigt, sodass die Position am ersten Tag des Folgemonats eröffnet wird. Allerdings bleibt auch in diesem Fall die Operation Ende März 2024 unberücksichtigt, die eigentlich am 1. April hätte durchgeführt werden sollen, da der Vortag aber ein Wochenende ist, kann die Operation nicht durchgeführt werden.
Es gibt keine Möglichkeit, diese Probleme zu lösen.
03/02/2025 at 8:56 AM #244529 - Wenn Sie DAY verwenden, wird der Tag zum Schluss eines Balkens geprüft, sodass die Entscheidung zum Einstieg zum Schluss des vorherigen Balkens getroffen werden muss. Im Fall von Juli 2023 ist der letzte Tag Montag, der 31., aber der vorherige Balken ist Freitag, der 28.; zum Handelsschluss am Freitag ist der nächste Balken jedoch nicht bekannt, weil der Handel geschlossen ist. Wenn der Handel am Montag wieder aufgenommen wird, wird die Strategie am Ende des Balkens geschlossen und nimmt daher den 1. August 2023 als Datum an. Der 31. Juli kann daher NICHT berücksichtigt werden.
-
AuthorPosts
Find exclusive trading pro-tools on