System mit zufälligen Einsiegen
Forums › ProRealTime Deutsch forum › ProOrder Support › System mit zufälligen Einsiegen
- This topic has 7 replies, 2 voices, and was last updated 5 hours ago by
axmichi.
-
-
01/14/2026 at 12:02 PM #255283
Hallo, ist es möglich ein System zu schreiben, sodass 10 Trades an 10 zufälligen Tagen / Datum innerhalb eines bestimmten Zeitraums eröffnen würden.
Die 10 Trades sollen per Zufall im Zeitraum vom 01.01.2024 – 30.06.2025 eröffnet werden.
Ist so etwas machbar??
Vielen Dank
01/14/2026 at 7:36 PM #255294Ja, das ist möglich. Hier ein Beispiel:
123456789101112131415161718DEFPARAM CumulateOrders = FalsestartDate = 20240101endDate = 20250630ONCE tradesTotal = 0IF Date >= startDate AND Date <= endDate AND tradesTotal < 10 THENdiceRoll = RANDOM(1, 20)IF diceRoll = 1 AND NOT ONMARKET THENBUY 1 CONTRACT AT MARKETtradesTotal = tradesTotal + 1ENDIFENDIFIF ONMARKET THENSELL AT MARKETENDIFWichtig: Die Funktion RANDOM() generiert bei jedem Backtest andere Zufallszahlen. Das bedeutet, dass die Einstiegstage bei jeder Ausführung unterschiedlich sein werden.
Die Exit-Logik im Beispiel schließt die Position am nächsten Tag. Sie können dies nach Bedarf anpassen (z.B. Stop-Loss, Take-Profit, oder längere Haltedauer).1 user thanked author for this post.
01/15/2026 at 11:53 AM #255315Hallo,und Wow, vielen Dank!!!
ich hätte noch die Frage, welche Funktion hat die Zahl 20 in Ihrem code?
diceRoll = RANDOM(1, 20)
Wenn ich den Zeitraum von Wann bis Wann es zufällige Trades geben soll, vergrößern will, muss ich auch die Zahl 20 vergrößern??!!
01/15/2026 at 11:57 AM #25531601/15/2026 at 1:48 PM #255323Die Zahl 20 bestimmt die tägliche Wahrscheinlichkeit: RANDOM(1,20) bedeutet, dass jeden Tag eine Chance von 1/20 = 5% besteht, einen Trade zu eröffnen.
Der Trick ist: Wir verwenden eine relativ hohe Wahrscheinlichkeit und lassen den Zähler (tradesTotal < 10) die Trades auf genau 10 begrenzen. Wenn Sie den Zeitraum vergrößern und die Zahl 20 nicht ändern, werden die Trades schneller erreicht und konzentrieren sich am Anfang des Zeitraums. Wenn Sie möchten, dass die Trades gleichmäßiger über einen längeren Zeitraum verteilt werden, können Sie die Zahl erhöhen (z.B. 30 oder 40). Für 100 Trades von 2008 bis heute:1234567891011121314151617DEFPARAM CumulateOrders = FalsestartDate = 20080101ONCE tradesTotal = 0IF Date >= startDate AND tradesTotal < 100 THENdiceRoll = RANDOM(1, 30)IF diceRoll = 1 AND NOT ONMARKET THENBUY 1 CONTRACT AT MARKETtradesTotal = tradesTotal + 1ENDIFENDIFIF ONMARKET THENSELL AT MARKETENDIFHinweis: Sie können mit der Zahl 30 experimentieren. Eine kleinere Zahl (z.B. 20) konzentriert die Trades mehr am Anfang, eine größere Zahl (z.B. 40-50) verteilt sie gleichmäßiger über den gesamten Zeitraum.
01/15/2026 at 3:33 PM #255327Toll, das hat gut funktioniert.
Können sie mir noch sagen, wie die Ausstiegsbedingung lauten muss, jeder Trade auch zufällig nach einer zufälligen Anzahl von Tagen schließen soll, die im Bereich von 2 – 30 Tagen liegt.
Vielen Dank
01/15/2026 at 4:57 PM #255330Hier ist der Code mit zufälligem Ausstieg nach 2-30 Tagen:
12345678910111213141516171819202122232425DEFPARAM CumulateOrders = FalsestartDate = 20080101ONCE tradesTotal = 0// Random entryIF Date >= startDate AND tradesTotal < 100 AND NOT ONMARKET THENdiceRoll = RANDOM(1, 30)IF diceRoll = 1 THENBUY 1 CONTRACT AT MARKETtradesTotal = tradesTotal + 1exitDays = RANDOM(2, 30)ENDIFENDIF// Random exit after 2-30 daysIF ONMARKET THENbarsInTrade = barsInTrade + 1IF barsInTrade >= exitDays THENSELL AT MARKETENDIFELSEbarsInTrade = 0ENDIFBei jedem Trade wird eine zufällige Haltedauer zwischen 2 und 30 Tagen generiert. Der Zähler barsInTrade zählt die Tage im Trade und wird beim Ausstieg automatisch zurückgesetzt.
1 user thanked author for this post.
01/16/2026 at 1:39 PM #255348 -
AuthorPosts
Find exclusive trading pro-tools on