598 / 691WFA

Walk-forward Analysis

समय में क्रमिक आगे बढ़ने वाला विश्लेषण

Walk-forward Analysis उपलब्ध अतीत से नियम चुनता है और अगले खंड में उनका परीक्षण करता है। प्रक्रिया पूर्वनिर्धारित प्रोटोकॉल के अनुसार समय के साथ दोहरती है। मूल्यांकन पूरी चयन प्रक्रिया का होता है, बाद में खोजे गए विजेता का नहीं; खंडों का सही पृथक्करण भी भविष्य के प्रतिफल की गारंटी नहीं देता।

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]

उदाहरणउदाहरण · WFA

अतीत से चुनें, केवल अगली अवधि में मूल्यांकन करें

हमारा काल्पनिक मॉडल समान लंबाई की छह अवधियाँ इस्तेमाल करता है जिनके क्रमांक ⁦1⁩ से ⁦6⁩ हैं, और दो पहले से तय संस्करण A तथा B हैं। समान स्थिर आकार पर उनके शुद्ध परिणाम A ⁦[4, -1, 2, -3, 5, -2] USD⁩ और B ⁦[1, 2, 1, 1, -2, 4] USD⁩ हैं। प्रत्येक परिणाम संबंधित अवधि समाप्त होने के बाद ही उपलब्ध होता है, मॉडल की सभी लागतें शामिल करता है और बिना खुली स्थिति के समाप्त होता है। कोई अतिरिक्त बदलाव लागत, ऋण या नकदी प्रवाह नहीं है। पहले से तय प्रक्रिया हमेशा पिछली तीन पूरी अवधियाँ जोड़ती है, ऊँचा योग चुनती है और विजेता केवल अगली अवधि में लागू करती है; बराबरी होने पर A चुनती। चयन खिड़कियाँ ⁦[1, 2, 3]⁩, ⁦[2, 3, 4]⁩ और ⁦[3, 4, 5]⁩ हैं, आगे के परीक्षण ⁦[4, 5, 6]⁩ हैं। A के चयन योग ⁦[5, -2, 4] USD⁩ और B के ⁦[4, 4, 0] USD⁩ हैं, इसलिए क्रमशः A, B और A चुने जाते हैं। संयुक्त परीक्षण परिणाम में केवल ⁦[-3, -2, -2] USD⁩ शामिल होते हैं, कुल ⁦-7 USD⁩। अवधि ⁦4⁩ से पहले शुरुआती परीक्षण नकद ⁦1000 USD⁩ और अंतिम नकद ⁦993 USD⁩ है; आकार नकद के अनुसार नहीं बदलता। प्रशिक्षण परिणाम खाते में नहीं जोड़े जाते और हर परीक्षण खंड केवल एक बार गिना जाता है। चित्र चयन खिड़कियों और अगले परीक्षणों का आगे बढ़ना दिखाता है, वास्तविक बाजार इतिहास या भविष्य की सफलता की प्रायिकता नहीं।

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Backtesting, Overfitting, Look-ahead Bias, Trading Plan, Trading Journal. इस प्रविष्टि का उल्लेख यहाँ भी है Backtesting, Overfitting, Look-ahead Bias, Survivorship Bias.

01क्या पुरानी परीक्षण अवधि बाद में प्रशिक्षण में आ सकती है?

हाँ, यदि वह समाप्त हो चुकी हो, जानकारी उपलब्ध हो और पूर्वनिर्धारित प्रोटोकॉल इसकी अनुमति देता हो। लेकिन इससे उस अवधि के लिए दर्ज चयन या परिणाम पीछे जाकर नहीं बदलना चाहिए।

02क्या Walk-forward Analysis ओवरफिटिंग हटा देता है?

अपने आप नहीं। उसी परिणाम के आधार पर खिड़की की लंबाई, उम्मीदवार या पूरी प्रक्रिया अब भी बार-बार चुनी जा सकती है। प्रयासों का इतिहास बताना, सूचना रिसाव जाँचना और विकास तथा आगे के सत्यापन का अंतर बनाए रखना जरूरी है।

DOC · 001QuantConnect — Walk Forward Optimizationदस्तावेज़ ↗DOC · 002QuantConnect — Optimization Parametersदस्तावेज़ ↗DOC · 003scikit-learn — TimeSeriesSplitदस्तावेज़ ↗DOC · 004scikit-learn — Common Pitfalls: Data Leakageदस्तावेज़ ↗DOC · 005QuantConnect — Trade Fills: Key Conceptsदस्तावेज़ ↗DOC · 006Bailey et al. — The Probability of Backtest Overfittingप्राथमिक स्रोत ↗DOC · 007NFA — Use of Promotional Material Containing Hypothetical Performance Resultsदस्तावेज़ ↗
स्रोत पहले · यह निवेश सलाह नहीं है