पिछले सप्ताहवीएआर जोखिम प्रबंधनजब पोर्टफोलियो के जोखिम के बारे में बात की जाती है, तो यह अलग-अलग परिसंपत्तियों के जोखिम के बराबर नहीं होता है, और उनके मूल्य संबद्धता से संबंधित होता है। उदाहरण के लिए, यदि दो परिसंपत्तियां बहुत मजबूत सकारात्मक संबद्धता के साथ हैं, तो विखण्डित निवेश जोखिम को कम नहीं करता है। यदि नकारात्मक संबद्धता मजबूत है, तो विखण्डित निवेश जोखिम को काफी कम कर सकता है। प्राकृतिक सवाल यह है कि एक पोर्टफोलियो में निवेश करते समय, जोखिम के एक निश्चित स्तर पर रिटर्न को कैसे अधिकतम किया जाए? आज मैं मार्कोविट्ज़ सिद्धांत का उपयोग करूंगा।
आधुनिक पोर्टफोलियो सिद्धांत (एमपीटी), जो 1952 में हैरी माकोविट्ज़ द्वारा पेश किया गया था, पोर्टफोलियो चयन का एक गणितीय ढांचा है, जिसका उद्देश्य जोखिम को नियंत्रित करते हुए विभिन्न जोखिमपूर्ण परिसंपत्तियों के पोर्टफोलियो का चयन करके अपेक्षित लाभ को अधिकतम करना है। मूल विचार यह है कि परिसंपत्तियों के बीच कीमतों में असंगत परिवर्तन (अर्थात, परिसंपत्तियों के बीच असंगत संबंध) के कारण समग्र निवेश जोखिम को कम किया जा सकता है।
अपेक्षित रिटर्न: यह एक निवेशक द्वारा एक संपत्ति या निवेश पोर्टफोलियो को धारण करने के लिए अपेक्षित रिटर्न है, जो आमतौर पर ऐतिहासिक रिटर्न डेटा के आधार पर अनुमानित होता है।
$E(R_p) = \sum_{i=1}^{n} w_i E(R_i) $
इसमें $E ((R_p) $ पोर्टफोलियो का अपेक्षित रिटर्न है, $w_i$ पोर्टफोलियो में $i$ की संपत्ति का भार है, और $E ((R_i) $ $ $i$ की संपत्ति का अपेक्षित रिटर्न है।
जोखिम (अस्थिरता या मानक विचलन): निवेश की वापसी की अनिश्चितता या निवेश की अस्थिरता को मापने के लिए प्रयोग किया जाता है.
$\sigma_p = \sqrt{\sum_{i=1}^{n} \sum_{j=1}^{n} w_i w_j \sigma_{ij}}$
इसमें $\sigma_p$ पोर्टफोलियो का कुल जोखिम है और $\sigma_{ij}$ एसेट $i$ और एसेट $j$ का सहवर्ती अंतर है, जो इन दोनों एसेटों के बीच मूल्य परिवर्तन के संबंध को मापता है।
सहकारिता: दो परिसंपत्तियों के बीच मूल्य परिवर्तन के परस्पर संबंध को मापना।
$\sigma_{ij} = \rho_{ij} \sigma_i \sigma_j$
इनमें $\rho_{ij}$ संपत्ति $i$ और संपत्ति $j$ के लिए संबंधित गुणांक हैं, $\sigma_i$ और $\sigma_j$ संपत्ति $i$ और संपत्ति $j$ के लिए मानक अंतर हैं।
प्रभावी सीमाएं: जोखिम-लाभ निर्देशांक प्रणाली में, प्रभावी सीमाएं उन पोर्टफोलियो के समूह हैं जो जोखिम के दिए गए स्तर पर अधिकतम अपेक्षित लाभ प्रदान करने में सक्षम हैं।
उपरोक्त चित्र एक प्रभावी सीमा का एक आरेख है, प्रत्येक बिंदु एक अलग-अलग भारित पोर्टफोलियो का प्रतिनिधित्व करता है, क्षैतिज निर्देशांक उतार-चढ़ाव है, जो जोखिम का स्तर है, और लंबवत निर्देशांक रिटर्न है। स्पष्ट रूप से, हम चित्र के शीर्ष पर ध्यान केंद्रित करते हैं, जो एक ही जोखिम के स्तर पर उच्चतम रिटर्न प्राप्त करता है।
क्वांटिफाइड ट्रेडों और पोर्टफोलियो प्रबंधन में, इन सिद्धांतों को लागू करने के लिए, ऐतिहासिक डेटा का सांख्यिकीय विश्लेषण करना आवश्यक है, विभिन्न प्रकार के परिसंपत्तियों के लिए अपेक्षित रिटर्न, स्टैंडर्ड डिफरेंस और सहसंबंधों का अनुमान लगाने के लिए गणितीय मॉडल का उपयोग करना; और फिर, सर्वोत्तम परिसंपत्ति पुनर्वितरण खोजने के लिए अनुकूलन तकनीक का उपयोग करना। यह प्रक्रिया अक्सर जटिल गणितीय संचालन और भारी मात्रा में कंप्यूटर प्रसंस्करण को शामिल करती है, यही कारण है कि आधुनिक वित्त में क्वांटिफाइड विश्लेषण बहुत महत्वपूर्ण हो गया है। नीचे विशिष्ट पायथन उदाहरणों के साथ अनुकूलन कैसे करें।
मैकोविट्ज़ के इष्टतम संयोजन की गणना एक बहु-चरणीय प्रक्रिया है जिसमें डेटा तैयार करने, एनालॉग पोर्टफोलियो, गणना संकेतकों आदि के कई महत्वपूर्ण चरण शामिल हैं।https://plotly.com/python/v3/ipython-notebooks/markowitz-portfolio-optimization/
बाजार के आंकड़े प्राप्त करें:
get_data
फ़ंक्शन, चयनित क्रिप्टोकरेंसी के लिए ऐतिहासिक मूल्य डेटा प्राप्त करता है. ये रिटर्न और जोखिम की गणना करने के लिए आवश्यक डेटा हैं, जिन्हें पोर्टफोलियो बनाने और शार्प अनुपात की गणना करने के लिए उपयोग किया जाता है.रिटर्न और जोखिम की गणना:
calculate_returns_risk
फ़ंक्शन प्रत्येक डिजिटल मुद्रा के लिए वार्षिक रिटर्न और वार्षिक जोखिम (स्टैंडर्ड डिफरेंस) की गणना करता है। यह प्रत्येक परिसंपत्ति के ऐतिहासिक प्रदर्शन को मापने के लिए है ताकि इसे इष्टतम संयोजन में इस्तेमाल किया जा सके।मैकोविट्ज़ के इष्टतम संयोजन की गणना:
calculate_optimal_portfolio
एक फ़ंक्शन, जो कई पोर्टफोलियो का अनुकरण करता है। प्रत्येक अनुकरण में, एक आकस्मिक रूप से उत्पन्न संपत्ति भार है, और फिर इन भारों के आधार पर पोर्टफोलियो के लिए अपेक्षित रिटर्न और जोखिम का गणना करता है।इस प्रक्रिया का उद्देश्य एक ऐसे पोर्टफोलियो का पता लगाना है जो किसी भी जोखिम के स्तर पर सर्वोत्तम अपेक्षित रिटर्न प्राप्त करता है। कई संभावित संयोजनों का अनुकरण करके, निवेशक विभिन्न कॉन्फ़िगरेशन के प्रदर्शन को बेहतर ढंग से समझ सकते हैं और अपने निवेश लक्ष्यों और जोखिम को सहन करने में सबसे उपयुक्त संयोजन चुन सकते हैं। यह दृष्टिकोण निवेश निर्णयों को अनुकूलित करने में मदद करता है और निवेश को अधिक प्रभावी बनाता है।
import numpy as np
import pandas as pd
import requests
import matplotlib.pyplot as plt
# 获取行情数据
def get_data(symbols):
data = []
for symbol in symbols:
url = 'https://api.binance.com/api/v3/klines?symbol=%s&interval=%s&limit=1000'%(symbol,'1d')
res = requests.get(url)
data.append([float(line[4]) for line in res.json()])
return data
def calculate_returns_risk(data):
returns = []
risks = []
for d in data:
daily_returns = np.diff(d) / d[:-1]
annualized_return = np.mean(daily_returns) * 365
annualized_volatility = np.std(daily_returns) * np.sqrt(365)
returns.append(annualized_return)
risks.append(annualized_volatility)
return np.array(returns), np.array(risks)
# 计算马科维茨最优组合
def calculate_optimal_portfolio(returns, risks):
n_assets = len(returns)
num_portfolios = 3000
results = np.zeros((4, num_portfolios), dtype=object)
for i in range(num_portfolios):
weights = np.random.random(n_assets)
weights /= np.sum(weights)
portfolio_return = np.sum(returns * weights)
portfolio_risk = np.sqrt(np.dot(weights.T, np.dot(np.cov(returns, rowvar=False), weights)))
results[0, i] = portfolio_return
results[1, i] = portfolio_risk
results[2, i] = portfolio_return / portfolio_risk
results[3, i] = list(weights) # 将权重转换为列表
return results
symbols = ['BTCUSDT','ETHUSDT', 'BNBUSDT','LINKUSDT','BCHUSDT','LTCUSDT']
data = get_data(symbols)
returns, risks = calculate_returns_risk(data)
optimal_portfolios = calculate_optimal_portfolio(returns, risks)
max_sharpe_idx = np.argmax(optimal_portfolios[2])
optimal_return = optimal_portfolios[0, max_sharpe_idx]
optimal_risk = optimal_portfolios[1, max_sharpe_idx]
optimal_weights = optimal_portfolios[3, max_sharpe_idx]
# 输出结果
print("最优组合:")
for i in range(len(symbols)):
print(f"{symbols[i]}权重: {optimal_weights[i]:.4f}")
print(f"预期收益率: {optimal_return:.4f}")
print(f"预期风险(标准差): {optimal_risk:.4f}")
print(f"夏普比率: {optimal_return / optimal_risk:.4f}")
# 可视化投资组合
plt.figure(figsize=(10, 5))
plt.scatter(optimal_portfolios[1], optimal_portfolios[0], c=optimal_portfolios[2], marker='o', s=3)
plt.title('portfolio')
plt.xlabel('std')
plt.ylabel('return')
plt.colorbar(label='sharp')
plt.show()
अंत में, परिणामः सबसे अच्छा संयोजनः BTCUSDT भारः 0.0721 ETHUSDT भारः 0.2704 BNBUSDT भारः 0.3646 LINKUSDT भारः 0.1892 BCHUSDT भारः 0.0829 LTCUSDT भारः 0.0209 अपेक्षित रिटर्नः 0.4195 अनुमानित जोखिम (मानक अंतर): 0.1219 शार्प अनुपातः 3.4403