100 giao dịch. Phí taker 0.04%. Giả định trượt giá 0.02%. Những con số này có thể khiến backtest trông như được đo đạc cẩn thận, nhưng điều đáng ngạc nhiên là con số cuối cùng: một tỷ lệ trượt giá duy nhất hầu như chẳng cho biết liệu lệnh của bạn có thể được khớp ở những mức giá đó hay không.
Trượt giá phụ thuộc vào thứ bạn giao dịch, thời điểm giao dịch và quy mô lệnh so với thanh khoản sẵn có lúc đó. Backtest dựa trên nến thường chỉ nắm được hai yếu tố đầu một cách gần đúng, còn yếu tố thứ ba thì hoàn toàn không. Coi giá khớp trung bình là sự thật có thể khiến chiến lược mang hồ sơ khớp lệnh mà nó chưa từng đạt được.
Vì sao OHLCV không thể cho tôi biết giá khớp trung bình?
Một cây nến ghi nhận biên độ giá và tổng khối lượng trong một khoảng thời gian. Nó không cho biết khối lượng phân bổ ra sao theo từng mức giá, có bao nhiêu lệnh nằm ở giá bid và ask tốt nhất, hay lệnh của bạn đến trước hay sau những giao dịch tạo nên mức thấp nhất của nến. Một mức thấp chỉ xuất hiện một lần trong giao dịch nhỏ và một mức thấp hấp thụ khối lượng ổn định có cùng giá trị OHLC.
Hãy hình dung một nến 1 phút có khối lượng $200,000 và một lệnh mua thị trường $50,000. Lệnh này bằng 25% khối lượng của nến. Điều đó không chứng minh lệnh sẽ làm giá biến động 25%, cũng không có nghĩa là lệnh có thể được khớp ở giá mở cửa của nến. Nhưng nó cho thấy lệnh đủ lớn so với nến để giả định không có tác động giá cần được xem xét kỹ. Nếu cùng lệnh đó chỉ bằng 0.2% khối lượng, mối lo sẽ nhỏ hơn, dù chỉ riêng khối lượng vẫn không cho biết độ sâu hay khả năng bổ sung thanh khoản của sổ lệnh.
Đó là lý do câu “trượt giá là 2 điểm cơ bản” thể hiện lựa chọn mô hình, chứ không phải đặc tính của mã giao dịch. Đây có thể là mốc cơ sở hữu ích, nhưng không thể là câu trả lời áp dụng cho mọi trường hợp.
Tôi nên ước tính tác động thị trường từ dữ liệu nến thế nào?
Hãy bắt đầu với quy mô mà dữ liệu của bạn có thể hỗ trợ. Với mỗi lệnh, tính tỷ lệ tham gia: giá trị danh nghĩa của lệnh chia cho giá trị danh nghĩa giao dịch trong nến. Sau đó xem kết quả chiến lược thay đổi thế nào giữa các nhóm tỷ lệ tham gia. Đây là minh họa cố ý đơn giản; các mức tác động giả định là đầu vào để kiểm thử sức chịu đựng, không phải ước tính khớp lệnh tại một sàn cụ thể.
| Giá trị danh nghĩa lệnh / nến | Tác động một chiều minh họa | Cần đặt câu hỏi gì |
|---|---|---|
| 0.2% | 1 bp | Chênh lệch bid-ask và phí taker đã cao hơn mức này chưa? |
| 2% | 5 bp | Lợi thế còn tồn tại khi chênh lệch bid-ask rộng hơn và khớp lệnh chậm hơn không? |
| 20% | 25 bp | Bản thân tỷ lệ tham gia có làm thay đổi đường đi của giá không? |
Một điểm cơ bản bằng 0.01%. Nếu chiến lược giao dịch $100,000 theo mỗi chiều, tác động 5 bp ở cả hai chiều sẽ tốn khoảng $100 cho một vòng giao dịch khứ hồi, chưa tính phí. Phép tính đó rất đơn giản; để biết 5 bp có hợp lý hay không thì cần thêm bằng chứng. Nếu tín hiệu của bạn giao dịch đúng lúc khối lượng tăng vọt, mẫu số là khối lượng của cả nến thậm chí có thể khiến tỷ lệ tham gia trông an toàn hơn thực tế trong những phút lệnh của bạn đến nơi.
Kiểm thử sức chịu đựng với trượt giá nên bao gồm những gì?
Đừng gộp bất định về khớp lệnh vào một mức trung bình cho toàn danh mục. Hãy giữ rõ các yếu tố làm thay đổi kết quả:
- Chiều giao dịch: lệnh mua khớp qua ask, lệnh bán khớp qua bid; chi phí chênh lệch bid-ask phát sinh ở cả lúc vào và lúc thoát lệnh.
- Quy mô lệnh: báo cáo tỷ lệ tham gia theo từng giao dịch và theo chế độ thanh khoản, thay vì chỉ đưa ra mức trung bình của backtest.
- Loại lệnh: lệnh thị trường trả phí để được khớp ngay; lệnh giới hạn chờ có thể bỏ lỡ nhịp giá hoặc phải xếp sau các lệnh khác trong hàng đợi.
- Thời điểm: tín hiệu tại thời điểm đóng nến không thể lấy giá đóng cửa của nến làm giá khớp sau khi đã thấy mức giá đó.
- Trạng thái thị trường: nới rộng các giả định khi giá biến động nhanh, trong giờ thanh khoản mỏng và đúng vào những điều kiện kích hoạt chiến lược.
Hãy chạy ít nhất một kịch bản cơ sở và một kịch bản khắc nghiệt hơn. Chẳng hạn, tăng gấp đôi giả định về chênh lệch bid-ask và tác động, rồi xem giao dịch và giai đoạn nào tạo ra phần thay đổi đó. Nếu chiến lược chỉ hiệu quả khi khớp lệnh thuận lợi nhất, đó là một phát hiện nghiên cứu. Tốt hơn hết là biết điều đó trước khi giao dịch thử bằng tiền thật.
Hãy giữ phí, chênh lệch bid-ask và tác động thành các khoản mục riêng. Phí được xác định theo biểu phí tài khoản; chênh lệch bid-ask và tác động phụ thuộc vào cách khớp lệnh. Gộp chúng lại sẽ che khuất giả định nào đang quyết định kết quả.
Khi nào tôi cần dữ liệu sổ lệnh?
Hãy dùng dữ liệu giao dịch và báo giá khi lợi thế của chiến lược tương đương với chênh lệch bid-ask, khi chiến lược giao dịch thường xuyên hoặc phụ thuộc vào thanh khoản tồn tại trong thời gian ngắn. Hãy dùng ảnh chụp độ sâu sổ lệnh hoặc dữ liệu sổ lệnh ở cấp sự kiện khi vị trí trong hàng đợi, khớp lệnh từng phần hoặc việc cạn thanh khoản quyết định tín hiệu có thể thực thi hay không. Ngay cả khi đó, phát lại dữ liệu lịch sử cũng không thể tái hiện hoàn hảo tác động thị trường của chính bạn; thanh khoản quan sát được đã được ghi lại khi chưa có lệnh giả định của bạn.
Với chiến lược giao dịch chậm hơn, dữ liệu nến vẫn có thể dùng để sàng lọc ý tưởng. Hãy giữ quy mô vị thế nhỏ so với khối lượng quan sát được, công bố đường cong tác động bạn giả định và kiểm tra xem những thay đổi hợp lý có xóa sạch kết quả hay không. Đó là cách dùng mô hình khớp lệnh gần đúng có thể bảo vệ được. Gọi nó là giá khớp trung bình chính xác thì không.
Mục tiêu thực tế không phải là đoán ra một con số trượt giá đúng duy nhất. Mục tiêu là tìm khoảng mà chiến lược bắt đầu mất hiệu quả, rồi xem dữ liệu và quy mô lệnh của bạn có nằm cách xa ngưỡng đó hay không. Nếu không, bước nghiên cứu hữu ích tiếp theo là tìm dữ liệu khớp lệnh tốt hơn, chứ không phải thêm một chữ số thập phân vào báo cáo backtest.
← Tất cả bài viết


