خطرہ اور واپسی کی پیمائش - مارکوٹز تھیوری کا تعارف

مصنف:لیدیہ, تخلیق: 2023-11-13 11:05:54, تازہ کاری: 2024-01-01 12:23:29

img

پچھلے ہفتے، جب متعارف کرایاپوزیشن رسک کی پیمائش کیسے کی جائے - VaR طریقہ کار کا تعارف، یہ ذکر کیا گیا تھا کہ ایک پورٹ فولیو کا خطرہ انفرادی اثاثوں کے خطرات کے برابر نہیں ہے اور ان کی قیمت کے ارتباط سے متعلق ہے۔ مثال کے طور پر دو اثاثوں کو لیتے ہوئے ، اگر ان کا مثبت تعلق بہت مضبوط ہے ، یعنی وہ ایک ساتھ بڑھتے اور گرتے ہیں ، تو متنوع سرمایہ کاری سے خطرہ کم نہیں ہوگا۔ اگر مضبوط منفی تعلق ہے تو ، متنوع سرمایہ کاری خطرے کو نمایاں طور پر کم کرسکتی ہے۔ اس کے بعد قدرتی سوال پیدا ہوتا ہے: جب ہم کسی پورٹ فولیو میں سرمایہ کاری کرتے ہیں تو ہم کسی خاص سطح کے خطرے میں واپسی کو کس طرح زیادہ سے زیادہ کرتے ہیں؟ اس سے ہمیں مارکوٹز تھیوری ملتی ہے ، جسے ہم آج متعارف کرانے جارہے ہیں۔

جدید پورٹ فولیو تھیوری (ایم پی ٹی) ، جو 1952 میں ہیری مارکووٹز نے تجویز کی تھی ، پورٹ فولیو کے انتخاب کے لئے ایک ریاضیاتی فریم ورک ہے۔ اس کا مقصد خطرہ کو کنٹرول کرتے ہوئے خطرہ اثاثوں کے مختلف مجموعوں کا انتخاب کرکے متوقع منافع کو زیادہ سے زیادہ کرنا ہے۔ بنیادی خیال یہ ہے کہ اثاثوں کی قیمتیں ایک دوسرے کے ساتھ مکمل طور پر ہم آہنگ نہیں ہوتی ہیں (یعنی اثاثوں کے مابین نامکمل ارتباط ہے) ، اور سرمایہ کاری کے مجموعی خطرے کو متنوع اثاثوں کی الاٹمنٹ کے ذریعے کم کیا جاسکتا ہے۔

مارکوٹز تھیوری کا کلیدی تصور

  1. متوقع واپسی کی شرح: یہ وہ منافع ہے جو سرمایہ کاروں کو ان کے پاس موجود اثاثوں یا سرمایہ کاری کے پورٹ فولیو سے حاصل کرنے کی توقع ہے، جو عام طور پر تاریخی منافع کے اعداد و شمار کی بنیاد پر پیش گوئی کی جاتی ہے۔

img

کہاں،imgپورٹ فولیو کی متوقع واپسی ہے،imgپورٹ فولیو میں i-th اثاثہ کا وزن ہے،imgi-th اثاثہ کی متوقع واپسی ہے۔

  1. خطرہ (اضطرابیت یا معیاری انحراف): سرمایہ کاری کی واپسی کی غیر یقینی یا سرمایہ کاری کی اتار چڑھاؤ کی پیمائش کے لئے استعمال کیا جاتا ہے۔

img

کہاں،imgپورٹ فولیو کا کل خطرہ ہے،imgاثاثہ i اور اثاثہ j کی شریک تغیر ہے، جو ان دو اثاثوں کے درمیان قیمت کی تبدیلی کے تعلقات کو ماپتا ہے۔

  1. کوویریئنس: دو اثاثوں کی قیمتوں میں ہونے والی تبدیلیوں کے درمیان باہمی تعلقات کی پیمائش کرتا ہے۔

img

کہاں،imgاثاثہ i اور اثاثہ j کا تعلقی ضارب ہے،imgاورimgبالترتیب اثاثہ i اور اثاثہ j کے معیاری انحراف ہیں۔

  1. موثر سرحد: خطرے کی واپسی کوآرڈینیٹ سسٹم میں، موثر سرحد سرمایہ کاری کے پورٹ فولیو کا مجموعہ ہے جو ایک مخصوص خطرے کی سطح پر زیادہ سے زیادہ متوقع واپسی فراہم کرسکتا ہے.

img

مندرجہ بالا ڈایاگرام ایک موثر سرحد کی ایک مثال ہے ، جہاں ہر نقطہ ایک مختلف وزن والے سرمایہ کاری کے پورٹ فولیو کی نمائندگی کرتا ہے۔ ایکس محور اتار چڑھاؤ کی نشاندہی کرتا ہے ، جو خطرے کی سطح کے برابر ہے ، جبکہ وائی محور واپسی کی شرح کی نشاندہی کرتا ہے۔ واضح طور پر ، ہماری توجہ گراف کے اوپری کنارے پر ہے کیونکہ یہ مساوی سطح کے خطرے پر سب سے زیادہ واپسی حاصل کرتا ہے۔

مقداری تجارت اور پورٹ فولیو مینجمنٹ میں ، ان اصولوں کا اطلاق کرنے کے لئے تاریخی اعداد و شمار کا شماریاتی تجزیہ اور مختلف اثاثوں کے لئے متوقع واپسی ، معیاری انحراف اور کوویریانس کا تخمینہ لگانے کے لئے ریاضیاتی ماڈلز کا استعمال کرنا ضروری ہے۔ پھر اثاثوں کے بہترین وزن کی الاٹمنٹ تلاش کرنے کے لئے اصلاح کی تکنیک کا استعمال کیا جاتا ہے۔ اس عمل میں اکثر پیچیدہ ریاضیاتی کارروائیوں اور وسیع کمپیوٹر پروسیسنگ شامل ہوتی ہے۔ یہی وجہ ہے کہ جدید مالیات میں مقداری تجزیہ بہت اہم ہوگیا ہے۔ اگلا ، ہم مخصوص پائیتھون مثالوں کے ساتھ اصلاح کرنے کا طریقہ بیان کریں گے۔

سمیلیشن طریقہ کار کا استعمال کرتے ہوئے زیادہ سے زیادہ مجموعہ تلاش کرنے کے لئے پائتھون کوڈ مثال

مارکووٹز کے زیادہ سے زیادہ پورٹ فولیو کا حساب لگانا ایک کثیر مرحلہ عمل ہے ، جس میں متعدد اہم اقدامات شامل ہیں ، جیسے ڈیٹا کی تیاری ، پورٹ فولیو کی نقالی ، اور اشارے کا حساب کتاب۔ براہ کرم ملاحظہ کریں:https://plotly.com/python/v3/ipython-notebooks/markowitz-portfolio-optimization/

  1. مارکیٹ کے اعداد و شمار حاصل کریں:

کے ذریعےget_dataفنکشن ، منتخب کردہ ڈیجیٹل کرنسی کی تاریخی قیمت کے اعداد و شمار حاصل کریں۔ یہ منافع اور خطرات کا حساب لگانے کے لئے ضروری اعداد و شمار ہیں ، جو سرمایہ کاری کے پورٹ فولیو کی تعمیر اور شارپ تناسب کا حساب لگانے کے لئے استعمال ہوتے ہیں۔

  1. منافع کی شرح اور خطرے کا حساب لگائیں:

کےcalculate_returns_riskاس فنکشن کا استعمال ہر ڈیجیٹل کرنسی کے لئے سالانہ منافع اور سالانہ خطرہ (معیاری انحراف) کا حساب لگانے کے لئے کیا گیا تھا۔ یہ ایک بہترین پورٹ فولیو میں استعمال کے ل each ہر اثاثے کی تاریخی کارکردگی کو مقداری بنانے کے لئے کیا جاتا ہے۔

  1. Markowitz زیادہ سے زیادہ پورٹ فولیو کا حساب لگائیں:

کے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

img


مزید