15 tháng Chín, 2026 · nghiên cứu

Mô hình trượt giá trong backtest nên cố ý sai lệch

Mô hình trượt giá trong backtest nên cố ý sai lệch

Mô hình trượt giá trung thực nhất thường là mô hình cố ý sai lệch. Backtest báo cáo một chi phí khớp lệnh chính xác duy nhất dựa trên dữ liệu lịch sử thô đang đưa ra một kết luận mà dữ liệu không thể hỗ trợ.

Nghe như thể chúng tôi đang cổ súy cho những giả định sơ sài. Thực ra ngược lại: hãy dùng một mô hình đơn giản mà bạn có thể giải thích, rồi khiến mô hình đó tự mâu thuẫn với chính nó. Nếu chiến lược chỉ hiệu quả với một ước tính khớp lệnh thuận lợi đến mức tiện lợi, thì bất định cũng là một phần của kết quả.

Vì sao ước tính trượt giá chính xác có thể gây hiểu lầm?

Giả sử bạn có các thanh OHLCV 1 phút và gửi lệnh thị trường mua 2,000 cổ phiếu. Thanh dữ liệu cho biết biên độ giá và tổng khối lượng trong một phút. Nhưng nó không cho biết giá bid và ask lúc lệnh của bạn đến, có bao nhiêu lệnh xếp trước bạn trong hàng chờ, khối lượng phân bổ ra sao trong phút đó, hay lệnh của bạn sẽ khớp bao nhiêu phần trong khối lượng ấy.

Bạn vẫn có thể gán một con số cho trượt giá. Chẳng hạn, bạn có thể giả định lệnh khớp ở giá mở cửa của thanh tiếp theo cộng một khoản chi phí cố định tính bằng điểm cơ bản, hoặc điều chỉnh chi phí theo tỷ lệ giữa quy mô lệnh và khối lượng của thanh. Đây là những phép xấp xỉ hữu ích, nhưng không phải quan sát thực tế. Báo cáo kết quả dưới dạng “trượt giá: 3.2 điểm cơ bản” khiến một lựa chọn mô hình trông như một phép đo.

Xét một ví dụ cụ thể: một chiến lược giao dịch $20,000 mỗi lệnh với một cổ phiếu có khối lượng ở thanh tiếp theo là $400,000. Tỷ lệ tham gia là 5%. Mô hình tính phí 2 điểm cơ bản sẽ tốn $4 mỗi lệnh; mô hình tính 10 điểm cơ bản sẽ tốn $20. Sau 500 lượt mua bán khứ hồi, chênh lệch đó lên tới $16,000, chưa tính hoa hồng. Nếu lợi nhuận gộp trong backtest của chiến lược là $18,000, giả định về khớp lệnh có sức ảnh hưởng gần bằng tín hiệu.

5%quy mô lệnh tính theo tỷ trọng trong khối lượng của thanh tiếp theo
$16,000chênh lệch chi phí qua 500 lượt mua bán khứ hồi ở mức 2 so với 10 điểm cơ bản

Xây dựng một khoảng phản ánh những gì dữ liệu có thể cho bạn biết

Bắt đầu bằng một kịch bản cơ sở phù hợp với loại lệnh của chiến lược và độ phân giải dữ liệu. Lệnh thị trường cần tính đến spread và tác động giá. Lệnh giới hạn cần có quy tắc xác định liệu lệnh có khớp hay không; giả định rằng mọi mức giá được chạm tới đều khớp là một sai sót khác về mô hình khớp lệnh.

Sau đó chạy cùng một backtest với một số ít kịch bản được xác định rõ. Giữ nguyên tín hiệu, quy mô vị thế và dấu thời gian để có thể quy những thay đổi cho khớp lệnh:

Kịch bảnGiả định khớp lệnhKịch bản này kiểm tra điều gì
Thuận lợiSpread cơ sở và tác động giá thấpChiến lược phụ thuộc đến mức nào vào điều kiện giao dịch thuận lợi?
Cơ sởSpread và tác động giá điển hình, điều chỉnh theo tỷ lệ tham giaGiả định đang dùng dẫn đến kết quả gì?
Bất lợiSpread rộng hơn, tác động giá lớn hơn và khớp lệnh chậm hơnLợi thế còn trụ vững trong một thị trường khó khăn nhưng hợp lý không?

Đây không phải là khoảng tin cậy, trừ khi bạn đã hiệu chỉnh chúng bằng phương pháp thống kê. Đây là các phép thử theo kịch bản. Hãy nêu rõ ý nghĩa của chúng trong báo cáo, và đừng lấy trung bình để tạo ra một con số “trượt giá kỳ vọng” giả tạo nếu không có bằng chứng về xác suất xảy ra của từng kịch bản.

Điều chỉnh mô hình theo lệnh

Mức phí cố định tính bằng điểm cơ bản có thể là bước đầu hợp lý với các lệnh nhỏ. Nhưng khi tỷ lệ tham gia tăng, giả định này sẽ không còn phù hợp. Tối thiểu, hãy ghi lại giá trị danh nghĩa của lệnh, khối lượng khả dụng trong thanh dữ liệu và tỷ lệ tham gia. Nếu chiến lược giao dịch hợp đồng tương lai, hãy ghi lại giá trị hợp đồng và đơn vị khối lượng liên quan; nếu giao dịch crypto giao ngay, hãy nêu rõ đồng tiền định giá và sàn giao dịch.

Một đường cong tác động giá đơn giản có thể làm lộ áp lực lên năng lực giao dịch mà không giả vờ tái tạo sổ lệnh. Ví dụ, xác định chi phí bằng khoản phí spread cơ sở cộng với một thành phần tác động giá tăng theo căn bậc hai của tỷ lệ tham gia. Chỉ khớp tham số nếu bạn có dữ liệu khớp lệnh phù hợp. Nếu không, hãy thay đổi các tham số và cho thấy kết quả suy giảm nhanh đến mức nào.

Đồng thời, đừng để mô hình khớp lệnh âm thầm cứu chiến lược. Một tín hiệu mua đến sau khi giá tăng mạnh không nên được khớp ở mức thấp nhất của thanh chỉ vì mức đó nằm trong biên độ nến. Hãy dùng quy ước khớp lệnh có tính nhân quả, rồi kiểm tra sức chịu đựng bằng cách điều chỉnh giá và thêm độ trễ. Nếu lệnh bị trễ và bỏ lỡ nhịp tăng, đó là kết quả khớp lệnh chứ không phải một phiền toái cần làm cho phẳng đi.

Câu hỏi hữu ích: spread, tác động giá, độ trễ hoặc tỷ lệ tham gia phải ở mức nào thì hiệu suất ròng mới về 0? Điểm hòa vốn đó thường hữu ích cho hành động hơn một con số Sharpe duy nhất từ backtest.

Dùng giao dịch mô phỏng để thu hẹp khoảng giả định

Giao dịch mô phỏng không cho bạn biết lệnh sẽ được khớp ra sao trên một hệ thống khớp lệnh trực tiếp. Tuy vậy, nó vẫn có thể cho biết luồng lệnh trong backtest có giống với các quyết định thực tế của hệ thống hay không: lệnh được tạo khi nào, quy mô ra sao và còn hiệu lực trong bao lâu.

So sánh giá lệnh mô phỏng với các báo giá cùng thời điểm hoặc với dữ liệu thị trường mà hệ thống mô phỏng ghi lại. Theo dõi chênh lệch theo từng công cụ, thời điểm trong ngày, quy mô lệnh và loại lệnh. Những quan sát này có thể giúp thu hẹp các giả định cho cấu hình đó. Chúng không tự động áp dụng được cho sàn giao dịch khác, chế độ thị trường khác hay lệnh lớn hơn.

Những người hoài nghi có lý khi cho rằng các kịch bản bi quan có thể tùy tiện. Một mô hình cố ý khắc nghiệt có thể loại bỏ một chiến lược khả thi, cũng như mô hình thuận lợi có thể tô hồng một chiến lược yếu. Vì vậy, đừng xem kịch bản khắc nghiệt nhất là sự thật. Hãy công bố các giả định, cho thấy độ nhạy và thu thập dữ liệu cần thiết để thay thế phỏng đoán bằng các ước tính đã hiệu chỉnh.

Backtest không thể biết vị trí xếp hàng trong quá khứ của lệnh chỉ từ một cây nến. Nhưng nó có thể cho thấy ý tưởng còn hợp lý hay không khi điều kiện khớp lệnh xấu đi theo những cách mà dữ liệu của bạn không thể loại trừ. Đó là câu trả lời hữu ích hơn một chữ số thập phân.

trượt giátác động thị trườngbacktestkhớp lệnhgiao dịch mô phỏng
← Tất cả bài viết