2012-05-20 39 views
5

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

कोशिश करने के 6 महीने बाद, मैं स्वीकार कर रहा हूं कि मेरा दृष्टिकोण असंभव है। मैं एनयूएसई (5,000+ स्टॉक) पर प्रत्येक संभावित पोर्टफोलियो (मैंने इसे 30 शेयरों तक सीमित) खोजने के लिए bit संयोजनों जैसे संयोजन एल्गोरिदम का उपयोग करने की कोशिश कर रहा था। लेकिन हर किसी के अनुसार मैंने यह बात की है कि मुझे एक दिन के परिणाम प्राप्त करने के लिए अरबों वर्षों का समय लगेगा (मेरे लिए जीपीयू पर मैंने इसे सीधे प्रोसेसिंग के 2 दिनों के बाद रोक दिया)।

तो मुझे क्या याद आ रही है? हम अपने जोखिम सहनशीलता और बाजार (शेयर बाजार विकास अपेक्षाओं, मुद्रास्फीति की उम्मीदों, खिलाया धन की अपेक्षाओं, आदि ..) में प्रवेश करेंगे और यह हमें कुछ सेकंड/मिनट के भीतर आदर्श पोर्टफोलियो (सिद्धांत में ..) देगा। हजारों संभावनाओं और स्टॉक के वजन के चौथाई संभावित संयोजनों के साथ, वे परिणामों को इतनी तेज़ी से गणना करने में सक्षम कैसे हैं (या यहां तक ​​कि बिल्कुल भी)? सिस्टम के व्यवस्थापक के रूप में, मुझे पता है कि हमने प्रतिदिन एक फ़ाइल डाउनलोड की है (100 एमबी से कम और एमएसएसक्ल डेटाबेस में लोड किया गया है, शायद बाजार डेटा .. इसलिए ऐसा नहीं है कि हमारे पास हर संभावना थी। ऊपर मेरे दृष्टिकोण का उपयोग करके मुझे 5 गीगा मिलेगा Knuth के संयोजन algo के अपने संस्करण को करने के एक मिनट में फ़ाइल) और अनुप्रयोगों ने ऑफ़लाइन काम किया (इसलिए यह डेस्कटॉप/लैपटॉप सीपीयू पर स्थानीय रूप से ऐसा कर रहा होगा, न कि कहीं बड़े पैमाने पर सुपरकंप्यूटर पर और चलाने के लिए एक या दो मिनट ले लिया .15 वैश्विक फंड के लिए मिनट सबसे लंबा था जिसमें दुनिया में हर स्टॉक शामिल था)। यह इतना भ्रमित है क्योंकि उनके काम को पूरे फंड के सहसंबंध की आवश्यकता है (मुझे नहीं लगता कि वे केवल उन शीर्ष शेयरों को भेज रहे थे जिन्हें उन्होंने पूर्व-गणना की थी क्योंकि सभी को अलग-अलग परिणाम मिलते थे)। तो अगर मैं 30 शेयर फंड चाहता था जिसने मुझे 2% रिटर्न दिया और बाजार के साथ नकारात्मक संबंध था, और 60% हेज किया गया था कि सॉफ़्टवेयर उस पोर्टफोलियो को इतनी जल्दी से अरबों संभावनाओं से कैसे उत्पन्न कर सकता है? ध्यान दें, मैं गणित या वित्त भाग के बारे में नहीं पूछ रहा हूं, मैं पूछ रहा हूं कि यह पूरे बाजार से 30 शेयर कैसे उत्पन्न करने में सक्षम था, जिसने ऐसा करने के लिए 2% रिटर्न दिया था, जिसके लिए उसे रिटर्न पता होना होगा सभी 30 स्टॉक पोर्टफोलियो (वह अकेले इसे अरबों सालों तक चलाएगा, है ना? अन्य प्रतिबंध इसे और अधिक जटिल बनाते हैं)।

तो यह प्रोग्रामेटिक तरीके से कैसे किया जा रहा है? मुझे विश्वास है कि वे हर संभावना उत्पन्न करने के लिए Knuth के संयोजन एल्गोरिदम का उपयोग नहीं कर रहे हैं, फिर भी उनके परिणाम यादृच्छिक रूप से चुने गए नहीं हैं और व्यक्तिगत रूप से स्टॉक का चयन सहसंबंध भाग को याद करते हैं। इतने सारे निवेश सॉफ्टवेयर इस तरह की चीजें कैसे कर सकते हैं?

+2

"यह एक रहस्य है।" – bmargulies

उत्तर

3

इस तरह के एल्गोरिदम लगभग निश्चित रूप से हर संभावना उत्पन्न नहीं करते हैं - जैसा कि आप सही ढंग से देखते हैं कि यह अव्यवहारिक होगा।

पोर्टफोलियो चयन अन्य तकनीकों के साथ करना बहुत आसान है जो आपको एक बहुत अच्छा जवाब देगा। दो सबसे अधिक संभावना कर रहे हैं:

  • आप जोखिम के आसपास मान्यताओं को सरल बनाने करते हैं/लौटने आप गणितीय एक इष्टतम पोर्टफोलियो के लिए हल कर सकते हैं
  • एक आनुवंशिक एल्गोरिथ्म जो उत्परिवर्तन/विदेशी संचालन करता है (गणित से कुछ के लिए http://en.wikipedia.org/wiki/Capital_asset_pricing_model देखें) यादृच्छिक नमूना पोर्टफोलियो पर बहुत तेज़ समाधान बहुत तेज मिलेगा। संभावित परिणामों की सीमा को समझने के लिए आप इसे मोंटे-कार्लो शैली मॉडलिंग दृष्टिकोण के साथ जोड़ सकते हैं।हालांकि यह रूप में गणितीय शुद्ध नहीं है, यह आप अच्छा जवाब देने के लिए और चाहिए किसी भी बाधाओं आप इसे पर फेंकने के लिए काफी आसानी से चाहते को संभालने में सक्षम (जैसे अधिकतम संख्या जाएगा -

व्यक्तिगत रूप से, मैं शायद आनुवंशिक एल्गोरिथ्म दृष्टिकोण सुझाव देंगे पोर्टफोलियो में स्टॉक का)

+0

उत्तर के लिए धन्यवाद (संयोजन एल्गोरिदम पर 6 महीने के काम को महसूस करने के बाद इसे प्राप्त नहीं किया जा सका, यह मेरा अर्द्ध-रान था)। मैं जेनेटिक एल्गोरिदम पर रात को पढ़ने के लिए खर्च करने जा रहा हूं लेकिन वे सही पोर्टफोलियो खोजने की समस्या को कैसे दूर करते हैं? उदाहरण के लिए, आप कहते हैं कि आप 30 स्टॉक पोर्टफोलियो चाहते हैं जिसमें 3% रिटर्न है। सबसे पहले इसे 30 शेयरों को खोजने की जरूरत है, फिर इसे 3% रिटर्न (जो 30 कॉम्बो समस्या से भी बदतर है) की वजह से नकारात्मक रिटर्निंग स्टॉक हैं जो उच्च रिटर्निंग स्टॉक के रिटर्न को म्यूट करते हैं। -2% के साथ ए + 5% आप वापसी)। –

+0

मुझे खेद है कि अगर मुझे यह नहीं मिल रहा है, लेकिन क्या आनुवांशिक एल्गोरिदम को कुछ समस्याएं दूर नहीं करनी पड़ेगी? अगर वे कुछ तो करते हैं तो शायद उन्हें इष्टतम रिटर्न नहीं मिल रहा है, है ना? –

+0

आपको जेनेटिक एल्गोरिदम के लिए एक उद्देश्य कार्य परिभाषित करना है। संभवतः यदि आप 3% रिटर्न चाहते थे तो आप वास्तव में "न्यूनतम भिन्नता के साथ जितना संभव हो सके 3% रिटर्न के रूप में" का मतलब है। तो आप किसी निरंतर फ़ंक्शन को कुछ स्थिर के लिए '- (वापसी - 3%)^2 - (के * भिन्नता)' के रूप में परिभाषित कर सकते हैं, और उस मान को अधिकतम करने के लिए समाधान विकसित कर सकते हैं – mikera

2

आधुनिक पोर्टफोलियो सिद्धांत "मॉडर्न पोर्टफोलियो थ्योरी एंड इनवेस्टमेंट एनालिसिस" जैसी किताबों और http://en.wikipedia.org/wiki/Modern_portfolio_theory पर एक परिचय के साथ अपने आप में एक विषय है।

समस्याओं को हल करने का एक तरीका आप वास्तव में हल कर सकते हैं इसे गणितीय अनुकूलन समस्या के रूप में व्यवहार करना है। यदि आपके पास वेक्टर है जो आपको खरीदने वाले प्रत्येक स्टॉक की मात्रा देता है, तो - विभिन्न धारणाओं के तहत - वापसी इस वेक्टर का एक रैखिक कार्य है, और जोखिम इस वेक्टर का एक वर्गबद्ध कार्य है। दिए गए जोखिम के लिए वापसी को अधिकतम करना, या दिए गए रिटर्न के जोखिम को कम करना, एक अच्छी तरह से समझी गई गणितीय समस्या है, यहां तक ​​कि बहुत बड़ी संख्या में स्टॉक - http://en.wikipedia.org/wiki/Quadratic_programming

इसके साथ एक व्यावहारिक समस्या यह है कि आपको जो जवाब मिलता है वह आपको बाजार पर लगभग सभी शेयरों का कुछ अंश बताएगा। मेरा अनुमान है कि असली जीवन कार्यक्रम कुछ "गुप्त सॉस" हेरिस्टिक का उपयोग करते हैं जो सही जवाब की गारंटी नहीं देता है, जो कि वास्तव में खरीदने के लिए तैयार किए गए स्टॉक की संख्या पर बाधा के अधीन है, लेकिन अभ्यास में बहुत अच्छी तरह से काम करता है। सही उत्तर लौटने में एक कठिन समस्या प्रतीत होती है - उदाहरण देखें http://arxiv.org/ftp/arxiv/papers/1105/1105.3594.pdf