Jeden Trade einzeln schließen
Forums › ProRealTime Deutsch forum › ProOrder Support › Jeden Trade einzeln schließen
- This topic has 32 replies, 4 voices, and was last updated 1 hour ago by
robertogozzi.
-
-
01/06/2026 at 1:33 PM #255008
Hallo,
in diesem System müssten die 3 Trades nach 100 Kerzen geschlossen werden.
Leider werden alle Trades zum gleichen Zeitpunkt geschlossen.
Was muss man codieren, dass jeer Trade korrekt schließt
123456789101112131415161718192021222324DEFPARAM CumulateOrders = TRUE// dates to enter (format: yyyymmdd)$moDate[1] = 20250519$moDate[2] = 20250521$moDate[3] = 20250523EntryDate = 0FOR i = 1 TO 3IF Date = $moDate[i] THENEntryDate = DatebreakENDIFNEXT//IF Date = EntryDate AND Time = 210000 THENbuy 1 CONTRACT AT MARKETEntryDate = 0ENDIFIF longonmarket and barindex - Tradeindex = 100 Thensell AT MARKETENDIF01/06/2026 at 3:40 PM #255013Der Grund dafür, dass alle Ihre Geschäfte auf einmal geschlossen werden, liegt darin, dass in ProRealTime die SELL-Anweisung ohne Angabe eines Betrags die gesamte Position schließt. Darüber hinaus speichert die TRADEINDEX-Funktion nur die Referenz der zuletzt durchgeführten Operation, sodass vorherige vom System „vergessen“ werden.
Die vorgeschlagene Lösung ist folgende: Wir verwenden Arrays für die Eingabe und Ausgabe und speichern den Barindex in der Eingabe.123456789101112131415161718192021222324DEFPARAM CumulateOrders = TRUE$moDate[0] = 20250519$moDate[1] = 20250521$moDate[2] = 20250523FOR i = 0 TO 2 DOIF Date = $moDate[i] AND Time = 210000 THENBUY 1 CONTRACT AT MARKET$moDateidx[i] = BarIndex + 1ENDIFNEXTIF LongOnMarket THENFOR j = 0 TO 2 DOIF $moDateidx[j] > 0 THENIF BarIndex - $moDateidx[j] = 100 THENSELL 1 CONTRACT AT MARKET$moDateidx[j] = 0ENDIFENDIFNEXTENDIF01/06/2026 at 4:53 PM #255016Du kannst auch mit “TradeIndex(3)” arbeiten…
Einzeln Schliessen1234567891011121314151617181920DefParam CumulateOrders=True$moDate[1]=20250519$moDate[2]=20250521$moDate[3]=20250523For i=1 to 3If $moDate[i]=OpenDate ThenEntryDate=$moDate[i]BreakEndIfNextIF OpenDate=EntryDate thenBuy 1 Contract at MarketENDIFIf LongOnMarket and BarIndex-TradeIndex(3)=100-1 ThenSell 1 Contract at MarketENDIF1 user thanked author for this post.
01/06/2026 at 5:53 PM #255018Vielen Dank.
@ IVAN der Einstieg passt super.
Können wir den Ausstieg noch so anpassen, dass das system nach 100 Tagen um 21 Uhr wieder aus steigt?
@ JD auch Dir danke. leider steigt dein system nicht am 19.05 ein, sondern einen Tag später und es werden nicht 3 Trades gestartet, sondern nur 2. Ich denke es hängt damit zusammen, dass der Vortag ein Freitag ist???
01/06/2026 at 8:11 PM #255020Hi,
ich habe die Zeiten nicht berücksichtigt, aber die kannst du jederzeit selbst hinzufügen…
Da keine Zeiten verwendet werden, werden die Trades zum „Open“ des nächsten Tages eröffnet…
Bei mir eröffnet der Algo drei Trades … (siehe Abbildung)…
01/06/2026 at 8:14 PM #25502101/06/2026 at 8:18 PM #255022Hab es jetzt so geändert aber die Trades werden zwar richtig geöffnet aber nicht geschlossen
IF OpenDate=EntryDate and Time = 210000 then
Buy 1 Contract at Market
ENDIFIf LongOnMarket and BarIndex-TradeIndex(3)=10-1 and Time = 210000 Then
Sell 1 Contract at Market
ENDIF01/06/2026 at 8:38 PM #255023Das ist mit Zeiten…
(Bitte mit einem Timeframe von maximal 1 Stunde verwenden, da sonst die Zeiten nicht korrekt ausgelesen werden.)
einzeln schliessen1234567891011121314151617181920DEFPARAM CumulateOrders=True$moDate[1]=20250519$moDate[2]=20250521$moDate[3]=20250523For i=1 to 3If $moDate[i]=Date ThenEntryDate=$moDate[i]BreakEndIfNextIF Date=EntryDate and Time=210000 thenBuy 1 Contract at MarketENDIFIf LongOnMarket and BarIndex-TradeIndex(1)=100-1 ThenSell 1 Contract at MarketENDIF01/06/2026 at 8:46 PM #25502501/06/2026 at 9:02 PM #255027Wenn du diese Zeiten verwenden möchtest, kannst du kein Tages-Timeframe benutzen, da die Zeiten sonst nicht ausgelesen werden können…
Bei Verwendung von Zeiten musst du ein Timeframe von maximal 1 Stunde einsetzen…einzeln schliessen1234567891011121314151617181920DEFPARAM CumulateOrders=True$moDate[1]=20250519$moDate[2]=20250521$moDate[3]=20250523For i=1 to 3If $moDate[i]=Date ThenEntryDate=$moDate[i]BreakEndIfNextIF Date=EntryDate and Time=210000 thenBuy 1 Contract at MarketENDIFIf LongOnMarket and BarIndex-TradeIndex(3)=100-1 thenSell 1 Contract at MarketENDIF01/06/2026 at 9:12 PM #255028Um die Positionen exakt um 21:00 Uhr zu schließen (nach 100 Tagen), kannst du die unten angegebene Anzahl an Bars verwenden…(TF=1 Uhr)
einzeln schliessen1234567891011121314151617181920DEFPARAM CumulateOrders=True$moDate[1]=20250519$moDate[2]=20250521$moDate[3]=20250523For i=1 to 3If $moDate[i]=Date ThenEntryDate=$moDate[i]BreakEndIfNextIF Date=EntryDate and Time=210000 thenBuy 1 Contract at MarketENDIFIf LongOnMarket and BarIndex-TradeIndex(3)=2302 thenSell 1 Contract at MarketENDIF01/06/2026 at 9:13 PM #25502901/06/2026 at 9:14 PM #25503001/06/2026 at 9:27 PM #255031Du kannst die Zeit hinzufügen, aber das ist nicht notwendig, da hier die Anzahl der verstrichenen Bars das Schließen der Positionen bestimmt…
2302 Bars entsprechen exakt 100 Tagen, und wenn die Position um 21:00 Uhr eröffnet wird, wird sie auch wieder um 21:00 Uhr geschlossen…
Ich verwende dies in Kombination mit IG.01/06/2026 at 9:39 PM #255032 -
AuthorPosts
