Cách backtest chiến lược trading từng bước, không nhìn trước dữ liệu

Backtest là quá trình áp dụng một bộ quy tắc giao dịch đã viết trước lên dữ liệu lịch sử để quan sát cách hệ thống từng phản ứng. Một backtest có ích phải khóa quy tắc trước khi xem kết quả, dùng dữ liệu phù hợp, ghi mọi tín hiệu, tính spread và chi phí, tách dữ liệu phát triển khỏi dữ liệu kiểm tra, đồng thời công bố rõ giới hạn của kết quả mô phỏng.

Điểm chính cần nhớ
  • Viết giả thuyết và quy tắc trước khi xem kết quả.
  • Không bỏ tín hiệu xấu hoặc sửa setup giữa mẫu.
  • Tính spread, commission, swap và slippage hợp lý.
  • Tách in-sample, out-of-sample hoặc dùng walk-forward.
  • Đánh giá drawdown và độ ổn định, không chỉ lợi nhuận.
Trader phân tích nhiều mẫu dữ liệu lịch sử để backtest chiến lược

Backtest dùng để làm gì?

Backtest giúp kiểm tra tính nhất quán của quy tắc và mô tả phân phối kết quả trong một giai đoạn lịch sử. Nó không chứng minh chiến lược sẽ sinh lời trong tương lai. CFA Institute mô tả mục tiêu của backtesting là mô phỏng gần với quy trình đầu tư thực tế để hiểu quan hệ rủi ro–lợi nhuận, đồng thời cảnh báo về look-ahead bias và survivorship bias. Trước khi thử nghiệm, hãy bảo đảm bạn đã có một hệ thống giao dịch có quy tắc.

Bước 1: Viết giả thuyết có thể kiểm tra

Giả thuyết phải nêu thị trường, khung thời gian, bối cảnh, setup và điều kiện kỳ vọng. “Mua khi giá có vẻ mạnh” không thể backtest nhất quán. Một giả thuyết tốt có dạng: trong xu hướng tăng H1, khi giá hồi về vùng hỗ trợ và M15 đóng xác nhận, hệ thống xem xét lệnh mua với điểm vô hiệu dưới swing low.

Bước 2: Khóa setup, trigger và invalidation

Tách ba phần: setup là điều kiện nền, trigger là sự kiện cho phép thực thi, invalidation là bằng chứng khiến ý tưởng không còn đúng. Ghi chính xác cách đặt Stop Loss, mục tiêu, trailing stop và quy tắc thoát theo thời gian. Không đổi định nghĩa sau khi thấy lệnh thua.

Quy trình tám bước kiểm tra một chiến lược trên dữ liệu lịch sử

Bước 3: Chọn dữ liệu và giai đoạn

Dữ liệu phải phù hợp công cụ, phiên và độ chi tiết cần kiểm tra. Nếu hệ thống dựa vào diễn biến trong nến, dữ liệu OHLC khung lớn có thể không đủ để biết Stop Loss hay Take Profit được chạm trước. Chọn nhiều trạng thái thị trường thay vì chỉ một giai đoạn xu hướng thuận lợi.

Bước 4: Tách dữ liệu phát triển và kiểm tra

Dùng in-sample để xây quy tắc và out-of-sample để đánh giá quy tắc đã khóa. Walk-forward lặp lại quá trình hiệu chỉnh trên cửa sổ quá khứ rồi kiểm tra ở cửa sổ tiếp theo. Cách này không loại bỏ mọi thiên lệch nhưng giảm việc tối ưu trực tiếp trên toàn bộ dữ liệu.

Bước 5: Ghi mọi tín hiệu theo cùng một mẫu

Mỗi tín hiệu cần ngày giờ, setup, entry, invalidation, khối lượng giả định, chi phí, kết quả theo R, MAE và MFE. Có thể dùng Tool Nhật ký giao dịch hoặc áp dụng 12 chỉ số trong nhật ký. Không bỏ lệnh vì “thực tế chắc sẽ không vào”.

Bước 6: Đưa chi phí và giả định khớp lệnh vào kết quả

Spread, commission, swap và slippage có thể biến lợi thế nhỏ thành âm. Với lệnh market, không mặc định mọi entry được khớp đúng giá nhìn thấy. Với lệnh limit, không mặc định cứ chạm giá là được khớp toàn bộ. Hãy thử nhiều kịch bản chi phí thay vì chọn một con số thuận lợi.

Trader che phần bên phải biểu đồ khi kiểm tra tín hiệu quá khứ

Bước 7: Đọc kết quả theo cụm chỉ số

Xem số lệnh, tỷ lệ thắng, mức thắng/thua trung bình, expectancy, maximum drawdown, chuỗi thua và độ ổn định theo từng giai đoạn. Đọc kết quả cùng Risk–Reward và nguyên tắc quản lý vốn. Lợi nhuận cao nhưng drawdown tập trung hoặc phụ thuộc vài lệnh ngoại lệ cần được xem xét thận trọng.

Bước 8: Kiểm tra độ bền trước khi forward test

Thay đổi hợp lý spread, thời điểm entry, một vài tham số và giai đoạn dữ liệu. Nếu kết quả sụp đổ chỉ sau thay đổi rất nhỏ, hệ thống có thể bị tối ưu quá mức. Chỉ chuyển bước khi quy tắc rõ, dữ liệu sạch, kết quả out-of-sample chấp nhận được và mọi giới hạn đã được ghi.

Những lỗi làm backtest đẹp giả tạo

Look-ahead bias dùng thông tin chưa tồn tại ở thời điểm quyết định. Survivorship bias chỉ giữ tài sản còn tồn tại. Data snooping thử quá nhiều biến thể rồi chỉ công bố biến thể tốt nhất. Ngoài ra còn có bỏ lệnh xấu, không tính chi phí và chọn giai đoạn thuận lợi. CFTC lưu ý kết quả giả định không chịu đầy đủ tác động của điều kiện thị trường thực và có thể đánh giá cao hoặc thấp hiệu suất.

Checklist trước khi chấp nhận kết quả

Quy tắc đã khóa? Dữ liệu có đúng độ chi tiết? Có ghi mọi tín hiệu? Chi phí được tính? Có out-of-sample? Có kiểm tra nhiều chế độ thị trường? Có báo cáo drawdown và chuỗi thua? Có lưu phiên bản quy tắc? Nếu một câu trả lời là “không”, kết quả chưa sẵn sàng để dùng cho quyết định rủi ro.

Cảnh báo rủi ro: Nội dung nhằm mục đích giáo dục và cung cấp thông tin, không phải khuyến nghị đầu tư hoặc lời mời giao dịch. Trading có rủi ro mất vốn. Kết quả quá khứ, backtest, forward test và ví dụ giả định không đảm bảo kết quả tương lai.

Câu hỏi thường gặp

Backtest có chứng minh chiến lược hiệu quả không?

Không. Backtest mô tả cách quy tắc hoạt động trên dữ liệu và giả định đã chọn; nó không bảo đảm phân phối tương lai lặp lại.

Có nên tối ưu tham số không?

Có thể, nhưng cần giới hạn số tham số, giải thích lý do kinh tế và kiểm tra ngoài mẫu để giảm overfitting.

Sau backtest có nên giao dịch tiền thật ngay?

Không nên bỏ qua forward test hoặc demo. Mục tiêu tiếp theo là kiểm tra quy trình trong dữ liệu chưa biết trước và điều kiện vận hành gần thực tế hơn.

Kết luận

Hãy dùng backtest chiến lược trading như một phần của quy trình đo lường, không phải lời hứa về kết quả. Ghi rõ giả định, kiểm tra dữ liệu mới và điều chỉnh mức rủi ro theo bằng chứng thay vì cảm xúc.

Checklist trước khi chấp nhận kết quả backtest

Một báo cáo backtest chỉ đáng tin trong phạm vi dữ liệu, quy tắc và giả định đã công bố. Trước khi chuyển sang giai đoạn thử nghiệm tiếp theo, hãy kiểm tra lại xem điều kiện vào lệnh có thể nhận biết tại thời điểm đó hay chỉ rõ ràng sau khi giá đã chạy. Mọi chi phí, độ trễ, spread và trường hợp không khớp lệnh cần được ghi thống nhất.

  • Quy tắc vào, thoát và hủy setup có thể diễn đạt thành câu điều kiện rõ ràng.
  • Dữ liệu không bị nhìn trước và không bỏ qua giai đoạn bất lợi.
  • Kết quả được tách theo thị trường, phiên, khung thời gian và trạng thái xu hướng.
  • Có kiểm tra out-of-sample hoặc một giai đoạn chưa dùng để tinh chỉnh.
  • Quy mô lệnh giả định phù hợp với công cụ tính khối lượng lệnh và mức rủi ro đã chọn.

Nếu thay một tham số nhỏ làm toàn bộ kết quả đảo chiều, hệ thống có thể đang quá khớp với lịch sử. Khi đó, việc hợp lý là quay lại đơn giản hóa quy tắc, không tiếp tục tối ưu cho đến khi tìm thấy đường cong đẹp hơn.

Nguồn tham khảo

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *