24 tháng Tám, 2026 · nghiên cứu

Vì sao backtest của tôi giao dịch thường xuyên hơn chiến lược paper trading?

Vì sao backtest của tôi giao dịch thường xuyên hơn chiến lược paper trading?

Backtest thường ghi nhận giao dịch như thể tín hiệu trực tiếp biến thành một vị thế. Paper trading thêm một lệnh vào giữa. Lệnh đó có thể nằm chờ, khớp một phần, bị hủy, bị từ chối hoặc vẫn còn hiệu lực sau khi tín hiệu thay đổi. Nếu chiến lược mô phỏng bỏ qua vòng đời này, số giao dịch và mức độ phơi nhiễm của nó có thể chẳng liên quan mấy đến những gì tài khoản paper ghi nhận.

Cách khắc phục thiết thực là coi lệnh như các đối tượng tồn tại lâu dài, có trạng thái và dấu thời gian. Tín hiệu là chỉ thị thử giao dịch, chứ không phải bằng chứng rằng giao dịch đã diễn ra.

Vì sao chiến lược paper của tôi có ít giao dịch hơn backtest?

Hãy bắt đầu với những lệnh chưa bao giờ được khớp. Backtest có thể giả định mọi lệnh giới hạn đều được khớp mỗi khi thị trường chạm mức giá đặt lệnh. Trên thị trường thực, việc chạm giá không cho biết lệnh của bạn có đứng trước trong hàng đợi hay không, có đủ khối lượng giao dịch hay không, hoặc báo giá đó còn sẵn có khi lệnh đến sàn hay không.

Hãy xem xét một chiến lược đặt lệnh giới hạn mua ở mức $100 và hủy sau 30 giây. Thị trường khớp ở mức $100.00, nhưng khối lượng giao dịch tại đó rất nhỏ và các lệnh khác được ưu tiên trước. Lệnh của bạn có thể khớp một phần hoặc không khớp chút nào. Backtest dựa trên việc chạm giá ghi nhận vị thế đầy đủ. Tài khoản paper có xét đến giả định về hàng đợi có thể ghi nhận hoàn toàn không khớp.

Lệnh thị trường có kiểu sai lệch khác. Backtest có thể khớp toàn bộ khối lượng ở giá mở cửa của nến tiếp theo, trong khi paper trading từ chối khối lượng vượt giới hạn của sàn hoặc khớp thành nhiều phần khi sổ lệnh biến động. Một cây nến tóm tắt các giao dịch; nó không đảm bảo toàn bộ lệnh của bạn có thể được khớp ở cùng một mức giá.

Backtest nên xử lý thế nào khi tín hiệu thay đổi trước lúc lệnh được khớp?

Giữ lệnh cũ có hiệu lực cho đến khi trình mô phỏng nhận và xử lý lệnh hủy. Nếu tín hiệu đảo chiều khi lệnh mua đang chờ, chiến lược có thể muốn hủy lệnh đó và gửi lệnh bán. Ý định này không lập tức xóa lệnh mua. Lệnh mua vẫn có thể được khớp trong lúc yêu cầu hủy đang được xử lý, khiến tài khoản giữ vị thế mua đúng lúc tín hiệu mới báo bán khống.

Hãy mô hình hóa diễn biến theo trình tự: tín hiệu thay đổi, chiến lược gửi yêu cầu hủy, sàn xác nhận yêu cầu hoặc báo lệnh đã khớp, rồi chiến lược mới biết trạng thái cuối cùng của lệnh. Ngay cả một độ trễ cố định đơn giản cũng có thể làm lộ ra các tình huống tranh chấp mà backtest hủy lệnh tức thì che khuất.

Với mô hình đơn giản có chủ đích, độ trễ hủy 1 giây và xử lý theo sự kiện tiếp theo có thể hữu ích hơn giả định rằng việc hủy diễn ra tức thì. Độ trễ phù hợp tùy vào sàn và hệ thống; điều quan trọng là phải mô phỏng độ trễ. Nếu lệnh của bạn là lệnh thị trường không có khoảng thời gian chờ hủy, vấn đề tương tự vẫn quan trọng đối với khớp một phần và báo cáo đến trễ.

Trình mô phỏng paper trading nên ghi nhận những trạng thái lệnh nào?

Hãy dùng một máy trạng thái nhỏ và lưu lại thời điểm của từng lần chuyển trạng thái. Cách gọi cụ thể tùy từng sàn, nhưng các khác biệt cốt lõi thì không đổi:

Ghi nhận riêng khối lượng đã khớp và khối lượng yêu cầu, cùng với giá khớp và phí. Lệnh khớp một phần vừa là một giao dịch, vừa là nghĩa vụ còn hiệu lực đối với phần khối lượng còn lại. Coi lệnh chỉ đơn giản là đang mở hoặc đã xong sẽ làm mất thông tin mà chiến lược cần để xác định quy mô hành động tiếp theo.

Sự kiện lệnhThông tin chiến lược cần biếtLối tắt backtest thường dùng
Khớp một phầnKhối lượng đã khớp, khối lượng còn lại, giá trung bìnhCoi toàn bộ lệnh đã khớp ở một mức giá
Yêu cầu hủyThời điểm yêu cầu và xác nhận hủy hoặc khớp cuối cùngXóa lệnh ngay lập tức
Từ chốiLý do và liệu có thể thử lại hay khôngGiả định giao dịch được yêu cầu đã diễn ra
Hết hạnThời điểm lệnh không còn đủ điều kiện được khớpĐể lệnh mở cho đến lần giá chạm tiếp theo

Làm sao so sánh công bằng giao dịch backtest với paper trading?

Trước tiên hãy so sánh các sự kiện lệnh, sau đó đến vị thế, cuối cùng mới đến P&L. Nếu backtest khớp một lệnh mà tài khoản paper không hề khớp, chênh lệch P&L về sau là hệ quả, chứ không phải nơi cần tìm nguyên nhân.

Với mỗi lệnh dự kiến, hãy đối chiếu 2 lần chạy bằng một mã nhận diện quyết định chiến lược hoặc lệnh ổn định. Sau đó kiểm tra thời điểm gửi, giá và khối lượng yêu cầu, hiệu lực lệnh, các lần khớp, hủy, từ chối, phí và vị thế cuối cùng. Đồng thời lưu lý do mô phỏng không khớp: giá chưa chạm mức giới hạn, hàng đợi giả định phía trước chưa được giải tỏa, hoặc lệnh đã hết hạn.

Một ví dụ nhỏ sẽ làm rõ trình tự. Tín hiệu yêu cầu 10 đơn vị. Cả 2 hệ thống gửi lệnh lúc 10:00:00. Backtest giả định khớp đủ lúc 10:00:01. Paper trading khớp 4 đơn vị lúc 10:00:01, nhận yêu cầu hủy lúc 10:00:02, rồi báo khớp thêm 2 đơn vị trước khi xác nhận hủy lúc 10:00:03. So sánh chính xác là 6 đơn vị được khớp so với 10, còn 4 đã bị hủy. Gộp cả hai thành một “giao dịch” rồi lấy trung bình sẽ che khuất mức phơi nhiễm thực tế của chiến lược.

Tôi có cần mô phỏng toàn bộ sàn giao dịch để làm đúng việc này không?

Không. Có thể bắt đầu backtest với một vài giả định rõ ràng: chỉ cần giá chạm mức giới hạn là đủ hay không, cần bao nhiêu khối lượng giao dịch vượt qua mức giá để giải tỏa hàng đợi giả định phía trước, lệnh được giữ mở trong bao lâu và độ trễ hủy hoạt động thế nào. Hãy chạy chiến lược với nhiều hơn 1 thiết lập hợp lý. Nếu hiệu suất phụ thuộc vào việc mọi lệnh giới hạn đang chờ đều được khớp hoàn toàn, bạn đã hiểu thêm được điều hữu ích về mô hình.

Paper trading cũng không phải chuẩn sự thật về chất lượng khớp lệnh. Nó có thể dùng các lần khớp mô phỏng và không có hàng đợi thực. Giá trị của nó ở đây hẹp hơn: nó cho thấy chiến lược và bộ quản lý lệnh có nhất quán với nhau về khối lượng đang chờ, việc hủy, vị thế và cách thử lại khi các sự kiện lần lượt diễn ra theo thời gian hay không.

Một niềm vui nho nhỏ của công việc này: nhật ký lệnh tốt có thể biến một chênh lệch khó hiểu thành chuyện bình thường. “Lệnh con thứ 2 được khớp sau yêu cầu hủy” hữu ích hơn “paper trading có vẻ kỳ lạ”. Khi backtest và tài khoản paper không khớp nhau, hãy lần theo vòng đời lệnh trước khi chỉnh sửa tín hiệu.

paper tradingquản lý lệnhbacktestkhớp lệnhnghiên cứu chiến lược
← Tất cả bài viết