30 अगस्त 2026 · सांख्यिकी

बैकटेस्ट में कितने ट्रेड चाहिए, इससे पहले कि Sharpe का कोई मतलब हो?

बैकटेस्ट में कितने ट्रेड चाहिए, इससे पहले कि Sharpe का कोई मतलब हो?

पहली रणनीति पूरी करने वाले लोग किसी न किसी रूप में मुझसे सबसे ज़्यादा यही पूछते हैं: नतीजे पर भरोसा करने से पहले मुझे कितने ट्रेड चाहिए? आम तौर पर इसके साथ कोई संख्या भी होती है। "मेरे पास 1,200 ट्रेड हैं, इतना काफ़ी है, है न?" और ईमानदार जवाब सबको खटकता है, क्योंकि इसका ट्रेडों की संख्या से कोई लेना-देना नहीं है।

पूरी बात एक ही पंक्ति में है; फिर इस पोस्ट के बाकी हिस्से में बताऊँगा कि यह इतनी तकलीफ़देह क्यों है।

1/√Tवार्षिकीकृत Sharpe की मानक त्रुटि, T वर्षों में
±0.885 वर्षों के किसी भी Sharpe के आसपास 95% विश्वास-सीमा
1.4इन्हीं 5 वर्षों में 100 शोर-रणनीतियों में सबसे भाग्यशाली रणनीति का Sharpe

Sharpe अनुपात की मानक त्रुटि क्या है?

n आवधिक रिटर्न पर निकाले गए Sharpe के लिए, यह मानते हुए कि वे स्वतंत्र और लगभग सामान्य वितरण वाले हैं, सैंपलिंग त्रुटि यह है:

SE(s) ≈ √((1 + s²/2) / n)

जहाँ s उसी आवृत्ति पर मापा गया Sharpe है। दोनों पक्षों का वार्षिकीकरण करने पर एक साफ़ नतीजा मिलता है। साल में k प्रेक्षण और T साल हों, तो वार्षिकीकृत Sharpe S की मानक त्रुटि है:

SE(S) ≈ √((1 + S²/(2k)) / T)

हर के इस 2k को देखिए। दैनिक रिटर्न के लिए k = 252 होता है, इसलिए 2 का Sharpe भी अंश में 4/504 ≈ 0.008 ही जोड़ता है। पूरा पद सिमटकर 1 रह जाता है। वार्षिकीकृत Sharpe की मानक त्रुटि लगभग 1/√T होती है, जहाँ T आपके डेटा के कैलेंडर वर्षों की संख्या है। यह Sharpe पर बमुश्किल निर्भर करती है, सैंपलिंग की आवृत्ति पर निर्भर नहीं करती, और आपने कितने ट्रेड किए, इस पर तो बिल्कुल निर्भर नहीं करती।

तो:

डेटा के वर्षSE(Sharpe)अगर मापा गया Sharpe 1.5 हो, तो 95% CI
11.00−0.46 से 3.46
20.710.11 से 2.89
30.580.37 से 2.63
50.450.62 से 2.38
100.320.88 से 2.12

दो साल के इतिहास पर Sharpe 1.5 दिखाने वाला बैकटेस्ट 95% विश्वास स्तर पर यह नहीं बता सकता कि नतीजा संयोग से बेहतर है। ज़्यादातर क्रिप्टो शोध की यही बुनियादी स्थिति है, क्योंकि अधिकतर लोगों के पास साफ़, सर्वाइवरशिप-बायस से सुधारा हुआ और शुल्क के हिसाब से सटीक डेटा 2022 के आसपास से ही शुरू होता है; और दिलचस्प आधे टोकन तो 2023 से पहले मौजूद ही नहीं थे।

लेकिन मेरे पास 40,000 ट्रेड हैं। क्या इससे समस्या हल नहीं होती?

नहीं, और यही वह गलतफ़हमी है जिसे मैं सबसे पहले दूर करना चाहता हूँ।

ट्रेडों की संख्या और नमूने की अवधि अलग-अलग चीज़ें हैं, और सूत्र में उनमें से सिर्फ़ एक आती है। अगर आपकी रणनीति 6 महीनों में 40,000 बार ट्रेड करती है, तो आपके पास T = 0.5 और SE ≈ 1.41 है। मापा गया Sharpe 2.0 हो, तो उसका 95% अंतराल −0.8 से 4.8 तक जाता है। चालीस हज़ार ट्रेडों के बाद भी ईमानदार नतीजा यही है: "रणनीति अच्छी भी हो सकती है, नकारात्मक भी।"

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

मैं इसे ऐसे याद रखता हूँ: फिल की गिनती नहीं, बाज़ार की व्यवस्थाओं की गिनती करें। इस रणनीति ने बाज़ार की कितनी सचमुच अलग स्थितियों में टिके रहकर काम किया? एक फंडिंग-कैरी रणनीति, जो लंबे समय तक एक ही बेसिस-पॉज़िटिव दौर में चली, उसने n = 1 स्थिति देखी है, चाहे उसने कितनी भी बार प्रति घंटे रीबैलेंस किया हो।

झटपट जाँच: अपने दैनिक P&L का 20 दिनों की ब्लॉक लंबाई के साथ ब्लॉक-बूटस्ट्रैप करें और री-सैंपल किए गए Sharpe का फैलाव देखें। अगर 5वाँ परसेंटाइल शून्य से नीचे है, तो ट्रेडों की संख्या अप्रासंगिक है। इसके लिए numpy की लगभग 9 पंक्तियाँ लगती हैं, और इस एक जाँच ने मुझे किसी भी दूसरी जाँच से ज़्यादा रणनीतियों से पीछे हटने पर मजबूर किया है।

क्या यह सूत्र असली रणनीतियों पर लागू होता है?

बिल्कुल नहीं, और इसकी गलती उस दिशा में होती है जो आपको पसंद नहीं आएगी। 1/√T वाला नतीजा IID सामान्य वितरण वाले रिटर्न मानकर चलता है। असली रणनीतियों के रिटर्न में ऑटोकॉरिलेशन और स्क्यू होता है, और कैरी, शॉर्ट-वॉल या मीन-रिवर्शन जैसी रणनीतियों में स्क्यू आम तौर पर नकारात्मक होता है। Mertens का सुधार इन मोमेंट्स को वापस जोड़ता है:

SE(s) ≈ √((1 + s²/2 − γ₃·s + (γ₄−3)·s²/4) / n)

जहाँ γ₃ स्क्यू और γ₄ कर्टोसिस है। नकारात्मक स्क्यू से −γ₃·s पद धनात्मक हो जाता है, जिससे अंतराल चौड़ा होता है। अतिरिक्त कर्टोसिस इसे और चौड़ा करता है। लगभग −1.2 के स्क्यू और लगभग 9 के कर्टोसिस वाले सामान्य क्रिप्टो-कैरी P&L में, मैंने सुधारी गई मानक त्रुटि को सीधे-सादे अनुमान से 30–40% बड़ा पाया है। Lo का 2002 का पेपर ऑटोकॉरिलेशन के पहलू को संभालता है और असर की दिशा वही है: रिटर्न में धनात्मक सीरियल कॉरिलेशन से सीधा-सादा Sharpe बढ़ा-चढ़ाकर दिखता है और अनुमानित त्रुटि सिकुड़ जाती है — यह दोनों का ख़तरनाक मेल है।

इसलिए 1/√T को अपनी अनिश्चितता की निचली सीमा मानें। इससे बेहतर स्थिति नहीं हो सकती।

अगर मैंने 500 वैरिएंट जाँचे, तो Sharpe कितना ऊँचा होना चाहिए?

अब उस हिस्से पर आते हैं जो ऑटोमेटेड रिसर्च पाइपलाइन चलाने वाले हर व्यक्ति के लिए मायने रखता है। Stratmill में हमारी रोज़मर्रा की स्थिति भी यही है: जनरेशन एजेंट एक उम्मीदवार नहीं, सैकड़ों उम्मीदवार बनाता है।

मानक सामान्य वितरण से M नमूनों का अधिकतम अपेक्षित मान लगभग √(2 ln M) होता है। इसे अपनी मानक त्रुटि से गुणा करें, तो आपको वह Sharpe मिलता है जो M सचमुच बेकार रणनीतियों में सबसे भाग्यशाली दिखाएगी।

जाँची गई रणनीतियाँ√(2 ln M)5 वर्ष में शोर से मिला सबसे अच्छा Sharpe (SE 0.45)2 वर्ष में शोर से मिला सबसे अच्छा Sharpe (SE 0.71)
102.150.961.52
1003.031.362.16
5003.531.582.50
5,0004.131.852.93

दूसरी आख़िरी पंक्ति पढ़िए। अगर आपने 2 साल के डेटा पर 500 उम्मीदवार बनाए और विजेता का Sharpe 2.4 दिखता है, तो आपको कुछ भी नहीं मिला। यह शोर की सीमा से नीचे है। Bailey और López de Prado का deflated Sharpe, आपके परीक्षण वाले Sharpes के विचरण को मोटे √(2 ln M) की जगह रखकर इसे औपचारिक रूप देता है। इसे सही ढंग से लागू करना अच्छा रहेगा, लेकिन इसका मोटा अनुमान भी आज आपका व्यवहार बदलने के लिए काफ़ी है।

दो बातें इसे तालिका से भी बदतर बनाती हैं। पहली, M उन रणनीतियों की संख्या नहीं है जिन्हें आपने सहेजा, बल्कि उन रणनीतियों की संख्या है जिनका आपने मूल्यांकन किया — इसमें हर पैरामीटर बदलाव, हर "ज़रा 30-अवधि वाला लुकबैक आज़माता हूँ" और बग ठीक करने के बाद की हर दोबारा चलाई गई जाँच शामिल है। कोई भी ईमानदारी से इसकी गिनती नहीं रखता। दूसरी, आपके उम्मीदवार स्वतंत्र नमूने नहीं होते, इसलिए √(2 ln M) प्रभावी विविधता को बढ़ा-चढ़ाकर बताता है; हालाँकि सहसंबद्ध परीक्षणों का यह भी मतलब है कि एक भाग्यशाली बाज़ार-व्यवस्था उनके पूरे समूह को एक साथ ऊपर उठा सकती है।

क्वांट शोध की सबसे ख़तरनाक संख्या वह है जिसे किसी ने दर्ज नहीं किया: आपने कितनी बार देखा।

तो मैं असल में करता क्या हूँ?

5 बातें, उसी क्रम में जिस क्रम में मैं उन्हें करूँगा।

  1. हर मूल्यांकन दर्ज करें। हर बैकटेस्ट रन पर बढ़ने वाला काउंटर रखें, उसे सहेजें और कभी रीसेट न करें। अगर आप M नहीं बता सकते, तो अपनी सीमा भी नहीं बता सकते। इस पूरी सूची में इंजीनियरिंग का यह एक घंटा सबसे ज़्यादा फ़ायदा देता है।
  2. Sharpe के साथ उसका अंतराल हमेशा बताएँ। सिर्फ़ एक संख्या कभी न छापें। हमारी बैकटेस्ट रिपोर्ट 1.72 ± 0.51 (2.9y, skew-adjusted) दिखाती हैं और ± का निशान वैकल्पिक नहीं है। इससे पूरी टीम नतीजों पर कैसे बात करती है, वह बदल जाता है।
  3. नतीजा देखने से पहले M और T के आधार पर सीमा तय करें। ऊपर की तालिका से संख्या निकालें और उसे लिख लें। बाद में तय की गई सीमाएँ ही सबको कर्व-फिटिंग को सही ठहराने का रास्ता देती हैं।
  4. नमूना कम हो, तो आवृत्ति बढ़ाने के बजाय विविधता बढ़ाएँ। आप कैलेंडर का समय नहीं बढ़ा सकते, लेकिन एक ही सिग्नल को 40 असहसंबद्ध टोकनों पर चला सकते हैं। इससे प्रभावी n सचमुच बढ़ता है, जबकि ट्रेडों की आवृत्ति बढ़ाने से ऐसा नहीं होता। लेकिन सहसंबंधों पर नज़र रखें — जोखिम से बचने वाले घंटे में 40 क्रिप्टो परप्स, एक ही इंस्ट्रूमेंट हैं।
  5. फिर इसे पेपर ट्रेड करें। आउट-ऑफ़-सैंपल समय हर दिन केवल 1 दिन बढ़ता है और इसका कोई शॉर्टकट नहीं है। इसी वजह से यही एक नमूना है जिसे कोई ओवरफिट नहीं कर सकता।

इनमें से कोई भी बात छोटे नमूनों को उपयोगी नहीं बनाती। ये आपको ईमानदार बनाती हैं कि छोटा नमूना किस दावे का समर्थन कर सकता है — और वह दावा अधिकांश बैकटेस्ट रिपोर्टों से कहीं कमज़ोर होता है। 2 साल का Sharpe 1.5 पेपर ट्रेडिंग के लायक परिकल्पना है। यह कोई निष्कर्ष नहीं है।

Sharpe अनुपातओवरफिटिंगबैकटेस्टिंगसांख्यिकीय महत्त्वक्वांट शोध
साझा करेंXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← सभी पोस्ट