أرى خطأ "تم الوصول إلى الحد الأقصى للأمر (9000)"
يعني هذا الخطأ أن عدد الأوامر التي يمكن أن تنفذها الإستراتيجية على الرسم البياني قد وصل إلى المستوى الأقصى وهو 9000. يتم تمكين القيد لخوادمنا للعمل بشكل أكثر كفاءة.
لتجنب هذا الخطأ، يمكنك استخدام المعلمة trim_orders في وظيفة strategy (). عند ضبط هذه المعلمة على «true»، يظهر كل أمر جديد في قائمة الصفقات، وتتم إزالة الترتيب الأقدم فوق حد الأمر.
في ما يلي مثال:
//@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)
Javaبدلاً من ذلك، يمكنك تحديد التواريخ التي تضع فيها الإستراتيجية الأوامر عن طريق التحقق من النطاق الزمني في حالة الطلب. يحدد البرنامج النصي المثال التالي نطاقًا زمنيًا لتقديم الطلبات عن طريق التحقق مما إذا كان وقت الشريط الحالي بين طابعين زمنيين.
//@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)
Java