Mục lục bài viết
- Bằng chứng và phạm vi
- Hình minh họa
- Quy trình
- Một nến mang toàn bộ dấu của close
- Định nghĩa tính toán và chuẩn hóa
- Phân kỳ phải dùng cùng các mốc giá
- Tính tay và một phản ví dụ
- Bộ lọc breakout có thể kiểm thử
- Tách thông tin của giá khỏi thông tin của volume
- Sai lầm thường gặp
- Checklist thực hành
- Câu hỏi thường gặp
- Nguồn nghiên cứu
Bằng chứng và phạm vi
Fidelity cung cấp công thức và cách diễn giải thông dụng; tài liệu Pine xác nhận OBV là chỉ báo có sẵn. Các nguồn này không xác nhận lợi nhuận của bộ lọc 20 nến hay divergence dưới đây. [1] [2]
Quy trình thực hành
- Chuẩn hóa dữ liệuClose và volume cùng feed, cùng corporate-action convention.
- Tính OBVCộng/trừ theo close-to-close; giá không đổi giữ nguyên.
- Xác nhận pivotNếu dùng divergence, đợi cả hai pivot đã biết.
- Chờ trigger giáBreakout hoặc neckline được xác nhận sau candidate.
- So đối chứngPrice-only, đếm nến và OBV giữ cùng execution.
Một nến mang toàn bộ dấu của close
Quy tắc OBV chỉ nhìn dấu close-to-close. Nến tăng 0,01 và nến tăng 5 đều cộng toàn bộ volume, nếu volume bằng nhau thì đóng góp bằng nhau. [1] Vì vậy OBV đo cách khối lượng phân bố giữa các kỳ tăng/giảm theo định nghĩa đó, không đo cường độ lợi suất.
Giá trị khởi đầu có thể là 0 hoặc một quy ước khác. So sánh OBV tuyệt đối giữa hai mã hoặc hai lịch sử bắt đầu khác nhau không có ý nghĩa trực tiếp. Nên dùng thay đổi, slope hoặc vị trí tương đối trong cửa sổ. Một giao dịch luôn có người mua và người bán; tên on-balance không biến volume thành tiền chảy ròng vào tài sản.
Định nghĩa tính toán và chuẩn hóa
Để so các mã, có thể chuẩn hóa thay đổi OBV trong 20 nến bằng tổng volume 20 nến. Feature F khi mẫu nền dương nằm trong khoảng −1 đến 1. Đây là lựa chọn nghiên cứu mới, không phải giá trị OBV nguyên bản. Các nến close không đổi vẫn nằm trong mẫu số, còn tử số của chúng bằng 0.
obv[0] = 0
for t in 1..last_closed_bar:
if C[t] > C[t-1]: obv[t] = obv[t-1] + V[t]
elif C[t] < C[t-1]: obv[t] = obv[t-1] - V[t]
else: obv[t] = obv[t-1]
if t >= 20 and valid_full_window(t,21) and sum(V[t-19:t+1]) > 0:
f = (obv[t]-obv[t-20]) / sum(V[t-19:t+1])
else: f = NA
Phân kỳ phải dùng cùng các mốc giá
Lấy hai đáy giá đã xác nhận p1 và p2; kiểm tra low2 thấp hơn low1 trong khi OBV tại đúng hai timestamp đó cao hơn. Candidate chỉ tồn tại từ confirmed_at của p2. Không tự chọn một đáy OBV khác vì nhìn đẹp hơn; nếu cho phép lệch thời gian phải định sẵn cửa sổ ghép và quy tắc tie-break.
Phân kỳ là một đặc điểm, chưa là trigger mua. Có thể thử yêu cầu close vượt đỉnh nhịp hồi giữa hai đáy sau khi p2 đã biết. Nếu mức đó bị vượt trước thời điểm xác nhận p2 thì ghi missed/expired theo cấu hình; không gắn một lệnh quá khứ. Slope và divergence là hai feature khác nhau, không ép thành một nhãn chung.
Tính tay và một phản ví dụ
Giả sử closes 100, 101, 100, 100, 102, 101; volume từ nến thứ hai là 10, 8, 12, 20, 9. OBV bắt đầu 0 sẽ thành 0, 10, 2, 2, 22, 13. Phiên close không đổi có volume 12 nhưng OBV không đổi. Biểu đồ trong bài dùng đúng chuỗi này.
Phản ví dụ: giá giảm sâu 101 xuống 95 với volume 10, rồi tăng rất nhẹ 95 lên 95,01 với volume 100. OBV tăng ròng 90 dù tài sản vẫn thấp hơn ban đầu gần 6%. Nếu thấy OBV lên rồi kết luận lực mua đã khôi phục toàn bộ mức giá, ta đã suy ra điều công thức không đo.
Một lần chia tách cổ phiếu làm close giảm cơ học nếu feed chưa điều chỉnh; OBV sẽ trừ volume dù đó không phải biến động giao dịch tương ứng. Quy tắc điều chỉnh giá và volume phải đồng bộ, có phiên bản và kiểm tra quanh ngày sự kiện.
Bộ lọc breakout có thể kiểm thử
Baseline đề xuất: mức Q là high lớn nhất của 20 nến trước, close hiện tại vượt Q cộng buffer ATR. Nhánh OBV yêu cầu F > 0; nhánh khác yêu cầu OBV vượt cực đại 20 nến trước. Không thử hàng chục ngưỡng rồi chỉ báo nhánh đẹp nhất. Lưu candidate giá trước khi xét OBV để còn nhóm đối chứng.
Entry từ sự kiện khả thi sau nến xác nhận. Stop nằm dưới đáy retest hoặc đáy cấu trúc được chọn trước; thoát khi stop, target hoặc time-stop theo cùng một quy tắc của cả hai nhánh. OBV đổi dấu không tự cho phép nới stop. Cổ phiếu short cần availability và borrow; phí này có thể khác mạnh giữa các mã.
Tách thông tin của giá khỏi thông tin của volume
So OBV với một biến chỉ đếm số nến tăng trừ nến giảm. Nếu hai biến có kết quả tương tự, phần volume có thể chưa thêm nhiều. Thử cả raw OBV change và feature chuẩn hóa, giữ chung universe. Kiểm tra độ nhạy khi vài phiên volume cực lớn rời cửa sổ.
Đánh giá ngoài mẫu theo năm và theo thanh khoản, có spread/slippage. Với crypto, xác minh nguồn volume và venue; nghiên cứu NBER cho thấy không nên mặc nhiên tin mọi volume báo cáo, nhưng không cho phép kết luận mọi sàn đều có cùng mức sai lệch. [3] Báo expectancy ròng, số cơ hội, drawdown, không chỉ hình phân kỳ thành công.
Sai lầm thường gặp
Nhầm nến xanh với close tăng
Open không tham gia dấu OBV chuẩn; dùng close>open tạo chỉ báo khác.
Reset chuỗi rồi so mức tuyệt đối
Mốc khởi đầu làm đường dịch lên xuống nhưng không tạo tín hiệu kinh tế.
Phân kỳ hồi tố
Hai pivot chỉ được ghép sau thời điểm xác nhận; đẹp trên chart không bảo đảm dùng được lúc đó.
Checklist trước khi dùng phương pháp
Tự đánh dấu khi đã kiểm tra trên dữ liệu của bạn. Trạng thái lưu trong trình duyệt này; đây không phải chứng nhận chiến lược có lãi.
Câu hỏi thường gặp
OBV có thay CVD được không?
Không. OBV gán dấu cho toàn nến bằng close; CVD cần volume phân loại phía chủ động theo feed.
OBV đi lên thì giá sẽ tăng?
Đó là giả thuyết cần kiểm định, không phải hệ quả toán học. Giá có thể giảm sâu rồi hồi nhỏ với volume cao.
Nguồn nghiên cứu
Các nguồn dưới đây hỗ trợ phần định nghĩa hoặc bằng chứng được ghi bên cạnh. Mã giả, ví dụ minh họa và tham số đề xuất trong bài cần được kiểm định riêng.
- On Balance VolumeFidelity. Công thức OBV và diễn giải phân kỳ; không có backtest cho biến thể đề xuất. Đối chiếu: .
- Built-in functions and variables for popular indicatorsTradingView. Tài liệu sản phẩm xác nhận OBV/MFI trong Pine, không phải bằng chứng lợi nhuận. Đối chiếu: .
- Crypto Wash TradingNBER. Thông tin nghiên cứu về chất lượng volume trong mẫu sàn lịch sử; không suy rộng tỷ lệ cho tất cả sàn hiện nay. Đối chiếu: .
Đọc tiếp theo phương pháp
Lưu ý rủi ro
Nội dung phục vụ giáo dục và thiết kế nghiên cứu, không phải lời khuyên tài chính. Backtest là mô phỏng lịch sử, không bảo đảm hiệu quả tương lai và không đặt lệnh giao dịch thật. Các phương pháp trong thư viện không mặc nhiên là tính năng đã có trong ứng dụng. Xem phương pháp tính và trung tâm học.
Kiểm tra quy tắc trước khi dùng vốn thật
Đối chiếu khả năng hỗ trợ của ứng dụng, dữ liệu và từng giao dịch mô phỏng; các detector nâng cao có thể cần triển khai riêng.
Tải Backtest trên App Store