Backtesting thực chất là gì
Một bài backtest lấy một tập quy tắc cố định — ví dụ một điều kiện vào lệnh, một điều kiện thoát lệnh, và một khối lượng vị thế — rồi tái diễn nó trên một bộ dữ liệu lịch sử, chẳng hạn giá Bitcoin (BTC) trong quá khứ. Nó ghi lại những giao dịch mà quy tắc sẽ tạo ra và cho ra các thống kê như tổng lợi nhuận, tỷ lệ thắng, mức sụt giảm tối đa (drawdown), và số lượng giao dịch.
Ý tưởng cốt lõi rất đơn giản: nếu một quy tắc không có cấu trúc hữu ích nào, nó sẽ không hành xử tốt hơn ngẫu nhiên trên dữ liệu quá khứ. Backtesting là một cách để xem xét hành vi lịch sử của một quy tắc theo hướng đo lường được, lặp lại được, thay vì dựa vào trí nhớ hoặc trực giác về 'điều thường xảy ra'.
Điều một bài backtest có thể cho thấy một cách chính đáng
Một bài backtest đáng tin cậy nhất khi được dùng như một công cụ mô tả và chẩn đoán, chứ không phải công cụ dự đoán. Nó có thể tiết lộ một quy tắc sẽ giao dịch thường xuyên đến mức nào, mức sụt giảm tồi tệ nhất trong lịch sử lớn ra sao, kết quả nhạy cảm với chi phí đến đâu, và liệu logic có chạy được mà không lỗi hay không.
Nó cũng hữu ích cho việc loại trừ. Một quy tắc hoạt động kém qua một lịch sử dài và đa dạng — hoặc chỉ hiệu quả trong một giai đoạn hẹp duy nhất — rõ ràng chưa chứng minh được tính bền vững. Loại bỏ các ý tưởng thường là cách dùng backtesting trung thực hơn so với việc cố xác nhận rằng một ý tưởng ưa thích 'có hiệu quả'.
Quá khớp: cái bẫy trung tâm
Quá khớp (overfitting) xảy ra khi một chiến lược được tinh chỉnh quá sát với những đặc điểm riêng của một bộ dữ liệu lịch sử đến mức nó nắm bắt nhiễu thay vì bất kỳ mẫu hình bền vững nào. Nếu bạn thử hàng trăm tổ hợp tham số và giữ lại tổ hợp cho lợi nhuận quá khứ tốt nhất, rất có khả năng bạn đã chọn ra sự may mắn chứ không phải kỹ năng — kiểu gì cũng luôn có một tổ hợp trông đẹp một cách tình cờ.
Các dấu hiệu cảnh báo rất quen thuộc: nhiều tham số có thể điều chỉnh, kết quả sụp đổ khi một thiết lập bị dịch chuyển nhẹ, hiệu suất ngoạn mục tập trung ở một vài giao dịch, và những quy tắc được điều chỉnh đi điều chỉnh lại cho đến khi đường cong vốn (equity curve) trông hấp dẫn. Một chiến lược quá khớp thường hoạt động kém hơn nhiều khi ra ngoài mẫu — trên dữ liệu mà nó không được tinh chỉnh — và còn tệ hơn nữa khi giao dịch thật.
Những thiên lệch khác thổi phồng kết quả backtest
Quá khớp không phải vấn đề duy nhất. Thiên lệch nhìn trước (look-ahead bias) sử dụng thông tin mà lẽ ra không có sẵn tại thời điểm giao dịch. Thiên lệch sống sót (survivorship bias) chỉ kiểm thử những tài sản còn tồn tại, bỏ qua những tài sản đã thất bại. Thiên lệch dò dữ liệu (data-snooping bias) tích tụ khi nhiều người thử nhiều ý tưởng trên cùng một lịch sử và chỉ những ý tưởng thắng cuộc được báo cáo.
Những ma sát thực tế cũng dễ bị bỏ sót. Chi phí giao dịch, phí, trượt giá (slippage), chênh lệch giá (spread), phí funding, và khó khăn khi khớp các lệnh lớn trong thị trường mỏng có thể biến một quy tắc có lời trên giấy thành một quy tắc thua lỗ. Một bài backtest giả định khớp lệnh hoàn hảo ở mức giá lý tưởng là đang đo lường một thị trường không tồn tại.
Vì sao một bài backtest tốt không phải là một dự đoán
Ngay cả một bài backtest được xây dựng cẩn thận, kiểm soát thiên lệch, cũng chỉ mô tả quá khứ dưới một tập hợp điều kiện cụ thể. Thị trường thay đổi: thanh khoản, biến động, người tham gia, và quy định đều dịch chuyển theo thời gian, và một quy tắc phù hợp với chế độ này có thể thất bại ở chế độ khác. Hiệu suất trong quá khứ không mang lại bảo đảm nào về tương lai, và các bài backtest thường bị phóng đại.
Đây là lý do vì sao các phương pháp giao dịch dự đoán nói chung — các mẫu hình biểu đồ, Sóng Elliott, các mức Fibonacci, và các chỉ báo kỹ thuật như RSI hay MACD — đều gây tranh cãi và mang tính chủ quan. Việc backtest chúng có thể khiến chúng trông chính xác, nhưng không thể khiến chúng dự đoán giá một cách đáng tin cậy. Giao dịch mang rủi ro cao, và nghiên cứu liên tục cho thấy phần lớn nhà giao dịch nhỏ lẻ mất tiền theo thời gian.
Đọc dữ liệu thị trường kèm bối cảnh
Vì các bài backtest có thể tâng bốc một chiến lược, một số người thích xem thêm bối cảnh dữ liệu thị trường rộng hơn thay vì chỉ nhìn vào giá. BIKENZO là một terminal dữ liệu và phân tích Bitcoin hiển thị các thông tin như thanh khoản tương quan với giá BTC; bối cảnh đó có thể giúp bạn diễn giải liệu một biến động lịch sử diễn ra trong một thị trường sâu, thanh khoản tốt hay trong một thị trường mỏng.
Đây là bối cảnh, không phải tín hiệu hay dự đoán. BIKENZO không cho bạn biết điều gì sẽ xảy ra, không tạo giao dịch, và không phải là nơi để giao dịch — nó là một lăng kính để hiểu dữ liệu đằng sau giá. Mọi quyết định, và mọi rủi ro, hoàn toàn thuộc về bạn.