Walk-forward Analysis उस प्रक्रिया का कालक्रमिक मूल्यांकन है जो पुराने डेटा पर नियम चुनती या तय करती है और उन्हें आगे के परीक्षण काल पर लागू करती है। चयन और परीक्षण की भूमिकाएँ समय में आगे बढ़ती हैं, जबकि वर्तमान निर्णय को अगला परिणाम मालूम नहीं होना चाहिए।
Walk-forward Analysis ऐतिहासिक अनुकरण को समय में आगे बढ़ाता है: अब तक उपलब्ध डेटा पर नियम चुना या तय किया जाता है और फिर अगले खंड में उसके उपयोग का मूल्यांकन होता है। QuantConnect पिछले डेटा की अंतिम समय खिड़की पर नियमित अनुकूलन का वर्णन करता है। हमारा संपादकीय अंतर यह है कि हम पैरामीटरों के केवल एक अपरिवर्तित समूह का नहीं, उन्हें अद्यतन करने की पूर्वनिर्धारित प्रक्रिया का मूल्यांकन करते हैं। अगले चयन का समय, उद्देश्य और उम्मीदवारों का समूह भी नियम का हिस्सा हैं। हाल के डेटा से बेहतर मेल अपने आप बेहतर भविष्य का परिणाम साबित नहीं करता। [QuantConnect — Walk Forward Optimization]
QuantConnect चेतावनी देता है कि सर्वोत्तम पैरामीटर खोजने में इस्तेमाल अवधि विकास डेटा का हिस्सा बन जाती है। बाद में चुने विजेता को उसी अवधि पर लागू करना उस समय के निर्णय का ईमानदार परीक्षण नहीं है। इसलिए हमारा प्रोटोकॉल अगला परीक्षण खंड शुरू होने से पहले चयन बंद कर देता है। उस खंड के डेटा को वर्तमान विजेता पर प्रभाव नहीं डालना चाहिए। खंड समाप्त होने और जानकारी वास्तव में उपलब्ध होने पर पूर्वनिर्धारित प्रक्रिया उसे बाद के चयन में इस्तेमाल कर सकती है; इससे पहले दर्ज परीक्षण निर्णय नहीं बदलते। [QuantConnect — Optimization Parameters]
TimeSeriesSplit समय क्रम में प्रशिक्षण और परीक्षण सूचकांक बनाता है; डिफ़ॉल्ट रूप से पिछला प्रशिक्षण समूह धीरे-धीरे बढ़ता है और उसका आकार सीमित किया जा सकता है। हमारा अंतर यह है कि चलती खिड़की अतीत की चुनी हुई लंबाई रखती है, जबकि फैलती खिड़की का आरंभ स्थिर रहता है। खिड़की की लंबाई और अद्यतन आवृत्ति डिज़ाइन का हिस्सा हैं, परिणाम देखने के बाद स्वतंत्र समायोजन नहीं। दस्तावेज़ खंडों के तुलनीय मापों के लिए समान समय अंतर वाले नमूने माँगते हैं; अनियमित डेटा में वास्तविक कैलेंडर अवधि पर ध्यान देना जरूरी है। [scikit-learn — TimeSeriesSplit]
TimeSeriesSplit का gap पैरामीटर परीक्षण से पहले प्रशिक्षण समूह के अंत के नमूने छोड़ देता है। हमारी पद्धतिगत शर्त है कि जरूरी दूरी इनपुट की उपलब्धता और लक्ष्य परिणामों के पूरा होने के समय से निकाली जाए। यदि प्रशिक्षण अवलोकन का परिणाम परीक्षण अवधि की कीमतों का उपयोग करता है, तो केवल पंक्तियाँ क्रम में लगाने से रिसाव नहीं मिटता। इसलिए अंतराल की लंबाई सिर्फ सुंदर वक्र देखकर नहीं चुननी चाहिए। उचित अंतराल भी पास-पास की अवधियों की स्वतंत्रता सिद्ध नहीं करता और हर तरह का चयन पूर्वाग्रह नहीं हटाता। [scikit-learn — TimeSeriesSplit]
scikit-learn के दस्तावेज़ चेतावनी देते हैं कि सामान्यीकरण, गायब मान भरना या विशेषताओं का चयन परीक्षण की जानकारी मॉडल तक पहुँचा सकता है। इन रूपांतरणों के पैरामीटर केवल प्रशिक्षण हिस्से पर सीखने और फिर परीक्षण हिस्से पर लागू करने चाहिए। हमारी जाँच हर बार खिड़की खिसकने पर यह पृथक्करण दोहराती है। पूरे डेटासेट का औसत पहले निकालकर बाद में तैयार तालिका बाँटने से गलती ठीक नहीं होती। डेटा का संस्करण और उसकी वास्तविक उपलब्धता का समय भी सुरक्षित रखना चाहिए। [scikit-learn — Common Pitfalls: Data Leakage]
QuantConnect ऐसा मॉडल अलग करता है जो निष्पादन की कीमत और मात्रा तय करता है और spread तथा Slippage शामिल कर सकता है। परीक्षण खंड जोड़ने के लिए हमारी शर्त है कि पूँजी, खुली स्थितियों और नियम बदलने की लागतों के साथ संगत व्यवहार हो। प्रशिक्षण लाभ आगे के परीक्षण परिणाम में नहीं जोड़े जाते और अतिव्यापी परीक्षण अवधियों को बिना समझाए कई बार नहीं गिना जा सकता। यदि स्थिति आगे ले जाई जाती है, तो कॉन्फ़िगरेशन के बीच बदलाव का वर्णन करना चाहिए। इसके विपरीत हमारा नीचे का मॉडल हर अवधि बिना खुली स्थिति के समाप्त करता है। [QuantConnect — Trade Fills: Key Concepts]
बेली और सहलेखक एक ही डेटा पर बार-बार खोजने से गलत खोजों का बढ़ता जोखिम बताते हैं। Walk-forward Analysis के लिए हमारा निष्कर्ष है कि यदि बनी हुई परीक्षण श्रृंखला के आधार पर खिड़की की लंबाई, उद्देश्य या उम्मीदवार बदलकर पूरा क्रम दोहराएँ, तो श्रृंखला विकास को प्रभावित कर रही है। उसे स्वतंत्र नाम दे देना पर्याप्त नहीं। रिपोर्ट में आजमाए गए सभी प्रोटोकॉल बताने और संभावित अतिरिक्त, अब तक अप्रयुक्त सत्यापन को अलग दिखाने चाहिए। केवल समय में आगे बढ़ना ओवरफिटिंग की प्रायिकता का अनुमान या स्वतः सांख्यिकीय गारंटी नहीं है। [Bailey et al. — The Probability of Backtest Overfitting]
NFA जोर देता है कि काल्पनिक परिणाम वास्तविक व्यापार या तरलता, मूल्य फिसलन और असली नुकसान के दौरान व्यवहार का पूरा प्रभाव नहीं दर्शाते। इसलिए हमारी Walk-forward Analysis रिपोर्ट खिड़की की सीमाएँ, उम्मीदवार, चयन स्कोर, चुने कॉन्फ़िगरेशन और लागत समेत आगे के खंडों के परिणाम सुरक्षित रखती है। योग के साथ जोखिम, अवलोकनों की संख्या और समान परिस्थितियों में तुलना का संदर्भ चाहिए। छोटा नकारात्मक उदाहरण विधि की सामान्य असफलता सिद्ध नहीं करता, जैसे सकारात्मक योग भविष्य की व्यापारिक बढ़त सिद्ध नहीं करता। [NFA — Use of Promotional Material Containing Hypothetical Performance Results]
अतीत से चुनें, केवल अगली अवधि में मूल्यांकन करें
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Backtesting, Overfitting, Look-ahead Bias, Trading Plan, Trading Journal. इस प्रविष्टि का उल्लेख यहाँ भी है Backtesting, Overfitting, Look-ahead Bias, Survivorship Bias.
01क्या पुरानी परीक्षण अवधि बाद में प्रशिक्षण में आ सकती है?+
हाँ, यदि वह समाप्त हो चुकी हो, जानकारी उपलब्ध हो और पूर्वनिर्धारित प्रोटोकॉल इसकी अनुमति देता हो। लेकिन इससे उस अवधि के लिए दर्ज चयन या परिणाम पीछे जाकर नहीं बदलना चाहिए।
02क्या Walk-forward Analysis ओवरफिटिंग हटा देता है?+
अपने आप नहीं। उसी परिणाम के आधार पर खिड़की की लंबाई, उम्मीदवार या पूरी प्रक्रिया अब भी बार-बार चुनी जा सकती है। प्रयासों का इतिहास बताना, सूचना रिसाव जाँचना और विकास तथा आगे के सत्यापन का अंतर बनाए रखना जरूरी है।