'Emir sınırına (9000) ulaşıldı' hatası görüyorum

Bu hata, stratejinin izin verilen maksimum sayıdan daha fazla emir verdiği veya daha fazla işlem kapattığı anlamına gelir. Bu sınırlamalar plana göre değişir ve sunucularımızın daha verimli çalışmasını sağlar.

Bu hatayı önlemek için strategy() fonksiyonunda trim_orders parametresini kullanabilirsiniz. Bu parametre true olarak ayarlandığında, her yeni emir İşlem Listesinde görünür ve emir limitinin üzerindeki en eski emir kaldırılır.

 

İşte bir örnek:

//@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)

Alternatif olarak, emir koşulunda bir zaman aralığını kontrol ederek bir stratejinin emir verdiği tarihleri sınırlayabilirsiniz. Aşağıdaki örnek kod, geçerli çubuğun zamanının iki zaman damgası arasında olup olmadığını kontrol ederek emir vermek için bir zaman aralığı belirler.

//@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)