इस रणनीति का उद्देश्य उपयोगकर्ताओं को अधिक लचीला और अनुकूलन योग्य बैकटेस्टिंग के लिए बैकटेस्टिंग के प्रारंभ समय को अनुकूलित करने की अनुमति देना है।
यह रणनीति पाइन स्क्रिप्ट के समय और टाइमस्टैम्प कार्यों का उपयोग एक अनुकूलन योग्य बैकटेस्ट प्रारंभ समय को लागू करने के लिए करती है।
यह पहले उपयोगकर्ताओं को सेटिंग्स में एक अनुकूलित बैकटेस्ट प्रारंभ वर्ष, महीना, तिथि, घंटे और मिनट इनपुट करने की अनुमति देता है। फिर यह इन इनपुट का उपयोग टाइमस्टैम्प उत्पन्न करने के लिए करता है और इसे startTime चर में संग्रहीत करता है।
रणनीति की स्थिति की जाँच में, यह एक नई startTime शर्त जोड़ता है. रणनीति केवल तब शुरू होगी जब वर्तमान समय startTime से अधिक या बराबर हो।
उदाहरण के लिए:
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and startTime)
strategy.entry("My Long Entry Id", strategy.long)
यह एक अनुकूलन योग्य बैकटेस्ट प्रारंभ समय को लागू करने की अनुमति देता है। उपयोगकर्ता हार्डकोडेड समय तक सीमित होने के बजाय बैकटेस्टिंग के प्रारंभ समय को लचीले ढंग से कॉन्फ़िगर कर सकते हैं।
इस अनुकूलन योग्य बैकटेस्ट प्रारंभ समय रणनीति के निम्नलिखित फायदे हैंः
अधिक लचीलापनः उपयोगकर्ता समय में एक निश्चित बिंदु तक सीमित होने के बजाय बैकटेस्ट प्रारंभ समय को पूरी तरह से अनुकूलित कर सकते हैं।
अधिक यथार्थवादी: प्रारंभ समय को रणनीति के वास्तविक रनटाइम पर सेट किया जा सकता है, जिससे बैकटेस्ट अधिक यथार्थवादी हो जाता है।
घटना-संचालित बैकटेस्टिंग के लिए सुविधाजनक: प्रारंभ समय को विशिष्ट घटनाओं के बैकटेस्टिंग के लिए घटना के घटित होने के समय के आधार पर सेट किया जा सकता है।
स्थिति को आसानी से समायोजित करनाः विभिन्न चरणों के लक्षित बैकटेस्टिंग के लिए बैकटेस्ट स्टार्ट की स्थितियों को आसानी से समायोजित किया जा सकता है।
दोहराने योग्य और विश्वसनीयः बैकटेस्ट प्रारंभ समय को पैरामीटर करने से बैकटेस्ट के परिणाम दोहराने योग्य और विश्वसनीय हो सकते हैं।
एक अनुकूलन योग्य बैकटेस्ट प्रारंभ समय का उपयोग करने में भी कुछ जोखिम हैंः
परिणाम प्रारंभ समय पर निर्भर करते हैंः विभिन्न प्रारंभ समय बहुत अलग बैकटेस्ट परिणामों का कारण बन सकते हैं।
प्रारंभ समय सावधानीपूर्वक चयन की आवश्यकता होती है: अनुचित प्रारंभ समय बैकटेस्ट परिणामों में विकृति का कारण बन सकता है।
बढ़ी हुई वक्र फिटिंग जोखिमः प्रारंभिक समय को ऐतिहासिक आंकड़ों के अनुसार समायोजित करके आसानी से ओवरफिट।
तुलनात्मकता में कमी: इस रणनीति के परिणाम निश्चित प्रारंभ समय के बैकटेस्ट से कम तुलनीय हैं।
समाधान:
परिणामों पर प्रारंभ समय परिवर्तनों के प्रभाव का मूल्यांकन करने के लिए कई बार बैकटेस्ट करें।
विकृतियों को कम करने के लिए महत्वपूर्ण घटना समय को प्रारंभ समय के रूप में चुनें।
ऐतिहासिक आंकड़ों के अतिसंरेखण से बचने के लिए प्रारंभ समय को सावधानीपूर्वक समायोजित करें।
अनुकूलित बैकटेस्ट के साथ तुलना के लिए बेंचमार्क के रूप में फिक्स्ड स्टार्ट टाइम बैकटेस्ट रखें।
इस अनुकूलन योग्य बैकटेस्ट प्रारंभ समय रणनीति में निम्नलिखित पहलुओं में भी सुधार किया जा सकता हैः
बैकटेस्ट समय खिड़की के पूर्ण लचीले विन्यास के लिए प्रारंभ और अंत दोनों समयों के अनुकूलन का समर्थन करें।
स्मार्ट और अधिक सुविधाजनक समय विन्यास के लिए कई समय मोडः विशिष्ट तिथियां, सापेक्ष तिथियां, घटना-संचालित, आदि का समर्थन करें।
अधिक सहज समय पैरामीटर सेटिंग के लिए ग्राफिकल विन्यास इंटरफ़ेस का समर्थन करें.
विभिन्न समय के granularities के विन्यास का समर्थन करेंः वर्ष, महीना, दिन, घंटे, मिनट, सेकंड, आदि
पुनरुत्पादित, ट्रैक करने योग्य और तुलनीय परिणामों के लिए बैकटेस्ट समय विन्यास रिकॉर्ड करें।
अनुचित समय सेटिंग्स के कारण निम्न गुणवत्ता वाले बैकटेस्ट से बचने के लिए अनुचित समय कॉन्फ़िगरेशन का सत्यापन जोड़ें.
कई रणनीतियों में प्रारंभ समय को आसानी से सिंक्रनाइज़ करने के लिए प्रारंभ समय बाध्यकारी प्रदान करें।
यह रणनीति सीमाओं को कम करने और बैकटेस्ट को अधिक यथार्थवादी बनाने के लिए बैकटेस्ट प्रारंभ समय के अनुकूलन योग्य और लचीले विन्यास को सक्षम करती है। लेकिन विकृति को कम करने के लिए कई बैकटेस्ट, घटना-संचालित मॉडल आदि का उपयोग करने के लिए शुरू समय पर परिणामों की निर्भरता पर ध्यान देने की आवश्यकता है। इस रणनीति में भविष्य में स्मार्ट और अधिक सुविधाजनक बैकटेस्ट समय विन्यास प्राप्त करने के लिए सुधार के लिए कई दिशाएं भी हैं।
/*backtest start: 2022-09-19 00:00:00 end: 2023-09-25 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("C320up Strategy Tester Start Time", overlay = true) // Copy and paste below into your strategy // Strategy Tester Start Time xYear = input(2018, title = "Start Year") xMonth = input(01, title = "Start Month", minval = 01, maxval = 12) xDay = input(01, title = "Start Day", minval = 01, maxval = 31) xHour = input(00, title = "Start Hour", minval = 00, maxval = 23) xMinute = input(00, title = "Start Minute", minval = 00, maxval = 59) startTime = time >= timestamp(xYear, xMonth, xDay, xHour, xMinute) // End copy and paste // Add (and startTime) at the end of your condition/s to activate // The strategy below is just an example longCondition = crossover(sma(close, 14), sma(close, 28)) if (longCondition and startTime) strategy.entry("My Long Entry Id", strategy.long) shortCondition = crossunder(sma(close, 14), sma(close, 28)) if (shortCondition and startTime) strategy.entry("My Short Entry Id", strategy.short) // Happy trading!