پچھلے ہفتے، جب متعارف کرایاپوزیشن رسک کی پیمائش کیسے کی جائے - VaR طریقہ کار کا تعارف، یہ ذکر کیا گیا تھا کہ ایک پورٹ فولیو کا خطرہ انفرادی اثاثوں کے خطرات کے برابر نہیں ہے اور ان کی قیمت کے ارتباط سے متعلق ہے۔ مثال کے طور پر دو اثاثوں کو لیتے ہوئے ، اگر ان کا مثبت تعلق بہت مضبوط ہے ، یعنی وہ ایک ساتھ بڑھتے اور گرتے ہیں ، تو متنوع سرمایہ کاری سے خطرہ کم نہیں ہوگا۔ اگر مضبوط منفی تعلق ہے تو ، متنوع سرمایہ کاری خطرے کو نمایاں طور پر کم کرسکتی ہے۔ اس کے بعد قدرتی سوال پیدا ہوتا ہے: جب ہم کسی پورٹ فولیو میں سرمایہ کاری کرتے ہیں تو ہم کسی خاص سطح کے خطرے میں واپسی کو کس طرح زیادہ سے زیادہ کرتے ہیں؟ اس سے ہمیں مارکوٹز تھیوری ملتی ہے ، جسے ہم آج متعارف کرانے جارہے ہیں۔
جدید پورٹ فولیو تھیوری (ایم پی ٹی) ، جو 1952 میں ہیری مارکووٹز نے تجویز کی تھی ، پورٹ فولیو کے انتخاب کے لئے ایک ریاضیاتی فریم ورک ہے۔ اس کا مقصد خطرہ کو کنٹرول کرتے ہوئے خطرہ اثاثوں کے مختلف مجموعوں کا انتخاب کرکے متوقع منافع کو زیادہ سے زیادہ کرنا ہے۔ بنیادی خیال یہ ہے کہ اثاثوں کی قیمتیں ایک دوسرے کے ساتھ مکمل طور پر ہم آہنگ نہیں ہوتی ہیں (یعنی اثاثوں کے مابین نامکمل ارتباط ہے) ، اور سرمایہ کاری کے مجموعی خطرے کو متنوع اثاثوں کی الاٹمنٹ کے ذریعے کم کیا جاسکتا ہے۔
کہاں،پورٹ فولیو کی متوقع واپسی ہے،پورٹ فولیو میں i-th اثاثہ کا وزن ہے،i-th اثاثہ کی متوقع واپسی ہے۔
کہاں،پورٹ فولیو کا کل خطرہ ہے،اثاثہ i اور اثاثہ j کی شریک تغیر ہے، جو ان دو اثاثوں کے درمیان قیمت کی تبدیلی کے تعلقات کو ماپتا ہے۔
کہاں،اثاثہ i اور اثاثہ j کا تعلقی ضارب ہے،اوربالترتیب اثاثہ i اور اثاثہ j کے معیاری انحراف ہیں۔
مندرجہ بالا ڈایاگرام ایک موثر سرحد کی ایک مثال ہے ، جہاں ہر نقطہ ایک مختلف وزن والے سرمایہ کاری کے پورٹ فولیو کی نمائندگی کرتا ہے۔ ایکس محور اتار چڑھاؤ کی نشاندہی کرتا ہے ، جو خطرے کی سطح کے برابر ہے ، جبکہ وائی محور واپسی کی شرح کی نشاندہی کرتا ہے۔ واضح طور پر ، ہماری توجہ گراف کے اوپری کنارے پر ہے کیونکہ یہ مساوی سطح کے خطرے پر سب سے زیادہ واپسی حاصل کرتا ہے۔
مقداری تجارت اور پورٹ فولیو مینجمنٹ میں ، ان اصولوں کا اطلاق کرنے کے لئے تاریخی اعداد و شمار کا شماریاتی تجزیہ اور مختلف اثاثوں کے لئے متوقع واپسی ، معیاری انحراف اور کوویریانس کا تخمینہ لگانے کے لئے ریاضیاتی ماڈلز کا استعمال کرنا ضروری ہے۔ پھر اثاثوں کے بہترین وزن کی الاٹمنٹ تلاش کرنے کے لئے اصلاح کی تکنیک کا استعمال کیا جاتا ہے۔ اس عمل میں اکثر پیچیدہ ریاضیاتی کارروائیوں اور وسیع کمپیوٹر پروسیسنگ شامل ہوتی ہے۔ یہی وجہ ہے کہ جدید مالیات میں مقداری تجزیہ بہت اہم ہوگیا ہے۔ اگلا ، ہم مخصوص پائیتھون مثالوں کے ساتھ اصلاح کرنے کا طریقہ بیان کریں گے۔
مارکووٹز کے زیادہ سے زیادہ پورٹ فولیو کا حساب لگانا ایک کثیر مرحلہ عمل ہے ، جس میں متعدد اہم اقدامات شامل ہیں ، جیسے ڈیٹا کی تیاری ، پورٹ فولیو کی نقالی ، اور اشارے کا حساب کتاب۔ براہ کرم ملاحظہ کریں:https://plotly.com/python/v3/ipython-notebooks/markowitz-portfolio-optimization/
کے ذریعےget_data
فنکشن ، منتخب کردہ ڈیجیٹل کرنسی کی تاریخی قیمت کے اعداد و شمار حاصل کریں۔ یہ منافع اور خطرات کا حساب لگانے کے لئے ضروری اعداد و شمار ہیں ، جو سرمایہ کاری کے پورٹ فولیو کی تعمیر اور شارپ تناسب کا حساب لگانے کے لئے استعمال ہوتے ہیں۔
کےcalculate_returns_risk
اس فنکشن کا استعمال ہر ڈیجیٹل کرنسی کے لئے سالانہ منافع اور سالانہ خطرہ (معیاری انحراف) کا حساب لگانے کے لئے کیا گیا تھا۔ یہ ایک بہترین پورٹ فولیو میں استعمال کے ل each ہر اثاثے کی تاریخی کارکردگی کو مقداری بنانے کے لئے کیا جاتا ہے۔
کےcalculate_optimal_portfolio
فنکشن کا استعمال متعدد سرمایہ کاری کے پورٹ فولیو کا نقالی کرنے کے لئے کیا گیا۔ ہر نقالی میں ، اثاثوں کے وزن کو تصادفی طور پر تیار کیا گیا اور پھر ان وزنوں کی بنیاد پر پورٹ فولیو کی متوقع واپسی اور خطرے کا حساب لگایا گیا۔
مختلف وزن کے ساتھ تصادفی مجموعے پیدا کرکے ، زیادہ سے زیادہ ممکنہ سرمایہ کاری کے پورٹ فولیو کو تلاش کرنے کے ل explore تلاش کرنا ممکن ہے۔ یہ مارکووٹز کی پورٹ فولیو تھیوری کے بنیادی نظریات میں سے ایک ہے۔
اس پورے عمل کا مقصد سرمایہ کاری کا پورٹ فولیو تلاش کرنا ہے جو کسی مخصوص سطح کے خطرے میں بہترین متوقع منافع پیدا کرتا ہے۔ متعدد ممکنہ امتزاج کی نقالی کرکے ، سرمایہ کار مختلف تشکیلات کی کارکردگی کو بہتر طور پر سمجھ سکتے ہیں اور وہ امتزاج منتخب کرسکتے ہیں جو ان کے سرمایہ کاری کے اہداف اور رسک رواداری کے مطابق ہو۔ یہ طریقہ سرمایہ کاری کے فیصلوں کو بہتر بنانے میں مدد کرتا ہے ، جس سے سرمایہ کاری کو زیادہ موثر بنایا جاسکتا ہے۔
import numpy as np
import pandas as pd
import requests
import matplotlib.pyplot as plt
# Obtain market data
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)
# Calculate Markowitz Optimal Portfolio
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) # Convert weights to a list
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]
# Output results
print("Optimal combination:")
for i in range(len(symbols)):
print(f"{symbols[i]} Weight: {optimal_weights[i]:.4f}")
print(f"Expected return rate: {optimal_return:.4f}")
print(f"Expected risk (standard deviation): {optimal_risk:.4f}")
print(f"Sharpe ratio: {optimal_return / optimal_risk:.4f}")
# Visualized investment portfolio
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 بی این بی یو ایس ڈی ٹی کا وزن: 0.3646 LINKUSDT کا وزن: 0.1892 BCHUSDT کا وزن: 0.0829 LTCUSDT کا وزن: 0.0209 متوقع منافع کی شرح: 0.4195 متوقع خطرہ (معیاری انحراف): 0.1219 شارپ تناسب: 3.4403