Ôn Tập i: Tại sao Quant luôn sử dụng Log Return?
Tại sao log return là 'vũ khí' không thể thiếu của Quant? Khám phá sự khác biệt giữa chiến thuật lãi kép/tái cân bằng, ưu thế của tính đối xứng trong log return và cách xấp xỉ Taylor.
Nếu bạn đã theo dõi những bài viết trước, chúng ta đã cùng mô hình hóa giá cổ phiếu qua những bước đi ngẫu nhiên của Random Walk (Bài 3) đến dòng chảy liên tục của Brownian Motion (Bài 4). Trước khi chúng ta tiến tới cột mốc quan trọng tiếp theo – định giá quyền chọn (Option Pricing) – tôi muốn dừng lại một chút để củng cố nền tảng.
Bài viết này mở đầu cho series Ôn Tập (Refresher Course) nhằm giúp những bạn bị “hổng kiến thức” lấp đầy kiến thức nền tảng. Nếu bạn cảm thấy còn nhiều khúc mắc khi đọc về mô hình GBM, hoặc đơn giản là muốn hiểu tại sao các nhà toán học lại ưu tiên dùng lợi suất Logarit hơn lợi suất thông thường, thì đây là bài viết dành cho bạn.
Lưu ý: Nếu bạn đã nắm chắc các khái niệm này, bạn hoàn toàn có thể bỏ qua và chờ đợi bài tiếp theo về Option Pricing.
Trong bài viết này:
- 1. Price & Return: Đừng để con số đánh lừa thị giác!
- 2. Cumulative Return: Khi thời gian làm thay đổi cuộc chơi
- 3. Log-return: Ngôn ngữ của Quant
- 4. Tóm tắt và thảo luận
1. Price & Return: Đừng để con số đánh lừa thị giác!
Trong tài chính, nếu chỉ nhìn vào giá trị tuyệt đối của một cổ phiếu, chúng ta rất dễ đưa ra những nhận định sai lầm. Hãy thử so sánh: một cổ phiếu giá $100$ tăng thêm $10$ và một cổ phiếu giá $20$ cũng tăng thêm $10$. Nhìn bề ngoài thì cả hai đều mang lại một khoản tiền như nhau, nhưng rõ ràng cơ hội đầu tư thứ hai hấp dẫn hơn nhiều.
Đó là lý do tại sao trong giới tài chính, người ta ít khi so sánh giá (price) mà thường so sánh lợi suất (return) – một thước đo tương đối giúp đưa mọi tài sản về cùng một hệ quy chiếu.
Lợi suất ($r_t$) đơn giản là phần trăm thay đổi của giá ($p$) tại thời điểm $t$ so với thời điểm trước đó:
\[r_t = \frac{p_t - p_{t-1}}{p_{t-1}} = \frac{p_t}{p_{t-1}} - 1 \tag{i.1}\]Ví dụ: Bạn mua cổ phiếu giá $100$ và hôm sau giá là $110$, lợi suất của bạn là $0.1$ hay $10\%$. Con số này cho bạn biết hiệu quả đầu tư thực sự, bất kể quy mô dòng vốn của bạn lớn hay nhỏ.
Dưới đây là biểu đồ thực tế so sánh giữa giá đóng cửa và lợi suất của AAPL (Apple Inc.) trong hai năm qua. Dữ liệu được lấy từ Polygon.io. Chúng ta có thể thấy rằng lợi suất của AAPL đạt mức cao nhất và thấp nhất vào khoảng tháng 4 năm 2025, mặc dù giá đóng cửa đã có một đợt sụt giảm mạnh (drawdown) trong giai đoạn đó.
2. Cumulative Return: Khi thời gian làm thay đổi cuộc chơi
Khi đầu tư trong nhiều giai đoạn, câu hỏi đặt ra là: tổng lợi nhuận cuối cùng của chúng ta là bao nhiêu? Có hai chiến lược chính mà bạn cần phân biệt.
2.1. Chiến lược lãi kép (Compounding)
Đây là cách hoạt động của hầu hết các khoản đầu tư thực tế: lãi mẹ đẻ lãi con. Ở đây chúng ta để các khoản lợi nhuận hợp lại liên tục (compound continuously), hay nói cách khác chúng ta tái đầu tư bất kỳ khoản lãi nào có được giữa các khoảng thời gian.
Hãy tưởng tượng, bạn đầu tư số vốn gốc $p_0$ vào một tài sản với chuỗi lợi suất ${r_1, r_2, \dots, r_T}$, giá trị tài sản cuối cùng $p_T$ sẽ là tích của các lần tăng trưởng.
\[p_T = p_0(1+r_1)(1+r_2)\dots(1+r_T) = p_0\prod_{t=1}^{T}(1+r_t) \tag{i.2}\]Theo công thức (i.1) và (i.2), lợi suất tích lũy (cumulative return) cho khoảng thời gian $T$ là:
\[\begin{aligned} r_{0:T} &= \frac{p_t}{p_{t-1}} - 1 \\ &= \frac{p_0 \prod_{t=1}^{T}(1+r_t)}{p_0} - 1 \\ &= \prod_{t=1}^{T}(1 + r_t) - 1 \end{aligned} \tag{i.3}\]Ví dụ: Nếu mua một tài sản với giá $100$ và lần lượt nhận được lợi suất $10\%$, $5\%$, và sau đó là $-2\%$, giá trị tài sản tại thời điểm $T=3$ sẽ là:
\[100(1 + 0.1)(1 + 0.05)(1 - 0.02) = 113.19\]Với $p_0 = 100$ và $p_T = 113.19$, ta có lợi suất là $\frac{113.19}{100} - 1 \approx 0.13 $ tức $13\%$. Đây là lợi suất tích lũy kiểu nhân dồn.
2.2. Chiến lược tái cân bằng (Rebalancing)
Hãy tưởng tượng bạn luôn điều chỉnh để số tiền đầu tư vào đầu mỗi giai đoạn luôn cố định là $p_0$: nếu lời thì rút ra, lỗ thì nạp thêm.
Trong trường hợp lý tưởng hóa này, vì vốn đầu tư luôn được đưa về mức $p_0$ tại mỗi thời điểm $t$, lợi nhuận mỗi kỳ đơn giản là $p_0 \times r_t$. Tổng lợi nhuận (profit) sau $T$ ngày sẽ là tổng của các khoản lợi nhuận đơn lẻ đó:
\[\omega_{1:T} = p_0 r_1 + p_0 r_2 + \dots + p_0 r_T = p_0 \left( \sum_{t=1}^{T} r_t \right) \tag{i.4}\]Ở đây, ký hiệu $\omega$ được sử dụng thay vì $p$ để phân biệt rõ giữa lợi nhuận (profit) và giá (price). Lưu ý rằng lợi nhuận (profit) $\omega_{1:T}$ có thể nhận giá trị âm, không giống như giá (price) bị chặn dưới bởi $0$.
Ví dụ: Nếu đầu tư số vốn $p_0 = 100$ với chuỗi lợi suất ${0.1, -0.05}$, lợi nhuận (profit) sẽ là:
\[100(0.1) + 100(-0.05) = 5\]Theo công thức (i.1), lợi suất tích lũy (cumulative return) cho chiến lược tái cân bằng (rebalancing) trong khoảng thời gian $T$ là:
\[\begin{aligned} r_{0:T} &= \frac{p_0 + \omega_{1:T}}{p_0} - 1 \\ &= \frac{p_0 + p_0 \left( \sum_{t=1}^{T} r_t \right)}{p_0} - 1 \\ &= \sum_{t=1}^{T} r_t \end{aligned} \tag{i.5}\]Khác với chiến lược lãi kép khi lợi suất tích lũy bị chặn dưới bởi $−1$, lợi suất tích lũy khi có tái cân bằng $r_{0:T}$ có thể tiến tới \(-\infty\). Điều này xảy ra trong trường hợp chúng ta liên tục tái đầu tư khoản vốn $p_0$ qua một chuỗi các mức lợi nhuận âm kéo dài.
2.3. So sánh hai chiến lược
Để minh họa sự khác biệt giữa hai chiến lược này, chúng ta sẽ sử dụng dữ liệu lợi suất hàng ngày của AAPL (Apple Inc.) ở phần trước. Trong kịch bản này, chiến lược Compounding sẽ phản ánh chính xác sự thay đổi giá trị tài sản nếu bạn giữ nguyên cổ phiếu, còn Rebalancing sẽ cho thấy kết quả nếu bạn đưa vốn về mức cố định ban đầu sau mỗi ngày.
Bạn có thể chạy code trên Google Colab cho cổ phiếu AAPL (Apple Inc.). Nếu chạy local trên máy tính của bạn, market_data.zip cần đặt cùng thư mục chứa code Python.
Tôi cũng chuẩn bị file Excel Excel Workbook cho bài này. Tuy nhiên, tôi xin phép bỏ qua phần hướng dẫn vì tương đối đơn giản. Mục đích chính của file Excel là giúp bạn kiểm tra lại các phép tính trong code Python.
# --- 2. Calculate Daily Return and Cumulative Return ---
daily_returns = df['close'].pct_change().dropna()
comp_ret = (1 + daily_returns).cumprod() - 1
rebal_ret = daily_returns.cumsum()
dates = df['timestamp'].iloc[1:]
Dòng code (1 + daily_returns).cumprod() chính là công thức (i.3) áp dụng cho toàn bộ vector daily_returns. Hãy tưởng tượng bạn có một vector daily_returns như sau: [0.1, 0.2, -0.05]. Python sẽ chạy như sau:
- Cộng $+1$ vào mỗi phần tử thành
[1.1, 1.2, 0.95]; - Thực hiện
.cumprod(): phần tử thứ nhất $1.1$ (giữ nguyên); phần tử thứ hai $1.1 \times 1.2 = 1.32$ (lấy kết quả trước nhân với số mới); phần tử thứ ba $1.32 \times 0.95 = 1.254$ - Trừ đi $-1$ vào mỗi phần tử thành
[0.1, 0.32, 0.254]. Đây chính là vectorcomp_ret.
Tương tự, dòng code daily_returns.cumsum() chính là công thức (i.5). Bạn thấy đấy Python cho phép thực hiện tính toán ma trận với syntax rất đơn giản.
Tiếp theo, ta thực hiện vẽ biểu đồ để so sánh hai chiến lược đầu tư này.
# --- 3. Plotting ---
plt.figure(figsize=(10, 6))
plt.plot(dates, comp_ret * 100, label='Compounding (Scenario A)')
plt.plot(dates, rebal_ret * 100, label='Rebalancing (Scenario B)')
plt.title('Cumulative Performance: Reinvestment vs. Static Exposure')
plt.ylabel('Cumulative Return (%)')
plt.xlabel('Timeline')
plt.legend()
plt.show()
-
Đường Compounding (đường màu xanh) tương ứng với biến động thực tế của giá cổ phiếu AAPL trên thị trường.
-
Đường Rebalancing (đường màu vàng) cho thấy tổng các biến động phần trăm đơn lẻ. Trong một thị trường có xu hướng tăng dài hạn như AAPL, chiến lược tái cân bằng thường sẽ thấp hơn so với lãi kép vì bạn đã chốt lời quá sớm, làm mất đi cơ hội tăng trưởng kép từ việc tái đầu tư lợi nhuận. Trong giai đoạn thị trường giảm mạnh sau đó phục hồi 04/2025 – 07/2025, bạn cũng sẽ thấy đường Rebalancing giúp nhà đầu tư về bờ nhanh hơn vì bạn liên tục nạp thêm tiền để đưa vốn về $p_0$.
3. Log Return: Ngôn ngữ của Quant
Khi tiếp cận với các mô hình định lượng, bạn sẽ thấy người ta ưu tiên sử dụng lợi suất Logarit (log return) hơn là lợi suất phần trăm thông thường. Nhắc tới return người ta thường ngầm hiểu là log return. Tại sao lại như vậy?
Log return ($z_t$) được định nghĩa như sau:
\[z_t = \log(1+r_t) \tag{i.6}\]Ta có thể biểu diễn thông qua $p_t$ và $p_{t-1}$ trong công thức (i.1) như sau:
\[z_t = \log\left(\frac{p_t}{p_{t-1}}\right) \tag{i.7}\]Dưới đây là 3 lý do khiến log return trở thành “người bạn thân” của các nhà phân tích định lượng.
3.1. Biến phép nhân thành phép cộng (Time Additivity)
Đây là ưu điểm lớn nhất. Như bạn thấy ở phần trên, tính lợi suất tích lũy theo cách thông thường đòi hỏi chúng ta phải thực hiện phép nhân dồn, nhưng với log return, bạn chỉ cần cộng dồn chúng lại, nhờ tính chất của hàm Logarit: $\ln(a \times b) = \ln(a) + \ln(b)$.
Từ định nghĩa (i.6) và (i.3), ta tính log return cho khoảng thời gian $T$ như sau:
\[\begin{aligned} z_{0:T} &= \log(1 + r_{0:T}) \\ &= \log \left( \prod_{t=1}^{T} (1 + r_t) \right) \\ &= \sum_{t=1}^{T} \log(1 + r_t) \end{aligned}\]Lưu ý mỗi số hạng $r_t$ có thể biểu diễn thông qua $p_t$ và $p_{t-1}$ theo công thức (i.7), và hầu hết các số hạng này sẽ triệt tiêu lẫn nhau.
\[\begin{aligned} z_{0:T} &= \sum_{t=1}^{T} \log(1 + r_t) \\ &= \sum_{t=1}^{T} \log \left( \frac{p_t}{p_{t-1}} \right) \\ &= \sum_{t=1}^{T} \left(\log p_t - \log p_{t-1}\right) \\ &= \log p_T - \log p_{T-1} + \dots + \log p_2 - \log p_1 + \log p_1 - \log p_0 \end{aligned}\]Công thức tính log return cuối cùng sẽ là:
\[z_{0:T} = \log p_T - \log p_0 \tag{i.8}\]Xin chúc mừng, bạn vừa khám phá ra một sự thật thú vị về lợi suất Logarit. Chúng ta có thể tính toán lợi suất gộp liên tục bằng cách lấy Logarit của giá cuối cùng trừ đi Logarit của giá ban đầu. Điều này không chỉ nhanh hơn về mặt tính toán mà còn giảm thiểu sai số máy tính.
Chúng ta thử xác minh các tính toán của mình là nhất quán hay không với dữ liệu thực từ AAPL (Apple Inc.). Ta có cùng kết quả 0.41567282034525976 bất kể chúng ta sử dụng công thức (i.3) hay (i.8). Tuy nhiên, cách tính thứ hai rõ ràng nhanh hơn, đặc biệt là khi chúng ta có một lượng lớn dữ liệu.
# cumulative prod
(1 + daily_returns).prod() - 1
# 0.41567282034525976
# log(price last) - log(price first)
np.exp(np.log(df['close'].iloc[-1]) - np.log(df['close'].iloc[0])) - 1
# 0.41567282034525976
3.2. Tính đối xứng (Symmetry)
Trong tài chính định lượng, tính đối xứng không chỉ là một khái niệm thẩm mỹ mà nó còn ảnh hưởng trực tiếp đến độ chính xác của các mô hình thống kê.
Sự bất đối xứng của Return
Hãy nhìn vào một ví dụ kinh điển mà mọi nhà đầu tư đều từng nếm trải: khoảng cách để về bờ.
Giả sử bạn đầu tư $100$ vào một cổ phiếu:
- Kịch bản lỗ: Nếu giá giảm xuống còn $50$, lợi suất thông thường của bạn là $-50\%$.
- Kịch bản hồi phục: Để quay lại mức $100$ ban đầu, giá phải tăng từ $50$ lên $100$. Lúc này, lợi suất cần thiết lúc này là $+100\%$.
Sự chênh lệch giữa $-50\%$ và $+100\%$ tạo ra một rào cản toán học. Trong thống kê, nếu chúng ta lấy trung bình cộng của hai mức này: \(\frac{-0.5 + 1.0}{2} = 0.25\) (tức dương $25\%$). Nhưng thực tế, tài khoản của bạn chỉ đang hòa vốn ($0\%$). Điều này cho thấy lợi suất thông thường có độ lệch (bias) khiến việc tính toán trung bình trở nên sai lệch so với thực tế tăng trưởng.
Sự đối xứng hoàn hảo của Log Return
Log return giải quyết triệt để vấn đề này nhờ vào tính chất của hàm Logarit. Hãy thực hiện lại phép tính trên theo công thức (i.7):
- Kịch bản lỗ: $\log \left( \frac{50}{100} \right) \approx -0.693 $
- Kịch bản hồi phục: $\log \left( \frac{100}{50} \right) \approx +0.693$
Bạn có thể thấy, hai con số này có độ lớn tuyệt đối hoàn toàn bằng nhau, chỉ khác dấu. Nếu bạn lấy trung bình cộng của chúng: \(\frac{-0.693 + 0.693}{2} = 0\). Kết quả trung bình bằng $0$ phản ánh chính xác trạng thái tài khoản đang hòa vốn của bạn.
Một cách trực quan, biểu đồ bên trái minh họa kịch bản “về bờ” kinh điển khi giá tài sản giảm từ $100$ xuống $50$ và tăng lại từ $50$ lên $100$. Bạn sẽ thấy cột Simple Return bị lệch hẳn đi (một bên ngắn $-0.5$, một bên dài vọt lên $+1.0$). Trong khi đó, cột Log Return trông cực kỳ cân đối.
Biểu đồ bên phải cho thấy mức lợi suất cần thiết để hồi vốn khi mức thua lỗ ngày càng lớn. Đường màu vàng là một lời cảnh báo trực quan về rủi ro: “Càng để lỗ sâu, con đường về bờ của bạn không chỉ xa hơn mà còn dốc hơn gấp nhiều lần.” Bạn có thể thấy nó cao vút lên khi mức lỗ tiến gần tới $100\%$. Điều này khiến lợi suất thông thường trở nên rất bất ổn trong các mô hình toán học khi có biến động mạnh.
Khi bắt tay vào mô hình hóa, việc dữ liệu đối xứng sẽ giúp giải thích tại sao chúng ta có thể dùng phân phối chuẩn (normal distribution) – vốn là một hình chuông đối xứng hoàn hảo – để mô phỏng các biến động giá. Log return giúp các mô hình tài chính không bị đánh lừa bởi sự tăng giảm không đồng nhất của lợi suất phần trăm thông thường.
3.3. Tính xấp xỉ (Approximation)
Trong tài chính định lượng, chúng ta thường làm việc với dữ liệu theo ngày hoặc theo giờ nơi biến động giá thường rất nhỏ. Đây chính là lúc “phép màu” của toán học xuất hiện: lợi suất Logarit và lợi suất thông thường gần như bằng nhau.
\[\log(1+x) \approx x \tag{i.9}\]Khi $x$ tiến đến $0$, lợi suất Logarit tiến đến lợi suất thông thường. Cách dễ nhất để hình dung là nhìn vào đồ thị hàm số. Tại điểm gốc tọa độ (nơi lợi suất bằng $0$), đường thẳng $f(x)=x$ chính là đường tiếp tuyến hoàn hảo của đường cong $f(x)=\log(1+x)$.
Phép xấp xỉ $\ln(1+r) \approx r$ cực kỳ hiệu quả khi biến động nhỏ ($r \to 0$). Tuy nhiên, khi lợi suất càng lớn, sai số càng tăng do tính chất cong (concavity) của hàm Logarit khiến nó lệch xuống phía dưới đường thẳng $y=x$ (Hình 4 bên trái). Sai số sẽ phình to nhanh chóng khi thị trường có những biến động cực lớn về cả hai phía như tăng kịch trần hay giảm sập sàn (Hình 4 bên phải).
| Lợi suất thông thường ($rt$) | Lợi suất Logarit ($zt$) | Sai số |
|---|---|---|
| $1\% (0.01)$ | $0.00995$ | $0.00005$ (Rất nhỏ) |
| $5\% (0.05)$ | $0.04879$ | $0.00121$ (Trung bình) |
| $20\% (0.20)$ | $0.18232$ | $0.01768$ (Đáng kể) |
| $50\% (0.50)$ | $0.40547$ | $0.09453$ (Lớn) |
| $90\% (0.90)$ | $0.64185$ | $0.25814$ (Rất Lớn) |
Về mặt toán học, chúng ta sử dụng khai triển Taylor (Taylor expansion) để chứng minh tính chất này. Giả sử chúng ta xét hàm số $f(x)$ tại một điểm $a$ bất kỳ:
\[f(x) \approx f(a) + f'(a)(x-a) \tag{i.10}\]Để áp dụng vào hàm $f(x)=\log(1+x)$, ta cần tính đạo hàm $f’(x)$ trước tiên. Sử dụng quy tắc đạo hàm hàm hợp $\left( \log(u) \right)’ = \frac{u’}{u}$ với $u = 1+x$ và $u’ = 1$, ta có \(f'(x) = \frac{1}{1+x}\). Thay vào công thức (i.10):
\[\log(1+x) \approx \log(1+a) + \frac{1}{1+a}(x-a) \tag{i.11}\]Khi xét tại gốc tọa độ ($a=0$):
\[\log(1+x) \approx \log(1) + \frac{1}{1+0}(x-0) = x \tag{i.12}\]Lưu ý rằng điều này chỉ áp dụng cho Logarit tự nhiên ($\ln$). Nếu sử dụng cơ số $b$ khác, đạo hàm sẽ phải là \(f'(a) = \frac{1}{\ln(b)(1+a)}\).
Như vây lợi suất Logarit tự nhiên là một phép xấp xỉ tốt cho lợi suất thông thường khi giá trị lợi suất gần bằng 0. Đối với các nhà giao dịch tần suất cao hoặc đối với dữ liệu hàng ngày, sự khác biệt này là không đáng kể. Tính xấp xỉ này cho phép chúng ta sử dụng các công cụ toán học mạnh mẽ của Logarit (như tính cộng dồn và tính đối xứng) mà vẫn giữ được bản chất kinh tế của lợi suất thông thường.
4. Tóm tắt và thảo luận
Hy vọng qua bài viết này, các bạn đã nắm được “vũ khí” cơ bản đầu tiên trong hành trình chinh phục Tài chính định lượng. Dưới đây là những điểm quan trọng bạn cần nhớ:
-
Lợi suất vs. giá : Luôn sử dụng lợi suất (return) thay vì giá tuyệt đối (price) để so sánh hiệu quả giữa các tài sản khác nhau trên cùng một hệ quy chiếu.
-
Sức mạnh của tích lũy: Hiểu rõ sự khác biệt giữa chiến lược lãi kép (compounding) – nhân dồn lợi suất và chiến lược tái cân bằng (rebalancing) – cộng dồn lợi suất đơn để đánh giá đúng sự tăng trưởng của danh mục đầu tư qua thời gian.
- Ưu thế tuyệt đối của log return:
- Tính toán tinh gọn: Biến các phép tính nhân dồn phức tạp thành phép cộng đơn giản.
- Đối xứng hoàn hảo: Loại bỏ hiện tượng độ lệch (bias) giúp các mô hình thống kê phản ánh chính xác trạng thái hòa vốn của tài khoản.
- Xấp xỉ Taylor: Trong điều kiện thị trường bình thường (biến động nhỏ), log return và return có thể coi là một, giúp đơn giản hóa các mô hình toán học mà không làm mất đi bản chất kinh tế.
-
Thực hành Python
market_data.zip
- Thực hành Excel
Excel Workbook
Nếu bạn đã nắm vững cách log return hoạt động và hiểu được tại sao chúng ta chấp nhận những sai số nhỏ để đổi lấy sự thuận tiện trong tính toán, bạn đã sẵn sàng cho những thử thách tiếp theo. Đây là bước đệm không thể thiếu để chúng ta bước vào thế giới của mô hình Black-Scholes và các kỹ thuật quản trị rủi ro hiện đại.