پرش به محتویات

کاربرد LP در برنامه‌ریزی پورتفو

تخصیص دارایی به فرآیند تعیین نحوه توزیع سرمایه‌های سرمایه‌گذاری بین انواع کلاس‌های دارایی مانند سهام، اوراق قرضه، صندوق‌های مشترک، املاک و مستغلات و نقدینگی اشاره دارد. مدل‌های پورتفو برای تعیین درصد سرمایه‌گذاری در هر کلاس دارایی استفاده می‌شوند. هدف، ایجاد پورتفویی است که بهترین تعادل بین ریسک و بازده را فراهم کند.

در مدل‌سازی پورتفو از روش‌های متنوعی بهره گرفته می‌شود که هر یک ویژگی‌های خاصی دارند:

  • مدل میانگین‑واریانس مارکویتز برای بهینه‌سازی تعادل ریسک‑بازده بر پایهٔ واریانس به عنوان معیار ریسک استفاده می‌شود1.

Markovitz model

  • مدل حداقل واریانس که هدف آن کاهش بیشینهٔ واریانس سبد سرمایه‌گذاری است.
  • مدل حداقل ارزش مشروط در معرض ریسک (\(CVaR\)3) که ریسک انتهایی سبد را به صورت انتگرال زیان بیش از \(VaR\) ارزیابی می‌کند2.

CVaR and VaR models

  • مدل برنامه‌ریزی خطی چندهدفه که امکان ترکیب معیارهای مختلف مانند بازده، ریسک، نقدینگی و هزینه‌های تراکنش را فراهم می‌سازد.

MCDM methods

این روش‌ها می‌توانند با افزودن قیود عملیاتی نظیر محدودیت‌های سرمایه‌گذاری در هر کلاس دارایی یا محدودیت‌های نقدینگی ترکیب شوند تا مدل‌های پورتفوی قابل اجرا تولید گردد.

مثال (تخصیص سرمایه)

در این بخش نشان می‌دهیم چگونه می‌توان با استفاده از برنامه‌ریزی خطی مدل‌های بهینه‌سازی پورتفو را برای ترکیبی از صندوق‌های مشترک توسعه داد. مدل اول برای سرمایه‌گذاران محافظه‌کار که از ریسک می‌پرهیزند طراحی شده است؛ مدل دوم برای سرمایه‌گذاران ریسک‌پذیرتر است.

یک شرکت سرمایه‌گذاری، محصولات سرمایه‌گذاری متنوعی مانند صندوق‌های کالا، حساب‌های بازنشستگی و طرح‌های بازنشستگی را برای سرمایه‌گذاران با تحمل ریسک‌های مختلف ارائه می‌دهد. این شرکت قصد دارد مدلی برای بهینه‌سازی ترکیب شش صندوق سرمایه‌گذاری مختلف ایجاد کند. بر اساس جدول زیر، بازده سال آینده این صندوق‌ها در پنج سناریوی مختلف داده شده است؛ بازدهی برخی سناریوها خوب و برخی ضعیف است. مدیران پورتفو با استفاده از این سناریوها ترکیبی بهینه انتخاب می‌کنند. فرض بر این است که در سال آینده حتما یکی از پنج سناریو رخ خواهد داد.

صندوق سرمایه‌گذاری مشترک سناریو ۱ سناریو ۲ سناریو ۳ سناریو ۴ سناریو ۵
صندوق سهام خارجی 10.06 13.12 13.47 45.42 -21.93
صندوق اوراق قرضه میان‌مدت 17.64 3.25 7.51 -1.33 7.36
صندوق سهام شرکت‌های بزرگ (رشد) 32.41 18.71 33.28 41.46 -23.26
صندوق سهام شرکت‌های بزرگ (ارزش) 32.36 20.61 12.93 7.06 -5.37
صندوق سهام شرکت‌های کوچک (رشد) 33.44 19.40 3.85 58.68 -9.02
صندوق سهام شرکت‌های کوچک (ارزش) 24.56 25.32 -6.70 5.43 17.31

پورتفوی محافظه‌کارانه

از یکی از مدیران شرکت درخواست شده است تا پورتفویی برای مشتریان محافظه‌کار که از ریسک پرهیز دارند، توسعه دهد. وظیفه مدیر تعیین نسبت سرمایه‌گذاری در هر یک از شش صندوق مشترک به‌گونه‌ای است که پورتفو بهترین بازده ممکن را با کمترین ریسک ارائه دهد.

متغیرهای تصمیم را بصورت زیر درنظر می‌گیریم:

  • \(FS\): صندوق سهام خارجی
  • \(IB\): صندوق اوراق قرضه میان‌مدت
  • \(LG\): صندوق سهام شرکت‌های بزرگ (رشد)
  • \(LV\): صندوق سهام شرکت‌های بزرگ (ارزش)
  • \(SG\): صندوق سهام شرکت‌های کوچک (رشد)
  • \(SV\): صندوق سهام شرکت‌های کوچک (ارزش)

و مدل را بصورت زیر می‌نویسیم:

\[\begin{align} Maximize\ M \\ \\ Subject\ to \\ \\ 10.06FS + 17.64IB + 32.41LG + 32.36LV + 33.44SG + 24.56SV & \ge M \\ 13.12FS + 3.25IB + 18.71LG + 20.61LV + 19.40SG + 25.32SV & \ge M \\ 13.47FS + 7.51IB + 33.28LG + 12.93LV + 3.85SG - 6.70SV & \ge M \\ 45.42FS - 1.33IB + 41.46LG + 7.06LV + 58.68SG + 5.43SV & \ge M \\ -21.93FS + 7.36IB - 23.26LG - 5.37LV - 9.02SG + 17.31SV & \ge M \\ FS + IB + LG + LV + SG + SV & = 1 \\ M,FS,IB,LG,LV,SG,SV & \ge 0 \end{align}\]
پاسخ
result = linprog(
    [0, 0, 0, 0, 0, 0, -1],
    [
        [-10.06, -17.64, -32.41, -32.36, -33.44, -24.56, 1],
        [-13.12, -3.25, -18.71, -20.61, -19.40, -25.32, 1],
        [-13.47, -7.51, -33.28, -12.93, -3.85, 6.70, 1],
        [-45.42, 1.33, -41.46, -7.06, -58.68, -5.43, 1],
        [21.93, -7.36, 23.26, 5.37, 9.02, -17.31, 1],
    ],
    [0, 0, 0, 0, 0],
    [[1, 1, 1, 1, 1, 1, 0]],
    [1],
)
print(result.x, -result.fun)
# [0, 0.554, 0.132, 0, 0, 0.314, 6.445] 6.445

پورتفوی ریسک متوسط

مدیر پورتفو می‌خواهد برای مشتریان با ریسک متوسط، پورتفویی طراحی کند که بازده سالانه آن کمتر از ۳% نشود.

به این ترتیب رابطه حداقل بازدهی را می‌توان بصورت زیر نوشت:

\[Maximize\ 0.2R_1 + 0.2R_2 + 0.2R_3 + 0.2R_4 + 0.2R_5\]

و مدل جدید بصورت زیر بازنویسی می‌شود:

\[\begin{align} Maximize\ 0.2R_1 + 0.2R_2 + 0.2R_3 + 0.2R_4 + 0.2R_5 \\ \\ Subject\ to \\ \\ 10.06FS + 17.64IB + 32.41LG + 32.36LV + 33.44SG + 24.56SV & = R_1 \\ 13.12FS + 3.25IB + 18.71LG + 20.61LV + 19.40SG + 25.32SV & = R_2 \\ 13.47FS + 7.51IB + 33.28LG + 12.93LV + 3.85SG + 6.70SV & = R_3 \\ 45.42FS - 1.33IB + 41.46LG + 7.06LV + 58.68SG - 5.43SV & = R_4 \\ -21.93FS + 7.36IB + 23.26LG - 5.37LV + 9.02SG + 17.31SV & = R_5 \\ R_1 & \geq 3 \\ R_2 & \geq 3 \\ R_3 & \geq 3 \\ R_4 & \geq 3 \\ R_5 & \geq 3 \\ FS + IB + LG + LV + SG + SV & = 1 \\ FS, IB, LG, LV, SG, SV & \geq 0 \end{align}\]
پاسخ
result = linprog(
    [0, 0, 0, 0, 0, 0, -0.2, -0.2, -0.2, -0.2, -0.2],
    [
        [0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1],
    ],
    [-3, -3, -3, -3, -3],
    [
        [10.06, 17.64, 32.41, 32.36, 33.44, 24.56, -1, 0, 0, 0, 0],
        [13.12,  3.25, 18.71, 20.61, 19.40, 25.32, 0, -1, 0, 0, 0],
        [13.47,  7.51, 33.28, 12.93,  3.85,  6.70, 0, 0, -1, 0, 0],
        [45.42, -1.33, 41.46,  7.06, 58.68, -5.43, 0, 0, 0, -1, 0],
        [-21.93, 7.36, 23.26, -5.37,  9.02, 17.31, 0, 0, 0, 0, -1],
        [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
    ],
    [0, 0, 0, 0, 0, 1]
)
print(result.x, -result.fun)
# [0, 0, 1, 0, 0, 0, 32.41, 18.71, 33.28, 41.46, 23.26] 29.82

  1. Markowitz, H. (1952). Portfolio Selection. Journal of Finance. 

  2. Rockafellar, R. T., & Uryasev, S. (2000). Optimization of Conditional Value-at-Risk. 

  3. Conditional Value-at-Risk (CVaR)