بازده تنظیم ریسک با پایتون (قسمت 1): نسبت Treynor


نویسنده (ها): سیدهارت ماهاتو

در ابتدا منتشر شده در به سمت هوش مصنوعیبشر

“خطر ناشی از عدم دانستن اینکه چه کاری انجام می دهید.” – وارن بافت

بیشتر سرمایه گذاران بازده را تعقیب می کنند. اما از هر مدیر صندوق فصلی بپرسید ، و یک سؤال متفاوت خواهید شنید:
“آیا من به خاطر خطراتی که می گیرم عادلانه پاداش می گیرم؟”

این جایی است که بازده های تنظیم شده با ریسک وارد صحنه می شوند. در طول این سریال دو قسمتی ، ما می خواهیم به معیارهایی که بیش از بازده خام نیست ، نگاهی بیندازیم.

قسمت 1 (این مقاله) → ما با نسبت Treynor و آن را به صورت مرحله به مرحله با استفاده از پیتونبشر

قسمت 2 → مقایسه آن با نسبت شارپ ، که بیشتر مورد استفاده قرار می گیرد ، مقایسه می شود و هر دو را در عمل مشاهده می کند.

نسبت Treynor چیست؟

نسبت Treynor چقدر اندازه گیری می کند بازگشت بیش از حد (بالاتر از نرخ بدون ریسک) یک نمونه کارها ایجاد می کند در هر واحد ریسک بازار (بتا)بشر

فرمول:

بازده تنظیم ریسک با پایتون (قسمت 1): نسبت Treynor

تفاوت از نسبت شارپ:

  • شارپ استفاده می کند انحراف معیار (ریسک کل).
  • Treynor استفاده می کند بتا (خطر سیستماتیک).

تفسیر:

  • نسبت Treynor بالاتر به معنای جبران بهتر خطر بازار است.
  • بهترین استفاده در هنگام مقایسه اوراق بهادار متنوع یا بودجهبشر

اجرای پایتون

بیایید این موضوع را با نمونه ای از یک شرکت چند ملیتی واقعی “Apple” زنده کنیم.
مرحله 1: وارد کردن تمام کتابخانه های لازم

import pandas as pd
import numpy as np
import yfinance as yf
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns

مرحله 2: بارگیری و بارگیری داده ها

# Calculate daily returns from the 'Close' prices
portfolio_ticker = 'AAPL'
market_ticker = '^GSPC'
start_date = '2023-01-01'
end_date = '2024-01-01'
portfolio_data = yf.download(portfolio_ticker, start = start_date, end = end_date)
market_data = yf.download(market_ticker, start = start_date, end = end_date)

مرحله 3: محاسبه سهام روزانه بازده

# Combine into single DataFrame
portfolio_returns = portfolio_data['Close'].pct_change().dropna()
market_returns = market_data['Close'].pct_change().dropna()
returns = pd.concat([portfolio_returns, market_returns], axis = 1)
returns.columns = ['AAPL', 'SP500']
returns = returns.dropna()
تصویر توسط نویسنده

مرحله 4: محاسبه نسبت Treynor

# Computation of Beta value
X = sm.add_constant(returns['SP500']) # Add constant for regression
y = returns['AAPL']
model = sm.OLS(y, X).fit()
beta = model.params['SP500']
print("Beta (Systematic Risk):", beta)

نتیجه: بتا (خطر سیستماتیک): 1.104513

# Define Risk-free Rate (annualized, e.g., 3% U.S. T-bills) ---
rf = 0.03 / 252 # convert annual 3% to daily risk-free rate

# Calculate average excess return of portfolio ---
excess_return = returns['AAPL'].mean() - rf

# Computation of Treynor Ratio ---
treynor_ratio = excess_return / beta
print("Treynor Ratio:", treynor_ratio)

برای درک بهتر بتا ، بیایید آن را با استفاده از یک طرح رگرسیون تجسم کنیم.

# Regression Plot (AAPL vs SP500) ---
plt.figure(figsize = (8,6))
sns.regplot(x = returns['SP500'], y = returns['AAPL'], line_kws = {'color':'red'})
plt.title("Regression of AAPL on S&P500 (Beta Estimation)")
plt.xlabel("S&P500 Daily Returns")
plt.ylabel("AAPL Daily Returns")
plt.grid(True)
plt.show()
تصویر توسط نویسنده

تفسیر

  • اگر شیب (β) = 1، AAPL مطابق با بازار حرکت می کند.
  • اگر β> 1 باشد ، AAPL است بی ثبات تر از بازار (حرکات بازار را تقویت می کند).
  • اگر β کمتر از بازار بی ثبات باشد.

تسکین

در بخش اول ، ما نسبت Treynor ، از تعریف ، استفاده و فرمول آن ، تا تجزیه و تحلیل کاربرد آن با یک مالی را مرور کردیم مجموعه دادهبشر ما شاهد اقدامات آن در مورد بازده های تنظیم شده در ریسک در رابطه با ریسک سیستماتیک (BETA) بودیم ، و آن را برای سرمایه گذاران که به دنبال اندازه گیری عملکرد نمونه کارها با توجه به حرکات بازار یا عوامل خطر هستند ، به یک معیار مناسب تبدیل کرده است.

“اطلاعات اکسیژن عصر مدرن است.”
این اطلاعات مشابه با ویژگی زندگی اکسیژن ، ضروری برای روند تصمیم گیری در امور مالی است. اما اطلاعات کافی نیست – ما باید ابزارهایی داشته باشیم که به ما در درک آن کمک کند ، آن را ارزیابی کنید و حتی آن را با سایر اطلاعات مقایسه کنیم. این جایی است که نسبت عملکرد مانند نسبت شارپ و نسبت Treynor به تصویر وارد می شود و در نهایت تمرکز و وضوح را برای تصمیمات ابری که اغلب با سرمایه گذاری می گیریم ، به ارمغان می آورد.

به عنوان یک پایگاه ، اکنون ما آماده می شویم تا از ارزیابی عملکرد نمونه کارها ، منظره ای متعادل تری داشته باشیم. در قسمت 2 ، ما در مورد نسبت شارپ ، یکی دیگر از متریک های متداول از عملکرد نمونه کارها که خطر کل را در نظر می گیرد ، بحث خواهیم کرد ، در حالی که ما نسبت Treynor و نسبت شارپ را به عنوان دو معیار مقایسه می کنیم که ممکن است در برخی شرایط از سایر موارد مفیدتر باشد.

این امکان را فراهم می کند تا یک تصویر بهتر و گردتر از ارزیابی عملکرد نمونه کارها.

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/machine-learning/risk-adjusted-returns-with-python-part-1-the-treynor-ratio