यह पोस्ट उन लोगों के लिए उपयुक्त है जो मात्रात्मक व्यापार शुरू कर रहे हैं और साथ ही उन लोगों के लिए भी जो इस क्षेत्र के साथ कुछ अनुभव रखते हैं। यह पोस्ट बैकटेस्टिंग के सामान्य फसलों के साथ-साथ कुछ असामान्य लोगों पर चर्चा करती है!
यह विभिन्न प्रकार के बैकटेस्टिंग तंत्रों के साथ-साथ सॉफ्टवेयर परिदृश्य को भी देखता है जो इन दृष्टिकोणों को लागू करता है। फिर हम चर्चा करते हैं कि क्या आज उपलब्ध ओपन सोर्स टूल के प्रचलन के साथ भी अपने स्वयं के बैकटेस्टर का निर्माण करने के लायक है।
अंत में, हम एक घटना-संचालित बैकटेस्टिंग प्रणाली के अंदर और बाहर चर्चा करते हैं, एक विषय जिसे मैंने पहले के पोस्ट में क्वांटस्टार्ट पर अक्सर कवर किया है।
बैकटेस्ट ऐतिहासिक मूल्य निर्धारण डेटा के सेट पर ट्रेडिंग रणनीति के नियमों का अनुप्रयोग है। यही है, यदि हम परिसंपत्तियों के पोर्टफोलियो में प्रवेश और निकास के लिए तंत्रों का एक सेट परिभाषित करते हैं, और उन नियमों को उन परिसंपत्तियों के ऐतिहासिक मूल्य निर्धारण डेटा पर लागू करते हैं, तो हम इस "व्यापार रणनीति" के प्रदर्शन को समझने का प्रयास कर सकते हैं जो अतीत में प्राप्त किया जा सकता है।
एक बार कहा गया था कि
बैकटेस्ट अंततः हमें यह तय करने में मदद करता है कि क्या यह रणनीति नियमों के एक सेट को लाइव-ट्रेडिंग करने के लायक है। यह हमें यह बताता है कि अतीत में रणनीति ने कैसे प्रदर्शन किया हो सकता है। अनिवार्य रूप से यह हमें किसी भी वास्तविक पूंजी का आवंटन करने से पहले खराब रणनीति नियमों को फ़िल्टर करने की अनुमति देता है।
बैकटेस्ट उत्पन्न करना आसान है. दुर्भाग्य से बैकटेस्ट परिणाम लाइव ट्रेडिंग परिणाम नहीं हैं. वे इसके बजाय वास्तविकता का एक मॉडल हैं. एक मॉडल जिसमें आमतौर पर कई धारणाएं होती हैं.
सॉफ्टवेयर बैकटेस्ट के दो मुख्य प्रकार हैं -
बैकटेस्टिंग सॉफ्टवेयर को डिजाइन करते समय हमेशा सटीकता और कार्यान्वयन जटिलता के बीच एक समझौता होता है। उपरोक्त दो बैकटेस्टिंग प्रकार इस समझौता के लिए स्पेक्ट्रम के किसी भी छोर का प्रतिनिधित्व करते हैं।
बैकटेस्टिंग से जुड़ी कई खामियां हैं। वे सभी इस तथ्य से संबंधित हैं कि एक बैकटेस्ट केवल वास्तविकता का एक मॉडल है। कुछ अधिक आम खामियों में शामिल हैंः
बैकटेस्टिंग के साथ कुछ अधिक सूक्ष्म मुद्दे हैं जिन पर अक्सर चर्चा नहीं की जाती है, लेकिन फिर भी विचार करने के लिए अविश्वसनीय रूप से महत्वपूर्ण हैं। उनमें शामिल हैंः
बैकटेस्टिंग की समस्याओं के बारे में बहुत कुछ लिखा गया है। टकर बाल्च और एर्नी चैन दोनों ही इस मुद्दे पर विस्तार से विचार करते हैं।
For-Loop Backtester सबसे सरल प्रकार का बैकटेस्टिंग सिस्टम है और यह संस्करण क्वांट ब्लॉग पोस्ट में सबसे अधिक देखा जाता है, केवल इसकी सादगी और पारदर्शिता के लिए।
मूल रूप से फोर-लूप प्रणाली प्रत्येक ट्रेडिंग दिन (या ओएचएलसी बार) पर पुनरावृत्ति करती है, परिसंपत्ति की कीमतों से संबंधित कुछ गणना करती है, जैसे कि बंद होने का मूविंग एवरेज, और फिर एक विशेष परिसंपत्ति (अक्सर एक ही समापन मूल्य पर, लेकिन कभी-कभी अगले दिन) पर लंबी या छोटी जाती है। पुनरावृत्ति तब जारी रहती है। इस दौरान कुल इक्विटी को ट्रैक और संग्रहीत किया जाता है ताकि बाद में इक्विटी वक्र का उत्पादन किया जा सके।
यहाँ इस तरह के एक एल्गोरिथ्म के लिए छद्म कोड हैः
for each trading bar:
do_something_with_prices();
buy_sell_or_hold_something();
next_bar();PythonCopy
जैसा कि आप देख सकते हैं कि इस तरह के सिस्टम का डिजाइन अविश्वसनीय रूप से सरल है। यह एक विशेष रणनीति नियम सेट के प्रदर्शन पर
फोर-लूप बैकटेस्टर लगभग किसी भी प्रोग्रामिंग भाषा में लागू करने के लिए सरल हैं और निष्पादित करने के लिए बहुत तेज़ हैं। बाद के लाभ का मतलब है कि ट्रेडिंग सेटअप को अनुकूलित करने के लिए कई पैरामीटर संयोजनों का परीक्षण किया जा सकता है।
फोर-लूप बैकटेस्टर का मुख्य नुकसान यह है कि वे काफी अवास्तविक हैं। उनके पास अक्सर लेनदेन लागत क्षमता नहीं होती है जब तक कि विशेष रूप से जोड़ा न जाए। आमतौर पर ऑर्डर तुरंत
बैकटेस्टिंग प्रणाली और लाइव-ट्रेडिंग प्रणाली के बीच न्यूनतम कोड पुनः उपयोग होता है। इसका मतलब है कि कोड को अक्सर दो बार लिखने की आवश्यकता होती है, जिससे अधिक बग की संभावना होती है।
For-Loop backtesters को Look-Ahead Bias का खतरा है, उदाहरण के लिए, क्या आपको अपने पैनल इंडेक्सिंग में
For-Loop backtesters को वास्तव में केवल एक फिल्टरेशन तंत्र के रूप में उपयोग किया जाना चाहिए। आप उन्हें स्पष्ट रूप से बुरी रणनीतियों को खत्म करने के लिए उपयोग कर सकते हैं, लेकिन आपको मजबूत प्रदर्शन के बारे में संदेह करना चाहिए। आगे के शोध की आवश्यकता होती है। रणनीतियाँ शायद ही कभी लाइव ट्रेडिंग में बेहतर प्रदर्शन करती हैं!
इवेंट-ड्राइव बैकटेस्टर स्पेक्ट्रम के दूसरे छोर पर स्थित हैं। वे लाइव-ट्रेडिंग बुनियादी ढांचे के कार्यान्वयन के समान हैं। इस प्रकार, वे अक्सर बैकटेस्ट और लाइव ट्रेडिंग प्रदर्शन के बीच अंतर में अधिक यथार्थवादी होते हैं।
ऐसी प्रणालियाँ एक बड़े
जब किसी विशेष घटना की पहचान की जाती है, तो इसे बुनियादी ढांचे में उपयुक्त मॉड्यूलों को रूट किया जाता है, जो घटना को संभालता है और फिर संभावित रूप से नई घटनाओं को उत्पन्न करता है जो कतार में वापस जाते हैं।
एक घटना संचालित बैकटेस्टिंग प्रणाली के लिए छद्म कोड इस प्रकार है:
while event_queue_isnt_empty():
event = get_latest_event_from_queue();
if event.type == "tick":
strategy.calculate_trading_signals(event);
else if event.type == "signal":
portfolio.handle_signal(event);
else if event.type == "order":
portfolio.handle_order(event);
else if event.type == "fill":
portfolio.handle_fill(event)
sleep(600); # Sleep for, say, 10 minsPythonCopy
जैसा कि आप देख सकते हैं कि पोर्टफोलियो हैंडलर मॉड्यूल पर भारी निर्भरता है। ऐसा मॉड्यूल एक इवेंट-ड्राइव बैकटेस्टिंग सिस्टम का
एक इवेंट-ड्राइव बैकटेस्टर का उपयोग करने के कई फायदे हैंः
हालांकि ऐसे जटिल तंत्र का उपयोग करने के फायदे स्पष्ट हैं, लेकिन इसके कुछ गंभीर नुकसान भी हैंः
इस अनुभाग में हम सॉफ्टवेयर (खुले स्रोत और वाणिज्यिक दोनों) पर विचार करेंगे जो फो-लूप और इवेंट-ड्राइव्ड सिस्टम दोनों के लिए मौजूद हैं।
For-Loop backtesters के लिए, उपयोग की जाने वाली मुख्य प्रोग्रामिंग भाषाओं / सॉफ्टवेयर में पायथन (पैंडस लाइब्रेरी के साथ), आर (और क्वांटमॉड लाइब्रेरी) और मैटलैब शामिल हैं। क्वांट ब्लॉग पर बहुत सारे कोड स्निपेट पाए जा सकते हैं। ऐसे ब्लॉगों की एक बड़ी सूची क्वांटोक्रेसी पर पाई जा सकती है।
इवेंट-ड्राइव्ड सिस्टम का बाजार बहुत बड़ा है, क्योंकि ग्राहक/उपयोगकर्ता अक्सर चाहते हैं कि सॉफ्टवेयर एक पैकेज में बैकटेस्टिंग और लाइव ट्रेडिंग दोनों के लिए सक्षम हो।
महंगी व्यावसायिक पेशकशों में डेल्टिक्स और क्वांटहाउस शामिल हैं। वे अक्सर क्वांट हेज फंड, फैमिली ऑफिस और प्रोप ट्रेडिंग फर्मों में पाए जाते हैं।
क्लाउड-आधारित बैकटेस्टिंग और लाइव ट्रेडिंग सिस्टम अपेक्षाकृत नए हैं। क्वांटोपियन बैकटेस्टिंग और लाइव ट्रेडिंग दोनों के लिए एक परिपक्व वेब-आधारित सेटअप का एक उदाहरण है।
संस्थागत क्वांट अक्सर अपने स्वयं के इन-हाउस सॉफ्टवेयर का निर्माण भी करते हैं। यह नियामक बाधाओं, निवेशक संबंधों/रिपोर्टिंग और ऑडिटेबिलिटी के मिश्रण के कारण है।
खुदरा क्वांटों के पास क्वांटोपियन के
ओपन सोर्स सॉफ़्टवेयर के संदर्भ में, कई पुस्तकालय उपलब्ध हैं। वे ज्यादातर पायथन में लिखे गए हैं (जिन कारणों के लिए मैं नीचे उल्लिखित करूंगा) और इसमें ज़िपलाइन (क्वांटोपियन), पाइएल्गोट्रेड, पाइसिस्टमट्रेड (रॉब कार्वर / निवेश मूर्खता) और क्यूएसटीरेडर (क्वांटस्टार्ट
हालाँकि, सबसे महत्वपूर्ण पहलुओं में से एक यह है कि आप जो भी सॉफ़्टवेयर का उपयोग करते हैं, उसे वित्तीय डेटा के समान ठोस स्रोत के साथ जोड़ा जाना चाहिए। अन्यथा आप "गार्बेज इन, गार्बेज आउट" की स्थिति में होंगे और आपके लाइव ट्रेडिंग परिणाम आपके बैकटेस्ट से काफी भिन्न होंगे।
जबकि सॉफ्टवेयर हमारे लिए विवरणों का ध्यान रखता है, यह हमें कई कार्यान्वयन विवरणों से छिपाता है जो अक्सर महत्वपूर्ण होते हैं जब हम अपनी ट्रेडिंग रणनीति की जटिलता का विस्तार करना चाहते हैं। किसी बिंदु पर अक्सर अपने स्वयं के सिस्टम लिखने के लिए आवश्यक होता है और पहला सवाल जो उत्पन्न होता है वह है
एक मात्रात्मक सॉफ्टवेयर डेवलपर के रूप में एक पृष्ठभूमि होने के बावजूद मैं व्यक्तिगत रूप से
हमें केवल उन चीजों में दिलचस्पी होनी चाहिए जो काम करती हैं।
पायथन एक बेहद आसान सीखने वाली प्रोग्रामिंग भाषा है और अक्सर यह पहली भाषा होती है जब लोग प्रोग्रामिंग सीखने का निर्णय लेते हैं। इसमें उपकरणों का एक मानक पुस्तकालय होता है जो कल्पना करने योग्य लगभग किसी भी प्रकार के डेटा को पढ़ सकता है और किसी अन्य सेवा के साथ बहुत आसानी से बात कर सकता है।
इसमें NumPy, SciPy, Pandas, Scikit-Learn, Matplotlib, PyMC3 और Statsmodels में कुछ असाधारण क्वांटम/डेटा साइंस/मशीन लर्निंग (ML) लाइब्रेरी हैं। जबकि यह ML और सामान्य डेटा विज्ञान के लिए बहुत अच्छा है, यह अधिक व्यापक शास्त्रीय सांख्यिकीय तरीकों और समय श्रृंखला विश्लेषण के लिए थोड़ा पीड़ित है।
यह For-Loop और Event-Driven backtesting दोनों प्रणालियों के निर्माण के लिए बहुत अच्छा है। वास्तव में, यह शायद केवल भाषाओं में से एक है जो सीधे तौर पर अंत से अंत तक अनुसंधान, बैकटेस्टिंग, तैनाती, लाइव ट्रेडिंग, रिपोर्टिंग और निगरानी की अनुमति देता है।
शायद इसका सबसे बड़ा दोष यह है कि यह C++ जैसी अन्य भाषाओं की तुलना में निष्पादित करने में काफी धीमा है। हालांकि, इस समस्या को सुधारने के लिए काम किया जा रहा है और समय के साथ पायथन तेजी से हो रहा है।
R एक पूर्ण विकसित
यह व्यापक रूप से फोर-लूप बैकटेस्टिंग के लिए उपयोग किया जाता है, अक्सर क्वांटमॉड लाइब्रेरी के माध्यम से, लेकिन इवेंट-ड्राइव्ड सिस्टम या लाइव ट्रेडिंग के लिए विशेष रूप से उपयुक्त नहीं है। हालांकि यह रणनीति अनुसंधान में उत्कृष्ट है।
C++ की प्रतिष्ठा बेहद तेज़ होने के लिए है। लगभग सभी वैज्ञानिक उच्च प्रदर्शन कंप्यूटिंग या तो Fortran या C++ में की जाती है। यह इसका प्राथमिक लाभ है। इसलिए यदि आप उच्च आवृत्ति व्यापार पर विचार कर रहे हैं, या बड़े संगठनों में विरासत प्रणालियों पर काम कर रहे हैं, तो C++ एक आवश्यकता होने की संभावना है।
दुर्भाग्य से यह रणनीति अनुसंधान करने के लिए दर्दनाक है। स्थिर रूप से टाइप किए जाने के कारण यह पायथन या आर की तुलना में आसानी से डेटा लोड, पढ़ना और स्वरूपित करना काफी मुश्किल है।
अपनी सापेक्ष आयु के बावजूद, हाल ही में C++11/C++14 की शुरूआत और आगे के मानकों के परिष्करण के साथ इसका काफी आधुनिकीकरण किया गया है।
आप जावा, स्काला, सी #, जूलिया और कई कार्यात्मक भाषाओं पर भी एक नज़र डालना चाह सकते हैं। हालांकि, मेरी सिफारिश पायथन, आर और / या सी ++ के साथ रहना है, क्योंकि क्वांट ट्रेडिंग समुदाय बहुत बड़े हैं।
उत्तर: हाँ!
यह एक महान सीखने का अनुभव है अपने स्वयं के घटना-संचालित बैकटेस्टिंग प्रणाली लिखने के लिए. सबसे पहले, यह आप अपने व्यापार बुनियादी ढांचे के सभी पहलुओं पर विचार करने के लिए मजबूर करता है, न कि सिर्फ एक विशेष रणनीति पर tinkering घंटे बिताने.
भले ही आप लाइव ट्रेडिंग के लिए सिस्टम का उपयोग नहीं करते हैं, यह आपको बड़ी संख्या में प्रश्न प्रदान करेगा जो आपको अपने वाणिज्यिक या एफओएसएस बैकटेस्टिंग विक्रेताओं से पूछना चाहिए।
उदाहरण के लिएः कैसे अपने वर्तमान लाइव प्रणाली के संदर्भ में अपने बैकटेस्ट सिमुलेशन से अलग हैः
जबकि इवेंट-ड्राइव्ड सिस्टम लिखने के लिए तेज़ या आसान नहीं हैं, अनुभव बाद में आपके क्वांट ट्रेडिंग करियर में भारी शैक्षिक लाभांश का भुगतान करेगा।
आप ऐसी प्रणाली कैसे लिखते हैं?
आरंभ करने का सबसे अच्छा तरीका यह है कि बस Zipline, QSTrader, PyAlgoTrade, PySystemTrade आदि को डाउनलोड करें और प्रलेखन और कोड के माध्यम से पढ़ने का प्रयास करें। वे सभी पायथन में लिखे गए हैं (उपरोक्त कारणों के कारण) और शुक्र है कि पायथन छद्म-कोड पढ़ने जैसा है। यानी, इसका पालन करना बहुत आसान है।
मैं भी घटना संचालित बैकटेस्ट डिजाइन पर कई लेख लिखे हैं, जो आप यहाँ पा सकते हैं, जो आप प्रणाली के प्रत्येक मॉड्यूल के विकास के माध्यम से मार्गदर्शन करते हैं। रोब कार्वर, निवेश मूर्खता में भी वायदा व्यापार के लिए इस तरह के सिस्टम के निर्माण के लिए अपने दृष्टिकोण को प्रस्तुत करता है।
याद रखें कि आपको दिन # 1 पर एक विशेषज्ञ होने की आवश्यकता नहीं है। आप इसे धीरे-धीरे, दिन-प्रतिदिन, मॉड्यूल-दर-मॉड्यूल ले सकते हैं। यदि आपको मदद की आवश्यकता है, तो आप हमेशा मुझसे या अन्य इच्छुक क्वांट ब्लॉगर्स से संपर्क कर सकते हैं। मेरे संपर्क ईमेल के लिए लेख के अंत में देखें।
मैं अब मॉड्यूल पर चर्चा करूंगा जो अक्सर कई इवेंट-ड्राइव बैकटेस्टिंग सिस्टम में पाए जाते हैं। जबकि यह एक पूर्ण सूची नहीं है, यह आपको इस तरह के सिस्टम के डिजाइन के बारे में
यह है जहां सभी ऐतिहासिक मूल्य निर्धारण डेटा संग्रहीत किया जाता है, साथ ही अपने व्यापार इतिहास के साथ, एक बार लाइव. एक पेशेवर प्रणाली सिर्फ कुछ नहीं है CSV फ़ाइलें याहू वित्त से!
इसके बजाय, हम
आदर्श रूप से, हम टिक-लेवल डेटा प्राप्त करना और संग्रहीत करना चाहते हैं क्योंकि यह हमें ट्रेडिंग स्प्रेड का एक विचार देता है। इसका मतलब यह भी है कि हम अपने स्वयं के ओएचएलसी बार का निर्माण कर सकते हैं, यदि वांछित हो, तो कम आवृत्तियों पर।
हमें हमेशा कॉर्पोरेट कार्यों (जैसे स्टॉक स्प्लिट्स और लाभांश) को संभालने, जीवित रहने के पक्षपात (स्टॉक डी-लिस्टिंग) के साथ-साथ विभिन्न एक्सचेंजों के बीच समय क्षेत्र के अंतर को ट्रैक करने के बारे में पता होना चाहिए।
व्यक्तिगत / खुदरा क्वांट यहां प्रतिस्पर्धा कर सकते हैं क्योंकि कई उत्पादन-गुणवत्ता डेटाबेस प्रौद्योगिकियां परिपक्व, मुक्त और ओपन सोर्स हैं। डेटा स्वयं सस्ता और
अभी भी बहुत सारे बाजार और रणनीतियाँ हैं जो बड़े फंडों के लिए रुचि रखने के लिए बहुत छोटे हैं। यह खुदरा मात्रा व्यापारियों के लिए उपजाऊ भूमि है।
एक इवेंट-ड्राइव सिस्टम में ट्रेडिंग रणनीति मॉड्यूल आम तौर पर नए बाजार डेटा पर किसी प्रकार की भविष्यवाणी या फ़िल्टरिंग तंत्र चलाता है।
यह बार या टिक डेटा प्राप्त करता है और फिर इन तंत्रों का उपयोग किसी परिसंपत्ति को लंबे या छोटे करने के लिए एक ट्रेडिंग सिग्नल उत्पन्न करने के लिए करता है। यह मॉड्यूल एक मात्रा का उत्पादन करने के लिए डिज़ाइन नहीं किया गया है, जो स्थिति-आकार मॉड्यूल के माध्यम से किया जाता है।
95% क्वांट ब्लॉग चर्चा आमतौर पर ट्रेडिंग रणनीतियों के इर्द-गिर्द घूमती है। व्यक्तिगत रूप से मेरा मानना है कि यह 20% की तरह अधिक होना चाहिए। ऐसा इसलिए है क्योंकि मुझे लगता है कि
एक इवेंट-ड्राइव बैकटेस्टर का
इस प्रणाली का उद्देश्य जोखिम को कम करते हुए और लेन-देन की लागत को कम करते हुए वर्तमान पोर्टफोलियो से वांछित पोर्टफोलियो में जाना है।
यह मॉड्यूल सिस्टम की रणनीति, जोखिम, स्थिति आकार और आदेश निष्पादन क्षमताओं को जोड़ता है। यह ब्रोकर की अपनी गणनाओं की नकल करने के लिए बैकटेस्टिंग के दौरान स्थिति गणनाओं को भी संभालता है।
इस तरह के एक जटिल प्रणाली का उपयोग करने का प्राथमिक लाभ यह है कि यह एक एकल पोर्टफोलियो के तहत विभिन्न प्रकार के वित्तीय साधनों को संभालने की अनुमति देता है। यह हेजिंग के साथ संस्थागत शैली के पोर्टफोलियो के लिए आवश्यक है। इस तरह की जटिलता को एक फॉर-लूप बैकटेस्टिंग प्रणाली में कोड करना बहुत मुश्किल है।
जोखिम प्रबंधन को अपने स्वयं के मॉड्यूल में अलग करना बेहद फायदेमंद हो सकता है। मॉड्यूल पोर्टफोलियो से भेजे गए आदेशों को संशोधित, जोड़ या वीटो कर सकता है।
विशेष रूप से, जोखिम मॉड्यूल बाजार तटस्थता बनाए रखने के लिए हेज जोड़ सकता है। यह क्षेत्र के जोखिम या एडीवी सीमाओं के कारण ऑर्डर आकार को कम कर सकता है। यह पूरी तरह से एक व्यापार पर वीटो कर सकता है यदि स्प्रेड बहुत व्यापक है, या शुल्क व्यापार आकार के सापेक्ष बहुत बड़े हैं।
एक अलग स्थिति आकार मॉड्यूल अस्थिरता अनुमान और स्थिति आकार नियम जैसे कि केली लीवरेज को लागू कर सकता है। वास्तव में, एक मॉड्यूलर दृष्टिकोण का उपयोग करने से यहां व्यापक अनुकूलन की अनुमति मिलती है, बिना रणनीति या निष्पादन कोड को प्रभावित किए।
क्वांट ब्लॉग जगत में इस तरह के विषयों का अच्छी तरह से प्रतिनिधित्व नहीं किया जाता है। हालांकि, यह शायद संस्थानों और कुछ खुदरा व्यापारियों के बीच सबसे बड़ा अंतर है जो अपने व्यापार के बारे में सोचते हैं। शायद बेहतर रिटर्न प्राप्त करने का सबसे सरल तरीका इस तरह से जोखिम प्रबंधन और स्थिति आकार को लागू करना शुरू करना है।
वास्तविक जीवन में हम कभी भी मध्य बिंदु पर बाजार भरने की गारंटी नहीं देते हैं!
हमें लेन-देन संबंधी मुद्दों जैसे क्षमता, स्प्रेड, शुल्क, फिसलन, बाजार प्रभाव और अन्य एल्गोरिथम निष्पादन चिंताओं पर विचार करना चाहिए, अन्यथा हमारे बैकटेस्टिंग रिटर्न को बहुत अधिक महत्व देने की संभावना है।
एक इवेंट-ड्राइव सिस्टम का मॉड्यूलर दृष्टिकोण हमें आसानी से बैकटेस्ट एक्ज़िक्यूशन हैंडलर को लाइव एक्ज़िक्यूशन हैंडलर के साथ स्विच आउट करने और दूरस्थ सर्वर पर तैनात करने की अनुमति देता है।
हम आसानी से
एक मुद्दा है जिसके बारे में पता होना चाहिए कि तृतीय पक्ष पुस्तकालयों के साथ
खुदरा क्वांट संस्थागत क्वांट द्वारा उपयोग की जाने वाली परिष्कृत रिपोर्टिंग तकनीकों को उधार ले सकते हैं और लेना चाहिए। ऐसे उपकरणों में पोर्टफोलियो और संबंधित जोखिमों के लाइव डैशबोर्ड, बैकटेस्ट इक्विटी बनाम लाइव इक्विटी अंतर या डेल्टा, साथ ही सभी सामान्य मीट्रिक जैसे प्रति व्यापार लागत, रिटर्न वितरण, उच्च जल मार्क (एचडब्ल्यूएम), अधिकतम ड्रॉडाउन, औसत व्यापार विलंबता और साथ ही एक बेंचमार्क के खिलाफ अल्फा / बीटा शामिल हैं।
इस बुनियादी ढांचे में लगातार वृद्धिशील सुधार किए जाने चाहिए। यह केवल बग को खत्म करके और व्यापार विलंबता जैसे मुद्दों में सुधार करके, दीर्घकालिक रूप से रिटर्न को वास्तव में बढ़ा सकता है।
डब्ल्यूजीएस अंततः अल्फा क्षय के कारण क्षय हो जाएगा। अन्य अंततः किनारे की खोज करेंगे और रिटर्न को दूर कर देंगे। हालांकि, एक मजबूत ट्रेडिंग बुनियादी ढांचा, एक ठोस रणनीति अनुसंधान पाइपलाइन और निरंतर सीखने इस भाग्य से बचने के महान तरीके हैं।
बुनियादी ढांचे का अनुकूलन रणनीति के विकास की तुलना में अधिक
रिमोट सर्वर पर तैनाती, इस रिमोट सिस्टम की व्यापक निगरानी के साथ, संस्थागत स्तर के सिस्टम के लिए बिल्कुल महत्वपूर्ण है। खुदरा क्वांट इन विचारों का उपयोग भी कर सकते हैं और करना चाहिए।
एक मजबूत प्रणाली को दूरस्थ रूप से
दूरस्थ तैनाती पर विचार करते समय मुख्य मुद्दों में शामिल हैं; सीपीयू, रैम/स्वैप, डिस्क और नेटवर्क आई/ओ जैसे निगरानी हार्डवेयर, सिस्टम की उच्च उपलब्धता और अतिरेक, बैकअप और बहाली योजना के माध्यम से अच्छी तरह से सोचा गया, सिस्टम के सभी पहलुओं का व्यापक लॉगिंग के साथ-साथ निरंतर एकीकरण, यूनिट परीक्षण और संस्करण नियंत्रण।
मर्फी के नियम को याद रखें - यदि यह विफल हो सकता है तो यह विफल हो जाएगा।
कई विक्रेता हैं जो अपेक्षाकृत सरल क्लाउड तैनाती प्रदान करते हैं, जिनमें अमेज़ॅन वेब सर्विसेज, माइक्रोसॉफ्ट एज़्योर, गूगल और रैकस्पेस शामिल हैं। सॉफ्टवेयर इंजीनियरिंग कार्यों के लिए विक्रेताओं में गिथब, बिटबकेट, ट्रैविस, लॉगली और स्प्लंक, साथ ही कई अन्य शामिल हैं।
दुर्भाग्यवश क्वांट ट्रेडिंग में कोई "त्वरित समाधान" नहीं है। इसमें सफल होने के लिए बहुत मेहनत और सीखने की आवश्यकता होती है।
शायद शुरुआती लोगों (और कुछ मध्यवर्ती क्वांट्स! के लिए) के लिए एक प्रमुख ठोकर का पत्थर यह है कि वे सबसे अच्छी
यह भी अपने व्यापार बुनियादी ढांचे में बहुत समय निवेश करने के लायक है। तैनाती और निगरानी जैसे मुद्दों पर समय व्यतीत करें। हमेशा लेनदेन लागत को कम करने की कोशिश करें, क्योंकि लाभप्रदता लागत को कम करने के बारे में है क्योंकि यह व्यापार राजस्व प्राप्त करने के बारे में है।
मैं सिर्फ सीखने के लिए अपने स्वयं के बैकटेस्टिंग सिस्टम लिखने की सलाह देता हूं। आप या तो इसका उपयोग कर सकते हैं और इसे लगातार सुधार सकते हैं या आप एक विक्रेता पा सकते हैं और फिर उनसे उन सभी सवालों के बारे में पूछ सकते हैं जो आपने अपने स्वयं के निर्माण के दौरान खोजे हैं। यह निश्चित रूप से आपको वाणिज्यिक रूप से उपलब्ध प्रणालियों की सीमाओं के बारे में जागरूक करेगा।
अंत में, हमेशा पढ़ते रहें, सीखते रहें और सुधार करते रहें। ट्रेडिंग के सभी पहलुओं पर चर्चा करने वाली पाठ्यपुस्तकों, ट्रेड जर्नलों, अकादमिक जर्नलों, क्वांट ब्लॉग, फोरम और पत्रिकाओं का खजाना है। अधिक उन्नत रणनीति विचारों के लिए मैं एसएसआरएन और आरएक्सआईवी - क्वांटिटेटिव फाइनेंस की सलाह देता हूं।