सफल बैकटेस्टिंग पर पहले लेख में हमने सांख्यिकीय और व्यवहारिक पूर्वाग्रहों पर चर्चा की जो हमारे बैकटेस्ट प्रदर्शन को प्रभावित करते हैं। हमने बैकटेस्टिंग के लिए सॉफ्टवेयर पैकेजों पर भी चर्चा की, जिसमें एक्सेल, मैटलैब, पायथन, आर और सी ++ शामिल हैं। इस लेख में हम लेनदेन लागतों को शामिल करने के तरीके पर विचार करेंगे, साथ ही कुछ निर्णय भी होंगे जो बैकटेस्ट इंजन बनाते समय किए जाने की आवश्यकता होती है, जैसे ऑर्डर प्रकार और डेटा की आवृत्ति।
ट्रेडिंग मॉडल को लागू करते समय सबसे आम शुरुआती गलतियों में से एक है रणनीति पर लेनदेन लागत के प्रभावों की उपेक्षा (या मोटे तौर पर कम करना) । हालांकि अक्सर यह माना जाता है कि लेनदेन लागत केवल ब्रोकर कमीशन को दर्शाती है, वास्तव में कई अन्य तरीके हैं जिनसे लागत एक ट्रेडिंग मॉडल पर जमा की जा सकती है। तीन मुख्य प्रकार की लागतों पर विचार किया जाना चाहिए जिनमें शामिल हैंः
एक एल्गोरिथम ट्रेडिंग रणनीति द्वारा व्यय की जाने वाली लेनदेन लागत का सबसे प्रत्यक्ष रूप कमीशन और शुल्क हैं। सभी रणनीतियों के लिए किसी प्रकार के एक्सचेंज तक पहुंच की आवश्यकता होती है, या तो सीधे या ब्रोकरिंग मध्यस्थ (ब्रोकर) के माध्यम से। इन सेवाओं पर प्रत्येक व्यापार के साथ एक वृद्धिशील लागत होती है, जिसे कमीशन के रूप में जाना जाता है।
ब्रोकर आम तौर पर कई सेवाएं प्रदान करते हैं, हालांकि मात्रात्मक एल्गोरिदम वास्तव में केवल एक्सचेंज बुनियादी ढांचे का उपयोग करते हैं। इसलिए ब्रोकर कमीशन अक्सर प्रति व्यापार के आधार पर छोटे होते हैं। ब्रोकर शुल्क भी लेते हैं, जो ट्रेडों को साफ करने और निपटान करने के लिए होने वाली लागत हैं। इसके अलावा क्षेत्रीय या राष्ट्रीय सरकारों द्वारा लगाए गए कर हैं। उदाहरण के लिए, यूके में इक्विटी लेनदेन पर भुगतान करने के लिए एक स्टाम्प ड्यूटी है। चूंकि कमीशन, शुल्क और कर आमतौर पर तय होते हैं, इसलिए उन्हें बैकटेस्ट इंजन में लागू करना अपेक्षाकृत सरल है (नीचे देखें) ।
फिसलन मूल्य में अंतर है जो उस समय के बीच प्राप्त होता है जब एक ट्रेडिंग सिस्टम लेनदेन करने का निर्णय लेता है और उस समय जब एक लेनदेन वास्तव में एक एक्सचेंज पर किया जाता है। फिसलन लेनदेन लागत का एक महत्वपूर्ण घटक है और एक बहुत ही लाभदायक रणनीति और एक जो खराब प्रदर्शन करता है के बीच अंतर कर सकता है। फिसलन अंतर्निहित परिसंपत्ति अस्थिरता, ट्रेडिंग सिस्टम और एक्सचेंज के बीच विलंबता और रणनीति के प्रकार का एक कार्य है।
एक उच्च अस्थिरता वाला साधन आगे बढ़ने की अधिक संभावना है और इसलिए संकेत और निष्पादन के बीच की कीमतें काफी भिन्न हो सकती हैं। विलंबता को संकेत उत्पादन और निष्पादन के बिंदु के बीच के समय के अंतर के रूप में परिभाषित किया गया है। उच्च आवृत्ति रणनीतियां विलंबता के मुद्दों के लिए अधिक संवेदनशील हैं और इस विलंबता पर मिलीसेकंड के सुधार से लाभप्रदता की दिशा में सभी अंतर हो सकते हैं। रणनीति का प्रकार भी महत्वपूर्ण है। गति प्रणाली औसत पर अधिक फिसलने से पीड़ित हैं क्योंकि वे उन उपकरणों को खरीदने की कोशिश कर रहे हैं जो पहले से ही पूर्वानुमान दिशा में आगे बढ़ रहे हैं। औसत-वापसी रणनीतियों के लिए विपरीत सच है क्योंकि ये रणनीतियां व्यापार के विपरीत दिशा में आगे बढ़ रही हैं।
मार्केट इम्पैक्ट (मार्केट इम्पैक्ट) उन एक्सचेंजों (और परिसंपत्तियों) की आपूर्ति/मांग गतिशीलता के कारण व्यापारियों को होने वाली लागत है जिनके माध्यम से वे व्यापार करने की कोशिश कर रहे हैं। एक अपेक्षाकृत अस्थिर परिसंपत्ति पर एक बड़ा ऑर्डर बाजार को काफी हद तक स्थानांतरित करने की संभावना है क्योंकि व्यापार को वर्तमान आपूर्ति के एक बड़े घटक तक पहुंचने की आवश्यकता होगी। इसका मुकाबला करने के लिए, बड़े ब्लॉक ट्रेडों को छोटे
अधिक अपारदर्शी परिसंपत्तियों की विशेषता एक बड़े स्प्रेड से होती है, जो कि सीमा ऑर्डर बुक पर वर्तमान बोली और मांग की कीमतों के बीच का अंतर है। यह स्प्रेड किसी भी व्यापार से जुड़ी एक अतिरिक्त लेनदेन लागत है। स्प्रेड कुल लेनदेन लागत का एक बहुत महत्वपूर्ण घटक है - जैसा कि यूके के असंख्य स्प्रेड सट्टेबाजी फर्मों से पता चलता है जिनके विज्ञापन अभियान भारी कारोबार वाले उपकरणों के लिए अपने स्प्रेड की
एक बैकटेस्टिंग प्रणाली में उपरोक्त लागतों को सफलतापूर्वक मॉडलिंग करने के लिए, जटिल लेनदेन मॉडल के विभिन्न स्तरों को पेश किया गया है। वे सरल फ्लैट मॉडलिंग से लेकर गैर-रैखिक चतुर्भुज अनुमान तक हैं। यहां हम प्रत्येक मॉडल के फायदे और नुकसान की रूपरेखा तैयार करेंगेः
फ्लैट लेनदेन लागत लेनदेन लागत मॉडलिंग का सबसे सरल रूप है। वे प्रत्येक व्यापार से जुड़ी एक निश्चित लागत मानते हैं। इस प्रकार वे ब्रोकरेज कमीशन और शुल्क की अवधारणा का सबसे अच्छा प्रतिनिधित्व करते हैं। वे फिसलने या बाजार प्रभाव जैसे अधिक जटिल व्यवहार को मॉडलिंग के लिए बहुत सटीक नहीं हैं। वास्तव में, वे संपत्ति अस्थिरता या तरलता पर बिल्कुल भी विचार नहीं करते हैं। उनका मुख्य लाभ यह है कि वे लागू करने के लिए कम्प्यूटेशनल रूप से सीधे हैं। हालांकि, वे नियोजित रणनीति के आधार पर लेनदेन लागत का काफी कम या अधिक अनुमान लगाने की संभावना रखते हैं। इस प्रकार, वे शायद ही कभी अभ्यास में उपयोग किए जाते हैं।
अधिक उन्नत लेनदेन लागत मॉडल रैखिक मॉडल के साथ शुरू करते हैं, टुकड़े-वार रैखिक मॉडल के साथ जारी रखते हैं और चतुर्भुज मॉडल के साथ समाप्त होते हैं। वे कम से कम सबसे सटीक के स्पेक्ट्रम पर झूठ बोलते हैं, हालांकि कम से कम सबसे बड़े कार्यान्वयन प्रयास के साथ। चूंकि फिसलन और बाजार प्रभाव स्वाभाविक रूप से गैर-रैखिक घटनाएं हैं, चतुर्भुज फ़ंक्शन इन गतिशीलताओं को मॉडलिंग करने में सबसे सटीक हैं। चतुर्भुज लेनदेन लागत मॉडल को लागू करना बहुत कठिन है और सरल फ्लैट या रैखिक मॉडल की तुलना में गणना करने में बहुत अधिक समय लग सकता है, लेकिन वे अक्सर अभ्यास में उपयोग किए जाते हैं।
एल्गोरिथम ट्रेडर अपनी रणनीतियों के लिए वास्तविक ऐतिहासिक लेनदेन लागत का उपयोग करने का भी प्रयास करते हैं ताकि उन्हें अधिक सटीक बनाने के लिए अपने वर्तमान लेनदेन मॉडल के इनपुट के रूप में। यह मुश्किल व्यवसाय है और अक्सर अस्थिरता, फिसलन और बाजार प्रभाव के मॉडलिंग के जटिल क्षेत्रों पर सीमाएं है। हालांकि, यदि ट्रेडिंग रणनीति छोटी अवधि में बड़ी मात्रा में लेनदेन कर रही है, तो व्यय की गई लेनदेन लागत के सटीक अनुमानों का रणनीति के निचले रेखा पर महत्वपूर्ण प्रभाव पड़ सकता है और इसलिए इन मॉडलों पर शोध करने में निवेश करने के लिए प्रयास करना उचित है।
जबकि लेन-देन की लागत सफल बैकटेस्टिंग कार्यान्वयन का एक बहुत ही महत्वपूर्ण पहलू है, कई अन्य मुद्दे हैं जो रणनीति प्रदर्शन को प्रभावित कर सकते हैं।
एक विकल्प जो एक एल्गोरिथम व्यापारी को करना चाहिए वह यह है कि उपलब्ध विभिन्न एक्सचेंज ऑर्डर का उपयोग कैसे और कब करना है। यह विकल्प आमतौर पर निष्पादन प्रणाली के दायरे में आता है, लेकिन हम इसे यहां विचार करेंगे क्योंकि यह रणनीति बैकटेस्ट प्रदर्शन को काफी प्रभावित कर सकता है। दो प्रकार के आदेश हैं जिन्हें निष्पादित किया जा सकता हैः बाजार आदेश और सीमा आदेश।
एक बाजार आदेश उपलब्ध कीमतों के बावजूद तुरंत एक व्यापार निष्पादित करता है। इस प्रकार बाजार आदेशों के रूप में निष्पादित बड़े ट्रेडों को अक्सर कीमतों का मिश्रण मिलता है क्योंकि विपरीत पक्ष पर प्रत्येक बाद के सीमा आदेश को पूरा किया जाता है। बाजार आदेशों को आक्रामक आदेश माना जाता है क्योंकि वे लगभग निश्चित रूप से भरे जाएंगे, हालांकि संभावित रूप से अज्ञात लागत के साथ।
लिमिट ऑर्डर रणनीति के लिए एक तंत्र प्रदान करते हैं ताकि व्यापार को निष्पादित करने के लिए सबसे खराब मूल्य निर्धारित किया जा सके, इस चेतावनी के साथ कि व्यापार आंशिक रूप से या पूरी तरह से पूरा नहीं हो सकता है। लिमिट ऑर्डर को निष्क्रिय ऑर्डर माना जाता है क्योंकि वे अक्सर अधूरे होते हैं, लेकिन जब वे एक मूल्य की गारंटी देते हैं। एक व्यक्तिगत एक्सचेंज के लिमिट ऑर्डर के संग्रह को लिमिट ऑर्डर बुक के रूप में जाना जाता है, जो अनिवार्य रूप से कुछ आकारों और कीमतों पर खरीद और बिक्री ऑर्डर की कतार है।
बैकटेस्टिंग करते समय, मार्केट या लिमिट ऑर्डर का उपयोग करने के प्रभावों को सही ढंग से मॉडलिंग करना आवश्यक है। विशेष रूप से उच्च आवृत्ति वाली रणनीतियों के लिए, बैकटेस्ट लाइव ट्रेडिंग से काफी बेहतर प्रदर्शन कर सकते हैं यदि बाजार प्रभाव और लिमिट ऑर्डर बुक के प्रभावों को सटीक रूप से मॉडलिंग नहीं की जाती है।
विशेष रूप से इक्विटी के लिए, ओपन-हाई-लो-क्लोज (OHLC) आंकड़ों के रूप में दैनिक डेटा का उपयोग करते समय बैकटेस्टिंग रणनीतियों से संबंधित विशेष मुद्दे हैं। ध्यान दें कि यह वास्तव में याहू फाइनेंस द्वारा दिए गए डेटा का रूप है, जो खुदरा एल्गोरिथम व्यापारियों के लिए डेटा का एक बहुत ही आम स्रोत है!
सस्ते या मुफ्त डेटासेट, जबकि जीवित रहने के पक्षपात से पीड़ित हैं (जिसे हमने पहले ही भाग I में चर्चा की है), अक्सर कई एक्सचेंजों से मिश्रित मूल्य फ़ीड भी होते हैं। इसका मतलब है कि डेटा के चरम बिंदु (यानी खुले, बंद, उच्च और निम्न) क्षेत्रीय एक्सचेंजों पर छोटे आदेशों के कारण
इसका मतलब है कि यदि आपकी ट्रेडिंग रणनीति विशेष रूप से OHLC बिंदुओं में से किसी का व्यापक उपयोग करती है, तो बैकटेस्ट प्रदर्शन लाइव प्रदर्शन से भिन्न हो सकता है क्योंकि आपके ब्रोकर और तरलता तक आपकी उपलब्ध पहुंच के आधार पर ऑर्डर को विभिन्न एक्सचेंजों में रूट किया जा सकता है। इन समस्याओं को हल करने का एकमात्र तरीका उच्च आवृत्ति डेटा का उपयोग करना है या एक सस्ते मिश्रित फ़ीड के बजाय व्यक्तिगत एक्सचेंज से सीधे डेटा प्राप्त करना है।
अगले कुछ लेखों में हम बैकटेस्ट के प्रदर्शन माप पर विचार करेंगे, साथ ही बैकटेस्टिंग एल्गोरिथ्म का एक वास्तविक उदाहरण, जिसमें उपरोक्त प्रभावों में से कई शामिल हैं।