Backtesting प्रयोजनों के लिए सतत वायदा अनुबंधों







+

Backtesting प्रयोजनों के लिए सतत वायदा अनुबंधों 29 जनवरी 2014 पर माइकल हॉल-मूर द्वारा QuantStart पर पिछले एक लेख में हम Quandl से मुक्त वायदा डेटा डाउनलोड करने के लिए कैसे की जांच की। इस लेख में हम को देखने का एक backtesting बिंदु से एक डेटा चुनौती पेश कि वायदा अनुबंध की विशेषताओं पर चर्चा करने जा रहे हैं। विशेष रूप से, "निरंतर अनुबंध" और "रोल रिटर्न 'की धारणा। हम भविष्य के मुख्य कठिनाइयों रूपरेखा और आंशिक रूप से समस्याओं को दूर कर सकते हैं कि पांडा के साथ पायथन में एक कार्यान्वयन प्रदान करेगा। वायदा अनुबंध की संक्षिप्त अवलोकन फ्यूचर्स भविष्य में एक निर्धारित तिथि पर खरीद या एक अंतर्निहित परिसंपत्ति की मात्रा की बिक्री के लिए दोनों पक्षों के बीच तैयार की अनुबंध का एक रूप है। इस तिथि पर डिलीवरी या समाप्ति के रूप में जाना जाता है। इस तिथि तक पहुँच जाता है कीमत के लिए विक्रेता को शारीरिक अंतर्निहित (या नकद समतुल्य) देने चाहिए खरीदार के अनुबंध के गठन की तारीख में सहमति व्यक्त की। मानकीकृत मात्रा और अंतर्निहित के गुणों के लिए - (ओटीसी कारोबार काउंटर पर के खिलाफ) अभ्यास वायदा बाजारों में कारोबार कर रहे हैं। कीमतों में हर दिन बाजार के लिए चिह्नित कर रहे हैं। फ्यूचर्स अविश्वसनीय रूप से तरल कर रहे हैं और सट्टा प्रयोजनों के लिए बड़ी मात्रा में प्रयोग कर रहे हैं। वायदा अक्सर कृषि या औद्योगिक वस्तुओं की कीमतों से बचाव के लिए उपयोग किया गया है, जबकि एक वायदा अनुबंध किसी भी मूर्त या अमूर्त शेयर सूचकांक, विदेशी मुद्रा मूल्यों की ब्याज दरों के रूप में इस तरह के अंतर्निहित पर गठित किया जा सकता है। फ्यूचर्स फैक्टशीट: विभिन्न एक्सचेंजों भर में वायदा अनुबंध के लिए इस्तेमाल सभी प्रतीक कोड की एक विस्तृत सूची सीएसआई डेटा साइट पर पाया जा सकता है। एक वायदा अनुबंध और इक्विटी स्वामित्व के बीच मुख्य अंतर यह है कि एक वायदा अनुबंध समाप्ति की तारीख के आधार पर उपलब्धता के एक सीमित खिड़की है कि इस तथ्य है। किसी भी एक पल में एक्सपायरी के अलग तारीखों के साथ सभी अंतर्निहित उसी पर वायदा अनुबंध की एक किस्म का हो जाएगा। समाप्ति की निकटतम तारीख के साथ अनुबंध के पास अनुबंध के रूप में जाना जाता है। हम मात्रात्मक व्यापारियों के रूप में समस्या का सामना करना समय में किसी भी बिंदु पर हम व्यापार करने के लिए, जिसके साथ कई ठेके के पास विकल्प है कि है। इस प्रकार हम समय की श्रृंखला की एक अतिव्यापी सेट के बजाय इक्विटी या विदेशी मुद्रा के मामले में एक सतत प्रवाह के साथ काम कर रहे हैं। इस अनुच्छेद के लक्ष्य एकाधिक श्रृंखला के इस सेट से ठेके की एक सतत स्ट्रीम के निर्माण के लिए विभिन्न तरीकों की रूपरेखा तैयार करने और प्रत्येक तकनीक के साथ जुड़े tradeoffs पर प्रकाश डाला है। एक सतत वायदा अनुबंध गठन बदलती प्रसव के साथ अंतर्निहित ठेके से एक सतत अनुबंध उत्पन्न करने की कोशिश के साथ मुख्य कठिनाई ठेके अक्सर एक ही कीमत पर व्यापार नहीं है कि है। वे अगले करने के लिए एक से एक चिकनी ब्याह प्रदान नहीं करते हैं, जहां इस प्रकार स्थितियों उठता। इस कंटंगा और backwardation प्रभाव के कारण है। हम अब चर्चा है, जो इस समस्या से निपटने के लिए विभिन्न दृष्टिकोण हैं। आम दृष्टिकोण दुर्भाग्य से वित्तीय उद्योग में एक साथ वायदा अनुबंध में शामिल होने के लिए कोई भी 'मानक' विधि नहीं है। अंततः चुना विधि अनुबंध और निष्पादन की विधि रोजगार रणनीति पर भारी निर्भर करेगा। कोई भी विधि कुछ सामान्य दृष्टिकोण हैं मौजूद है कि इस तथ्य के बावजूद: वापस / आगे ("पनामा") समायोजन इस विधि व्यक्तिगत प्रसव आसन्न अनुबंध करने के लिए एक सहज ढंग से शामिल होने के लिए ऐसी है कि प्रत्येक अनुबंध स्थानांतरण द्वारा कई ठेके के पार "" अंतर alleviates। इस प्रकार खुला / बंद से पहले ठेके भर समाप्ति पर मेल खाता है। पनामा विधि के साथ प्रमुख समस्या की कीमतों के लिए एक बड़ी बहाव को लागू करेगा, जो एक प्रवृत्ति पूर्वाग्रह की शुरूआत भी शामिल है। यह पर्याप्त ऐतिहासिक ठेके के लिए नकारात्मक डाटा को चुरा सकते हैं। इसके अलावा के कारण मूल्यों में एक निरपेक्ष पारी के सापेक्ष मूल्य में अंतर का एक नुकसान होता है। यह रिटर्न की गणना करने के लिए जटिल (या सिर्फ सादा गलत) कर रहे हैं कि इसका मतलब है। आनुपातिक समायोजन समानता समायोजन दृष्टिकोण शेयरों में शेयर विभाजन से निपटने के समायोजन कार्यप्रणाली के समान है। बल्कि लगातार ठेके में एक निरपेक्ष पारी लेने से, नए खुले कीमत के लिए पुराने रुकना (करीब) की कीमत के अनुपात आनुपातिक ऐतिहासिक अनुबंध की कीमतों को समायोजित करने के लिए प्रयोग किया जाता है। यह प्रतिशत रिटर्न की गणना का एक बिना किसी रुकावट के एक सतत स्ट्रीम की अनुमति देता है। आनुपातिक समायोजन के साथ मुख्य मुद्दा एक निरपेक्ष मूल्य स्तर पर निर्भर किसी भी व्यापार रणनीतियों को भी इसी तरह से सही संकेत अमल करने के क्रम में समायोजित करना होगा। यह एक समस्याग्रस्त और त्रुटि प्रवण प्रक्रिया है। प्रत्यक्ष backtesting अनुसंधान करने के लिए विरोध के रूप में इस प्रकार सतत स्ट्रीम के इस प्रकार, अक्सर सारांश सांख्यिकीय विश्लेषण के लिए ही उपयोगी है। रोलओवर / सदा सीरीज इस दृष्टिकोण का सार प्रत्येक के बीच एक चिकनी संक्रमण सुनिश्चित करने के लिए दिन के एक नंबर पर प्रत्येक अनुबंध की एक रैखिक भारित अनुपात लेने के द्वारा लगातार ठेके की एक सतत अनुबंध बनाने के लिए है। उदाहरण के लिए पांच चौरसाई दिनों पर विचार करें। 1 दिन पर कीमत $ p_1 $, अब तक अनुबंध की कीमत का 80% ($ $ F_1) और पास अनुबंध की कीमत ($ N_1 $) के 20% के बराबर है। इसी तरह, दिन 2 पर कीमत $ P_2 है = 0.6 \ बार F_2 + 0.4 \ बार N_2 $। 5 दिन से हम तो बस पास की कीमत का एक निरंतरता हो जाता है F_5 + 1.0 \ बार N_5 = N_5 $ और अनुबंध $ P_5 = 0.0 \ बार किया है। इस प्रकार पांच दिन के बाद अनुबंध को सुचारू रूप से अब तक के पास से संक्रमित कर रहा है। रोलओवर विधि के साथ समस्या यह है कि लेन-देन की लागत में वृद्धि कर सकते हैं, जो सभी पांच दिन, पर व्यापार की आवश्यकता है। वहाँ समस्या के लिए अन्य कम आम दृष्टिकोण हैं, लेकिन हम उन्हें यहाँ से बचना होगा। अजगर और पंडों में रोल वापसी गठन इस backtesting के लिए सबसे उपयुक्त है, के रूप में लेख के शेष सदा श्रृंखला पद्धति को लागू करने पर ध्यान देना होगा। यह रणनीति पाइपलाइन अनुसंधान बाहर ले जाने के लिए एक उपयोगी तरीका है। हम एक सतत मूल्य श्रृंखला उत्पन्न करने के क्रम में एक साथ डब्ल्यूटीआई क्रूड ऑयल "पास" और "अब तक" वायदा अनुबंध (प्रतीक सीएल) सिलाई करने के लिए जा रहे हैं। लिखने के समय (जनवरी 2014) में पास अनुबंध CLF2014 (जनवरी) और अब तक अनुबंध CLG2014 (फरवरी) है। वायदा डेटा के डाउनलोड बाहर ले जाने के क्रम में मैं Quandl प्लगइन का इस्तेमाल किया है। टर्मिनल में निम्न लिखकर Quandl पैकेज आपके सिस्टम पर सही अजगर आभासी वातावरण स्थापित किया है और स्थापित करने के लिए सुनिश्चित करें: अब Quandl पैकेज intalled है कि, हम रोल-रिटर्न निर्माण के लिए बाहर ले जाने के क्रम में NumPy और पंडों का उपयोग करने की जरूरत है। आप NumPy नहीं मिला है या पंडों स्थापित है, तो यहाँ मेरी ट्यूटोरियल का पालन करें। निम्नलिखित आयात बयान एक नई फ़ाइल बनाएँ और दर्ज करें: मुख्य काम futures_rollover_weights समारोह में किया जाता है। यह एक प्रारंभिक तिथि (निकट अनुबंध की पहली तारीख), अनुबंध निपटान तारीखें (expiry_dates), ठेके के प्रतीकों और (पांच को दोषी) पर अनुबंध रोल करने के लिए दिनों की संख्या का एक शब्दकोश की आवश्यकता है। नीचे टिप्पणी कोड की व्याख्या: अब भार मैट्रिक्स का उत्पादन किया गया है कि, यह अलग-अलग समय श्रृंखला के लिए यह लागू करने के लिए संभव है। मुख्य समारोह, पास और दूर ठेके डाउनलोड्स दोनों के लिए एक एकल DataFrame बनाता है, रोलओवर भार मैट्रिक्स constructs और फिर अंत में, उचित रूप से भारित दोनों की कीमतों में एक सतत श्रृंखला का उत्पादन: इस प्रकार के रूप आउटपुट है: यह श्रृंखला अब दो ठेके भर में निरंतर है कि देखा जा सकता है। अगले कदम के लिए अपने backtesting आवश्यकताओं पर निर्भर करता है, वर्ष की एक किस्म भर में एकाधिक प्रसव के लिए बाहर ले जाने के लिए है। संदर्भ आप वायदा कीमतों में निरंतर श्रृंखला के गठन में और अधिक विस्तार करना चाहते हैं तो निम्नलिखित लिंक पर एक नजर है: माइकल हॉल-मूर माइक QuantStart के संस्थापक है और मुख्य रूप से एक क्वांट डेवलपर के रूप में और बाद में हेज फंडों के लिए एक क्वांट व्यापारी सलाह के रूप में पिछले पांच साल के लिए मात्रात्मक वित्त उद्योग में शामिल किया गया है।