आपने एक साफ़ नतीजा पाया है: आपकी क्रिप्टो रणनीति 13:00 और 14:00 UTC के बीच अपना ज़्यादातर रिटर्न कमाती है। आपने फ़ीस जाँच ली है, बैकटेस्ट दोबारा चलाया है और सिग्नल को पेपर ट्रेड किया है। अब आप इसका एक अमेरिकी इक्विटी संस्करण तैयार कर रहे हैं, और सबसे मज़बूत घंटा न्यूयॉर्क समय के मुताबिक 09:30–10:30 दिख रहा है।
इनमें से किसी भी नतीजे पर भरोसा करने से पहले देखें कि घड़ी में क्या बदलाव हुआ। अमेरिका में daylight saving time के कारण न्यूयॉर्क का बाज़ार खुलने का समय UTC के मुकाबले एक घंटे खिसक जाता है। अगर आपके फ़ीचर, सेशन लेबल और ऑर्डर समय की अलग-अलग परिभाषाओं का इस्तेमाल करते हैं, तो हो सकता है कि रणनीति किसी दोहराए जा सकने वाले बाज़ार पैटर्न के बजाय कैलेंडर की सीमा से फ़ायदा उठा रही हो।
आपको दिन के समय पर आधारित शोध छोड़ने की ज़रूरत नहीं है। आपको यह तय करना है कि आपकी परिकल्पना किस घड़ी से जुड़ी है, और फिर बैकटेस्ट के हर हिस्से में उसी का लगातार इस्तेमाल करना है।
पहले तय करें कि उस घंटे का मतलब क्या है
“पहला घंटा” सुनने में सटीक लगता है, जब तक आप यह न बताएँ कि किस संदर्भ की घड़ी के अनुसार। इसका मतलब NYSE खुलने के बाद के पहले 60 मिनट, न्यूयॉर्क के स्थानीय समय में 09:30–10:30, या UTC का कोई तय अंतराल हो सकता है। साल के कुछ हिस्सों में ये परिभाषाएँ एक जैसी होती हैं, लेकिन daylight saving बदलावों के आसपास अलग हो जाती हैं।
इक्विटी परिकल्पना के लिए एक्सचेंज के स्थानीय सेशन समय का उपयोग करें: न्यूयॉर्क समय में 09:30 का मतलब 09:30 ही है, चाहे न्यूयॉर्क में EST हो या EDT। क्रिप्टो परिकल्पना के लिए UTC का कोई तय घंटा ही इच्छित चर हो सकता है। क्रिप्टो में चौबीसों घंटे ट्रेड होता है, इसलिए दावे को आधार देने के लिए किसी एक्सचेंज की खुलने की घंटी नहीं होती।
ट्यूनिंग से पहले परिभाषा लिख लें। “नियमित सेशन खुलने के बाद के पहले घंटे में ट्रेड करें” जाँचा जा सकता है। “उस घंटे में ट्रेड करें जिसमें सिग्नल सबसे अच्छा काम करता है” कहने पर ऑप्टिमाइज़र रणनीति के साथ घड़ी की परिभाषा भी चुन सकता है।
घड़ियों का मेल कहाँ बिगड़ता है
मान लीजिए कि आपका इक्विटी डेटा UTC में सेव है, आपका फ़ीचर कोड पंक्तियों को UTC घंटे के हिसाब से समूहित करता है, और आपके एक्ज़ीक्यूशन नियम न्यूयॉर्क समय में 09:30 बजे पोज़िशन खोलते हैं। daylight saving बदलाव के बाद बाज़ार खुलने का समय 14:30 UTC से 13:30 UTC हो जाता है। अब UTC के खंड के आधार पर “पहला घंटा” लेबल किया गया फ़ीचर सेशन के किसी दूसरे हिस्से को दर्शाता है।
टाइमस्टैम्प से बार बनाते समय भी ऐसी ही समस्या आती है। अगर आप UTC में री-सैंपल करके फिर लेबल को न्यूयॉर्क समय में बदलते हैं, तो सीमाएँ अप्रत्याशित हो सकती हैं—खासकर वसंत के बदलाव के समय, जब एक स्थानीय घंटा होता ही नहीं, और पतझड़ के बदलाव के समय, जब एक स्थानीय घंटा दो बार आता है। उस पतझड़ वाले रविवार को 01:30 स्थानीय समय का टाइमस्टैम्प अस्पष्ट है, जब तक उसमें UTC ऑफ़सेट शामिल न हो या उसे UTC में दर्ज न किया गया हो।
क्रिप्टो के आपके नतीजे पर भी कैलेंडर का असर पड़ सकता है। UTC घंटे पर आधारित रणनीति कई महीनों तक अमेरिकी बाज़ार की गतिविधि से मेल खा सकती है, फिर अमेरिका में घड़ियाँ बदलने पर खिसकी हुई दिख सकती है। इससे रणनीति अमान्य नहीं हो जाती; बस आप क्या दावा कर सकते हैं, वह बदल जाता है। हो सकता है कि आपने UTC का कोई तय पैटर्न मापा हो, जो कभी-कभी अमेरिकी बाज़ार खुलने के समय से मेल खाता है, न कि उस खुलने के समय से जुड़ा प्रभाव।
टेस्ट में सेशन की घड़ी शामिल करें
घटना के टाइमस्टैम्प को मूल रिकॉर्ड के रूप में UTC में रखें। ऐतिहासिक नियमों में बदलाव संभालने वाले टाइम-ज़ोन डेटाबेस का उपयोग करके America/New_York जैसे नामित समय क्षेत्र से स्थानीय सेशन फ़ील्ड निकालें। “UTC से पाँच घंटे कम” या “UTC से चार घंटे कम” को हार्ड-कोड न करें: इनमें से कोई भी ऑफ़सेट पूरे साल न्यूयॉर्क का समय तय नहीं करता।
| निर्णय | इक्विटी उदाहरण | क्रिप्टो उदाहरण |
|---|---|---|
| परिकल्पना की घड़ी | नियमित सेशन खुलने के बाद बीते मिनट | दिन का UTC घंटा |
| सेशन का स्रोत | एक्सचेंज कैलेंडर, जिसमें छुट्टियाँ और जल्दी बंद होने वाले दिन शामिल हैं | लगातार चलने वाला UTC कैलेंडर |
| ऑर्डर का समय | सिग्नल के बाद होने वाली अगली निष्पादन योग्य घटना | सिग्नल के बाद होने वाली अगली निष्पादन योग्य घटना |
इसके बाद बदलाव वाले हफ़्तों की अलग से जाँच करें। daylight saving के हर बदलाव से पहले और बाद के प्रदर्शन की तुलना करें, और देखें कि सबसे अच्छा अंतराल बाज़ार के सेशन के साथ जुड़ा रहता है या UTC में तय रहता है। अगर आपने सबसे अच्छा नतीजा पाने के लिए कई घंटों, तारीखों और ऑफ़सेट की खोज की है, तो ओवरफ़िटिंग के आकलन में उस खोज को भी शामिल करें; घड़ी का चुनाव भी एक और परीक्षण था।
समय क्षेत्र नियमों का एक समूह है, घटाने के लिए घंटों की कोई संख्या नहीं। UTC की घटनाएँ सेव करें; स्थानीय बाज़ार समय की ज़रूरत पड़ने पर उसे निकालें।
आपके पेपर रन को किन बातों की पुष्टि करनी चाहिए
रणनीति को पेपर ट्रेडिंग पर ले जाने के बाद, घटना का UTC टाइमस्टैम्प और सेशन के हिसाब से उसका मिनट—दोनों लॉग करें। इससे आप तुरंत पकड़ सकते हैं कि रणनीति खुलने का समय 09:30 समझ रही है, लेकिन असल में स्थानीय समय के अनुसार 10:30 बजे सिग्नल दे रही है। छुट्टियों और जल्दी बंद होने वाले दिनों की भी जाँच करें; हर कार्यदिवस पर सामान्य सेशन का शेड्यूल लागू करने से उन दिनों के ट्रेड भी बन जाएँगे जब एक्सचेंज बंद होता है।
और जब घड़ियाँ बदलें, तो इक्विटी कर्व को जाना-पहचाना दिखाने के लिए सिग्नल खिसकाकर नतीजे को “ठीक” करने की जल्दबाज़ी न करें। पहले बताई गई परिकल्पना, कैलेंडर और ऑर्डर के समय की पुष्टि करें। अगर नतीजा बाज़ार के सेशन के साथ खिसकता है, तो आपने सेशन के व्यवहार के बारे में कुछ सीखा है। अगर वह UTC के उसी घंटे पर बना रहता है, तो आपने कुछ और सीखा है। आपके बैकटेस्ट को यह फ़र्क बनाए रखना चाहिए।
← सभी पोस्ट


