Backtesting और स्वचालित निष्पादन के लिए एक मंच का चयन







+

Backtesting और स्वचालित निष्पादन के लिए एक मंच का चयन 26 फ़रवरी 2014 पर माइकल हॉल-मूर द्वारा इस लेख में स्वचालित निष्पादन की अवधारणा पर चर्चा की जाएगी। मोटे तौर पर बाद में किसी भी मानवीय हस्तक्षेप के बिना व्यापार निष्पादन संकेतों को उत्पन्न करने के लिए, एक इलेक्ट्रॉनिक ट्रेडिंग प्लेटफॉर्म के माध्यम से, यह एक व्यापार रणनीति की इजाजत देने की प्रक्रिया है, बोल रहा हूँ। तिथि करने के लिए QuantStart पर चर्चा की प्रणालियों के अधिकांश स्वचालित निष्पादन रणनीतियों के रूप में लागू किया जा बनाया गया है। लेख सॉफ्टवेयर संकुल और backtesting और स्वचालित निष्पादन क्षमताओं दोनों प्रदान करते हैं कि प्रोग्रामिंग भाषाओं का वर्णन करेंगे। पहले से विचार एक रणनीति backtest करने के लिए है। मेरा व्यक्तिगत विचार एक प्रथम श्रेणी के प्रोग्रामिंग भाषा के भीतर एक backtesting पर्यावरण की कस्टम विकास सबसे अधिक लचीलापन प्रदान करता है। इसके विपरीत, एक विक्रेता से विकसित एकीकृत backtesting मंच हमेशा backtests बाहर किया जाता है के बारे में कैसे मान्यताओं बनाने के लिए होगा। इस के बावजूद, उपलब्ध प्रोग्रामिंग भाषाओं का चुनाव अक्सर भारी हो सकता है, जो बड़े और विविध है। यह भाषा उपयुक्त होने की संभावना है, जो विकास से पहले स्पष्ट नहीं है। व्यवस्थित नियमों में एक रणनीति को संहिताबद्ध जब मात्रात्मक व्यापारी अपने भविष्य के प्रदर्शन के अपने पिछले प्रदर्शन को प्रतिबिंबित करता हो जाएगा कि विश्वास होना चाहिए। इस परिकल्पना का परीक्षण करने के लिए उपयोग किया जाता है कि backtesting प्रणाली के दो रूपों आम तौर पर कर रहे हैं। मोटे तौर पर, वे अनुसंधान वापस परीक्षकों के रूप में वर्गीकृत कर रहे हैं और परीक्षकों वापस घटना चालित। हम इन दोनों के मानदंड के लिए विक्रेता उत्पादों बनाम कस्टम backtesters पर विचार और कैसे वे तुलना देखेंगे। अनुसंधान उपकरण एल्गोरिथम ट्रेडिंग रणनीतियों की पहचान करते समय यह आमतौर पर अनावश्यक पूरी तरह से बाजार बातचीत के सभी पहलुओं simualte करने के लिए। इसके बजाय, approximations संभावित रणनीति प्रदर्शन का तेजी से दृढ़ संकल्प है कि प्रदान किया जा सकता है। इस तरह के अनुसंधान उपकरण अक्सर संभावना की कमी, स्थल निर्भरता, जोखिम प्रबंधन और स्थिति नौकरशाही का आकार घटाने shorting, कीमतों को भरने, लेनदेन की लागत के बारे में अवास्तविक धारणा बना। इन कमियों के बावजूद इस तरह की रणनीतियों का प्रदर्शन अभी भी प्रभावी ढंग से मूल्यांकन किया जा सकता है। अनुसंधान के लिए आम उपकरण MATLAB, आर, अजगर और एक्सेल शामिल हैं। ये सॉफ्टवेयर संकुल तेजी से निष्पादन की गति और आसान रणनीति के कार्यान्वयन की अनुमति है कि vectorisation क्षमताओं के साथ जहाज। MATLAB और पंडों vectorised प्रणालियों के उदाहरण हैं। इस तरह के अनुसंधान उपकरण के साथ यह जरूरत के लिए पूरी तरह से "मांस बाहर" एक यथार्थवादी बाजार बातचीत अनुकरण के बिना, एक तेजी से, चलने का ढंग से कई रणनीतियों, संयोजन और वेरिएंट परीक्षण करने के लिए संभव है। इस तरह के उपकरणों अक्सर backtesting और निष्पादन दोनों के लिए इस्तेमाल कर रहे हैं, वहीं इन अनुसंधान वातावरण आम तौर पर उप-मिनट पैमाने पर उच्च आवृत्तियों पर इंट्रा डे ट्रेडिंग दृष्टिकोण है कि रणनीतियों के लिए उपयुक्त नहीं हैं। इन पुस्तकालयों को प्रभावी ढंग से एक मजबूत तरीके से दलाली एपीआई के साथ वास्तविक समय बाजार के आंकड़ों विक्रेताओं या इंटरफ़ेस से कनेक्ट करने के लिए सक्षम होने के लिए नहीं करते हैं। इन निष्पादन कमियों के बावजूद, अनुसंधान वातावरण भारी पेशेवर मात्रात्मक व्यापार उद्योग के भीतर किया जाता है। वे एक यथार्थवादी backtesting पर्यावरण के भीतर और अधिक कठोर के चेक की दिशा में पदोन्नति से पहले सभी रणनीति विचारों के लिए "पहला मसौदा" प्रदान करते हैं। घटना चालित backtesting एक रणनीति के अनुसंधान के क्षेत्र में उपयुक्त समझा जाता है एक बार इसे और अधिक वास्तविक मूल्यांकन किया जाना चाहिए। इस तरह के यथार्थवाद (यदि सभी नहीं) पिछले पोस्ट में वर्णित मुद्दों के बहुमत के लिए खाते में करने का प्रयास। आदर्श स्थिति ऐतिहासिक backtesting साथ ही रहते निष्पादन के लिए एक ही व्यापार पीढ़ी कोड का उपयोग करने के लिए सक्षम होने के लिए है। यह एक घटना चालित backtester के माध्यम से हासिल की है। घटना चालित प्रणालियों व्यापक रूप से सामान्यतः खिड़की आधारित ऑपरेटिंग सिस्टम के भीतर ग्राफिकल यूजर इंटरफेस (जीयूआई) इनपुट से निपटने के लिए, सॉफ्टवेयर इंजीनियरिंग में उपयोग किया जाता है। वास्तविक समय बाजार आदेश या व्यापार भरता की धारणा एक घटना के रूप में समझाया जा सकता है, के रूप में उन्होंने यह भी एल्गोरिथम ट्रेडिंग के लिए आदर्श होते हैं। इस तरह की प्रणाली अक्सर ऐसे सी ++, C # और जावा के रूप में उच्च प्रदर्शन भाषाओं में लिखे गए हैं। एक स्वचालित ट्रेडिंग रणनीति एक वास्तविक समय बाजार चारा और एक दलाल से जुड़ा है, जहां एक की स्थिति पर विचार (इन दोनों के एक और एक ही हो सकता है)। नए बाजार की जानकारी एक नए व्यापारिक संकेत है और इस तरह एक निष्पादन घटना उत्पन्न करने के लिए एक घटना से चलाता प्रणाली है, जो करने के लिए भेजा जाएगा। इन प्रणालियों की घटनाओं को प्राप्त करने और उन्हें उचित रूप से निपटने के लिए एक सतत पाश प्रतीक्षा में चलाते हैं। यह इस तरह उनके रहते समकक्षों नकल कर सकते हैं जो एक ऐतिहासिक डेटा हैंडलर और ब्रोकरेज सिम्युलेटर, के रूप में उप घटकों उत्पन्न करने के लिए संभव है। इस लाइव निष्पादन की है कि एक तरीके से backtesting रणनीतियों अत्यंत समान अनुमति देता है। एक सरल अनुसंधान उपकरण की तुलना में जब इस तरह की व्यवस्था का नुकसान उनकी जटिल डिजाइन में निहित है। इसलिए "बाजार के समय 'रह गया है। वे कीड़े से ग्रस्त हैं और प्रोग्रामिंग और सॉफ्टवेयर विकास पद्धति का अच्छा ज्ञान की आवश्यकता होती है। इंजीनियरिंग संदर्भ में विलंबता एक सिमुलेशन और एक प्रतिक्रिया के बीच समय अंतराल के रूप में परिभाषित किया गया है। मात्रात्मक व्यापार में यह आम तौर पर एक निष्पादन संकेत की पीढ़ी और निष्पादन के बाहर किया जाता है कि एक दलाल से भरने जानकारी प्राप्त होने के बीच राउंड ट्रिप समय में देरी करने के लिए संदर्भित करता है। ऐसे विलंबता शायद ही कभी कम आवृत्ति interday रणनीतियों पर एक मुद्दा है। विलंबता अवधि के दौरान उम्मीद की कीमत आंदोलन किसी भी हद तक रणनीति को प्रभावित नहीं करेगा। एक ही विलंबता अत्यंत महत्वपूर्ण हो जाता है, जहां उच्च आवृत्ति रणनीतियों का सच नहीं है। एचएफटी में अंतिम लक्ष्य फिसलन को कम करने के लिए जितना संभव हो उतना विलंबता को कम करना है। विलंबता घटाना एल्गोरिथम ट्रेडिंग सिस्टम और एक आदेश निष्पादित किया जा रहा है, जिस पर अंतिम विनिमय के बीच "दूरी" को कम करना शामिल है। इससे केबल नेटवर्क के साथ यात्रा के समय को कम करने, प्रणालियों के बीच भौगोलिक दूरी को छोटा करने को शामिल कर सकते हैं। यह भी हार्डवेयर नेटवर्किंग या अधिक परिष्कृत बुनियादी सुविधाओं के साथ एक ब्रोकरेज चुनने में किए गए प्रसंस्करण को कम करने को शामिल कर सकते हैं। कई ब्रोकरेज व्यापार जीतने के लिए विलंबता पर प्रतिस्पर्धा। विलंबता घटाना दो सर्वर के बीच नेटवर्क दूरी के रूप में परिभाषित किया गया है, जो "इंटरनेट दूरी", के एक समारोह के रूप में तेजी से और अधिक महंगा हो जाता है। इस प्रकार एक उच्च आवृत्ति व्यापारी के लिए एक समझौता विलंबता कमी के व्यय और फिसलन को कम करने से लाभ के बीच पहुँच जाना चाहिए। इन मुद्दों को नीचे सह स्थान पर खंड में चर्चा की जाएगी। भाषा विकल्प भाषा विकल्प है कि ड्राइव कुछ मुद्दों पर पहले से उल्लिखित किया गया है। अब हम अलग-अलग प्रोग्रामिंग भाषाओं के लाभ और कमियां पर विचार करेगी। मैं मोटे तौर पर उच्च प्रदर्शन / कम प्रदर्शन / आसान विकास बनाम कठिन विकास में भाषाओं में वर्गीकृत किया है। ये व्यक्तिपरक शब्द हैं और कुछ उनकी पृष्ठभूमि के आधार पर सहमत नहीं होगा। एक कस्टम backtesting पर्यावरण प्रोग्रामिंग का सबसे महत्वपूर्ण पहलुओं में से एक उपकरण का इस्तेमाल किया जा रहा है साथ प्रोग्रामर परिचित है। प्रोग्रामिंग भाषा परिदृश्य के लिए नए हैं कि उन लोगों के लिए निम्नलिखित एल्गोरिथम ट्रेडिंग के भीतर उपयोग किया जाता है, उन्हें स्पष्ट करना होगा। सी ++, C # और जावा सी ++, C # और जावा सामान्य प्रयोजन ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषाओं के सारे उदाहरण हैं। यह है कि वे सभी पार मंच हैं, इसी एक समन्वित विकास पर्यावरण (आईडीई) के बिना इस्तेमाल लगभग किसी भी कल्पनीय कार्य के लिए पुस्तकालयों की एक विस्तृत श्रृंखला है और सही ढंग से उपयोग जब तेजी से निष्पादन की गति की अनुमति देने जा सकता है कि इसका मतलब है। अंतिम निष्पादन की गति तो वांछित है सी ++ (या सी) के लिए सबसे अच्छा विकल्प हो जाने की संभावना है। यह स्मृति प्रबंधन और निष्पादन की गति के अनुकूलन के लिए सबसे अधिक लचीलापन प्रदान करता है। यह लचीलापन एक मूल्य पर आता है। सी ++ में अच्छी तरह से जानने के लिए मुश्किल है और अक्सर सूक्ष्म कीड़े पैदा कर सकते हैं। विकास के समय अन्य भाषाओं की तुलना में काफी लंबा समय लग सकता है। इन कमियों के बावजूद यह वित्तीय उद्योग में व्यापक है। वे दोनों इस तरह तैरता है और पूर्णांकों के रूप में आदिम डेटा प्रकार के अपवाद के साथ वस्तुओं होने के लिए सभी घटकों की आवश्यकता के बाद से सी # और जावा के समान हैं। वे स्वत: कचरा संग्रहण के प्रदर्शन से सी ++ से भिन्न होते हैं। कचरा संग्रहण एक प्रदर्शन ओवरहेड कहते हैं, लेकिन और अधिक तेजी से विकास होता है। इन भाषाओं वे देशी जीयूआई क्षमताओं, संख्यात्मक विश्लेषण पुस्तकालयों और तेजी से निष्पादन की गति के रूप में एक backtester के विकास के लिए दोनों अच्छे विकल्प हैं। निजी तौर पर, मैं इस तरह के एचएफटी सिस्टम के लिए के रूप में बहुत तेजी से निष्पादन की गति की जरूरत है कि घटना चालित backtesters, बनाने के लिए सी ++ का उपयोग करें। यह बाद की भाषा एक ऐसी प्रणाली के लिए मेरी पहली पसंद होगा, जैसा कि मैं एक अजगर घटना चालित प्रणाली bottlenecked महसूस किया कि केवल अगर है। MATLAB, आर और अजगर MATLAB संख्यात्मक गणना के लिए एक वाणिज्यिक आईडीई है। यह शैक्षिक, इंजीनियरिंग और वित्तीय क्षेत्रों में व्यापक स्वीकृति प्राप्त की है। यह वैज्ञानिक गणना के लिए कई संख्यात्मक पुस्तकालयों है। यह विकसित किया जा रहा है किसी भी एल्गोरिथ्म vectorisation या parallelisation के अधीन है कि इस धारणा के तहत एक तेजी से निष्पादन की गति समेटे हुए है। इन फायदों के बावजूद यह एक बजट पर खुदरा व्यापारियों के लिए यह कम आकर्षक बनाने महंगा है। MATLAB कभी कभी ऐसी इंटरएक्टिव दलाल के रूप में एक ब्रोकरेज के लिए सीधी निष्पादन के लिए प्रयोग किया जाता है। आर एक समर्पित आँकड़े पटकथा माहौल है। यह मुक्त, खुला स्रोत, पार मंच है और अत्यंत उन्नत विश्लेषण से बाहर ले जाने के लिए स्वतंत्र रूप से उपलब्ध सांख्यिकीय संकुल का खजाना होता है। आर बहुत व्यापक रूप से शैक्षिक सांख्यिकी और मात्रात्मक हेज फंड उद्योग में प्रयोग किया जाता है। यह एक ब्रोकरेज के लिए आर कनेक्ट करने के लिए संभव है, जबकि अच्छी तरह काम करने के लिए अनुकूल नहीं है और एक अनुसंधान उपकरण के और अधिक विचार किया जाना चाहिए। संचालन vectorised कर रहे हैं, जब तक कि यह भी निष्पादन की गति का अभाव है। यह कहीं न कहीं MATLAB, आर और ऊपर उल्लिखित सामान्य प्रयोजन भाषाओं के बीच बैठता है, हालांकि मैं इस शीर्षक के अंतर्गत अजगर समूहबद्ध किया है। यह मुक्त, खुला स्रोत और पार मंच है। संकलित करने के लिए यह विरोध के रूप में व्याख्या की है। जो सी ++ की तुलना में यह नेटिव धीमी बनाता है। हालांकि, यह निम्न स्तर के वेब सर्वर डिजाइन के माध्यम से वैज्ञानिक गणना से, कल्पना लगभग किसी भी काम के लिए बाहर ले जाने के लिए एक पुस्तकालय में शामिल है। विशेष रूप से यह NumPy, SciPy, पांडा, matplotlib और vectorised जब संकलित भाषा निष्पादन की गति के बराबर है कि एक मजबूत संख्यात्मक अनुसंधान के माहौल प्रदान करते हैं, जो scikit-सीखना होता है। अजगर भी ब्रोकरेज को जोड़ने के लिए पुस्तकालयों के पास। इस तरह से यह अन्य, अधिक जटिल, भाषाओं में कदम बिना एक घटना चालित backtesting और जीने निष्पादन वातावरण बनाने के लिए एक "एक बंद दुकान" बनाता है। निष्पादन की गति से ऊपर मिनट और के समय के पैमाने पर व्यापार इंट्रा डे व्यापारियों के लिए पर्याप्त से अधिक है। अजगर को लेने और सी ++ जैसे निचले स्तर भाषाओं की तुलना में जब यह जानने के लिए बहुत सीधा है। इन कारणों से हम QuantStart लेख में अजगर का व्यापक उपयोग करना। समन्वित विकास के वातावरण अवधि आईडीई एल्गोरिथम ट्रेडिंग के भीतर कई अर्थ हैं। सॉफ्टवेयर डेवलपर्स वाक्य रचना हाइलाइटिंग, फ़ाइल ब्राउज़िंग, डिबगिंग और कोड का निष्पादन सुविधाओं के साथ प्रोग्रामिंग की अनुमति देता है कि एक जीयूआई मतलब करने के लिए इसका इस्तेमाल करते हैं। एल्गोरिथम व्यापारियों ऐतिहासिक या वास्तविक समय डाटा डाउनलोड, चार्टिंग, सांख्यिकीय मूल्यांकन और जीने निष्पादन के साथ एक पूरी तरह से एकीकृत backtesting / व्यापारिक वातावरण मतलब करने के लिए इसका इस्तेमाल करते हैं। हमारे उद्देश्यों के लिए, मैं किसी भी backtest / व्यापारिक वातावरण, अक्सर जीयूआई आधारित मतलब करने के लिए शब्द का प्रयोग, कि एक सामान्य प्रयोजन प्रोग्रामिंग भाषा नहीं माना जाता है। कुछ क्वांट व्यापारियों के व्यापार के लिए अनुपयुक्त हो करने के लिए एक्सेल पर विचार कर सकते हैं, मैं यह परिणामों के 'विवेक जाँच "के लिए अत्यंत उपयोगी हो पाया है। डेटा के सभी सादे दृष्टि में सीधे उपलब्ध है तथ्य यह है कि बहुत ही बुनियादी संकेत / फिल्टर रणनीतियों को लागू करने के लिए इसे सरल बना देता है। ऐसे इंटरैक्टिव दलालों के रूप में ब्रोकरेज भी एक्सेल वास्तविक समय बाजार के आंकड़ों को प्राप्त करने और व्यापार के आदेश पर अमल करने की अनुमति देते हैं कि डीडीई प्लगइन्स की अनुमति देते हैं। इस्तेमाल में आसानी के बावजूद Excel डेटा या संख्यात्मक अभिकलन के स्तर के किसी भी उचित पैमाने के लिए अत्यंत धीमी है। मैं केवल अन्य रणनीतियों के खिलाफ जब विकासशील त्रुटि जाँच करने के लिए इसका इस्तेमाल करते हैं। विशेष रूप से यह एक रणनीति पूर्वाग्रह-आगे देखने के लिए विषय है कि क्या जाँच के लिए बेहद आसान है। इस वजह से सॉफ्टवेयर की स्प्रेडशीट प्रकृति के एक्सेल में पता लगाने के लिए सीधा है। आप प्रोग्रामिंग भाषाओं के साथ असहज महसूस कर रहे हैं और एक interday रणनीति बाहर ले जा रहे हैं तो एक्सेल एक अच्छा विकल्प हो सकता है। वाणिज्यिक / खुदरा backtesting सॉफ्टवेयर खुदरा अपनाने के लिए बाजार, "तकनीकी विश्लेषण" और backtesting सॉफ्टवेयर अत्यंत प्रतिस्पर्धी है। इस तरह के सॉफ्टवेयर द्वारा की पेशकश की सुविधाओं वास्तविक समय की कीमतों में अपनाने, तकनीकी संकेतकों की एक धन, अनुकूलित backtesting भाषाओं और स्वचालित निष्पादन शामिल हैं। कुछ दुकानदारों ऐसे TradeStation के रूप में एक सभी में एक समाधान प्रदान करते हैं। TradeStation कई परिसंपत्ति वर्गों में इलेक्ट्रॉनिक आदेश निष्पादन प्रदान करता है कि (यह भी TradeStation के रूप में जाना जाता है) ट्रेडिंग सॉफ्टवेयर का उत्पादन करने वाले एक ऑनलाइन ब्रोकरेज हैं। मैं स्वचालित निष्पादन के लिए एक सीधा एपीआई के वर्तमान अनजान हूँ। इसके बजाय आदेशों जीयूआई सॉफ्टवेयर के माध्यम से रखा जाना चाहिए। यह एक leaner व्यापार इंटरफेस (व्यापारी वर्कस्टेशन) है, लेकिन उनके मालिकाना वास्तविक समय बाजार / आदेश निष्पादन एपीआई और एक तय इंटरफेस दोनों जो प्रस्ताव इंटरएक्टिव दलाल, के विपरीत है। एक और बेहद लोकप्रिय मंच MetaTrader है। जो 'विशेषज्ञ सलाहकार' बनाने के लिए विदेशी मुद्रा व्यापार में प्रयोग किया जाता है। ये स्वचालित व्यापार के लिए इस्तेमाल किया जा सकता है कि एक मालिकाना भाषा में लिखा कस्टम स्क्रिप्ट कर रहे हैं। मैं उनकी खूबियों पर चर्चा बहुत अधिक समय खर्च नहीं होगा तो मैं TradeStation या मेटाट्रेडर के साथ या तो ज्यादा अनुभव नहीं किया है। आप में गहराई से सॉफ्टवेयर विकास के साथ सहज महसूस नहीं कर रहे हैं और जानकारी का एक बहुत का ध्यान रखा जाना चाहते हैं तो इस तरह के उपकरणों उपयोगी होते हैं। हालांकि, इस तरह की व्यवस्था के साथ लचीलेपन का एक बहुत बलिदान कर दिया जाता है और आप अक्सर एक ही दलाली के लिए बंधे हैं। खुला स्रोत और वेब आधारित उपकरण दो वर्तमान लोकप्रिय वेब आधारित backtesting सिस्टम Quantopian और QuantConnect हैं। पूर्व अजगर का उपयोग करता है (और zipline, नीचे देखें) उत्तरार्द्ध सी # का इस्तेमाल करता है। दोनों ऐतिहासिक डेटा का खजाना प्रदान करते हैं। QuantConnect लाइव ट्रेडिंग की दिशा में काम कर रहा है, जबकि Quantopian वर्तमान में, इंटरएक्टिव दलाल के साथ लाइव ट्रेडिंग का समर्थन करता है। एल्गो व्यापारी एक खुला स्रोत और उनकी व्यवस्था के लिए एक वाणिज्यिक लाइसेंस दोनों का प्रस्ताव है कि एक स्विस आधारित फर्म है। से क्या मेरा प्रस्ताव इकट्ठा कर सकते हैं काफी परिपक्व लगता है और वे कई संस्थागत ग्राहकों को दिया है। सिस्टम पूर्ण ऐतिहासिक backtesting और जटिल घटना प्रसंस्करण की अनुमति देता है और वे इंटरएक्टिव दलाल में टाई। एंटरप्राइज़ संस्करण काफी अधिक उच्च प्रदर्शन सुविधाएँ प्रदान करता है। Marketcetera आप पहले से ही लिखा है, हो सकता है कि कोड का लाभ उठाने के क्रम में, इस तरह के अजगर और आर के रूप में कई अन्य भाषाओं में टाई कर सकते हैं कि एक backtesting सिस्टम प्रदान करते हैं। 'रणनीति स्टूडियो' backtesting कोड के रूप में अच्छी तरह से अनुकूलित निष्पादन एल्गोरिदम लिखने के लिए और बाद में कागज व्यापार रहने के लिए एक ऐतिहासिक backtest से संक्रमण के लिए क्षमता प्रदान करता है। मैं उन्हें पहले इस्तेमाल नहीं किया है। Zipline शक्तियों Quantopian सेवा से ऊपर उल्लेख किया है कि अजगर पुस्तकालय है। यह एक पूरी तरह से घटना चालित backtest माहौल है और वर्तमान में एक प्रतिमिनट-बार के आधार पर अमेरिका के शेयरों का समर्थन करता है। मैं zipline के व्यापक उपयोग नहीं किया है, लेकिन मुझे लगता है कि यह एक अच्छा साधन है, जो लगता है दूसरों को पता। वहाँ अभी भी कई क्षेत्रों में सुधार करने के लिए छोड़ दिया जाता है लेकिन टीम लगातार इस परियोजना पर काम कर रहे हैं और यह बहुत ही सक्रिय रूप से बनाए रखा है। कुछ Github / गूगल कोड आप में देखना चाहते हो सकता है कि परियोजनाओं को भी वहाँ की मेजबानी कर रहे हैं। मैं उन्हें जांच समय के किसी भी बड़ा सौदा खर्च नहीं किया है। इस तरह की परियोजनाओं OpenQuant शामिल हैं। ट्रेडलिंक और PyAlgoTrade। संस्थागत backtesting सॉफ्टवेयर ऐसे Deltix और QuantHouse के रूप में संस्थागत ग्रेड backtesting प्रणालियों अक्सर खुदरा एल्गोरिथम व्यापारियों द्वारा उपयोग नहीं कर रहे हैं। सॉफ्टवेयर लाइसेंस बुनियादी सुविधाओं के लिए बजट के बाहर आम तौर पर अच्छी तरह से कर रहे हैं। यही कारण है कि इस तरह के सॉफ्टवेयर व्यापक रूप से क्वांट फंड, मालिकाना व्यापारिक घरानों, परिवार के कार्यालयों और इस तरह से इस्तेमाल किया जाता है, कहा जा रहा है। इस तरह की व्यवस्था के लाभ स्पष्ट कर रहे हैं। वे डेटा संग्रह, रणनीति विकास, ऐतिहासिक backtesting और ऊपर उच्च आवृत्ति स्तर के लिए एक यंत्र या विभागों भर में लाइव निष्पादन, के लिए एक सभी में एक समाधान प्रदान करते हैं। इस तरह के प्लेटफॉर्म उपयोग "क्षेत्र में" और इतना मजबूत माना जाता है की व्यापक परीक्षण और बहुत पड़ा है। सिस्टम घटना संचालित कर रहे हैं और backtesting वातावरण अक्सर सटीकता के एक उच्च डिग्री करने के लिए लाइव वातावरण अनुकरण कर सकते हैं। सिस्टम भी लेन-देन की लागत कम करने के लिए प्रयास है, जो अनुकूलित निष्पादन एल्गोरिदम, समर्थन करते हैं। यह एक बड़ा पूंजी आधार के साथ व्यापारियों के लिए उपयोगी खासकर है। मैं मैं Deltix या QuantHouse का ज्यादा अनुभव नहीं किया है कि मानता है। कहा जा रहा है, बजट अकेले सबसे खुदरा व्यापारियों की पहुंच से बाहर उन्हें डालता है, इसलिए मुझे लगता है कि इन प्रणालियों पर ध्यान केन्द्रित करना नहीं होगा। सह स्थान एल्गोरिथम ट्रेडिंग के लिए सॉफ्टवेयर परिदृश्य अब सर्वेक्षण किया गया है। अब हम हमारी रणनीति पर अमल करेंगे कि हार्डवेयर के कार्यान्वयन की दिशा में हमारे ध्यान में बारी कर सकते हैं। एक खुदरा व्यापारी की संभावना बाजार घंटे के दौरान घर से अपनी रणनीति को क्रियान्वित हो जाएगा। इस वसीयत उनके बाजार सॉफ्टवेयर को अपडेट और उसके बाद एल्गोरिथ्म दिन के दौरान स्वचालित रूप से निष्पादित करने के लिए अनुमति देता है, दलाली से कनेक्ट करने, अपने पीसी पर मोड़ शामिल किया गया। इसके विपरीत, प्रबंधन के तहत महत्वपूर्ण संपत्ति के साथ एक पेशेवर क्वांट फंड (एयूएम) अपने उच्च गति रणनीति पर अमल करने के लिए संभव के रूप में के रूप में दूर विलंबता कम करने के लिए एक समर्पित एक्सचेंज colocated सर्वर के बुनियादी ढांचे के लिए होगा। घर डेस्कटॉप हार्डवेयर तैनाती के लिए सबसे आसान तरीका एक ब्रॉडबैंड (या समान) कनेक्शन के माध्यम से दलाली से जुड़े एक घर डेस्कटॉप कंप्यूटर के साथ एक एल्गोरिथम रणनीति बाहर ले जाने के लिए बस है। इस दृष्टिकोण स्पष्ट है, जबकि यह कई खामियों से ग्रस्त है आरंभ करने के लिए। एक यूपीएस के द्वारा समर्थित है जब तक कि डेस्कटॉप मशीन, बिजली की विफलता के अधीन है। इसके अलावा एक घर इंटरनेट कनेक्शन आईएसपी की दया पर भी है। पावर हानि या इंटरनेट कनेक्टिविटी विफलता को बंद किया जा करने में असमर्थ हैं कि खुले स्थानों के साथ एल्गोरिथम व्यापारी छोड़ रहा है, व्यापार में एक महत्वपूर्ण क्षण में हो सकता है। यह समस्या भी ऑपरेटिंग सिस्टम अनिवार्य पुनरारंभ हो जाता है (यह वास्तव में एक पेशेवर सेटिंग में मेरे साथ हुआ है!) और एक ही मुद्दे की ओर जाता है जो घटक विफलता, के साथ होता है। उपरोक्त कारणों के लिए मैं एल्गोरिथम ट्रेडिंग के लिए एक घर डेस्कटॉप दृष्टिकोण की सिफारिश करने में संकोच। आप इस दृष्टिकोण को आगे बढ़ाने का फैसला करते हैं, एक बैकअप कंप्यूटर और एक डाउनटाइम स्थिति के तहत पदों को बंद करने के लिए उपयोग कर सकते हैं (उदाहरण के लिए एक 3 जी डोंगल) एक बैकअप इंटरनेट कनेक्शन दोनों के लिए सुनिश्चित करें। एक घर डेस्कटॉप से ​​अगले स्तर तक एक आभासी निजी सर्वर (VPS) का उपयोग करने के लिए है। एक VPS अक्सर एक "बादल" सेवा के रूप में विपणन एक रिमोट सर्वर सिस्टम है। एक VPS वास्तव में एक बहुत बड़ा सर्वर के एक विभाजन है, क्योंकि वे एक इसी समर्पित सर्वर की तुलना में कहीं सस्ता है। वे प्रत्येक व्यक्ति के उपयोगकर्ता के लिए पूरी तरह से उपलब्ध एक आभासी पृथक ऑपरेटिंग सिस्टम वातावरण के पास है। CPU लोड VPS के लिए आवंटित किया गया है कई VPS और प्रणालियों राम के एक हिस्से के बीच साझा किया जाता है। यह सब वर्चुअलाइजेशन के रूप में जाना एक प्रक्रिया के माध्यम से किया जाता है। आम VPS प्रदाताओं अमेज़न EC2 और रैकस्पेस बादल शामिल हैं। वे उद्यम के लिए तैयार उच्च राम, उच्च CPU सर्वरों के माध्यम से कम रैम और बुनियादी CPU उपयोग के साथ प्रवेश स्तर सिस्टम प्रदान करते हैं। एल्गोरिथम खुदरा व्यापारियों के बहुमत के लिए प्रवेश स्तर सिस्टम कम आवृत्ति इंट्रा डे या interday रणनीतियों और छोटे ऐतिहासिक डेटा डेटाबेस के लिए पर्याप्त। एक VPS आधारित प्रणाली का लाभ 24/7 उपलब्धता में शामिल हैं (एक निश्चित यथार्थवादी डाउनटाइम के साथ यद्यपि!), और अधिक मजबूत निगरानी क्षमताओं, ऐसी फ़ाइल भंडारण या कामयाब डेटाबेस और एक लचीला वास्तुकला के रूप में अतिरिक्त सेवाओं के लिए आसान "प्लगइन्स"। एक दोष चल रहे खर्च है। सिस्टम समर्पित हार्डवेयर बढ़ता के रूप में प्रदर्शन की प्रति इकाई सस्ता हो जाता है। इस कीमत बिंदु दूर एक मुद्रा से colocation हो जाती है। एक घर डेस्कटॉप सिस्टम विलंबता की तुलना में हमेशा एक VPS प्रदाता का चयन करके सुधार नहीं हुआ है। आपके घर का स्थान अपने बादल प्रदाता का डेटा केंद्रों की तुलना में एक विशेष वित्तीय विनिमय के करीब हो सकता है। इस पर या एक्सचेंजों के पास स्थित हैं जो एल्गोरिथम ट्रेडिंग के लिए विशेष रूप से सक्षम वीपीएस सेवाएं प्रदान करने वाली एक फर्म को चुनने से कम है। ये इस तरह की संभावना अमेज़न या रैकस्पेस के रूप में एक सामान्य VPS प्रदाता से अधिक खर्च होंगे। एक्सचेंज सह स्थान सबसे अच्छा विलंबता न्यूनीकरण पाने के लिए आदेश में यह विनिमय डेटा सेंटर में सीधे समर्पित सर्वरों colocate के लिए आवश्यक है। वे बहुत अच्छी तरह से पूंजीकृत रहे हैं जब तक यह लगभग सभी खुदरा एल्गोरिथम व्यापारियों के लिए एक बेहद महंगा विकल्प है। यह वास्तव में पेशेवर मात्रात्मक फंड या दलाली का डोमेन है। मैं एक और अधिक यथार्थवादी विकल्प के रूप में उपरोक्त एक मुद्रा के पास स्थित है जो एक प्रदाता से एक VPS प्रणाली की खरीद करने के लिए है। देखा जा सकता है, backtesting, स्वचालित निष्पादन और एक रणनीति की मेजबानी के लिए कई विकल्प हैं। सही समाधान का निर्धारण बजट, प्रोग्रामिंग की क्षमता है, अनुकूलन की आवश्यकता, परिसंपत्ति वर्ग उपलब्धता की डिग्री पर और व्यापार के एक खुदरा या व्यावसायिक आधार पर बाहर किया जा रहा है चाहे निर्भर है। माइकल हॉल-मूर माइक QuantStart के संस्थापक है और मुख्य रूप से एक क्वांट डेवलपर के रूप में और बाद में हेज फंडों के लिए एक क्वांट व्यापारी सलाह के रूप में पिछले पांच साल के लिए मात्रात्मक वित्त उद्योग में शामिल किया गया है।