Logo FinLensFinLens Docs

Thanh khoản thoát vị thế và tương quan danh mục cổ phiếu

Hỏi AI mất bao nhiêu phiên để thoát từng vị thế theo thanh khoản thật, danh mục đang tập trung vào mã nào, beta, tương quan và mức đa dạng hoá thực sự ra sao.

Hai rủi ro ít được đo nhất của một danh mục cá nhân là thanh khoản (bán được nhanh đến đâu) và tương quan (các mã có thực sự khác nhau không). FinLens MCP có hai công cụ cho đúng hai câu đó. Chúng bổ sung cho portfolio_analyze (Sharpe, VaR, bảng tháng) và portfolio_optimize ở trang Danh mục đầu tư, và cũng như các công cụ đó, chỉ trả số liệu mô tả quá khứ.

Mất bao nhiêu phiên để thoát từng vị thế?

portfolio_liquidity so từng vị thế với giao dịch thực tế của mã. Với mỗi vị thế: giá phiên gần nhất, quy mô theo tỷ đồng và theo số cổ phiếu (quy đổi qua lại từ đầu vào), giá trị và khối lượng giao dịch bình quân adv_days phiên (ADV), vị thế bằng bao nhiêu % ADV, days_to_exit bằng giá trị vị thế chia cho ADV giá trị nhân participation_pct, số phiên trong 60 phiên gần nhất có giá trị giao dịch dưới 1/3 ADV (độ ổn định thanh khoản) và % vốn hoá. Toàn danh mục: tổng giá trị, days_to_exit lớn nhất và bình quân theo giá trị, 3 vị thế thoát chậm nhất, phân bố theo nhóm dưới 1, 1–3, 3–10 và trên 10 phiên.

Danh mục theo số cổ phiếu

Tôi giữ 100.000 HPG, 20.000 VCB và 5 tỷ đồng FPT. Với 20% giá trị giao dịch mỗi phiên, mỗi mã mất mấy phiên để thoát hết?

→ portfolio_liquidity: positions=[{ticker:'HPG', shares:100000}, {ticker:'VCB', shares:20000}, {ticker:'FPT', value_bil:5}], participation_pct=20

Vị thế lớn trên mã nhỏ

Nếu đặt 30 tỷ vào một mã thanh khoản thấp thì vị thế bằng bao nhiêu % ADV và bao nhiêu % vốn hoá? Thanh khoản mã đó có ổn định không?

→ portfolio_liquidity: value_bil=30 — đọc pct_of_adv, pct_of_market_cap, low_liquidity_sessions_60

Mỗi vị thế truyền đúng một trong value_bil (tỷ đồng) hoặc shares (số cổ phiếu); truyền cả hai hoặc không truyền gì sẽ báo lỗi. Tối đa 50 vị thế. Số liệu giả định giá không đổi và tỷ lệ tham gia cố định; công cụ không ước tính tác động giá, không tính chi phí khớp lệnh và không đặt lệnh.

Các mã trong danh mục có chạy cùng nhau không?

portfolio_correlation tính trên lợi suất ngày từ giá điều chỉnh, mọi mã dùng chung một khoảng phiên trong cửa sổ lookback (6m, 1y, 2y, 3y). Khối per_ticker cho từng mã: ngành ICB cấp 2, beta và tương quan với benchmark (VNINDEX, VN30 hoặc HNXINDEX), biến động năm hoá, mức sụt giảm lớn nhất trong kỳ. Khối matrix là ma trận tương quan Pearson đầy đủ khi tối đa 12 mã; nhiều hơn thì 10 cặp cao nhất và 5 cặp thấp nhất, luôn kèm stats (trung bình, trung vị, số cặp trên 0,7). Khối clusters gom các mã nối nhau bởi tương quan trên 0,7 kèm ngành của cụm.

Nhóm mã cùng ngành

HPG, HSG, NKG và TVN tương quan với nhau bao nhiêu trong 1 năm qua? Có phải mua 4 mã này là đặt một cửa không?

→ portfolio_correlation: tickers=['HPG','HSG','NKG','TVN'], lookback='1y' — đọc matrix và clusters

Beta so VN30

Trong FPT, VCB, MWG, GAS mã nào beta cao nhất so VN30, mã nào sụt sâu nhất từ đỉnh trong 2 năm?

→ portfolio_correlation: tickers=['FPT','VCB','MWG','GAS'], benchmark='VN30', lookback='2y'

Danh mục có tỷ trọng: đa dạng hoá thật hay giả?

Truyền weights (tỷ trọng theo mã, tổng xấp xỉ 1) thay cho tickers để nhận thêm khối portfolio: beta danh mục bằng tổng tỷ trọng nhân beta; biến động năm hoá của danh mục tỷ trọng cố định; systematic_variance_pct là phần phương sai do benchmark giải thích và idiosyncratic_variance_pct là phần còn lại; effective_n là số mã hiệu dụng bằng 1 chia tổng bình phương tỷ trọng; diversification_ratio bằng tổng tỷ trọng nhân biến động từng mã chia biến động danh mục, bằng 1 khi không có hiệu ứng đa dạng hoá; weighted_avg_pair_corr; và risk_contribution_pct trong per_ticker cho biết mỗi mã đóng góp bao nhiêu % phương sai, tổng bằng 100.

Danh mục có tỷ trọng

Danh mục 40% HPG, 30% VCB, 30% FPT: beta so VNINDEX, bao nhiêu % rủi ro do thị trường, số mã hiệu dụng và mã nào đóng góp rủi ro nhiều hơn tỷ trọng của nó?

→ portfolio_correlation: weights={'HPG':0.4,'VCB':0.3,'FPT':0.3}, benchmark='VNINDEX' — đọc portfolio và per_ticker[].risk_contribution_pct

tickers và weights loại trừ lẫn nhau. Mã không có dữ liệu hoặc thiếu lịch sử trong cửa sổ bị loại và liệt kê ở dropped_tickers; khi các mã còn lại đều có tỷ trọng 0, công cụ báo lỗi thay vì trả số vô nghĩa.

Số liệu mô tả quá khứ, không phải khuyến nghị

days_to_exit dựa trên thanh khoản đã qua với giả định giá đứng yên; thanh khoản có thể cạn đúng lúc cần bán. Tương quan và beta đo trong một cửa sổ cố định và thường tăng mạnh trong các đợt giảm chung của thị trường. Hai công cụ không mô phỏng lợi nhuận danh mục (việc đó thuộc portfolio_analyze), không đề xuất tỷ trọng (thuộc portfolio_optimize), và không phải lời khuyên đầu tư.

Bảng công cụ rủi ro danh mục

Công cụViệc gìTham số chính
portfolio_liquidityTừng vị thế so ADV: % ADV, số phiên để thoát, độ ổn định thanh khoản 60 phiên, % vốn hoá; phân bố toàn danh mục theo nhóm phiên thoátpositions (1–50, mỗi vị thế ticker + value_bil hoặc shares), participation_pct, adv_days
portfolio_correlationBeta, tương quan với benchmark, biến động, sụt giảm từng mã; ma trận tương quan, cụm trên 0,7; với weights thêm beta danh mục, phương sai hệ thống, số mã hiệu dụng, diversification_ratio, đóng góp rủi rotickers hoặc weights (2–30 mã), lookback (6m, 1y, 2y, 3y), benchmark (VNINDEX, VN30, HNXINDEX)

Bài liên quan

Câu hỏi thường gặp

Nếu cần bán hết một vị thế thì mất bao nhiêu phiên?

Công cụ portfolio_liquidity của FinLens MCP trả lời bằng days_to_exit: giá trị vị thế chia cho giá trị giao dịch bình quân adv_days phiên nhân với tỷ lệ tham gia participation_pct. Ví dụ với tỷ lệ tham gia 20%, một vị thế bằng 100% ADV cần 5 phiên. Mỗi vị thế còn có pct_of_adv, exit_bucket phân nhóm dưới 1, 1 đến 3, 3 đến 10, trên 10 phiên, low_liquidity_sessions_60 là số phiên trong 60 phiên gần nhất có giá trị giao dịch dưới một phần ba ADV, và pct_of_market_cap. Số liệu giả định giá không đổi và tỷ lệ tham gia cố định, không ước tính tác động giá hay chi phí khớp lệnh.

Danh mục của tôi nhập thế nào, theo số cổ phiếu hay theo giá trị?

Cả hai, nhưng mỗi vị thế truyền đúng một trong hai: shares là số cổ phiếu nắm giữ, value_bil là giá trị vị thế tính bằng tỷ đồng. FinLens MCP quy đổi qua lại theo giá phiên gần nhất và trả cả position_value_bil lẫn position_shares. Ví dụ hỏi trợ lý AI: tôi giữ 100.000 HPG, 20.000 VCB và 5 tỷ FPT, mỗi mã mất mấy phiên để thoát với 20% ADV. Tối đa 50 vị thế một lần; mã không có dữ liệu giao dịch gần đây được liệt kê ở missing_tickers.

Làm sao biết các cổ phiếu trong danh mục có đang chạy cùng nhau không?

Công cụ portfolio_correlation của FinLens MCP tính ma trận tương quan Pearson trên lợi suất ngày từ giá điều chỉnh của 2 đến 30 mã trong cửa sổ lookback 6 tháng tới 3 năm. Với 12 mã trở xuống trả ma trận đầy đủ, nhiều hơn thì trả 10 cặp tương quan cao nhất và 5 cặp thấp nhất, luôn kèm trung bình và trung vị tương quan cặp. Khối clusters gom các mã nối nhau bởi tương quan trên 0,7 kèm ngành của từng cụm, giúp nhận ra danh mục nhiều mã nhưng thực chất chỉ đặt vào một hai chủ đề.

Danh mục 10 mã có thực sự đa dạng hoá không?

Truyền tỷ trọng vào portfolio_correlation qua weights để nhận khối portfolio: effective_n là số mã hiệu dụng bằng 1 chia tổng bình phương tỷ trọng, 10 mã chia đều cho 10, dồn 60% vào một mã thì thấp hơn nhiều; diversification_ratio bằng tổng tỷ trọng nhân biến động từng mã chia biến động danh mục, bằng 1 khi không có hiệu ứng đa dạng hoá; systematic_variance_pct là phần phương sai do thị trường giải thích; risk_contribution_pct chỉ ra mã đóng góp rủi ro nhiều hơn tỷ trọng. FinLens MCP trả các số này như mô tả quá khứ, không phải khuyến nghị tái cơ cấu.

Beta của danh mục so với VNINDEX tính thế nào?

Trong portfolio_correlation của FinLens MCP, beta từng mã là hệ số hồi quy lợi suất ngày của mã lên lợi suất ngày của benchmark trong cùng khoảng phiên, và beta danh mục là tổng tỷ trọng nhân beta từng mã. Benchmark chọn được VNINDEX, VN30 hoặc HNXINDEX. Kết quả kèm corr_benchmark là tương quan với benchmark, annual_volatility_pct là biến động năm hoá và max_drawdown_pct là mức sụt giảm lớn nhất từ đỉnh của từng mã trong kỳ. Mọi mã dùng chung một khoảng phiên; mã thiếu lịch sử bị loại và ghi ở dropped_tickers.

Cập nhật lần cuối

Nội dung trang