[P1] Tổng hợp các phương pháp đánh giá rủi ro và hiệu suất trong đầu tư

19/04/2024

12,112 lượt đọc

Quản lý rủi ro trong tài chính là quá trình nhận diện, đánh giá và điều phối nguồn lực để kiểm soát rủi ro và giảm thiểu tác động của các biến cố bất ngờ. Đây là yếu tố then chốt để đảm bảo các chiến lược đầu tư an toàn và bảo vệ doanh nghiệp cũng như các bên liên quan khỏi rủi ro tài chính. Trong loạt bài này, QM Capital sẽ giới thiệu và phân tích chi tiết 5 phương pháp đánh giá rủi ro hiệu quả bằng Python, bao gồm Tỷ lệ Sharpe, Tỷ lệ Sortino, Tỷ lệ Omega, Tỷ lệ Calmar và Tỷ lệ Sụt giảm tối đa. Những công cụ này là thiết yếu cho nhà đầu tư, nhà phân tích tài chính và nhà khoa học dữ liệu để nâng cao hiệu quả trong quản lý rủi ro và đầu tư.

1. Tỷ lệ Sharpe

1.1. Khái niệm

Tỷ lệ Sharpe là một thước đo xem lợi nhuận thu được là bao nhiêu trên một đơn vị rủi ro khi đầu tư vào một tài sản hay đầu tư theo một chiến lược kinh doanh.

Tỷ lệ Sharpe được phát triển bởi William F. Sharpe và được sử dụng để giúp các nhà đầu tư hiểu được lợi tức của khoản đầu tư so với rủi ro của nó. Tỷ lệ này là lợi nhuận trung bình kiếm được vượt quá lợi nhuận phi rủi ro trên mỗi đơn vị rủi ro.   

Cách thức hoạt động của Tỷ lệ Sharpe: 

Nhà đầu tư thường xuyên đối mặt với hai mục tiêu mâu thuẫn: một là tối đa hóa lợi nhuận từ các khoản đầu tư, hai là giảm thiểu rủi ro, tức là giảm thiểu khả năng thua lỗ.

Tỷ lệ Sharpe được sử dụng để cung cấp cho nhà đầu tư một chỉ số đánh giá hiệu quả đầu tư đã điều chỉnh theo rủi ro. Tỷ lệ Ratio có thể áp dụng để phân tích hiệu suất quá khứ hoặc kỳ vọng hiệu suất tương lai, nhưng trong cả hai trường hợp, tỷ lệ tài chính quan trọng này giúp nhà đầu tư hiểu liệu lợi nhuận có đến từ quyết định thông minh hay chỉ là chấp nhận quá nhiều rủi ro. Nếu là trường hợp sau, nhà đầu tư có thể sẽ chịu tổn thất lớn hơn mức họ có thể chấp nhận nếu thị trường biến động bất lợi.

Tỷ lệ Sharpe được tính bằng cách lấy lợi nhuận vượt trội của một tài sản hoặc danh mục đầu tư trong một khoảng thời gian xác định, sau đó chia cho độ lệch chuẩn của danh mục đó, đây là thước đo của mức độ biến động. Độ lệch chuẩn càng cao thì mức độ rủi ro càng lớn, và ngược lại, tỷ lệ Sharpe càng cao cho thấy mức độ hiệu quả rủi ro càng tốt

Công thức tính: 

Tỉ lệ Sharpe = (Rp – Rf)/ σp 

Trong đó: 

Rp là tỷ suất lợi nhuận của danh mục đầu tư 

Rf là tỷ suất lợi nhuận phi rủi ro 

σp là độ lệch chuẩn của tỷ suất lợi nhuận vượt quá của danh mục

1.2. Đặc điểm

Tỷ lệ Sharpe là công cụ đo lường hiệu quả lợi nhuận điều chỉnh theo rủi ro được sử dụng phổ biến trong ngành tài chính. Theo Lý thuyết Danh mục Đầu tư hiện đại (Modern Portfolio Theory - MPT), việc bổ sung các tài sản có mối tương quan thấp vào một danh mục đầu tư đa dạng có thể giúp giảm thiểu rủi ro mà không làm giảm lợi nhuận kỳ vọng.

Giả định rằng rủi ro tương đương với mức độ biến động của lợi nhuận, một danh mục đầu tư (DMĐT) đa dạng hóa cao sẽ có Tỷ lệ Sharpe cao hơn so với những danh mục ít đa dạng hơn.

Tỷ lệ Sharpe không chỉ được áp dụng để phân tích hiệu suất quá khứ của danh mục đầu tư (Ex-Post), mà còn có thể sử dụng để ước tính hiệu suất tương lai thông qua Tỷ lệ Sharpe dự kiến (Ex-Ante). Điều này được thực hiện bằng cách sử dụng lợi nhuận thực tế đã đạt được và so sánh với mức lợi nhuận không rủi ro để xem xét hiệu quả đầu tư dưới góc độ điều chỉnh rủi ro.

Tỷ lệ Sharpe cho phép nhà đầu tư: 

  1. So sánh tỷ lệ rủi ro/lợi nhuận của các tùy chọn đầu tư khác nhau. 
  2. Đánh giá hiệu quả của các chiến lược trong một lựa chọn đầu tư duy nhất (tỷ lệ rủi ro/lợi nhuận của các danh mục đầu tư, advisor khác nhau, v.v.). 
  3. Chọn một chiến lược hấp dẫn hơn về mặt giảm thiểu rủi ro với cùng một mức lợi nhuận.

1.3. Ví dụ về tỷ lệ Sharpe

Xem xét hai danh mục đầu tư: Danh mục A dự kiến sẽ mang lại lợi nhuận 14% trong vòng 12 tháng tới, trong khi Danh mục B dự kiến sẽ mang lại lợi nhuận 11% trong cùng kỳ. 

Nếu không xét đến rủi ro, rõ ràng Danh mục A là lựa chọn ưu việt hơn dựa trên mức lợi nhuận đơn thuần.

Nhưng liệu rủi ro. Đây là lúc mà tỷ lệ Sharpe cung cấp một cái nhìn toàn diện hơn về khoản đầu tư. Trong ví dụ này, Danh mục A có độ lệch chuẩn 8% (rủi ro cao hơn) và Danh mục B có độ lệch chuẩn 4% (rủi ro thấp hơn). Lãi suất không rủi ro là 3%, là lợi tức của trái phiếu chính phủ Mỹ có kỳ hạn trung bình.

Tỷ lệ Sharpe cho mỗi danh mục: 

Danh mục A: (14 - 3) / 8 = Tỷ lệ Sharpe là 1.38

Danh mục B: (11 - 3) / 4 = Tỷ lệ Sharpe là 2

Với mức độ biến động cao hơn được tính vào Danh mục A, tỷ lệ Sharpe của nó thấp hơn so với của Danh mục B. Điều này biết rằng với tỷ lệ Sharpe là 2, Danh mục B mang lại lợi nhuận tốt hơn trên cơ sở điều chỉnh rủi ro.

=> Một tỷ lệ Sharpe nằm giữa 1 và 2 được coi là tốt. Tỷ lệ từ 2 đến 3 là rất tốt, và bất kỳ kết quả nào cao hơn 3 đều được đánh giá là xuất sắc.

1.4. Phân tích tỷ lệ Sharpe hàng năm của Apple bằng Python

import pandas as pd
import numpy as np
import yfinance as yf
import matplotlib.pyplot as plt

tickerSymbol = ‘AAPL’
tickerData = yf.Ticker(tickerSymbol)
tickerDf = tickerData.history(period='1d', start='2012-1-1')
tickerDf['returns'] = tickerDf['Close'].pct_change()

# Annualized Sharpe Ratio
rolling_sharpe = np.sqrt(252) * tickerDf['returns'].rolling(252).mean() / tickerDf['returns'].rolling(252).std()

plt.figure(figsize=(15,7))
ax1 = plt.gca()
ax1.plot(rolling_sharpe, label='Rolling Sharpe Ratio', linewidth=1.5)
ax1.axhline(y=1, color='red', linestyle='--', label='Good Sharpe Ratio Threshold: 1')
ax1.set_title('Rolling 1-Year Sharpe Ratio with Stock Price', fontsize=16)
ax1.set_ylabel('Sharpe Ratio', fontsize=14)
ax1.legend()

ax2 = ax1.twinx()
ax2.plot(tickerDf['Close'], color='grey', alpha=0.3, label='Stock Price')
ax2.set_ylabel('Stock Price', fontsize=14)

plt.tight_layout()
plt.show()

Ví dụ Phân tích tỷ lệ Sharpe hàng năm của Apple bằng Python


2. Tỷ lệ Sortino

2.1. Khái niệm

Tỷ lệ Sortino là một biến thể của Tỷ lệ Sharpe, được sử dụng để đo lợi nhuận điều chỉnh theo rủi ro của danh mục đầu tư bằng cách so sánh hiệu suất với độ lệch chuẩn rủi ro đi xuống, thay vì độ lệch chuẩn tổng thể của lợi nhuận danh mục

Công thức tính Tỷ lệ Sortino là:

Tỷ lệ Sortino = (Rp – rf)/σd

Trong đó:

Rp là lợi nhuận danh mục đầu tư thực tế hoặc dự kiến

rf là lãi suất phi rủi ro

σd là độ lệch chuẩn của rủi ro thua lỗ

Tỷ lệ Sortino là một công cụ đánh giá hiệu suất đầu tư rất có giá trị đối với nhà đầu tư, nhà phân tích và người quản lý danh mục đầu tư. Tỷ lệ này chỉ tính đến độ lệch chuẩn của các lợi nhuận âm, tức là chỉ xem xét rủi ro đi xuống, làm cho nó trở thành một công cụ đo lường rủi ro một cách chính xác hơn so với các phương pháp truyền thống như tỷ lệ Sharpe, vốn xem xét biến động tổng thể. Điều này rất quan trọng vì biến động lợi nhuận tích cực là có lợi cho nhà đầu tư và không nên được coi là một yếu tố rủi ro.

2.2. Ví dụ về tỷ lệ Sortino

Cũng giống như tỷ lệ Sharpe, giá trị tỷ lệ Sortino càng cao càng tốt. Khi xem xét hai khoản đầu tư tương tự nhau, một nhà đầu tư hợp lý sẽ thích một khoản đầu tư có tỷ lệ Sortino cao hơn bởi vì điều đó có nghĩa là khoản đầu tư đang kiếm được nhiều tiền lãi hơn trên mỗi đơn vị rủi ro xấu mà nó phải chịu.

Ví dụ: Giả sử Quỹ tương hỗ X có tỷ lệ hoàn vốn hàng năm là 12% và độ lệch rủi ro thua lỗ là 10%. Quỹ tương hỗ Z có lợi nhuận hàng năm là 10% và độ lệch rủi ro thua lỗ là 7%. Tỷ lệ lãi suất phi rủi ro là 2.5%. Tỷ lệ Sortino cho cả hai quỹ sẽ được tính như sau:

Tỷ lệ Sortino của Quỹ tương hỗ X = (12% - 2.5%)/ 10% = 0.95

Tỷ lệ Sortino của Quỹ tương hỗ Z = (10% - 2.5%)/ 7% = 1.07

Mặc dù Quỹ tương hỗ X có Tỷ suất lợi nhuận cao hơn 2%, nhưng nó không kiếm được lợi nhuận đó hiệu quả như Quỹ tương hỗ Z, chứng minh bởi các độ lệch rủi ro thua lỗ của họ. Dựa trên kết quả này, Quỹ tương hỗ Z là lựa chọn đầu tư tốt hơn.

Mặc dù tỷ lệ lợi nhuận phi rủi ro được sử dụng phổ biến hơn, các nhà đầu tư vẫn có thể sử dụng lợi nhuận kỳ vọng trong tính toán. Để giữ cho công thức được chuẩn xác, nhà đầu tư nên nhất quán sử dụng một loại lợi nhuận.

2.3. Phân tích tỷ lệ Sortino hàng năm của Invesco QQQ Trust (QQQ) bằng Python

import pandas as pd
import numpy as np
import yfinance as yf
import matplotlib.pyplot as plt

# Fetch Data
tickerSymbol = "QQQ"
tickerData = yf.Ticker(tickerSymbol)
tickerDf = tickerData.history(period='1d', start='2010-1-1')
tickerDf['returns'] = tickerDf['Close'].pct_change()
MAR = 0 # Minimum Acceptable Return

# Sortino Ratio calculation
sortino_ratio = tickerDf['returns'].rolling(252).apply(lambda x: np.mean(x - MAR) / np.sqrt(np.mean(np.minimum(0, x - MAR)**2)))

threshold = sortino_ratio.mean()

# Aesthetics
plt.figure(figsize=(15, 7))
plt.style.use('seaborn-darkgrid')
palette = plt.get_cmap('Set1')

# Plot Sortino Ratio
ax1 = plt.gca()
ax1.plot(sortino_ratio.index, sortino_ratio, color=palette(0), linewidth=1.5, label='Sortino Ratio')

# Smoothened Sortino Ratio with a moving average
ax1.plot(sortino_ratio.index, sortino_ratio.rolling(window=252).mean(), color='orange', linestyle='--', label='1-Year MA')

ax1.axhline(y=threshold, color='red', linestyle='--', label=f'Threshold (Mean: {threshold:.2f})')

# Aesthetics for Sortino Ratio
ax1.set_ylabel('Sortino Ratio', fontsize=14, color=palette(0))
ax1.legend(loc='upper left')
ax1.set_title(f'Rolling 1-Year Sortino Ratio with Stock Price (MAR: {MAR*100}%)', fontsize=16)

# Stock Price Plot on secondary y-axis
ax2 = ax1.twinx()
ax2.plot(tickerDf.index, tickerDf['Close'], color=palette(1), alpha=0.4, label='Stock Price')
ax2.set_ylabel('Stock Price', fontsize=14, color=palette(1))

plt.tight_layout()
plt.show()

Ví dụ Phân tích tỷ lệ Sortino hàng năm của Visa bằng Python

Tỷ lệ Sharpe và Tỷ lệ Sortino đã trở nên thiết yếu để tối ưu hóa chiến lược đầu tư. Các phương pháp này không chỉ giúp các nhà đầu tư đánh giá hiệu quả rủi ro/lợi nhuận của từng khoản đầu tư một cách khoa học mà còn cung cấp những cái nhìn sâu sắc về khả năng tổng quát của các chiến lược đầu tư trong các điều kiện của thị trường. Bằng việc hiểu rõ và áp dụng linh hoạt những chỉ số này, nhà đầu tư có thể đưa ra các quyết định thông minh, giảm thiểu rủi ro và tăng cường tiềm năng sinh lời cho danh mục đầu tư của mình trong dài hạn.

Hẹn mọi người trong phần 2 về các tỷ lệ Calmar, Omega và Max Drawdown!


Link Google Colab: Tổng hợp các phương pháp đánh giá rủi ro và hiệu suất trong đầu tư

Chia sẻ bài viết

Đánh giá

Hãy là người đầu tiên nhận xét bài viết này!

Đăng ký nhận tin

Nhập Email để nhận được bản tin mới nhất từ QM Capital.

Bài viết liên quan

Overfitting là “kẻ thù số 1” trong quant trading
02/04/2026
33 lượt đọc

Overfitting là “kẻ thù số 1” trong quant trading C

Nếu phải chọn một rủi ro làm hỏng nhiều chiến lược định lượng nhất, thì đó thường không phải là thiếu mô hình hiện đại, mà là overfitting. Nói đơn giản, overfitting xảy ra khi mô hình học quá kỹ dữ liệu quá khứ đến mức nó không chỉ học tín hiệu thật, mà còn học luôn cả nhiễu. Khi nhìn lại lịch sử, mọi thứ trông rất đẹp: độ chính xác cao, equity curve mượt, drawdown dễ chịu, Sharpe ratio hấp dẫn. Nhưng đến khi đem sang giai đoạn mới, hoặc live trading, mô hình bắt đầu hỏng rất nhanh.

Vì sao các quỹ quant lớn vẫn kiếm tiền bằng những mô hình rất đơn giản?
31/03/2026
114 lượt đọc

Vì sao các quỹ quant lớn vẫn kiếm tiền bằng những mô hình rất đơn giản? C

Có một hiểu lầm rất phổ biến khi mới bước vào quant trading: cứ nghe đến “quant” là nghĩ ngay đến deep learning, transformers, reinforcement learning, foundation models, hay ít nhất cũng phải có một thứ gì đó đủ phức tạp để nghe giống phòng lab hơn là bàn giao dịch. Nhưng nếu nhìn vào cách nhiều tổ chức thật đang vận hành, bức tranh lại bớt hào nhoáng hơn nhiều.

Ngày đáo hạn phái sinh có tạo ra một “anomaly” đủ rõ để đưa vào hệ thống giao dịch hay không?
31/03/2026
57 lượt đọc

Ngày đáo hạn phái sinh có tạo ra một “anomaly” đủ rõ để đưa vào hệ thống giao dịch hay không? C

Nếu nhìn theo kiểu tin tức, ngày đáo hạn phái sinh thường bị gắn với những cụm như rung lắc, kéo trụ, ép ATC. Nhưng với quant trading, cách hỏi như vậy vẫn còn cảm tính. Câu hỏi đúng hơn là: ngày đáo hạn có tạo ra một mẫu biến động lặp lại, đủ ổn định, đủ rõ, để mình đưa vào bộ lọc của hệ thống hay không. Đây là một câu hỏi rất hợp với thị trường Việt Nam, vì hợp đồng tương lai VN30 có lịch đáo hạn cố định vào thứ Năm lần thứ ba của tháng đáo hạn, nên bản thân nó đã là một event định kỳ, rất phù hợp để làm event study. Ngoài ra, hợp đồng VN30 hiện có hệ số nhân 100.000 đồng mỗi điểm chỉ số, nên đây không phải một sản phẩm quá nhỏ để bỏ qua khi nhìn hành vi của nhóm cổ phiếu trụ.

Làm sao biết một chart có đáng mua hay không chỉ trong vài giây?
29/03/2026
162 lượt đọc

Làm sao biết một chart có đáng mua hay không chỉ trong vài giây? C

Một trong những lỗi phổ biến nhất của nhà đầu tư cá nhân ở Việt Nam là quyết định mua trước, rồi mới mở chart ra sau để tìm lý do xác nhận. Có thể là một mã được nhắc nhiều trong room chat, một câu chuyện đầu tư công đang nóng, một cổ phiếu bất động sản “đã giảm quá sâu”, hay một mã ngân hàng “nghe nói sắp vào sóng”. Cách ra quyết định như vậy nghe quen vì nó rất đời thường, nhưng chính nó làm nhiều người kẹt hàng hàng tháng trời. Mua xong thì chart không chạy. Hoặc tệ hơn, chart vẫn tiếp tục bleed xuống nhưng người cầm hàng cứ bấu víu vào câu chuyện vì không biết nhìn chart thế nào để thừa nhận rằng mình đang đứng sai phía.

Công thức giúp tài khoản bớt “gãy” khi thị trường xấu: cách dùng volatility targeting trong giao dịch thực tế
28/03/2026
105 lượt đọc

Công thức giúp tài khoản bớt “gãy” khi thị trường xấu: cách dùng volatility targeting trong giao dịch thực tế C

Điều làm nhiều tài khoản lỗ nặng không phải là vì trader luôn nhìn sai thị trường. Nhiều khi họ nhìn đúng xu hướng, nhưng vẫn thua vì vào sai kích thước vị thế. Đây là lỗi rất phổ biến. Khi thị trường êm, họ đánh lớn vì thấy giá đi đẹp. Đến lúc thị trường rung mạnh hơn, họ vẫn giữ đúng size cũ. Kết quả là một giai đoạn biến động lớn có thể xóa sạch thành quả của nhiều tuần trước đó.

Khi nào biết dòng tiền đang quay lại thật, chứ không chỉ là một nhịp hồi kỹ thuật?
26/03/2026
162 lượt đọc

Khi nào biết dòng tiền đang quay lại thật, chứ không chỉ là một nhịp hồi kỹ thuật? C

Sai lầm rất phổ biến của người mới là thấy chỉ số tăng mạnh một phiên rồi kết luận thị trường đã tạo đáy. Thực tế, một nhịp hồi kỹ thuật thường có 3 đặc điểm: giá bật lên sau chuỗi giảm sâu, tâm lý bớt hoảng loạn, nhưng khối lượng chưa thật sự cải thiện và chỉ số vẫn chưa vượt lại các vùng kỹ thuật quan trọng. Phiên ngày 17/03/2026 là ví dụ khá rõ. VN-Index tăng 17,08 điểm, đóng cửa ở 1.710,29 điểm, số mã tăng là 179 so với 147 mã giảm, nhưng giá trị khớp lệnh HoSE chỉ khoảng 20,9 nghìn tỷ đồng, vẫn dưới trung bình 20 phiên. Cùng lúc đó, phân tích kỹ thuật của AseanSC cho thấy VN-Index khi ấy vẫn đóng cửa dưới MA10, MA20 và MA50, tức là xu hướng ngắn hạn chưa thực sự đảo chiều, nên nhịp tăng này nghiêng nhiều hơn về một nhịp hồi kỹ thuật hơn là tín hiệu xác nhận tiền lớn quay lại.

video-image

Truy Cập Miễn Phí Thư Viện Bot Tín Hiệu Giao Dịch Tự Động

Được nghiên cứu và phát triển bởi các chuyên gia từ QMTrade và cộng đồng nhà đầu tư chuyên nghiệp.

Truy cập ngay!