Ich erhalte den Fehler "Order Limit (9.000) wurde erreicht"
Dieser Fehler bedeutet, dass die Strategie die zulässige Höchstmenge an platzierten Ordern oder geschlossenen Handelsgeschäften überschritten hat. Diese Begrenzungen sind abhängig von Ihrem Abonnement und ermöglichen eine effizientere Arbeitsleistung unserer Server.
Um diese Fehlermeldung zu vermeiden, können Sie den Parameter trim_orders in der strategy() Funktion verwenden. Wenn dieser Parameter auf true eingestellt ist, dann erscheint jede neue Order in der Liste der Trades, und die älteste Order über dem Order-Limit wird entfernt.
Zum Beispiel:
//@version=5
strategy("My strategy", overlay = true, margin_long = 100, margin_short = 100, trim_orders = true)
if bar_index % 2 == 0
strategy.entry("My Long Entry Id", strategy.long)
if bar_index % 2 != 0
strategy.entry("My Short Entry Id", strategy.short)
Alternativ können Sie auch die Daten für die Order-Platzierung begrenzen, indem Sie die Zeitspanne in der Order-Bedingung überprüfen lassen. Das folgende Script etabliert eine Zeitspanne für die Order-Platzierung, indem es überprüft, ob die Zeit des aktuellen Balkens zwischen zwei Zeitstempeln liegt.
//@version=5
strategy("My strategy", overlay = true, margin_long = 100, margin_short = 100)
enableFilter = input(true, "Enable Backtesting Range Filtering")
fromDate = input.time(timestamp("20 Jul 2023 00:00 +0300"), "Start Date")
toDate = input.time(timestamp("20 Jul 2099 00:00 +0300"), "End Date")
tradeDateIsAllowed = not enableFilter or (time >= fromDate and time <= toDate)
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
if longCondition and tradeDateIsAllowed
strategy.entry("Long", strategy.long)
if shortCondition and tradeDateIsAllowed
strategy.entry("Short", strategy.short)