وسائل لوڈ ہو رہے ہیں... لوڈنگ...

خطرہ اور واپسی کا اندازہ لگانا

مصنف:گھاس, تخلیق: 2023-11-10 15:44:53, تازہ کاری: 2024-11-08 09:06:34

img

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

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

مارکوویتز تھیوری کے اہم تصورات

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

    $E(R_p) = \sum_{i=1}^{n} w_i E(R_i) $

    جہاں $E ((R_p) $ پورٹ فولیو کی متوقع واپسی ہے، $w_i$ پورٹ فولیو میں $i$ اثاثوں کا وزن ہے اور $E ((R_i) $ $ $i$ اثاثوں کی متوقع واپسی ہے۔

  2. خطرہ (غیر مستحکم یا معیاری): سرمایہ کاری کی واپسی کی غیر یقینی صورتحال یا سرمایہ کاری کی اتار چڑھاؤ کا اندازہ لگانے کے لئے استعمال کیا جاتا ہے۔

    $\sigma_p = \sqrt{\sum_{i=1}^{n} \sum_{j=1}^{n} w_i w_j \sigma_{ij}}$

    جہاں $\sigma_p$ پورٹ فولیو کا مجموعی خطرہ ہے، $\sigma_{ij}$ اثاثہ $i$ اور اثاثہ $j$ کا کوائف فرق ہے، جو ان دونوں اثاثوں کے درمیان قیمتوں میں تبدیلی کے تعلقات کا اندازہ کرتا ہے۔

  3. تعاون کا فرقاس کے علاوہ ، یہ ایک مختلف قسم کی قیمتوں کا اندازہ لگانے کا طریقہ ہے:

    $\sigma_{ij} = \rho_{ij} \sigma_i \sigma_j$

    جہاں $\rho_{ij}$ اثاثہ $i$ اور اثاثہ $j$ کے متعلقہ عوامل ہیں، $\sigma_i$ اور $\sigma_j$ اثاثہ $i$ اور اثاثہ $j$ کے معیاری فرق ہیں۔

  4. مؤثر حدود: خطرے سے فائدہ اٹھانے والے کوآرڈینیٹ سسٹم میں ، موثر حد ان پورٹ فولیو کا مجموعہ ہے جو کسی بھی خطرے کی سطح پر زیادہ سے زیادہ متوقع منافع فراہم کرنے کے قابل ہے۔

img

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

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

پیتھون کوڈ کی مثالیں جو بہترین مجموعہ تلاش کرنے کے لئے مشابہت کا استعمال کرتی ہیں

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

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

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

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

    • استعمال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 بی این بی یو ایس ڈی ٹی وزن: 0.3646 LINKUSDT وزن: 0.1892 BCHUSDT وزن: 0.0829 LTCUSDT وزن: 0.0209 متوقع منافع: 0.4195 متوقع خطرہ (معیاری فرق): 0.1219 شارپ تناسب: 3.4403img


مزید