शुरू करेंमुफ़्त में शुरू करें

सबसे अच्छे Sharpe ratios प्राप्त करें

हमें प्रत्येक तारीख के लिए "आदर्श" पोर्टफोलियो ढूँढना है ताकि उन्हें मशीन लर्निंग के टारगेट्स के रूप में उपयोग किया जा सके। हम portfolio_returns में हर तारीख पर लूप चलाएँगे, फिर portfolio_returns[date] से बनाए गए पोर्टफोलियो पर लूप करेंगे। इसके बाद हम Sharpe ratio निकालेंगे, जो रिटर्न को वोलैटिलिटी से भाग देने पर मिलता है (मान लें कि risk-free रिटर्न 0 है)।

हम enumerate() का उपयोग करके मौजूदा तारीख (portfolio_returns[date]) के रिटर्न्स पर लूप करेंगे और i के साथ इंडेक्स ट्रैक करेंगे। फिर मौजूदा तारीख और मौजूदा इंडेक्स का उपयोग करके हर पोर्टफोलियो की वोलैटिलिटी portfolio_volatility[date][i] से लेंगे। अंत में, प्रत्येक तारीख के लिए सबसे अच्छे Sharpe ratio का इंडेक्स np.argmax() से पाएँगे। इसी इंडेक्स का उपयोग करके हम जल्द ही आदर्श पोर्टफोलियो वेट्स निकालेंगे।

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Finance के लिए Machine Learning

पाठ्यक्रम देखें

अभ्यास निर्देश

  • enumerate() का उपयोग करके, लूप में प्रत्येक date के लिए portfolio_returns को एन्यूमरेट करें।
  • लूप में मौजूदा date के लिए, sharpe_ratio डिक्शनरी एंट्री में मौजूदा रिटर्न (ret) को मौजूदा तारीख और मौजूदा i के लिए portfolio_volatility से भाग देकर जोड़ें।
  • मौजूदा date के max_sharpe_idxs का मान np.argmax() का उपयोग करके अधिकतम Sharpe ratio के इंडेक्स के रूप में सेट करें।

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# Empty dictionaries for sharpe ratios and best sharpe indexes by date
sharpe_ratio, max_sharpe_idxs = {}, {}

# Loop through dates and get sharpe ratio for each portfolio
for date in portfolio_returns.keys():
    for i, ret in enumerate(portfolio_returns[____]):
    
        # Divide returns by the volatility for the date and index, i
        sharpe_ratio.setdefault(date, []).append(____ / portfolio_volatility[date][____])

    # Get the index of the best sharpe ratio for each date
    max_sharpe_idxs[date] = np.argmax(sharpe_ratio[____])

print(portfolio_returns[date][max_sharpe_idxs[date]])
कोड संपादित करें और चलाएँ