संसाधन लोड हो रहा है... लोड करना...

5.1 बैकटेस्टिंग का अर्थ और जाल

लेखक:अच्छाई, बनाया गयाः 2019-05-07 15:06:15, अद्यतन किया गयाः

सारांश

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

बैकटेस्टिंग का अर्थ

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

मात्रात्मक ट्रेडिंग तर्क के दृष्टिकोण से, एक ट्रेडिंग रणनीति वास्तव में बाजार की संज्ञानों और मान्यताओं की एक श्रृंखला पर आधारित है। बैकटेस्टिंग यह निर्धारित कर सकती है कि ये मान्यताएं स्थिर हैं या नहीं। अस्थिरता के ऐतिहासिक समय में, यह किस तरह का नुकसान ला सकता है? साथ ही इन नुकसानों के निर्णय लेने को रोकने के लिए।

img

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

  • ट्रेडिंग सिग्नल की सटीकता की जाँच करें।

  • यह सत्यापित करें कि व्यापारिक तर्क और आपके विचार व्यवहार्य हैं.

  • व्यापार प्रणाली में दोषों का पता लगाना और मूल रणनीति में सुधार करना।

तो, बैकटेस्टिंग का अर्थ है व्यापार प्रक्रिया को यथासंभव सही करना, ऐतिहासिक डेटा की वैधता की पुष्टि करना, गलत रणनीति के लिए महंगी गलतियों से बचना, हमें व्यापार रणनीतियों को फ़िल्टर करने, सुधारने और अनुकूलित करने में मदद करना।

बैकटेस्टिंग जाल

  • ट्रेडिंग सिग्नल अस्थिर

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

  • भविष्य के कार्य का जाल

फ्यूचर फंक्शन फ्यूचर प्राइस का उपयोग करता है, जिसका अर्थ है कि वर्तमान स्थितियों को भविष्य में संशोधित किया जा सकता है, और उसी फ्यूचर फंक्शन के कारण ट्रेडिंग सिग्नल भी अस्थिर हो सकता है, जैसे कि ज़िगज़ैग इंडिकेटर

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

img

  • चोरी की कीमत का जाल

तथाकथित चोरी मूल्य व्यवहार व्यापार करने के लिए अतीत की कीमतों के उपयोग को संदर्भित करता है। उदाहरण के लिएः यदि उच्चतम मूल्य एक निश्चित निश्चित मूल्य से अधिक है तो उद्घाटन मूल्य का उपयोग करके स्थिति खोलें। यह उद्घाटन स्थिति की स्थिति चोरी मूल्य है, क्योंकि वास्तविक बाजार में, जब उच्चतम मूल्य एक निश्चित मूल्य से अधिक है, तो कीमत एक निश्चित दूरी की उद्घाटन मूल्य से अधिक हो सकती है, और फिर स्थिति खोलने के लिए उद्घाटन मूल्य का उपयोग करना असंभव है। हालांकि, बैकटेस्टिंग वातावरण में, आप काल्पनिक रूप से उद्घाटन मूल्य पर स्थिति खोल सकते हैं।

एक और मामला भी है जब यदि मूल्य अंतर रणनीति द्वारा निर्धारित निश्चित मूल्य से अधिक कूदता है, तो बैकटेस्टिंग वातावरण में, ट्रेडिंग सिग्नल होगा और निष्पादित किया जा सकता है; लेकिन वास्तविक बाजार में, यह स्पष्ट रूप से निष्पादित नहीं किया जा सकता है।

  • असंभव व्यापारिक मूल्य का जाल

असंभव व्यापारिक मूल्य को कई मामलों में विभाजित किया जा सकता हैः

पहला प्रकारः वास्तविक बाजार में, कुछ एक्सचेंजों में अधिकतम मूल्य वृद्धि और गिरावट की दैनिक सीमा होती है। हालांकि, बैकटेस्टिंग वातावरण में, आदेशों को निष्पादित करना संभव है।

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

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

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

img

  • अति-फिटिंग का जाल

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

img

मात्रात्मक ट्रेडिंग के लिए, बैकटेस्टिंग ऐतिहासिक डेटा पर आधारित है, लेकिन ऐतिहासिक डेटा का नमूना सीमित है। यदि ट्रेडिंग रणनीति के बहुत सारे पैरामीटर हैं, या ट्रेडिंग तर्क बहुत जटिल है, तो ट्रेडिंग रणनीति ऐतिहासिक डेटा के लिए बहुत अधिक अनुकूल होगी।

मात्रात्मक रणनीति की मॉडलिंग प्रक्रिया अनिवार्य रूप से बड़ी संख्या में प्रतीत होता है यादृच्छिक डेटा से स्थानीय गैर यादृच्छिक डेटा खोजने की प्रक्रिया है। यदि आप सांख्यिकीय ज्ञान पर भरोसा नहीं करते हैं, तो ओवरफिट के जाल में गिरना आसान है।

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

  • बचे हुए के पक्षपात का जाल

वॉल स्ट्रीट का एक लोकप्रिय मजाक हैः मान लीजिए कि बाजार में 1000 बंदर हैं जिन्होंने निवेश में भाग लिया। पहले वर्ष में, 500 बंदर बाजार में खो गए। दूसरे वर्ष के मध्य में, 250 बंदर बचे हैं। तीसरे वर्ष के अंत तक, 125 बंदर बचे हैं।

img

नौवें वर्ष में, आखिरी बंदर बचा था. फिर आप उसे देखते हैं, जितना अधिक आप उसे देखते हैं, उतना ही आप उसका चेहरा परिचित महसूस करते हैं. अंत में, आपने एक वित्तीय पत्रिका का कवर देखा और चिल्लाया, "अरे, क्या यह वारेन बफेट है?

हालांकि यह सिर्फ एक मजाक है, आप अभी भी इसे वास्तविक दुनिया की स्थिति के लिए मैप कर सकते हैं। उदाहरण के लिए, यदि 1000 फंड प्रबंधक हैं, 10 वर्षों के बाद, लगभग 10 फंड प्रबंधक लगातार 10 वर्षों के लिए बाजार से बेहतर प्रदर्शन करेंगे। यह यादृच्छिक भाग्य और निर्णयों के कारण हो सकता है, इन फंड प्रबंधकों कौशल का इससे कोई लेना-देना नहीं है।

नीचे दिए गए बैकटेस्ट रिपोर्ट की तरह, अधिकांश निवेशक बाईं ओर के आंकड़े का चयन करेंगे। जिसमें बिना किसी महत्वपूर्ण रिट्रेसमेंट के बहुत ठोस प्रदर्शन है।

img

लेकिन कृपया प्रतीक्षा करें, जैसा कि दाईं ओर दिखाया गया है, जो वास्तविक स्थिति है। बायीं ओर की वक्र इन कई बैकटेस्टों में से केवल सबसे अच्छी है। यानी, बायीं ओर की स्थिति की तुलना में बहुत खराब प्रदर्शन हैं।

  • प्रभाव लागत का जाल

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

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

बिना फिसलने के बैकटेस्ट

img

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

फिसलने के साथ बैकटेस्ट

img

जैसा कि ऊपर दिखाया गया है, एक ही रणनीति, यदि स्लिप के 2 बिंदु के साथ जोड़ा जाता है, तो स्लिप के साथ और बिना बैकटेस्टिंग परिणाम बहुत अलग होते हैं, जिसका अर्थ है कि इस रणनीति को बेहतर बनाने या छोड़ने की आवश्यकता होती है। विशेष रूप से, अपेक्षाकृत उच्च ट्रेडिंग आवृत्ति की रणनीति, बैकटेस्टिंग के दौरान 1 ~ 2 बिंदु स्लिप जोड़ना वास्तविक ट्रेडिंग वातावरण के करीब बैकटेस्टिंग बना सकता है।

संक्षेप में

कुछ लोग पूछ सकते हैं, चूंकि मात्रात्मक ट्रेडिंग में बहुत सारी समस्याएं हो सकती हैं, तो मैं कैसे साबित कर सकता हूं कि मेरी रणनीति ठीक है? इसका उत्तर सरल है, हमें असली पैसे का उपयोग करने से पहले कुछ समय पहले इस रणनीति द्वारा सिमुलेशन ट्रेडिंग करनी चाहिए, यदि ट्रेडिंग मूल्य और ट्रेडिंग सिमुलेशन स्थिति रणनीति तर्क के साथ लगभग समान हैं, तो यह कम से कम साबित करता है कि रणनीति तर्क में कोई समस्या नहीं है।

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

स्कूल के बाद व्यायाम

  1. क्या है ओवरफिट और इससे कैसे बचें?

  2. वास्तविक जीवन में उत्तरजीवी पूर्वाग्रह के उदाहरण क्या हैं?


अधिक