हमारे बैकटेस्ट ने भेजे गए 100 ऑर्डरों में से 91 को भरा हुआ गिना। पेपर ट्रेडिंग में उसी रणनीति के 63 ऑर्डर भरे गए। सिग्नल से ऑर्डर की पुष्टि तक का औसत समय 84 मिलीसेकंड था, और छूटे हुए पेपर फिल में से 12 लिमिट ऑर्डर थे जिन्हें बैकटेस्ट ने कीमत छूते ही भरा हुआ मान लिया था।
28 प्रतिशत-अंक का यह अंतर रणनीति की समस्या लग रहा था, जब तक हमने ऑर्डर के फैसलों को फिल के फैसलों से अलग करके नहीं देखा। दोनों रन में रणनीति ने लगभग एक ही दिशा, आकार और कीमत चुनी। अंतर निष्पादन प्रक्रिया में था: कुछ ऑर्डर देर से पहुँचे, कुछ खुले रहे और कुछ ऐसे बाजार में पहुँचे जो तब तक आगे बढ़ चुका था।
बैकटेस्ट और पेपर ऑर्डर समानता का क्या अर्थ है?
समानता का अर्थ है कि बैकटेस्ट और पेपर सिस्टम उपलब्ध एक ही जानकारी के आधार पर तुलनीय फैसले लें, और फिर अपने अलग-अलग निष्पादन मॉडल का हिसाब साफ तौर पर रखें। इसका अर्थ यह नहीं कि हर सिम्युलेटेड फिल पेपर फिल से मेल खाना चाहिए। ऐतिहासिक बार कतार में आपकी स्थिति फिर से नहीं बता सकते, और पेपर वेन्यू का मैचिंग मॉडल लाइव एक्सचेंज से अलग हो सकता है।
काम का सवाल थोड़ा सीमित है: रणनीति जिस हर ऑर्डर को लगाने का इरादा रखती थी, क्या आप बता सकते हैं कि उसके बाद क्या हुआ? ट्रेड की गिनती और अंतिम रिटर्न बहुत कुछ छिपा देते हैं। हर फैसले का जुड़ा हुआ रिकॉर्ड रखें, जिसमें एक स्थिर रणनीति निर्णय ID सिग्नल, ऑर्डर, पुष्टि, रद्दीकरण और फिल की घटनाओं तक साथ चले।
| तुलना | क्या पकड़ में आता है | उदाहरण |
|---|---|---|
| फैसले का समय और दिशा | अलग इनपुट या शेड्यूलिंग | पेपर सिग्नल 1 बार देर से सक्रिय होता है |
| माँगा गया आकार और कीमत | राउंडिंग, जोखिम या वेन्यू के नियम | बैकटेस्ट 0.013 BTC भेजता है; पेपर उसे 0.01 तक राउंड करता है |
| ऑर्डर की स्थिति में बदलाव | भेजने, अस्वीकार होने और रद्द होने में अंतर | बैकटेस्ट रद्द करने के अनुरोध को पूरा हुआ मानता है |
| फिल की मात्रा और कीमत | फिल मॉडल का जरूरत से ज्यादा आशावादी होना या बाजार का हिलना | कीमत छूने वाले लिमिट ऑर्डर को बैकटेस्ट में पूरा फिल मिलता है, लेकिन पेपर में कोई फिल नहीं |
कीमत छूने वाले लिमिट ऑर्डरों से इतने ऑर्डर क्यों छूटे?
हमारे बैकटेस्ट में 1-मिनट के बार इस्तेमाल हुए। अगर लिमिट कीमत किसी बार की उच्चतम और न्यूनतम कीमत के बीच आती, तो ऑर्डर को भरा हुआ मान लिया जाता। यह नियम बताता है कि उस मिनट में किसी समय बाजार ने उस कीमत पर कारोबार किया या नहीं। यह नहीं बताता कि तब हमारा ऑर्डर सक्रिय था या नहीं, कतार में वह सबसे आगे था या नहीं, या उसके पहुँचने के बाद पर्याप्त मात्रा में कारोबार हुआ या नहीं।
पेपर लॉग से समय की समस्या सामने आई। रणनीति ने 12:03:00.000 पर सिग्नल निकाला, लेकिन बाजार डेटा की घटना 31 मिलीसेकंड बाद ऑर्डर प्रक्रिया तक पहुँची। जोखिम जाँच में 22 मिलीसेकंड और लगे, फिर वेन्यू सिम्युलेटर ने उसके 31 मिलीसेकंड बाद ऑर्डर की पुष्टि की। तेजी से बदलते बाजार में ऐतिहासिक बार किसी कीमत को पहुँचने योग्य दिखा सकता है, जबकि लिमिट ऑर्डर तब पहुँचा हो जब बाजार उस कीमत से आगे निकल चुका था।
एक और पेच था: जब बैकटेस्ट आगे बढ़ चुका था, तब भी 12 पेपर ऑर्डर खुले थे। सिम्युलेटर ने रद्दीकरण के अनुरोध को ऐसे स्वीकार किया मानो ऑर्डर तुरंत गायब हो गया हो। पेपर सिस्टम में रद्दीकरण की पुष्टि बाद में आई; उस बीच 3 ऑर्डर भर गए। इससे अगला सिग्नल जिस पोज़िशन को देख रहा था, वह बदल गई।
खुद को भ्रमित किए बिना इस अंतर को कैसे मापूँ?
ऑर्डर के इरादे के आधार पर समूहित एक छोटी मिलान रिपोर्ट से शुरुआत करें। हर की गणना में शामिल कुल संख्या साफ दिखाएँ। “फिल दर” का अर्थ भेजे गए ऑर्डरों में भरे गए ऑर्डर, माँगी गई मात्रा के मुकाबले भरी गई मात्रा, या वेन्यू तक पहुँचे ऑर्डरों में भरे गए ऑर्डर हो सकता है। ये अलग-अलग सवालों के जवाब देते हैं।
- बाद में अनुमान से चुने गए टाइमस्टैम्प के बजाय निर्णय ID या क्लाइंट ऑर्डर ID से घटनाओं का मिलान करें।
- पहले फैसलों की तुलना करें: सिग्नल का समय, दिशा, माँगी गई मात्रा, ऑर्डर का प्रकार और लिमिट कीमत।
- मेल खाते फैसलों के लिए पुष्टि में देरी, अस्वीकृतियाँ, खुला रहने का समय, रद्द होने का समय, भरी गई मात्रा और मात्रा-भारित फिल कीमत की तुलना करें।
- ऑर्डर के प्रकार और बाजार की स्थिति के आधार पर दरें बताएँ। कुल 63% फिल दर में मार्केट ऑर्डर के लिए 90% और पैसिव लिमिट ऑर्डर के लिए 35% की दर छिपी हो सकती है।
श्रेणियों को एक-दूसरे से स्पष्ट रूप से अलग रखें। अस्वीकृत ऑर्डर, बिना फिल वाला ऑर्डर नहीं होता; आंशिक रूप से भरा ऑर्डर पूरा फिल नहीं होता; और आंशिक फिल के बाद रद्द हुआ ऑर्डर भी पोज़िशन बदल चुका होता है। ऑर्डरों की संख्या और माँगी गई मात्रा, दोनों गिनें ताकि छोटे ऑर्डरों का समूह नतीजे को असल से बेहतर न दिखाए।
बैकटेस्ट में क्या बदलना चाहिए?
ऐसा फिल नियम अपनाएँ जो डेटा के रिज़ॉल्यूशन और ऑर्डर के अपेक्षित व्यवहार से मेल खाए। बार के आधार पर कीमत छूने वाला लिमिट, संभावित फिल का संकेत है, उसका प्रमाण नहीं। आप आंशिक फिल का रूढ़िवादी मॉडल बना सकते हैं, कीमत के पार कारोबार होना अनिवार्य कर सकते हैं, या उन पैसिव ऑर्डरों को बाहर रख सकते हैं जिनकी कतार का अनुमान नहीं लगाया जा सकता। हर विकल्प अलग सवाल का जवाब देता है; उसे दर्ज करें और नतीजे की तुलना एक से अधिक उचित नियमों के तहत करें।
ऑर्डर की स्थिति का भी मॉडल बनाएँ। सिस्टम को अंतिम घटना मिलने तक ऑर्डर सक्रिय रहता है, और रद्दीकरण का अनुरोध जोखिम को मिटाता नहीं है। अगर पहला ऑर्डर लंबित रहते हुए रणनीति दूसरा ऑर्डर भेज सकती है, तो बैकटेस्ट में उस टकराव को दर्शाना होगा या डिज़ाइन के जरिए उसे रोकना होगा।
फिल मॉडल इस बारे में दावा करता है कि आपका ऑर्डर क्या कर सकता था। उसे ऐसा नियम दें जिसे आप समझा सकें, फिर पेपर लॉग से उस नियम की जाँच करें।
हमारे 28 प्रतिशत-अंक के अंतर में चौंकाने वाली बात यह नहीं थी कि मिनट-बार वाले बैकटेस्ट ने पैसिव फिल का अनुमान बढ़ा-चढ़ाकर लगाया। असली बात यह थी कि रद्दीकरण के समय को शामिल न करने के कारण अगले फैसले से पहले ही रणनीति की पोज़िशन अलग हो गई थी। ऑर्डर स्थिति का मॉडल ठीक करने और कीमत छूने वाले हर लिमिट को फिल मानना बंद करने के बाद, पेपर तुलना कम सुखद लेकिन ज्यादा उपयोगी हो गई।
समानता के लिए व्यावहारिक कसौटी यह है: सिम्युलेटेड और पेपर व्यवहार के बीच हर महत्वपूर्ण अंतर का दर्ज कारण हो, और बैकटेस्ट वहाँ निश्चितता का दावा न करे जहाँ उसका डेटा उसे साबित नहीं कर सकता।
← सभी पोस्ट


