Backtest (kiểm chứng trên dữ liệu quá khứ)
Backtest giống một trò chơi cỗ máy thời gian. Bạn đặt ra một quy tắc kiểu “gặp điều kiện này thì mua, thành thế kia thì bán”, rồi quay về biểu đồ quá khứ, giả định mình đã mua bán như một cái máy đúng theo quy tắc đó và cộng lại toàn bộ kết quả. Vì đếm bằng dữ liệu chứ không dựa vào cảm giác hay trí nhớ, cách này giúp tránh cái bẫy nhớ chọn lọc kiểu “hồi đó mà mua thì giờ đã lãi”.
Ví dụ, thử backtest quy tắc “mua khi RSI xuống dưới 30, bán sau 24 giờ” nhé. Trên dữ liệu nến 1 giờ của 2 năm qua, tín hiệu này xuất hiện 500 lần, trong đó 260 lần giá cao hơn sau 24 giờ — vậy tỷ lệ thắng là 52%. Tung đồng xu đã được 50%, nên ta biết quy tắc này chỉ nhỉnh hơn đồng xu một chút xíu.
Chỉ nhìn tỷ lệ thắng là chưa đủ. Phải tính cả khi đúng thì lãi bao nhiêu, khi sai thì lỗ bao nhiêu. Tỷ lệ thắng 52% nhưng mỗi lần thắng chỉ lãi 1% còn mỗi lần thua lỗ 2% thì tài khoản vẫn teo dần. Trừ thêm khoản phí giao dịch phải trả mỗi lượt nữa thì lợi thế mỏng manh đó có khi bốc hơi hoàn toàn.
Backtest thường hỏng vì ba nguyên nhân quen thuộc. Thứ nhất, rò rỉ thông tin tương lai — lỡ dùng thông tin mà tại thời điểm đó chưa thể biết (ví dụ giá đóng cửa khi nến chưa kết thúc) thì thành tích sẽ đẹp một cách giả tạo. Thứ hai, bỏ quên phí và khớp lệnh — thực tế luôn mất phí và không phải lúc nào cũng khớp đúng giá mong muốn, bỏ qua những thứ này sẽ ra con số lạc quan quá mức. Thứ ba, quá ít mẫu — nếu tín hiệu chỉ xuất hiện 10 lần trong quá khứ thì tỷ lệ thắng 70% cũng có thể chỉ là may mắn.
Vì vậy, cách dùng backtest trung thực nhất không phải để chứng minh “quy tắc này kiếm được tiền”, mà là công cụ kiểm tra bằng con số những lời đồn thiếu căn cứ. Khi nghe ai đó nói “quá bán thì sẽ bật lại”, bạn có thể tự đếm xem trong quá khứ thực tế đã diễn ra thế nào. Chỉ cần nhớ đây là hồ sơ quá khứ chứ không phải dự đoán tương lai, thì với người mới, đây là bài tập tốt nhất để phân biệt lời đồn với dữ liệu.
What the data actually shows
Danh mục setup của Barobara và các trang /odds chính là kết quả backtest kiểu này. Chúng tôi công khai nguyên trạng: các tín hiệu biểu đồ Bitcoin phổ biến từng xuất hiện bao nhiêu lần trong quá khứ và sau đó giá tăng trong bao nhiêu % số lần. Nói trước kết quả: với đa số tín hiệu, tăng hay giảm sau đó gần như 50-50. Ví dụ xem kết quả RSI quá bán (khung 1 giờ) để thấy lời đồn “quá bán thì bật lại” khác con số thực tế đến đâu. Còn phí giao dịch bào mòn kết quả bao nhiêu thì xem ở trang phí.Common misconceptions
“Backtest có tỷ lệ thắng cao là kiếm được tiền” — hiểu lầm phổ biến. Tỷ lệ thắng chỉ đếm số lần đúng, không nói gì về việc lúc đúng lãi bao nhiêu, lúc sai lỗ bao nhiêu. Quy tắc thắng 90% mà cứ mười lần lại thua đậm một lần thì tài khoản vẫn có thể âm.
“Quá khứ chạy tốt thì tương lai cũng chạy tốt” cũng là suy nghĩ nguy hiểm. Khi không khí thị trường đổi, quy tắc từng đúng bỗng trật là chuyện thường. Backtest là hồ sơ quá khứ, không phải lời bảo đảm.
FAQ
Q. Phải biết lập trình mới backtest được sao?
Muốn tự làm thì cần lập trình, nhưng bắt đầu bằng việc xem những kết quả đã được tính sẵn cũng đủ rồi. Hãy đọc trước các nguồn công khai kết quả quá khứ theo từng tín hiệu như trang /odds của Barobara; còn khi tự làm thì đặc biệt chú ý tính đủ phí giao dịch và gom đủ số lượng mẫu.
Q. Tỷ lệ thắng backtest 52% thì tốt chưa?
Mức đó không khác tung đồng xu (50%) là bao, và lợi thế mỏng này có thể biến mất sau khi trừ phí. Hơn nữa nếu số mẫu ít thì chính chênh lệch 2 điểm % đó cũng có thể chỉ là ngẫu nhiên. Đừng nhìn mỗi tỷ lệ thắng — hãy xem cùng lúc số mẫu, độ lớn lãi lỗ và phí giao dịch.