WeCore
एल्गोरिदमिक ट्रेडिंग

ट्रेडिंग स्ट्रैटेजी में ओवरफिटिंग: इसे कैसे पहचानें और बचें

ट्रेडिंग स्ट्रैटेजी में ओवरफिटिंग और curve fitting: बहुत ज़्यादा पैरामीटर, data snooping, in-sample बनाम out-of-sample, walk-forward, robustness चेक और चेतावनी के संकेत।

WeCore·प्रकाशित ·5 मिनट पढ़ने का समय

ऐसी स्ट्रैटेजी बनाने का सबसे पक्का तरीका जो चार्ट पर शानदार दिखे और लाइव ट्रेडिंग में निराश करे, वह है ओवरफिटिंग। टेस्टिंग टूल्स जितने आसान और तेज़ होते जाते हैं, इस जाल में फंसना उतना ही आसान होता है। यह लेख बताता है कि ओवरफिटिंग क्या है, यह क्यों होती है, और कौन से चेक असली एज को नॉइज़ से अलग करने में मदद करते हैं।

ओवरफिटिंग क्या है

ओवरफिटिंग (ट्रेडिंग में इसे अक्सर curve fitting कहते हैं) तब होती है जब स्ट्रैटेजी हिस्टोरिकल डेटा में दोहराए जाने वाले पैटर्न के बजाय नॉइज़ सीख लेती है। नतीजा: जिस डेटा पर स्ट्रैटेजी बनी उस पर बेहतरीन परफॉर्मेंस, और नए डेटा पर कमज़ोर परफॉर्मेंस।

प्राइस डेटा में थोड़ा "सिग्नल" और बहुत सारा रैंडम नॉइज़ होता है। हर हिस्टोरिकल दौर में एक बार होने वाली घटनाएं होती हैं: सेंट्रल बैंक की अचानक घोषणा वाला दिन, असामान्य वोलैटिलिटी वाला हफ्ता, खास तौर पर लंबा ट्रेंड। जो स्ट्रैटेजी ठीक इन्हीं घटनाओं का फायदा उठाने के लिए ट्यून की गई हो, वह पीछे मुड़कर देखने पर परफेक्ट लगेगी, लेकिन ये घटनाएं उसी तरह दोबारा नहीं होंगी।

बहुत ज़्यादा पैरामीटर

स्ट्रैटेजी का हर पैरामीटर एक "नॉब" है जिसे आप ट्यून कर सकते हैं: मूविंग एवरेज की लंबाई, स्टॉप की दूरी, शुरू होने का समय, इंडिकेटर की थ्रेशोल्ड। दो पैरामीटर्स के साथ खुद को अतीत पर फिट करना मुश्किल है। दस के साथ आप लगभग किसी भी डेटा सीरीज़ को "समझा" सकते हैं।

एक काल्पनिक उदाहरण: एक स्ट्रैटेजी जिसमें 37 बार का मूविंग एवरेज, 23 टिक का स्टॉप, सिर्फ 09:47 से 11:12 के बीच एंट्री, और सिर्फ तब जब RSI 41 से नीचे हो। इनमें से हर संख्या इसलिए चुनी गई क्योंकि उसने सबसे अच्छा हिस्टोरिकल नतीजा दिया। मुख्य सवाल: 37 क्यों, 35 या 40 क्यों नहीं? अगर "क्योंकि यह सबसे अच्छा चला" के अलावा आपके पास कोई समझदार जवाब नहीं है, तो यह चेतावनी का संकेत है।

आम नियम: पैरामीटर जितने कम और टेस्ट में ट्रेड्स जितने ज़्यादा, नतीजा उतना भरोसेमंद।

Data snooping

भले ही हर अलग स्ट्रैटेजी में कुछ ही पैरामीटर हों, समस्या तब लौट आती है जब आप एक ही डेटा पर कई आइडियाज़ टेस्ट करते हैं। सौ वेरिएशन टेस्ट करें और कुछ सिर्फ संयोग से शानदार दिखेंगे। इसे data dredging या data snooping कहते हैं।

यह अनजाने में भी घुस आता है: आप एक आइडिया टेस्ट करते हैं, वह नहीं चलता, आप कुछ छोटा बदलते हैं, फिर टेस्ट करते हैं, और ऐसे ही चलता रहता है। पचास राउंड के बाद डेटा पहले ही स्ट्रैटेजी में "लीक" हो चुका होता है, भले आपने कभी ऑटोमेटेड ऑप्टिमाइज़ेशन न चलाया हो। लिखकर रखें कि आपने कितने वेरिएशन टेस्ट किए। वह संख्या लगभग नतीजे जितनी ही अहम है।

In-sample बनाम out-of-sample

ओवरफिटिंग के खिलाफ बुनियादी हथियार है अपने डेटा को बांटना:

  • In-sample: वह डेटा जिस पर आप स्ट्रैटेजी डेवलप और ट्यून करते हैं।
  • Out-of-sample: वह डेटा जिसे आप अलग रखते हैं और डेवलपमेंट के दौरान बिल्कुल नहीं छूते।

जब स्ट्रैटेजी "फ्रीज़" हो जाए, तभी उसे out-of-sample डेटा पर चलाएं। अगर परफॉर्मेंस ढह जाए, तो ओवरफिटिंग की संभावना है। ज़रूरी: अगर आप फिर वापस जाकर स्ट्रैटेजी बदलते हैं और उसी डेटा पर दोबारा टेस्ट करते हैं, तो वह अब सचमुच out-of-sample नहीं रहा।

Walk-forward टेस्टिंग

Walk-forward इसी आइडिया को आगे बढ़ाता है। आप इतिहास को लगातार विंडोज़ में बांटते हैं। हर कदम पर एक विंडो पर ट्यून करते हैं और अगली पर टेस्ट करते हैं, फिर दोनों विंडोज़ को आगे खिसकाकर दोहराते हैं।

  1. पहले साल पर ट्यून करें, उसके बाद की तिमाही पर टेस्ट करें।
  2. आगे खिसकें: नए दौर पर ट्यून करें, उसके बाद की तिमाही पर टेस्ट करें।
  3. सभी टेस्ट पीरियड्स को जोड़कर एक कर्व बनाएं।

जोड़ा गया कर्व एक यथार्थवादी स्थिति की नकल करता है, जिसमें आप समय-समय पर दोबारा ट्यून करते हैं और फिर ऐसे भविष्य में ट्रेड करते हैं जिसे आप नहीं जानते। अगर यह पूरे ऑप्टिमाइज़ेशन से बहुत खराब दिखता है, तो यह अहम जानकारी है।

Robustness चेक

डेटा बांटने के अलावा, कुछ आसान चेक हैं जो कोई भी ट्रेडर कर सकता है:

  • पैरामीटर का आस-पास: हर पैरामीटर को थोड़ा ऊपर-नीचे करें। मज़बूत स्ट्रैटेजी एक बड़ी रेंज में मिलते-जुलते नतीजे दिखाती है। अगर सिर्फ एक वैल्यू चलती है और उसके "पड़ोसी" नुकसान में हैं, तो आपको एक किस्मत वाली चोटी मिली है।
  • जुड़े हुए मार्केट्स: अगर स्ट्रैटेजी NQ पर चलती है, तो ES पर कैसा बर्ताव करती है? एक जैसा होना ज़रूरी नहीं, लेकिन पूरी तरह ढह जाना सवाल खड़े करता है।
  • अलग टाइमफ्रेम: टाइमफ्रेम में छोटा बदलाव मुनाफे वाली स्ट्रैटेजी को नुकसान वाली नहीं बनाना चाहिए।
  • अलग दौर: हर साल को अलग से जांचें। क्या मुनाफा किसी एक छोटे दौर से आता है?
  • ज़्यादा सख्त खर्च: ज़्यादा स्लिपेज और ऊंचे कमीशन जोड़ें। असली एज को यह झेल लेना चाहिए। ज़्यादा जानकारी बैकटेस्टिंग बनाम लाइव ट्रेडिंग में।
  • सबसे अच्छे ट्रेड्स हटाएं: सबसे ज़्यादा मुनाफे वाले पांच ट्रेड्स निकाल दें। अगर पूरा मुनाफा गायब हो जाए, तो स्ट्रैटेजी किस्मत पर टिकी है।

संकेत कि आपकी स्ट्रैटेजी ओवरफिट है

  • लगभग पूरी तरह स्मूथ इक्विटी कर्व, बिना किसी मुश्किल दौर के।
  • कई पैरामीटर, अजीब तरह से सटीक वैल्यूज़ के साथ।
  • पैरामीटर्स की संख्या के मुकाबले कम ट्रेड्स।
  • सिर्फ सेटिंग्स की बहुत संकरी रेंज में अच्छी परफॉर्मेंस।
  • हर बार थोड़ा और इतिहास जोड़ने पर नतीजों में बड़ा बदलाव।
  • अतीत के खास नुकसानों को "ठीक" करने के लिए जोड़े गए खास नियम।
  • In-sample और out-of-sample के बीच बड़ा अंतर।

मुख्य बातें

  • ओवरफिटिंग का मतलब है पैटर्न के बजाय नॉइज़ सीखना, और यह सिर्फ पीछे मुड़कर देखने पर शानदार लगती है।
  • कम पैरामीटर और ज़्यादा ट्रेड्स बुनियादी बचाव हैं।
  • Out-of-sample डेटा अलग रखें और स्ट्रैटेजी फ्रीज़ होने तक उसे न छुएं।
  • Walk-forward और पैरामीटर के आस-पास वाले चेक किस्मत वाली चोटियों को उजागर करते हैं।
  • हर चेक पास करने वाली स्ट्रैटेजी को भी फॉरवर्ड टेस्टिंग और सावधान पोज़ीशन साइज़िंग की ज़रूरत होती है।

कोई भी टेस्ट भविष्य की सफलता की गारंटी नहीं देता, इसलिए लैब के बाद का चरण भी उतना ही अहम है। WeCore आपको स्ट्रैटेजी या अलर्ट्स को ऑटोमेटेड रिस्क नियमों के साथ सिमुलेशन मोड में चलाने देता है, ताकि लाइव अकाउंट को रिस्क में डालने से पहले आप देख सकें कि यह नए डेटा पर कैसा बर्ताव करती है। सामान्य परिचय के लिए देखें एल्गोरिदमिक ट्रेडिंग क्या है।

स्रोत और आगे पढ़ें