Mục lục bài viết
- Bằng chứng và phạm vi
- Hình minh họa
- Quy trình
- Volume quyết định chọn cổ phiếu, giá quyết định hướng
- Tách cấu hình nguồn và đặc tả triển khai
- Máy trạng thái ngăn lệnh hồi tố
- Rủi ro theo vốn phân bổ khác rủi ro toàn tài khoản
- Ví dụ thành công và phá biên thất bại
- Đọc kết quả công khai theo đúng phạm vi
- 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
Paper 2016–2023 báo tổng +1.637%, IRR 41,6%, Sharpe 2,81, MDD 12%; commission $0,0035/cổ phiếu, không có mô hình slippage riêng. Đây là kết quả tác giả, không phải backtest mới hay tài khoản đã kiểm toán. [1]
Quy trình thực hành
- Chuẩn bịUniverse và lịch sử đều có sẵn trước phiên.
- Đóng vùng mởNhận đủ 5 phút và ghi available_at.
- Xếp RVOLĐóng băng top20, hướng và ngân sách.
- Gửi stop-entryLệnh bắt đầu sau xử lý; ghi mọi từ chối.
- Bảo vệ và đóngStop theo fill; thanh lý theo lịch phiên.
Volume quyết định chọn cổ phiếu, giá quyết định hướng
Tại mở cửa, nhiều cổ phiếu cùng tạo một đoạn tăng hoặc giảm ngắn. Giả thuyết nghiên cứu là một cú phá biên có ý nghĩa khác khi hoạt động giao dịch vượt nền thông thường. RVOL không xác định phe mua hay bán: mọi giao dịch đã khớp có hai phía. Hướng giao dịch phải đến từ giá, còn volume trả lời hoạt động hiện tại bất thường đến mức nào.
So volume 09:30–09:35 với volume cả phiên sẽ tạo sai đơn vị. Mẫu số đúng cho câu hỏi này là các vùng 09:30–09:35 của những phiên trước. TradingView phân biệt volume tích lũy và volume tại thời điểm; cần khóa một cách tính để không trộn hai loại. [3]
Một mã RVOL 4 không mặc nhiên tốt gấp bốn mã RVOL 1. Nó có thể đang phản ứng tin mạnh, nhưng cũng có thể spread lớn, tạm ngừng giao dịch hoặc nguồn volume sai. Để đo lợi thế chọn mã, phải giữ nguyên quy tắc giá và kiểm tra nhánh không dùng RVOL.
Tách cấu hình nguồn và đặc tả triển khai
Cấu hình tham chiếu: giá mở >$5, ADV14≥1 triệu, ATR14>$0,50; top20 RVOL5m≥1 với nền 14 phiên. Nến đầu xanh mua phá high, đỏ bán phá low; doji bỏ. Stop cách fill 0,1ATR, đóng cuối phiên; risk 1% vốn phân bổ, leverage≤4×. [1]
Phần còn lại là đặc tả đề xuất để làm quy tắc có thể kiểm tra. Lịch phiên dùng múi giờ America/New_York và lịch sàn, không cộng cố định số giờ UTC. Mã thiếu lịch sử không được tự điền volume bằng số 0. Nếu dữ liệu mở cửa đến muộn, thời điểm sẵn sàng phải phản ánh độ trễ thật.
Sau khi nhận đủ dữ liệu, tạo snapshot gồm universe, high, low, open, close, ATR, 14 mẫu volume và thứ hạng. Sắp hòa theo mã định danh ổn định. Không bổ sung mã vào top20 sau khi đã thấy breakout của nó. Nếu chỉ có 12 mã hợp lệ, cách giữ tiền mặt hoặc chia lại vốn là tham số phải định trước, không lựa chọn theo kết quả phiên.
Máy trạng thái ngăn lệnh hồi tố
Lệnh mới chỉ được kích hoạt sau thời điểm hoàn tất lựa chọn cộng độ trễ xử lý và gửi lệnh. Một lần vượt high xảy ra trước khi lệnh tồn tại không được tính là fill. Nếu giá đã vượt trigger lúc gửi, stop-market có thể thực thi ngay với giá đang có; không được gán giá trigger cũ.
Stop bảo vệ được tính từ giá khớp thực tế. Với partial fill, engine cần cập nhật lượng bảo vệ theo phần đã khớp. Thiếu borrow hoặc broker từ chối là một kết quả của hệ thống cần ghi lại, không âm thầm loại khỏi mẫu.
on_opening_range_ready(session):
snapshot = freeze_available_data(session)
candidates = rank_eligible_by_rvol(snapshot)
selected = candidates[:20]
for asset in selected:
side = sign(asset.or_close - asset.or_open)
if side == 0: continue
trigger = asset.or_high if side > 0 else asset.or_low
submit_stop_after_processing_delay(asset, side, trigger)
on_entry_fill(fill):
stop_distance = 0.1 * frozen_daily_atr[fill.asset]
protective_stop = fill.price - fill.side * stop_distance
protect_filled_quantity(fill, protective_stop)
on_session_liquidation_deadline():
cancel_pending_entries()
close_remaining_positions()
Rủi ro theo vốn phân bổ khác rủi ro toàn tài khoản
Ví dụ thiết kế minh họa: tài khoản $100.000 chia thành 20 ngân sách vốn, mỗi ngân sách $5.000. Risk 1% của một ngân sách là $50; nếu nhầm thành 1% toàn tài khoản, risk mỗi mã tăng thành $1.000. Hai hệ thống khác nhau 20 lần trước cả đòn bẩy.
Với stop-distance $0,20 và chưa tính chi phí, ngân sách $50 cho 250 cổ phiếu. Giá $50 cần notional $12.500, tức vượt phần tiền mặt $5.000. Bởi vậy size thực tế phải lấy nhỏ nhất giữa giới hạn risk, notional, khả năng vay và giới hạn tổng danh mục. Không suy luận rằng cap 4× tự động cho phép mọi lệnh riêng lẻ.
Một kiểm định triển khai nên báo cả risk dự kiến khi mọi stop được khớp đúng và kịch bản gap/spread mở rộng. Các cổ phiếu cùng ngành có thể đồng thời stop; chia nhiều mã không đồng nghĩa các rủi ro độc lập.
Ví dụ thành công và phá biên thất bại
Dữ liệu tự tạo: vùng mở cửa O=50, H=50,30, L=49,90, C=50,20; volume 600.000 so nền 200.000 cho RVOL=3. ATR phiên trước bằng 2. Sau khi snapshot sẵn sàng, buy-stop 50,30 khớp tại 50,34; stop là 50,14. Đóng cuối phiên 51,14 tạo lợi nhuận giá $0,80, tương đương 4R trước chi phí với R=$0,20/cổ phiếu.
Cùng điều kiện đầu nhưng giá đảo và stop khớp 50,10: lỗ $0,24, tức 1,2R trước phí. Không được ép thành −1R chỉ vì stop đã đặt ở 50,14. Nếu volume mở cửa bị sửa từ 600.000 xuống 150.000 sau phiên, bản nghiên cứu thời gian thực phải lưu giá trị đã nhận và bản sửa riêng.
Trường hợp khó hơn là một nến chứa cả trigger và stop. OHLC không cho biết thứ tự. Cần dữ liệu nhỏ hơn hoặc báo hai biên giả định; tùy tiện chọn thứ tự thắng sẽ biến sai số dữ liệu thành lợi nhuận.
Đọc kết quả công khai theo đúng phạm vi
Bản QuantConnect công khai chỉ báo năm 2016, đổi universe thành 1.000 mã; Sharpe 2,396. Tác giả cũng cảnh báo bản Python ban đầu khác C#. [2] Đây là đầu mối tái lập hữu ích, không phải xác nhận toàn bộ giai đoạn tám năm.
Nhãn IRR trong bảng nguồn phải giữ nguyên. Alpha là hệ số hồi quy, không thay thế CAGR. Không suy từ một hit ratio danh mục sang tỷ lệ thắng từng lệnh nếu nguồn không xác định mẫu số. Khi so bản tái lập, hãy so danh sách tín hiệu trước, rồi mới so equity.
Thiết kế kiểm định đề xuất: A là ORB giá thuần; B thêm điều kiện RVOL; C thêm xếp hạng top20. Giữ risk và tổng exposure so sánh được, báo số cơ hội bị loại, số lệnh khớp và chi phí theo thanh khoản. Chạy tập thời gian đã khóa với spread thực tế, độ trễ và stop kích hoạt ngay khi có fill.
Sai lầm thường gặp
Dùng dữ liệu cuối ngày để xếp hạng mở cửa
Volume cả phiên chưa có tại 09:35; xếp lại bằng thông tin đó gây nhìn trước.
Stop hẹp nhưng chi phí cố định thấp
Spread và trượt vài cent có thể chiếm phần lớn R. Báo chi phí theo đơn vị R của từng lệnh.
Backtest trì hoãn stop bảo vệ
Stop được tạo một nến sau fill có thể bỏ qua cú đảo ngay lập tức. Mô phỏng sự kiện entry→protect theo độ trễ thật.
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
RVOL cao có nghĩa dòng tiền thông minh đang mua?
Không. RVOL đo bất thường về hoạt động khớp; để kết luận hướng hoặc danh tính cần loại dữ liệu khác.
Có thể đổi vùng mở cửa thành 15 phút?
Có thể nghiên cứu như một biến thể riêng. Cần đổi mẫu số volume về đúng 15 phút và tính việc vào trễ hơn, stop, phí và số lần thử.
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.
- A Profitable Day Trading Strategy For The U.S. Equity MarketZarattini, Barbon, Aziz — 16/02/2024. Đã đọc PDF; bảng 2 ở trang PDF 17, số in 16. Kết quả theo giả định tác giả, chưa chạy lại. Đối chiếu: .
- Opening Range Breakout for Stocks in PlayDerek Melchin — QuantConnect. Đọc bài, mã minh họa và bình luận về khác biệt triển khai; không chạy mã. Đối chiếu: .
- Relative Volume at TimeTradingView. Tài liệu định nghĩa cách so volume theo thời điểm; không chứng minh ORB có lãi. Đố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