लेख की विषय-सूची

साक्ष्य और दायरा

यह आर्टिकल एक वैलिडेशन वर्कफ़्लो बताता है, न कि कोई फ़ायदेमंद स्ट्रेटेजी या नया बैकटेस्ट। बताए गए सोर्स पैटर्न इन्फ़रेंस, सिमुलेशन मैकेनिक्स और स्टैटिस्टिकल ओवरफ़िटिंग के बारे में बताते हैं; कोई भी इस लाइब्रेरी में हर मेथड के फ़ायदे को सर्टिफ़ाई नहीं करता है।

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

व्यावहारिक कार्यप्रवाह

कार्यप्रवाह: ट्रेडिंग स्ट्रेटेजी को वैलिडेट करें: डेटा, फिल्स और आउट-ऑफ-सैंपल टेस्ट
पूरे चरण नीचे दिए गए हैं। हर चरण में डेटा अधूरा होने या शर्त पूरी न होने पर अस्वीकार करने का कारण दर्ज होना चाहिए।
  1. परिकल्पना दर्ज करेंमार्केट, नियम, लागत, मेट्रिक्स और परमिटेड ट्रायल्स को फ्रीज़ करें।
  2. इनपुट को मान्य करेंपॉइंट-इन-टाइम अवेलेबिलिटी, वॉल्यूम का मतलब, यूनिवर्स और टाइमस्टैम्प चेक करें।
  3. भविष्य की जानकारी बिना क्रमिक रीप्ले करेंऑर्डर बनाने और फिल करने की अनुमति देने से पहले सिग्नल कन्फर्म करें।
  4. जोखिम को सीमित करेंसाइज़िंग, मार्जिन, एक्सपोज़र और गैप-स्ट्रेस की ज़रूरतें लागू करें।
  5. वॉक-फॉरवर्ड का मूल्यांकन करेंओवरलैपिंग लेबल हटाएँ, वैलिडेशन से सेटिंग चुनें और प्रत्येक टेस्ट से पहले उसे स्थिर करें।
  6. पूरे सबूत की रिपोर्ट करेंएब्लेशन, स्ट्रेस टेस्ट, अनिश्चितता और सबूत का लेवल पब्लिश करें।

चार अलग-अलग सवालों के जवाब क्रम से दें

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

फॉर्मल पैटर्न रिसर्च दिखाता है कि पहचान और स्टैटिस्टिकल अनुमान की जांच कैसे की जा सकती है। [1] देखने में अच्छा लगने वाला डबल टॉप या स्टैटिस्टिकली अलग रिटर्न डिस्ट्रीब्यूशन अभी पूरा ट्रेडिंग सिस्टम नहीं है। एंट्री, एग्जिट, कॉस्ट, पोजीशन साइजिंग और अपॉर्चुनिटी सेट अभी भी इकोनॉमिक रिजल्ट तय करते हैं।

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

एक काम का नेगेटिव रिज़ल्ट भी बताएं। उदाहरण के लिए, एक वॉल्यूम फ़िल्टर एक्सपोज़र मैच करने के बाद कोई इंक्रीमेंटल नेट एक्सपेक्टेंसी नहीं जोड़ सकता है। उस आउटकम को रिकॉर्ड करने से रिसर्च प्रोसेस को, जब भी कोई पसंदीदा रिज़ल्ट फेल हो जाता है, तो चुपचाप ओरिजिनल सवाल को बदलने से रोकता है।

1. पॉइंट-इन-टाइम डेटा और वॉल्यूम का मतलब

घटना का समय, डेटा मिलने का समय और रणनीति द्वारा उसे इस्तेमाल कर सकने का समय अलग रखें। केवल कैंडल का टाइमस्टैम्प विलंबित फ़ीड, सुधार या प्रकाशन-विलंब नहीं बताता। ऐतिहासिक सिमुलेशन में तब उपलब्ध जानकारी पुनर्निर्मित करें; आज का सबसे नया सुधारा डेटाबेस अंधाधुंध न लें।

स्थिर साधन पहचान, ऐतिहासिक निवेश-समूह की सदस्यता और कॉर्पोरेट घटनाएँ रखें। आज बचे शेयर ही अतीत का पूरा निवेश-योग्य समूह नहीं हैं। डीलिस्टिंग, ticker पुनःप्रयोग, नई लिस्टिंग और अनुपलब्ध कीमतें स्पष्ट संभालें। कॉर्पोरेट घटनाओं की प्रभावी तारीख और घोषणा तारीख अलग उपलब्धता-प्रश्नों का उत्तर देती हैं।

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

वॉल्यूम मार्केट-स्पेसिफिक होता है। एक्सचेंज शेयर वॉल्यूम, फ्यूचर्स कॉन्ट्रैक्ट वॉल्यूम, FX टिक काउंट और क्रिप्टो वेन्यू की ट्रेडेड क्वांटिटी अलग-अलग मेज़रमेंट हैं। बाइंग वॉल्यूम या डेल्टा जैसे लेबल के लिए एक असली क्लासिफिकेशन मेथड की ज़रूरत होती है; ऑर्डिनरी OHLCV पार्टिसिपेंट की पहचान या ऑल-मार्केट ऑर्डर फ्लो नहीं दिखाता है।

डुप्लीकेट बार, मिसिंग इंटरवल, नामुमकिन OHLC रिलेशनशिप, नेगेटिव वॉल्यूम और टाइमज़ोन में रुकावट के लिए इंटीग्रिटी टेस्ट बनाएं। डेटासेट वर्शन और करेक्शन लॉग को सेव करें। बदलते अनवर्जन्ड इनपुट वाला एक रिप्रोड्यूसिबल कोडबेस एक रिप्रोड्यूसिबल एक्सपेरिमेंट नहीं बनाता है।

2. कन्फर्मेशन टाइम और प्रीफ़िक्स इनवेरियंस

इंडेक्स i पर एक पिवट जिसके दाईं ओर r बार की ज़रूरत होती है, उसे i+r से पहले कन्फर्म नहीं किया जाता है। एनालिसिस के लिए i पर इसकी लोकेशन निकाली जा सकती है, लेकिन वहां बाद में ट्रेडिंग का फैसला नहीं लिया जा सकता। occurred_at और confirmed_at को अलग-अलग फील्ड के तौर पर स्टोर करें और बाद में उपलब्ध टाइमस्टैम्प से एग्जीक्यूट करें।

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

ज़्यादा टाइमफ़्रेम इनपुट के लिए भी इसी डिसिप्लिन की ज़रूरत होती है। घंटे के हिसाब से ऑब्ज़र्वेशन उपलब्ध होने के बाद ही, घंटे के हिसाब से पूरी हुई वैल्यू को मिनट स्ट्रेटेजी में जोड़ें। अभी के अधूरे घंटे के आखिर में हाई, लो या क्लोज को पहले के मिनट के फैसलों में नहीं जोड़ा जा सकता।

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

एक जानकारी देने वाला टेस्ट जानबूझकर भविष्य की कीमतों और वॉल्यूम को बदलता है, जबकि पुराने प्रीफ़िक्स को फिक्स रखता है। अगर पहले का कन्फर्म किया गया सिग्नल बदलता है, तो यह मानने के बजाय कि चार्टिंग प्लेटफॉर्म ने रीपेंटिंग को अपने आप ठीक कर लिया है, डिपेंडेंसी को ट्रेस करें।

3. ऑर्डर पूरा होने से पहले उसका होना ज़रूरी है

सिग्नल से लेकर ऑर्डर बनाने, सबमिट करने, स्वीकार करने, ट्रिगर करने, थोड़ा भरने और पूरा होने या कैंसल करने तक का सीक्वेंस दिखाएं। हर स्टेज पर लेटेंसी हो सकती है। ऑर्डर स्वीकार करने से पहले का कोई हिस्टॉरिकल प्राइस टच उस ऑर्डर के लिए उपलब्ध फ़िल नहीं है।

प्लेटफ़ॉर्म दस्तावेज़ से एमुलेटर के समय और ऑर्डर की मान्यताएँ समझी जा सकती हैं[2]। वे सिमुलेटर के नियम हैं, वास्तविक एक्सचेंज भराव की गारंटी नहीं। स्टॉप-मार्केट ऑर्डर सक्रिय होने की शर्त तय करता है, अंतिम कीमत की गारंटी नहीं; लिमिट ऑर्डर कीमत सीमित करता है लेकिन भरना सुनिश्चित नहीं करता[3]।

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

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

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

4. रिस्क साइज़िंग में एक जैसी यूनिट्स का इस्तेमाल होना चाहिए

एक लीनियर इंस्ट्रूमेंट के लिए, एक प्रस्तावित साइज़ फ़ॉर्मूला q=floor(B/(abs(E−S)×multiplier+c_unit)) है, जहाँ B कैश लॉस बजट है, E प्लान्ड एंट्री है, S स्टॉप है और c_unit प्रति यूनिट अनुमानित राउंड-ट्रिप कॉस्ट है। करेंसी कन्वर्ज़न में न्यूमरेटर और डिनॉमिनेटर को एक ही अकाउंट करेंसी में रखना चाहिए।

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

$20,000 की सिंथेटिक इक्विटी और 0.5% के रिस्क पर विचार करें, जिससे B=$100 मिलेगा। एंट्री 100 के साथ, स्टॉप 99.50 और प्रति शेयर कॉस्ट एस्टीमेट $0.04, q=floor(100/0.54)=185। उस कॉस्ट सहित प्लान्ड लॉस $99.90 है।

अगर एग्जिट 99.20 पर भरता है, तो प्राइस लॉस $148 होगा और वही अनुमानित कॉस्ट $7.40 होगी, जिसका टोटल $155.40 होगा। एक रिपोर्ट जो इस लॉस को तय $100 बजट में क्लिप करती है, वह एग्जीक्यूशन रिस्क को मापने के बजाय उसे मिटा देती है।

पोर्टफ़ोलियो स्तर पर लंबित ऑर्डर के लिए एक्सपोज़र आरक्षित रखें, कुल और शुद्ध नोशनल सीमित करें और परस्पर संबंधित जोखिम जोड़ें। कई छोटी पोज़िशन एक ही बाजार झटके पर साथ प्रतिक्रिया दे सकती हैं। योजनाबद्ध स्टॉप जोखिम और एक साथ प्रतिकूल चालों के तनाव-परीक्षण नुकसान दोनों बताएँ।

5. वॉक-फॉरवर्ड इवैल्यूएशन, पर्जिंग और एम्बार्गो

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

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

एम्बार्गो आस-पास के ऑब्ज़र्वेशन को बाहर कर देता है, जहाँ क्रॉस-वैलिडेशन डिज़ाइन वरना फ्यूचर-साइड ट्रेनिंग सैंपल्स को टेस्ट इंटरवल के साथ जानकारी शेयर करने की इजाज़त देता। यह क्रोनोलॉजिकल सेपरेशन का यूनिवर्सल सब्स्टीट्यूट नहीं है और गलत फ़ीचर टाइमस्टैम्प को रिपेयर नहीं करता है। बताए गए लेखक की प्रेजेंटेशन इन मैकेनिज़्म पर चर्चा करती है; यह इस बात का सबूत नहीं है कि हर आर्बिट्रेरी एम्बार्गो लेंथ काफ़ी है। [4]

यदि शोध में walk-forward परिणाम बार-बार देखे जाते हैं तो अतिरिक्त अंतिम holdout रखें। परिणामों के अनुसार संशोधन शुरू होते ही वे विकास का हिस्सा हैं। अंतिम सेटिंग केवल विकास जानकारी से चुनें, फिर लॉक्ड holdout एक बार जाँचें और बिना पुनःट्यून किए परिणाम बताएँ।

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

6. एब्लेशन, कई ट्रायल और स्ट्रेस टेस्ट

एब्लेशन पूछता है कि हर कंपोनेंट क्या जोड़ता है। सिर्फ़ प्राइस, प्राइस प्लस RVOL और प्राइस प्लस RVOL प्लस VWAP की तुलना एक ही मौके की दुनिया, साइज़िंग और एग्ज़िक्यूशन के अंदाज़ों का इस्तेमाल करके करें। जब दोनों नए इंडिकेटर का इस्तेमाल करें तो एंट्री और एग्ज़िट लॉजिक को अलग-अलग बदलें; नहीं तो सुधार का सोर्स साफ़ नहीं रहेगा।

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

Deflated Sharpe Ratio अपनी मान्यताओं के अंतर्गत चयन पक्षपात और गैर-सामान्य वितरण वाले रिटर्न को संबोधित करता है[5]। यह वास्तविक ट्रेडिंग में लाभ होने की संभावना नहीं है। Probability of Backtest Overfitting अपने ढाँचे में डेटा विभाजनों के बीच रैंक गिरने से संबंधित है, सीधे खाते की पूँजी खोने की संभावना से नहीं[6]।

निष्पादन लागत को पहले से तय1.5 और2 जैसे गुणकों तक बढ़ाकर जाँचें, प्रवेश एक कैंडल देर से करें, निकटवर्ती पैरामीटर और सबसे बड़े पाँच ट्रेडों पर निर्भरता जाँचें। ये प्रस्तावित संवेदनशीलता परीक्षण हैं। ट्रेंड रणनीति स्वाभाविक रूप से बड़े विजेताओं पर निर्भर होती है; उन्हें हटाकर देखना जानकारी देता है पर स्वतः पास-फेल नियम नहीं है।

तुलना को सपोर्ट करने के लिए काफ़ी ऑब्ज़र्वेशन के साथ रिजीम और कैपेसिटी सेंसिटिविटी की जांच करें। डेटा को कई छोटे-छोटे फ़ायदेमंद रिजीम में बांटने से एक और सिलेक्शन प्रॉब्लम पैदा होती है। कॉस्ट के बाद एक सिंपल स्टेबल इफ़ेक्ट आमतौर पर कुछ खास समय के आस-पास बनी लंबी-चौड़ी जानकारी से ज़्यादा असरदार होता है।

7. मेट्रिक्स, उम्मीद और सबूत के लेवल

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

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

एक सिंथेटिक स्ट्रैटेजी जिसमें जीत की संभावना 0.40, औसत विजेता 2R, औसत हारने वाला 1R और लागत 0.08R है, उसकी उम्मीद 0.40×2−0.60×1−0.08=0.12R है। उन फिक्स्ड पेऑफ के तहत इसका ब्रेक-ईवन जीत रेट (1+0.08)/(2+1)=0.36 है।

एक और सिंथेटिक स्ट्रैटेजी जिसमें ट्रेड्स में 65% जीतना, जीतने पर 0.5R कमाना और उसी कॉस्ट पर 1R हारना शामिल है, उसकी उम्मीद 0.65×0.5−0.35×1−0.08=−0.105R है। इसलिए, ज़्यादा जीत रेट हारने वाले सिस्टम के साथ हो सकता है।

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

ऐसे आर्टिफैक्ट पब्लिश करें जिन्हें कोई दूसरा रिसर्चर देख सके

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

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

एक काम के रिव्यू पैकेज में कम से कम एक सफल उदाहरण, एक फेल ट्रेड, एक रिजेक्टेड ऑर्डर और एक साफ़ न होने वाला इंट्राबार केस शामिल होना चाहिए, जहाँ उपलब्ध हो। हर एक को सिम्युलेटर कैसे हैंडल करता है, यह समझाएँ। इससे यह पक्का सबूत मिलता है कि जब नतीजे मुश्किल होते हैं, तो नियम एक जैसे काम करते हैं।

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

spec = freeze_hypothesis_and_trial_registry()
data = load_versioned_point_in_time_inputs()
assert_data_integrity(data)
assert_confirmed_events_are_prefix_invariant(data)
development, final_test = split_chronologically_before_research(data)
for fold in chronological_folds(development, spec):
    train = purge_overlapping_labels(fold.train, fold.validation + fold.test)
    validation = purge_overlapping_labels(fold.validation, fold.test)
    model = fit_using_train_only(train)
    config = select_on_validation(model, validation)
    freeze(config)
    events = replay_causally(fold.test, config)
    fills = simulate_orders_after_available_at(events, spec.execution)
    equity = mark_to_market(fills, fees=spec.costs)
    archive_all_results(config, events, fills, equity)
final_config = freeze_selection_using_development_only()
evaluate_final_holdout_once(final_test, final_config)
report_net_metrics_ablations_stress_and_uncertainty()

आम गलतियाँ

एक आकर्षक डिटेक्टर को एक फ़ायदेमंद स्ट्रैटेजी के तौर पर देखना

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

भविष्य के कन्फर्म सिग्नल के साथ एक साफ-सुथरा चार्ट

किसी पिवट को उसकी पुरानी जगह पर बनाने से बाद का कन्फर्मेशन टाइम छिप सकता है। occurred_at और confirmed_at दोनों को स्टोर करें, और हर फैसले को जानकारी की उपलब्धता के हिसाब से टेस्ट करें।

हर लागत को एक छोटे कमीशन में बदलना

स्प्रेड, इम्पैक्ट, उधार या फंडिंग और मिसिंग फिल्स कमीशन से ज़्यादा मायने रख सकते हैं। उन्हें इंस्ट्रूमेंट और उसकी लिक्विडिटी के लिए मॉडल करें।

अवास्तविक फिल के साथ एक यथार्थवादी शुल्क रेखा

कमीशन नामुमकिन सिग्नल-क्लोज़ फिल, फ़ायदेमंद इंट्राबार ऑर्डरिंग या गारंटीड लिमिट एग्ज़िक्यूशन की भरपाई नहीं कर सकता।

एक ही टेस्ट पीरियड का बार-बार इंस्पेक्शन करना

एक बार जब टेस्ट के नतीजे बदलाव के लिए गाइड करते हैं, तो वह समय डेवलपमेंट का हिस्सा बन जाता है। हर इस्तेमाल को रिकॉर्ड करें और एक नया बिना छुए इवैल्यूएशन स्टेज संभाल कर रखें।

केवल जीतने वाले कॉन्फ़िगरेशन को सेव करना

ट्रायल्स की संख्या और फेल हुए वेरिएंट्स के डिस्ट्रीब्यूशन के बिना, चुनी गई स्ट्रेटेजी के सबूत बढ़ा-चढ़ाकर बताए जा सकते हैं।

स्टैटिस्टिकल करेक्शन को प्रॉफिटेबिलिटी सर्टिफिकेट के तौर पर इस्तेमाल करना

DSR, PBO और p-वैल्यू, अंदाज़ों के तहत खास अंदाज़े वाले सवालों को हल करते हैं। वे एग्ज़िक्यूशन टेस्टिंग की जगह नहीं लेते या भविष्य के अकाउंट प्रॉफ़िट तय नहीं करते।

इस विधि का उपयोग करने से पहले जाँच सूची

अपने डेटा पर सत्यापन के बाद प्रत्येक मद पर निशान लगाएँ। प्रगति इसी ब्राउज़र में सहेजी जाती है; यह रणनीति के लाभदायक होने का प्रमाणपत्र नहीं है।

0/16 मद

अक्सर पूछे जाने वाले प्रश्न

किसी स्ट्रेटेजी के काम करने को साबित करने के लिए कितने ट्रेड काफ़ी हैं?

कोई यूनिवर्सल थ्रेशहोल्ड नहीं है। डिपेंडेंस, पेऑफ टेल्स, मार्केट सिस्टम और इफ़ेक्ट साइज़ अनिश्चितता तय करते हैं। फिक्स्ड ट्रेड काउंट को प्रूफ मानने के बजाय उन फीचर्स की रिपोर्ट करें।

क्या किसी स्ट्रेटेजी को रिजेक्ट कर देना चाहिए अगर कॉस्ट रिपोर्ट किए गए एज को हटा दे?

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

क्या कोड पब्लिश करने से बैकटेस्ट दोबारा बन जाता है?

कोड सिर्फ़ एक ज़रूरत है। डेटा वर्शन, कॉर्पोरेट-एक्शन कन्वेंशन, पैरामीटर, ट्रायल हिस्ट्री और एग्ज़िक्यूशन अज़म्प्शन भी उपलब्ध होने चाहिए या ठीक से डॉक्यूमेंटेड होने चाहिए।

शोध स्रोत

हर स्रोत अपने साथ दिए गए विवरण में परिभाषा या साक्ष्य का समर्थन करता है। छद्मकोड, कृत्रिम उदाहरण और प्रस्तावित पैरामीटर अलग सत्यापन माँगते हैं।

  1. Foundations of Technical Analysis: Computational Algorithms, Statistical Inference, and Empirical ImplementationAndrew W. Lo, Harry Mamaysky, Jiang Wang. मूल पैटर्न-पहचान और सांख्यिकीय अनुमान शोध पढ़ा गया। यह इस संग्रह के हर नियम का लाभ सिद्ध नहीं करता। जाँच की तारीख: .
  2. Pine Script — StrategiesTradingView. प्राइमरी डॉक्यूमेंटेशन स्ट्रैटेजी ऑर्डर टाइमिंग और ब्रोकर-एम्यूलेटर बिहेवियर के लिए पढ़ा जाता है, न कि यूनिवर्सल एक्सचेंज एग्जीक्यूशन मॉडल के तौर पर। जाँच की तारीख: .
  3. Understanding Order Types — Investor BulletinU.S. SEC — Investor.gov. प्राइमरी बुलेटिन में मार्केट, लिमिट और स्टॉप-ऑर्डर मैकेनिक्स और उनके एग्ज़िक्यूशन लिमिटेशन के बारे में पढ़ा गया। जाँच की तारीख: .
  4. MLX 2018 — The 7 Reasons Most Machine Learning Funds FailMarcos López de Prado — bản trình bày đăng trên SlideShare. डेटा विभाजन में purging और embargo समझने के लिए लेखक की प्रस्तुति स्लाइडें पढ़ी गईं। पूरी वित्तीय मशीन-लर्निंग पुस्तक तक पहुँच या उसे पढ़ने का दावा नहीं किया गया है। जाँच की तारीख: .
  5. The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting and Non-NormalityDavid H. Bailey, Marcos López de Prado — 2014. पूरी विधि-संबंधी शोधपत्र पढ़ी गई। चयन-पक्षपात सुधार के लिए मान्यताएँ और प्रयोगों की जानकारी आवश्यक है; यह लाइव लाभ की संभावना नहीं है। जाँच की तारीख: .
  6. The Probability of Backtest OverfittingBailey, Borwein, López de Prado, Zhu. CSCV और PBO की विधि पढ़ी गई। नमूने के बाहर रैंक गिरने को पैसे खोने की संभावना से अलग रखा गया है। जाँच की तारीख: .

संबंधित विधियाँ

जोखिम संबंधी सूचना

यह सामग्री शिक्षा और शोध की योजना बनाने के लिए है, वित्तीय सलाह नहीं। Backtest ऐतिहासिक डेटा का सिमुलेशन है, भविष्य के प्रदर्शन की गारंटी नहीं देता और वास्तविक ट्रेड नहीं करता। इस संग्रह की विधियाँ अपने-आप ऐप में उपलब्ध सुविधाएँ नहीं हैं। देखें कार्यपद्धति और शिक्षण केंद्र.

वास्तविक पूँजी जोखिम में डालने से पहले नियमों का सत्यापन करें

ऐप की क्षमताओं, डेटा और प्रत्येक सिमुलेटेड ट्रेड की जाँच करें; उन्नत डिटेक्टरों के लिए अलग कार्यान्वयन की आवश्यकता हो सकती है।

App Store से Backtest डाउनलोड करें