1 नवंबर 2026 · अनुसंधान

लुकबैक को परफॉर्मेंस में गिने बिना बैकटेस्ट का वार्म अप कैसे करें?

लुकबैक को परफॉर्मेंस में गिने बिना बैकटेस्ट का वार्म अप कैसे करें?

स्पेक में 20-दिन का Donchian मासूम लगता है। एजेंट 20-बार rolling max लिख देता है, बैकटेस्ट parquet फ़ाइल की पंक्ति 1 से शुरू होता है, और पहले 2 हफ्तों तक "20-दिन का हाई" बस उन बार का running max होता है जो मौजूद हैं। दिन 4 पर यह 4-दिन का हाई है। जो रणनीति आप सोच रहे थे कि टेस्ट कर रहे हैं, वह नहीं है जिसने पहले दर्जन फिल दिए।

मेरे पास ETHUSDT डेली बार का एक नोटबुक है जिसमें फुल-सैंपल Sharpe 1.4 है। पहले 20 सेशन काटो तो यह 0.6 पर गिर जाता है। वे 20 रखो और साल 1 का बाकी हिस्सा हटा दो, तो यह 3.1 प्रिंट करता है। किसी ने कल लीक नहीं किया। रणनीति ने अतीत का इस्तेमाल किया, बस पर्याप्त नहीं, और रिपोर्ट ने उन अधूरे ट्रेडों को सबूत मान लिया।

1.4फुल-सैंपल Sharpe, अधूरी विंडो शामिल
0.620 पूरे सेशन के बाद वही कोड
3.1केवल बर्न-इन ट्रेड रखने पर Sharpe

विंडो को तब ट्रेड करने देना जब वह अभी भर रही हो

आम तबाही min_periods=1 है। Pandas को छोड़ दो तो वह एक अकेले बार पर rolling mean निकाल देगा। एजेंट यह लगातार करते हैं, क्योंकि फ्रेम के शीर्ष पर NaN बग जैसा लगता है, और उसे भर देने से यूनिट टेस्ट ग्रीन हो जाता है।

रिटर्न के 2 ऑब्ज़र्वेशन के साथ 20-दिन का realized-vol टारगेट साइज़ का विस्फोट है। 2 संख्याओं का variance सिक्के की उछाल है, आप उसे इनवर्ट करते हैं, और पहली पोजीशन इच्छित रिस्क से कई गुना हो जाती है। लगभग-शून्य standard deviation के विरुद्ध z-score वही चाल एक चिह्न के साथ करता है: रणनीति में एक रेज़र एंट्री दिखती है जो विंडो ईमानदार होने के बाद फिर कभी नहीं आती।

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

Zero-fill और forward-fill एक अलग झूठ गढ़ते हैं। 0 पर RSI ओवरसोल्ड पढ़ा जाता है। गायब ATR का 0 यूनिट साइज़ को उड़ा देता है, और बैकटेस्ट कर्तव्यनिष्ठा से एक गोदाम खरीद लेता है। मैं चाहूँगा कि NaN ऑर्डर को मार दे बजाय इसके कि 0 एक ऑर्डर गढ़ दे।

मैं अब भी खुद को पंक्ति 0 से प्लॉट करते हुए पकड़ लेता हूँ क्योंकि चार्ट के बाएँ तरफ़ खाली महीना अधूरा लगता है। खाली महीना ही ईमानदार हिस्सा है।

इक्विटी कर्व काटो, पोजीशन रखो

यह कोड रिव्यू से बच जाता है। आप 20-दिन फीचर सही से गणना करते हैं, प्लॉट की गई कर्व से पहली 20 पंक्तियाँ हटाते हैं, और 21 जनवरी से प्रकाशित करते हैं। 21 जनवरी की पोजीशन 14 जनवरी को खोली गई थी। ट्रेलिंग स्टॉप का हाई-वॉटर, पिरामिड काउंट, उन बर्न के बाद का कैश: यह सब "साफ़" सैंपल में घुस आया।

तबाही एक पेपर रणनीति है जिसे राइट-अप की तारीख पर शुरू नहीं किया जा सकता। रिपोर्ट की गई शुरुआत पर फ्लैट से रीस्टार्ट करो तो पहले हफ्ते के ऑर्डर मेल नहीं खाते। कभी बैकटेस्ट पहले से उस ट्रेड में होता है जिसमें पेपर सिस्टम के प्रवेश का कोई कारण नहीं। कभी पेपर सिस्टम इसलिए प्रवेश करता है क्योंकि उसका लुकबैक ठंडा है, और बैकटेस्ट बाहर बैठा रहता है क्योंकि उसके छिपे महीने ने पहले ही ब्रेकआउट ले लिया। 2 ओपनिंग बुक, एक प्रकाशित शुरूआती तारीख।

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

अगर प्रकाशित शुरूआती तारीख पर फ्लैट से रीस्टार्ट करने से P&L बदलता है, तो वार्मअप ट्रैक रिकॉर्ड में है। लुकबैक डेटा मौजूद हो सकता है। लुकबैक ट्रेड नहीं हो सकते।

जब फीचर दिन नहीं है तब कैलेंडर दिनों में वार्म अप करना

"इसे 30 दिन दो" फीचर को अधूरा निर्दिष्ट छोड़ देता है। 5-मिनट Donchian पर 30 कैलेंडर दिन 20-पीरियड लुकबैक से हज़ारों बार आगे हैं। 20 सेशन चाहिए वाले डेली फीचर पर 30 दिन सप्ताहांत और छेदों के अनुसार या तो मोटा है या पतला।

हमारे perp वेन्यू में से एक पर funding-rate z-score को 30-दिन का वार्मअप मिला क्योंकि स्पेक में 30 पीरियड लिखा था और किसी ने पीरियड को कैलेंडर में अनुवाद कर दिया। वहाँ funding हर 8 घंटे में प्रिंट होता है। 30 दिन लगभग 90 सेटलमेंट हैं। 30 पीरियड 10 दिन हैं। अतिरिक्त 2 महीने के बर्न-इन में संयोग से एक depeg सप्ताह आ गया। उसे हटाने से लाइव विंडो रणनीति के असली इतिहास से शांत दिखने लगी। लोगों ने शुरूआती-तारीख संवेदनशीलता को दोष दिया। वार्मअप ने रेजीम खा लिया था।

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

पहला ट्रेडेबल टाइमस्टैम्प पिन करो

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

फीचरस्पेक आमतौर पर क्या कहता हैवास्तव में क्या मौजूद होना चाहिएमौन विकल्प
20-दिन Donchian20 डेली हाई20 पूरे सेशनmin_periods=1 के साथ running max
30-दिन realized vol30-दिन विंडो30 close-to-close रिटर्न2-दिन variance, साइज़ में इनवर्ट
20-प्रिंट funding z-score20 दिन20 funding सेटलमेंट20 कैलेंडर दिन (~90 प्रिंट), या गलत टाइमफ्रेम के 20 बार
5m पर 14-पीरियड RSI14 पीरियड14 बंद 5-मिनट बार14 दिन, या गैप forward-filled वाले 14 बार

उस टाइमस्टैम्प से पहले का P&L ट्रैक रिकॉर्ड से बाहर रहता है। उस टाइमस्टैम्प से पहले की स्टेट का सिमुलेशन अभी भी ज़रूरी हो सकता है, ताकि जब घड़ी पहली ट्रेडेबल बार पर पहुँचे तो ट्रेलिंग स्टॉप या कूलडाउन वास्तविक हो, लेकिन वे फिल Sharpe, ट्रेड काउंट या कैपेसिटी गणित में नहीं जाते। फिर वह भद्दा चेक चलाओ: उस टाइमस्टैम्प पर फ्लैट से रीस्टार्ट करो, लुकबैक केवल डेटा के रूप में उपलब्ध हो। अगर ऑर्डर बदल जाएँ, तो आप छिपे ट्रेड शिप कर रहे थे।

पेपर ट्रेडिंग उसी कॉन्ट्रैक्ट पर शुरू होती है। हर walk-forward टेस्ट विंडो भी। अगर चार्ट में एक महीना गायब लगे, तो उसे गायब रहने दो।

बैकटेस्टिंगडेटा इंजीनियरिंगwalk-forwardAI एजेंटपेपर ट्रेडिंग
साझा करेंXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← सभी पोस्ट