Mục lục bài viết

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]

Dữ liệu và thị trườngNguồn chính nghiên cứu cổ phiếu Mỹ. Áp dụng crypto, futures hoặc thị trường có phiên nghỉ là giả thuyết khác.
Khung thời gian nghiên cứuVùng mở cửa 5 phút; dữ liệu sự kiện hoặc giây để nghiên cứu khớp lệnh.
Vùng mở cửa cao nhất 50,30, giá khớp sau đó 50,34 và tiếp tục lên 51,14; stop được đặt dưới giá khớp 0,20.Mở hình kích thước đầy đủ
Dữ liệu tự tạo. Năm điểm đầu minh họa vùng mở cửa; điểm sau là các thời điểm chọn lọc, không cùng bước thời gian. Volume là nghìn cổ phiếu.

Quy trình thực hành

Sơ đồ quy trình Opening Range Breakout kết hợp RVOL: từ paper đến thuật toán có thể kiểm định
Các bước được mô tả đầy đủ bên dưới. Tại mỗi bước, dữ liệu thiếu hoặc điều kiện sai phải có lý do loại bỏ.
  1. Chuẩn bịUniverse và lịch sử đều có sẵn trước phiên.
  2. Đóng vùng mởNhận đủ 5 phút và ghi available_at.
  3. Xếp RVOLĐóng băng top20, hướng và ngân sách.
  4. Gửi stop-entryLệnh bắt đầu sau xử lý; ghi mọi từ chối.
  5. 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.

0/8 mục

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.

  1. 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: .
  2. 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: .
  3. 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