Type/to search
2
Follow
484
Followers
Phân bổ trọng số động đa tài sản RWA trên thị trường tiền mã hóa: Chiến lược cân bằng rủi ro
Discussions
Created 2026-04-08 16:37:16  Updated 2026-04-20 18:13:03
 0
 206

img

Thị trường crypto gần đây không mấy khả quan. BTC giảm từ đỉnh, altcoin còn thê thảm hơn, nhiều người bắt đầu đứng ngoài quan sát, thậm chí rời khỏi thị trường. Nhưng ngay trong khoảng thời gian này, một điều khác đã âm thầm nóng lên – RWA, tức là token hóa tài sản thế giới thực. Vàng, cổ phiếu Mỹ, dầu thô – những tài sản của thị trường truyền thống này bắt đầu xuất hiện dưới dạng hợp đồng trên các sàn giao dịch crypto. Các sàn lớn lần lượt niêm yết các sản phẩm như SPY (đại diện cho ETF S&P 500), XAU (vàng), CL (dầu thô), cùng với BTC vốn đã có sẵn, một môi trường giao dịch đa tài sản bao gồm cổ phiếu Mỹ, vàng, dầu thô và tiền điện tử lần đầu tiên được hình thành trên chuỗi.

Nhìn thấy cấu hình này, một ý tưởng chợt lóe lên trong đầu: Trong tài chính truyền thống có một khái niệm rất kinh điển, gọi là Risk Parity (cân bằng rủi ro). Nói một cách đơn giản là – đừng bỏ tất cả trứng vào một giỏ, và lượng trứng trong mỗi giỏ được quyết định bởi mức độ nguy hiểm của giỏ đó. Logic này đã được sử dụng trong giới tài chính truyền thống hàng chục năm. Trong thị trường gấu này, mọi người đều đang tìm cách tồn tại mà không phụ thuộc vào một tài sản duy nhất. Giờ đây, thị trường crypto cuối cùng cũng có hợp đồng cho những tài sản này, vì vậy tôi bắt tay vào thử nghiệm, áp dụng logic này.


Giải thích rõ ràng về Risk Parity trước khi xem xét tiếp

Trước khi nói đến cách thực hiện cụ thể, cần phải giải thích rõ bốn chữ "Risk Parity" (Cân bằng rủi ro), nếu không thì logic phía sau sẽ khó theo dõi.

Người bình thường phân bổ tài sản có thể nghĩ: tôi chia đều tiền thành bốn phần, mỗi tài sản 25%. Nghe có vẻ cân bằng, nhưng vấn đề là BTC có thể biến động 10% một ngày, trong khi vàng có thể chỉ dao động 0,5% một ngày. Cùng một vị thế 25%, rủi ro mà BTC mang lại cho bạn gấp hai mươi lần vàng. Bề ngoài có vẻ bốn tài sản được chia đều, nhưng thực tế số phận của danh mục gần như hoàn toàn do BTC quyết định, ba tài sản còn lại chỉ là phụ họa.

Cách làm của Risk Parity là suy nghĩ ngược lại: không phải chia đều vốn, mà là chia đều rủi ro. BTC biến động mạnh, thì phân bổ ít hơn; vàng ổn định, thì phân bổ nhiều hơn – nhưng đây chỉ là bước đầu tiên. Quan trọng hơn, các tài sản không độc lập với nhau, BTC và cổ phiếu Mỹ có thể cùng giảm trong một số điều kiện thị trường. Nếu hai tài sản có tương quan cao cùng chiều, dù biến động riêng lẻ có khác biệt lớn, việc cân bằng rủi ro của chúng cũng ít ý nghĩa. Risk Parity thực sự cần xem xét đồng thời biến động của từng tài sản và tương quan của nó với các tài sản khác, sử dụng ma trận hiệp phương sai để đo lường đóng góp biên của mỗi tài sản vào rủi ro tổng thể của danh mục, cuối cùng làm cho đóng góp rủi ro của mỗi tài sản xấp xỉ bằng nhau. Lợi ích của logic này là sẽ không bị một tài sản nào đó sụp đổ đột ngột làm hỏng toàn bộ danh mục.

img

Chọn tài sản trước, đa dạng hóa mới có ý nghĩa

Muốn thực hiện Risk Parity, việc đầu tiên là chọn tài sản để đưa vào. Nếu chọn tài sản không đúng, tính toán sau này dù có tỉ mỉ cũng vô ích.

Nhóm tài sản được chọn gồm SPY, XAU, CL, BTC. Việc chọn bốn tài sản này có logic – biến động của chúng thường không hoàn toàn đồng bộ. Khi kinh tế tốt, cổ phiếu tăng; khi tâm lý trú ẩn an toàn lên cao, vàng tăng; khi kỳ vọng lạm phát cao, dầu và vàng đều tăng; thị trường crypto đôi khi cùng chiều với cổ phiếu, đôi khi lại hoàn toàn tách rời. Chính vì tương quan giữa chúng không cao, nên đặt chúng cùng nhau mới có ý nghĩa phân tán rủi ro. Nếu bốn tài sản ngày nào cũng cùng lên cùng xuống, đa dạng hóa chỉ là ảo giác, không phương pháp nào cứu được bạn.

Sau khi chọn tài sản xong, vấn đề tiếp theo là: mỗi tài sản nên được phân bổ bao nhiêu? Đây mới là điều mà Risk Parity thực sự cần tính toán.

img

Cách tính mỗi tài sản nên được phân bổ bao nhiêu

Logic tính toán của chiến lược được chia thành hai bước.

Bước đầu tiên, lấy dữ liệu nến của bốn tài sản và căn chỉnh theo dấu thời gian. Chiến lược sử dụng nến 1 giờ (PERIOD_H1) làm đầu vào dữ liệu. Bước này tưởng chừng đơn giản, nhưng thực tế các sản phẩm hợp đồng RWA đôi khi thiếu dữ liệu. Nếu tại một thời điểm nào đó SPY không có báo giá, thì dữ liệu của thời điểm đó sẽ bị loại bỏ toàn bộ hàng, chỉ giữ lại các thời điểm mà cả bốn tài sản đều có báo giá đồng thời, rồi mới thực hiện tính toán tiếp theo.

javascript
for (var k = 0; k < keys.length; k++) { var row = timeMap[keys[k]], ok = true; for (var i = 0; i < LABELS.length; i++) { if (row[LABELS[i]] === undefined) { ok = false; break; } } if (ok) timestamps.push(parseInt(keys[k])); }

Sau khi dữ liệu được căn chỉnh, chuyển đổi chuỗi giá đóng cửa thành lợi suất logarit, tức là ln(giá hiện tại / giá kỳ trước). Sử dụng lợi suất logarit thay vì % thay đổi đơn giản, vì nó có tính cộng dồn theo thời gian – cộng dồn nhiều kỳ trực tiếp bằng tổng lợi suất logarit, xử lý thuận tiện hơn; ngoài ra, dưới giả định phổ biến rằng giá tài sản tuân theo chuyển động Brown hình học, lợi suất logarit tuân theo phân phối chuẩn, tương thích với khung tính toán ma trận hiệp phương sai tiếp theo. Cần lưu ý rằng, lợi suất thực tế của tài sản tiền điện tử thường có đặc điểm đuôi dày, đây là một sai lệch giả định cần chú ý; ma trận hiệp phương sai có thể đánh giá thấp rủi ro thực tế trong điều kiện thị trường cực đoan.

javascript
function calcLogReturns(prices) { var r = []; for (var i = 1; i < prices.length; i++) { var prev = prices[i - 1], cur = prices[i]; if (!prev || !cur || prev <= 0 || cur <= 0) { r.push(0); continue; } r.push(Math.log(cur / prev)); } return r; }

Bước thứ hai, sử dụng các chuỗi lợi suất này để tính ma trận hiệp phương sai. Tính trung bình hiệp phương sai lịch sử đơn thuần quá thô; ở đây sử dụng phương pháp EWMA (trung bình động có trọng số mũ) – gán trọng số cao hơn cho dữ liệu gần đây, giúp ma trận hiệp phương sai nhanh chóng cảm nhận được sự thay đổi trạng thái thị trường.

javascript
for (var t = T - 1; t >= 0; t--) { var w = Math.pow(lambda, T - 1 - t); c += w * (retMat[i][t] - means[i]) * (retMat[j][t] - means[j]); ws += w; } cov[i][j] = c / ws; cov[j][i] = cov[i][j];

lambda là hệ số suy giảm, chiến lược mặc định sử dụng EWMA_LAMBDA = 0.94, giá trị này tham khảo từ thiết lập kinh nghiệm của RiskMetrics cho dữ liệu hàng ngày. Cần lưu ý rằng 0.94 của RiskMetrics được thiết kế cho dữ liệu hàng ngày; chiến lược sử dụng dữ liệu 1 giờ, tần suất cao hơn. Nếu muốn ma trận hiệp phương sai nhạy cảm với thay đổi gần đây tương đương với mức 0.94 hàng ngày, về mặt lý thuyết cần quy đổi thành giá trị gần 1 hơn. Nhưng trong thực tế sử dụng, 0.94 ở cấp độ giờ vẫn là điểm khởi đầu chấp nhận được, đại diện cho cấu hình trọng số dữ liệu gần đây cao hơn và lịch sử suy giảm nhanh hơn, có thể điều chỉnh thêm dựa trên kết quả backtest thực tế. lambda càng gần 1, ảnh hưởng của dữ liệu lịch sử càng kéo dài, ma trận hiệp phương sai càng phản ứng chậm với thay đổi gần đây; lambda càng nhỏ, chiến lược càng nhạy cảm với thay đổi trạng thái thị trường, nhưng cũng dễ bị nhiễu ngắn hạn kích hoạt tái cân bằng không cần thiết.

Sau khi tính toán, thêm một thuật ngữ chính quy hóa trên đường chéo, hệ số được đặt bằng 0,1% của trung bình đường chéo (eps = diagMean * 0.001). Hệ số 0.001 được chọn sau khi thử nghiệm, đủ về mặt số lượng để đảm bảo ma trận xác định dương, đồng thời ảnh hưởng đến cấu trúc hiệp phương sai có thể bỏ qua. Cũng cần giải thích một sự đơn giản hóa: cách tính EWMA hiệp phương sai nghiêm ngặt nên sử dụng giá trị trung bình có trọng số để tính độ lệch, nhưng mã sử dụng giá trị trung bình số học đơn giản của toàn bộ cửa sổ nhìn lại. Trong trường hợp lợi suất trung bình gần bằng 0 (trạng thái phổ biến của lợi suất ngắn hạn tài sản tài chính), sự đơn giản hóa này có ảnh hưởng không đáng kể, nhưng trong trường hợp trung bình lệch đáng kể khỏi 0 sẽ tạo ra sai lệch nhỏ.

Có ma trận hiệp phương sai, bước tiếp theo là giải bài toán Risk Parity thực sự – tìm một bộ trọng số để đóng góp rủi ro của mỗi tài sản vào danh mục xấp xỉ bằng nhau. Trước khi bắt đầu lặp, chiến lược đã thông qua hiệp phương sai của danh mục biến động bằng nhau để hoàn thành việc xác định hướng của từng tài sản, kết quả được lưu trong mảng signs[] (+1 là long, -1 là short). Quá trình lặp sử dụng các dấu hiệu cố định đã được xác định trước này trong suốt quá trình, chỉ điều chỉnh độ lớn trọng số, không thay đổi hướng – điều này được thực hiện vì sự ổn định kỹ thuật, ngăn trọng số nhảy hướng liên tục do nhiễu số trong quá trình lặp.

Bài toán này không có lời giải dạng đóng, nên tiếp cận bằng cách lặp. Mỗi vòng tính toán đóng góp rủi ro hiện tại, giảm trọng số của tài sản có đóng góp quá lớn, tăng trọng số của tài sản có đóng góp quá nhỏ, điều chỉnh lặp lại cho đến khi hội tụ.

javascript
for (var iter = 0; iter < 2000; iter++) { var trc = riskContribs(w, scaledCov); var pv = portVol(w, scaledCov); var target = pv / n; var obj = 0; for (var i = 0; i < n; i++) { for (var j = i + 1; j < n; j++) { var d = Math.abs(trc[i]) - Math.abs(trc[j]); obj += d * d; } } if (obj < 1e-12) break; var nw = [], ns = 0; for (var i = 0; i < n; i++) { var rc = Math.abs(trc[i]); var sign = signs[i]; // 使用预判断的固定符号 var a = target / rc; var v = sign * Math.max(Math.abs(w[i]) * Math.pow(a, 0.5), 1e-6); nw.push(v); ns += Math.abs(v); } // 绝对值归一化,使各资产权重绝对值之和为1 for (var i = 0; i < n; i++) w[i] = nw[i] / ns; }

Tiêu chuẩn hội tụ là tổng bình phương chênh lệch đóng góp rủi ro của tất cả tài sản nhỏ hơn 1e-12, lúc đó được coi là đóng góp rủi ro của các tài sản đã đủ gần nhau, dừng lặp. Giới hạn số lần lặp tối đa là 2000, để tránh vòng lặp vô hạn khi ma trận hiệp phương sai bị bệnh. Trong thực tế, thường hội tụ trong vài trăm lần. Nếu đạt giới hạn trên mà vẫn chưa hội tụ, chứng tỏ dữ liệu đầu vào hoặc ma trận hiệp phương sai có vấn đề, lúc đó chiến lược sẽ giảm cấp thành long đều quyền, đảm bảo hệ thống không chạy rỗng.

Đóng góp rủi ro của mỗi tài sản được định nghĩa là trọng số của nó nhân với rủi ro cận biên, kết quả có thể âm, đại diện cho tài sản đó đang giảm biến động tổng thể của danh mục.

javascript
function riskContribs(w, cov) { var sv = matVecMul(cov, w); var pv = portVol(w, cov); var trc = []; for (var i = 0; i < w.length; i++) trc.push(w[i] * sv[i] / pv); return trc; }

Trọng số có thể âm, tức là short

Chiến lược Risk Parity tiêu chuẩn thường chỉ long, nhưng thị trường hợp đồng có thể short, vì vậy chiến lược này mở rộng, cho phép trọng số âm.

Logic xác định như sau: Đầu tiên tính một danh mục tham chiếu có biến động bằng nhau – tài sản biến động cao có trọng số thấp, tài sản biến động thấp có trọng số cao – sau đó xem hiệp phương sai giữa mỗi tài sản và danh mục tham chiếu là dương hay âm. Hiệp phương sai âm cho thấy tài sản đó có xu hướng biến động ngược chiều với toàn danh mục, short nó giúp giảm rủi ro tổng thể của danh mục, do đó trọng số được đặt âm, tương ứng với mở short trên thị trường hợp đồng.

Cần lưu ý rằng đây là một phép xấp xỉ kỹ thuật chứ không phải lời giải lý thuyết Risk Parity long-short chuẩn – Risk Parity long-short nghiêm ngặt cần dựa trên ma trận hiệp phương sai đầy đủ để thực hiện tối ưu có ràng buộc, chi phí tính toán cao hơn. Phép xấp xỉ này trong hầu hết các trạng thái thị trường đều đưa ra phán đoán hướng hợp lý, nhưng khi nhiều tài sản đồng thời có hiệp phương sai âm với danh mục tham chiếu, việc short đồng thời nhiều tài sản có thực sự giảm được rủi ro danh mục hay không cần được kiểm chứng cụ thể, không thể khái quát.

javascript
var invVols = [], sumInvVol = 0; for (var i = 0; i < n; i++) { var vol = Math.sqrt(Math.max(scaledCov[i][i], 1e-16)); invVols.push(1 / vol); sumInvVol += 1 / vol; } var eqVolWeights = []; for (var i = 0; i < n; i++) { eqVolWeights.push(invVols[i] / sumInvVol); } var covWithPortfolio = 0; for (var j = 0; j < n; j++) { covWithPortfolio += eqVolWeights[j] * scaledCov[i][j]; } var dir = covWithPortfolio < 0 ? -1 : 1; Log('[Xác định hướng]', LABELS[i], 'Hiệp phương sai với danh mục biến động bằng nhau:', _N(covWithPortfolio, 8), '→', dir < 0 ? '🔴 Short' : '🟢 Long');

Khi hướng đã được xác định, nó được lưu cố định vào mảng signs[] và không thay đổi trong suốt quá trình lặp tìm nghiệm. Vòng lặp chỉ điều chỉnh độ lớn của trọng số, không thay đổi hướng. Sau khi xác định hướng, còn một việc nữa cần xử lý: toàn bộ danh mục nên thêm bao nhiêu đòn bẩy.


Đòn bẩy không phải càng cao càng tốt, mà phải đi theo biến động

Chiến lược tích hợp cơ chế điều chỉnh đòn bẩy, mục tiêu là kiểm soát biến động tổng thể của danh mục ở mức xấp xỉ mục tiêu đã đặt. Ví dụ: bạn lái xe, tốc độ mục tiêu 60 km/h. Trên đường cao tốc, mặt đường tốt, bạn có thể đạp ga nhiều hơn; đường nội đô phức tạp, bạn thu lại. Cơ chế đòn bẩy của chiến lược tương tự – khi biến động thị trường tổng thể thấp, tăng đòn bẩy thích hợp để đưa mức rủi ro danh mục đạt mục tiêu; khi biến động thị trường cao, tự động giảm đòn bẩy, thu hẹp mức độ rủi ro.

Chiến lược sử dụng nến 1 giờ, một năm có chính xác 8760 nến, do đó hệ số năm hóa trực tiếp lấy sqrt(8760). Nếu sử dụng chu kỳ khác, hệ số này cần điều chỉnh đồng bộ: nến 15 phút tương ứng sqrt(35040), nến 4 giờ tương ứng sqrt(2190), nến ngày tương ứng sqrt(365).

javascript
function calcLeverage(w, cov) { var pv = portVol(w, cov) * Math.sqrt(8760); if (!isFinite(pv) || pv <= 0) return 1; return Math.min(TARGET_VOL / pv, MAX_LEVERAGE); }

Biến động năm hóa của danh mục chia cho biến động mục tiêu, thu được bội số đòn bẩy cần thêm, đồng thời đặt một giới hạn trên để tránh đòn bẩy mất kiểm soát trong trường hợp cực đoan. Đây không phải là theo đuổi lợi nhuận tối đa, mà là quản lý ngân sách rủi ro – dùng bao nhiêu rủi ro để đổi lấy bao nhiêu lợi nhuận đã được suy tính trước, không trôi theo thị trường.

Sau khi tính toán đòn bẩy, danh mục có thể được xây dựng. Đồng thời, chiến lược cũng sẽ tự động điều chỉnh khoảng thời gian quét vòng lặp chính dựa trên mức biến động hiện tại, biến động càng cao thì tần suất làm mới càng nhanh, biến động thấp thì giảm nhịp, giảm các tính toán không cần thiết và ma sát giao dịch.

javascript
function getAdaptiveSleep(w, cov) { var av = portVol(w, cov) * Math.sqrt(8760); if (av > 0.50) return FAST_INTERVAL; // 15 phút else if (av > 0.30) return MID_INTERVAL; // 30 phút else return SLOW_INTERVAL; // 60 phút }

Khi nào cần tái cân bằng

Thị trường biến động mỗi ngày, trọng số sẽ liên tục lệch khỏi thiết kế ban đầu. Nếu không quản lý, theo thời gian rủi ro thực tế mà danh mục chịu sẽ khác xa so với dự kiến. Chiến lược thiết lập hai điều kiện kích hoạt tái cân bằng: thứ nhất là theo thời gian, sau mỗi số giờ cố định buộc phải tính toán lại trọng số; thứ hai là khi độ lệch vượt quá mức, nếu độ lệch giữa trọng số thực tế của một tài sản và trọng số mục tiêu vượt quá ngưỡng, hoặc hướng long-short bị đảo ngược, ngay lập tức kích hoạt tái cân bằng, không chờ đến lần định kỳ tiếp theo.

Khi tính độ lệch tương đối, mẫu số là giá trị tuyệt đối của trọng số trước đó. Khi trọng số của một tài sản bị nén rất nhỏ (gần 0), độ lệch tương đối sẽ bị khuếch đại, dễ gây ra tái cân bằng thường xuyên. Chiến lược có biện pháp bảo vệ cho điều này: khi lastWeights[i] bằng 0, bỏ qua kiểm tra độ lệch, tránh kích hoạt sai do chia cho 0.

javascript
if (!lastWeights) { needRebal = true; rebalReason = 'Lần đầu xây dựng vị thế'; } else if ((now - lastTime) > REBALANCE_HOURS * 3600000) { needRebal = true; rebalReason = 'Tái cân bằng định kỳ(' + REBALANCE_HOURS + 'h)'; } else { for (var i = 0; i < weights.length; i++) { if ((weights[i] >= 0) !== (lastWeights[i] >= 0)) { needRebal = true; rebalReason = LABELS[i] + ' Đảo chiều hướng (Long ↔ Short)'; break; } if (lastWeights[i] !== 0 && Math.abs(weights[i] - lastWeights[i]) / Math.abs(lastWeights[i]) > DRIFT_THRESHOLD) { needRebal = true; rebalReason = LABELS[i] + ' Trọng số trôi vượt ngưỡng'; break; } } }

Sau khi kích hoạt tái cân bằng, chiến lược tính toán số tiền danh nghĩa mục tiêu cho mỗi tài sản, số dương đại diện cho vị thế Long, số âm đại diện cho vị thế Short, sau đó so sánh với vị thế hiện tại để quyết định tăng, giảm hay chuyển hướng. Khi chuyển hướng, trước tiên đóng vị thế ngược lại, sau đó mở hướng mới, tránh giữ đồng thời cả hai hướng Long và Short.

javascript
if (targetSide === 'long' && shortQty > 0) { exchange.CreateOrder(sym, "closesell", -1, shortQty); } if (targetSide === 'short' && longQty > 0) { exchange.CreateOrder(sym, "closebuy", -1, longQty); } if (diffQty > 0) { exchange.CreateOrder(sym, targetSide === 'long' ? "buy" : "sell", -1, diffQty); } else if (diffQty < 0) { exchange.CreateOrder(sym, targetSide === 'long' ? "closebuy" : "closesell", -1, Math.abs(diffQty)); }

Cách này vừa không giao dịch quá thường xuyên gây phí tổn lớn, vừa không để danh mục lệch khỏi thiết kế ban đầu trong thời gian dài. Trong điều kiện bình thường, cơ chế tái cân bằng đủ để ứng phó với hầu hết các biến động thị trường. Nhưng thị trường đôi khi không bình thường, vì vậy cần thêm một lớp bảo hiểm bổ sung.


Và một cơ chế ngắt mạch khẩn cấp

Ngoài tái cân bằng thông thường, chiến lược còn có cơ chế giảm vị thế khẩn cấp. Mỗi vòng lặp chính đều kiểm tra tất cả các vị thế hiện tại, so sánh với giá ghi nhận lần trước, xem biến động bất lợi của mỗi hướng là bao nhiêu. Nếu Long giảm mạnh hoặc Short tăng mạnh vượt quá 5%, chiến lược tự động giảm một nửa vị thế, trước hết kiểm soát tổn thất, không chờ đến lần tái cân bằng tiếp theo.

javascript
if (pos.side === 'long') { drop = (last - cur) / last; } else if (pos.side === 'short') { drop = (cur - last) / last; } if (drop >= EMERGENCY_DROP) { Log('🚨 Kích hoạt rủi ro khẩn cấp! [' + label + '][' + pos.side + '] Biến động bất lợi:', _N(drop * 100, 2) + '%', 'Lần trước:', _N(last, 4), '→ Giá hiện tại:', _N(cur, 4)); if (mode === 'live') emergencyReduceLive(sym, label, pos.side, EMERGENCY_REDUCE); else emergencyReducePaper(sym, label, cur, pos.side, EMERGENCY_REDUCE); }

Ở chế độ thực, gọi API sàn để đóng vị thế; ở chế độ mô phỏng, cập nhật ký quỹ và tiền mặt trong trạng thái cục bộ, giải phóng ký quỹ tương ứng theo tỷ lệ vị thế, tính lãi/lỗ hiện tại và ghi vào lịch sử giao dịch.

Có một chi tiết thiết kế cần giải thích: Sau khi kích hoạt giảm vị thế khẩn cấp, giá cơ sở sẽ không được đặt lại ngay lập tức; lần kiểm tra tiếp theo vẫn lấy giá trước khi kích hoạt làm tham chiếu. Điều này có nghĩa là trong xu hướng tài sản tiếp tục di chuyển bất lợi, cơ chế này sẽ kích hoạt nhiều lần trong mỗi vòng lặp, giảm dần vị thế cho đến khi cạn kiệt, hoặc cho đến lần tái cân bằng bình thường tiếp theo đặt lại giá cơ sở. Thiết kế này có chủ đích – trong các thị trường một chiều cực đoan, việc giảm vị thế liên tục sẽ kiểm soát tổn thất tốt hơn so với chỉ giảm một lần; nhưng tác dụng phụ là nếu giá tạm thời giảm dưới ngưỡng rồi bật tăng nhanh, có thể bỏ lỡ đà phục hồi do giảm vị thế quá mức. Trong thị trường bình thường, cơ chế này hầu như không bao giờ kích hoạt, nhưng nếu có nó, ít nhất bạn sẽ không ôm lỗ đến cùng trong một sự kiện thiên nga đen.


Nó chạy như thế nào

Sau khi chiến lược chạy trên nền tảng, bảng điều khiển sẽ hiển thị theo thời gian thực mỗi tài sản đang Long hay Short, trọng số tương ứng, đòn bẩy hiện tại, ước tính biến động hàng năm hóa của toàn bộ danh mục và ma trận tương quan giữa bốn tài sản. Lợi nhuận thả nổi trên vị thế được làm mới mỗi phút một lần, tính toán cốt lõi của chiến lược tự động chuyển đổi tần suất polling dựa trên mức biến động thị trường cao hay thấp.

Việc làm mới mỗi phút này không được thực hiện bằng đa luồng, mà bằng cách lồng một vòng lặp con trong thời gian chờ của vòng lặp chính, mỗi 1 phút đánh thức một lần để lấy giá mới nhất, cập nhật lợi nhuận thả nổi và đường cong NAV, sau khi tích lũy đủ khoảng thời gian polling của chiến lược thì thoát khỏi vòng lặp con và chuyển sang tính toán chiến lược tiếp theo. Toàn bộ chiến lược hoàn toàn đơn luồng, không có rủi ro đồng thời.

javascript
function sleepWithPnlRefresh(totalSleepMs, weights, leverage, covMatrix, corrMatrix) { var elapsed = 0; while (elapsed < totalSleepMs) { var step = Math.min(PNL_INTERVAL, totalSleepMs - elapsed); Sleep(step); elapsed += step; var prices = getTickers(); var equity = calcEquity(prices); var initCap = _G('pt_initCapital') || INIT_CAPITAL; _chart.add(0, [new Date().getTime(), equity]); LogProfit(equity - initCap, '&'); renderDashboard(weights, leverage, covMatrix, corrMatrix, prices, totalSleepMs, true); } }

Ngoài ra, chiến lược hỗ trợ chế độ mô phỏng, cho phép chạy toàn bộ logic, tinh chỉnh thông số mà không dùng vốn thật, xác nhận hành vi phù hợp với kỳ vọng trước khi đánh giá có chuyển sang chế độ thực hay không. Sau khi chạy mô phỏng với cấu hình này một thời gian, hãy xem kết quả thực tế.


Kết quả chạy mô phỏng

Trong thời gian thử nghiệm, chiến lược tạm thời có lợi nhuận tổng thể. Hướng vị thế: BTC, XAU, SPY đều Long, CL dầu thô Short. Đúng thời điểm này, tình hình Mỹ-Iran có dấu hiệu hòa dịu, rủi ro địa chính trị hạ nhiệt, giá dầu thô giảm khá rõ rệt, Short dầu là nguồn lợi nhuận chính trong giai đoạn này. Diễn biến thị trường trong thời gian này khá thuận lợi cho chiến lược, không có nghĩa là tương lai cũng vậy. Thực tế, chiến lược này còn nhiều điểm chưa rõ ràng, không trung thực nếu không nói ra.

img


Những điều chưa rõ ràng

Trong quá trình xây dựng chiến lược này, có một vài vấn đề chưa được giải quyết hoàn toàn.

Thứ nhất, thanh khoản của hợp đồng RWA kém xa BTC. SPY, XAU, CL trên chuỗi còn khá mới, độ trượt giá và độ sâu sổ lệnh là ẩn số, không cảm nhận được vấn đề này trong mô phỏng, nhưng sẽ xảy ra thực tế trong chế độ thực.

Thứ hai, chiến lược này phụ thuộc vào việc các tài sản duy trì một mức độ phân tán nhất định. Nhưng khi thị trường hoảng loạn cực đoan, tương quan giữa các tài sản rủi ro thường tăng mạnh, hiệu quả phân tán giảm đi đáng kể, đúng vào lúc bạn cần bảo vệ nhất.

Thứ ba, các tài sản truyền thống có thời gian giao dịch đóng cửa, giá hầu như không động, nhưng BTC biến động 24/7. Điều này dẫn đến ma trận hiệp phương sai đánh giá thấp mối liên kết thực tế giữa các tài sản – sau khi chứng khoán Mỹ đóng cửa, BTC vẫn tiếp tục biến động, không có dữ liệu SPY tương ứng cho giai đoạn này, khi thị trường truyền thống mở cửa, đánh giá của chiến lược về mối liên kết có thể đã bị chậm.

Thứ tư, dữ liệu lịch sử hạn chế, độ ổn định của ma trận hiệp phương sai trong chu kỳ ngắn còn nghi ngờ. Hệ số suy giảm EWMA, biến động mục tiêu, ngưỡng tái cân bằng đều là giá trị kinh nghiệm, chưa được kiểm chứng chặt chẽ. Phán đoán Short sử dụng dấu hiệu hiệp phương sai của danh mục tham chiếu biến động bằng nhau, đây là một phép xấp xỉ kỹ thuật; khi nhiều tài sản đồng thời có hiệp phương sai âm với danh mục tham chiếu, liệu việc Short đồng thời có thực sự giảm rủi ro danh mục hay không cần được kiểm chứng từng trường hợp, không thể áp dụng trực tiếp. Bản thân tài sản tiền điện tử có đặc tính đuôi dày, phân phối lợi suất thực tế lệch khỏi phân phối chuẩn, trong điều kiện thị trường cực đoan, ma trận hiệp phương sai sẽ đánh giá thấp rủi ro, đây là giả định sai lệch mà khung hiện tại phải chấp nhận.

Thứ năm, trong môi trường thực tế khi chuyển hướng, sau khi lệnh đóng vị thế được gửi, chiến lược chờ một khoảng thời gian cố định rồi tiếp tục thực hiện mở vị thế tiếp theo mà không chờ xác nhận khớp lệnh. Trong trường hợp sàn giao dịch phản hồi chậm hoặc độ trễ mạng cao, tồn tại rủi ro mở vị thế mới khi vị thế cũ chưa được đóng hoàn toàn. Tài khoản mô phỏng không liên quan đến khớp lệnh thực tế nên không nhận ra vấn đề này. Trước khi chuyển sang môi trường thực tế, cần đánh giá xem có cần điều chỉnh thời gian chờ dựa trên tốc độ phản hồi của sàn giao dịch cụ thể hay không.

Những vấn đề này không thể phát hiện chỉ bằng cách chạy thử trên tài khoản mô phỏng, mà cần mô hình hóa chi tiết hơn và suy luận lý thuyết, kiểm tra kỹ lưỡng từng giả định, mới có thể biết liệu logic này có đứng vững được trong thị trường tiền mã hóa hay không.


Kết luận

Động cơ xây dựng chiến lược này rất đơn giản: thị trường tiền mã hóa đang trong giai đoạn giá xuống, hợp đồng RWA vừa hoàn thiện bức tranh tổng thể về các lớp tài sản, tài chính truyền thống đã tích lũy hàng thập kỷ lý thuyết phân bổ tài sản. Hai điều này kết hợp với nhau, đáng để thử. Mã nguồn hoàn chỉnh, logic minh bạch, tham số có thể điều chỉnh. Nhưng suy cho cùng, đây chỉ là một điểm khởi đầu, còn rất xa mới đạt được một chiến lược phân bổ tài sản thực sự có thể vượt qua kiểm nghiệm trong môi trường thực tế. Nếu bạn có ý tưởng tốt hơn, hoan nghênh cùng nhau hoàn thiện nó.

Nội dung trên chỉ ghi lại quá trình khám phá chiến lược, không cấu thành bất kỳ lời khuyên đầu tư nào. Giao dịch hợp đồng tiềm ẩn rủi ro lớn, hiệu suất trên tài khoản mô phỏng không đại diện cho kết quả thực tế, vui lòng tìm hiểu đầy đủ rủi ro liên quan trước khi liên quan đến vốn thực.

Mã nguồn chiến lược: Chiến lược cân bằng rủi ro tài sản RWA

Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)