Hướng dẫn đầy đủ về backtest cho người mới trade – phần 1

Nếu bạn mới bắt đầu trade và đã nghe thuật ngữ backtest (kiểm định chart cũ) ở đâu đó nhưng chưa biết bắt đầu từ đâu – bài viết này sẽ dành cho bạn :). Cũng giống như mọi thứ trong trading (hệ thống giao dịch, khung thời gian trade, cách trade…), backtest sẽ không phù hợp với mọi trader hay mọi hệ thống giao dịch (có những hệ thống không thể backtest được). Nhưng, hiểu được backtest là gì và cách backtest như thế nào là điều tối cần thiết cho người mới bắt đầu.

Bài viết này được mình tổng hợp từ nhiều nguồn và kinh nghiệm từ bản thân trong nhiều năm trading, hy vọng sẽ hữu ích cho các bạn sau khi đọc xong.

Backtesting là gì?

Backtest là quá trình kiểm định phương pháp/hệ thống giao dịch dựa trên dữ liệu từ quá khứ. Tất cả các trader backtest vì một niềm tin to lớn rằng thị trường sẽ luôn lặp đi lặp lại hành vi của nó. Vì thế, các trader tin nếu kiểm định với số mẫu đủ lớn và hệ thống giao dịch hoạt động tốt trong quá khứ, họ sẽ kiếm được lợi nhuận thực nếu trade live. Về vấn đề tại sao cứ trade demo hay backtest là có lời mà trade live thì lỗ mình sẽ bàn trong các phần sau.

Mình xin đưa ra ví dụ minh hoạ, nếu bạn dùng chỉ báo RSI (relative strength index). hệ thống giao dịch của bạn có thể như thế này:

  • Vào lệnh khi chỉ báo quay ngược từ vùng quá bán/quá mua.
  • Stop loss được đặt ở các điểm high/low gần đó.
  • Take profit gấp 2 lần stop loss.
  • Quản lý vốn: lỗ tối đa 1% tài khoản mỗi lệnh.

Đây là ví dụ minh hoạ cho tín hiệu sell của hệ thống trên:

Để biết hệ thống này có lợi nhuận hay không, bạn cần kiểm định càng nhiều càng tốt. Con số của mẫu như thế nào mới gọi là lớn? Điều đó còn tuỳ ở mỗi trader, một số dùng con số 100, một số dùng 1000, thậm chí 1.000.000 lệnh… Kiểm định số mẫu càng lớn sẽ giúp bạn hiểu cách hệ thống hoạt động trong các điều kiện thị trường khác nhau (điều kiện thị trường có thể là loại trend (up, down, sideway) hoặc tình hình địa chính trị của thế giới).

Backtest giúp được trader trade tốt hơn như thế nào?

Chúng ta đã biết rằng backtest có thể giúp bạn biết hệ thống giao dịch bạn đang tìm hiểu có hoạt động tốt hay không. Tuy nhiên, backtest còn có những ưu điểm mà bạn có thể còn chưa biết.

Mài dũa kỹ năng giao dịch

Cũng giống với một vận động viên thể thao phải luyện tập mỗi ngày để trở nên giỏi hơn, một trader chuyên nghiệp cũng luyện tập mỗi ngày và xem nó như cuộc sống của mình.

Backtest cho bạn cơ hội để luyện tập kể cả khi thị trường đóng cửa. Bạn có thể xem việc này không cần thiết, nhưng bạn cần biết trader chúng ta rất dễ chạy theo cảm xúc và vào lệnh không tuân theo hệ thống giao dịch. Đặc biệt là khi bạn đã bắt đầu tìm hiểu được nhiều hệ thống giao dịch, hiểu được nhiều chỉ báo, vào lệnh khi thì vì lý do này, vì lý do khác. Backtest giúp bạn có kỷ luật vì nếu bạn tự mình kiểm định đủ lâu, kĩ năng của bạn sẽ trở thành thói quen, việc vào lệnh của bạn sẽ trở thành “vô thức” và hạn chế ảnh hưởng của cảm xúc.

Sự tự tin

Tiếng anh có câu: “Practice makes perfect” – luyện tập tạo ra sự hoàn hảo. Nghĩa là khi bạn luyện tập đủ lâu, bạn hiểu được cách hệ thống của bạn hoạt động, hiểu được khi nào nó thắng, khi nào nó có thể thua, do đó bạn tự tin đặt lệnh mà không còn lo lắng gì nữa cả vì bạn biết rằng thua hay thắng cũng đều là phần không thể thiếu của một hệ thống giao dịch.

Nghe có vẻ tuyệt vời nhỉ? Nhưng đây chỉ là mặt tích cực thôi. Mình sẽ bàn tiếp về cách mà việc backtest có thể lừa dối trader như thế nào.

Curve Fitting là gì?

Trước khi chúng ta đi xa hơn, hãy cùng định nghĩa một thuật ngữ quan trọng có liên quan đến backtest… curve fitting (đường cong hoàn hảo). Đây là trường hợp khi bạn kiểm định một hệ thống giao dịch trong khoảng thời gian ngắn và nhảy vào trade real ngay sau đó.

Ví dụ cụ thể về curve fitting

Để hiểu thêm về vấn đề này, chúng ta sẽ cùng xem đồ thị giá của EURUSD trên khung thời gian monthly. Nếu bạn tạo ra một hệ thống giao dịch chỉ sử dụng dữ liệu trong ô màu xanh lá (hình dưới), bạn có thể không biết rằng mình đang kiểm định trong thị trường giá đang uptrend.

hệ thống giao dịch theo trend này có thể tạo ra lợi nhuận cực lớn cho bạn… nhưng chỉ trong khoảng thời gian đó thôi. Bạn có thể tin rằng: “ôi mẹ ơi! đây chính là chén thánh mà con đang tìm kiếm ” và do đó bạn liều mạng nhảy vào thị trường để chơi thật với lot lớn hơn, sẵn sàng chấp nhận nhiều rủi ro hơn… mà không hề biết rằng, chúng ta đang ở ô màu xanh dương, thị trường lúc này không diễn biến như chart cũ nữa. Bạn đã hiểu vấn đề của việc backtest chưa ?

Chúng ta sẽ cần một hệ thống giao dịch được kiểm định với số mẫu đủ lớn?

Sau khi hiểu về curve fitting, bạn bây giờ sẽ “chịu khó” backtest hệ thống giao dịch trong nhiều điều kiện thị trường khác nhau. Nhưng, vấn đề không hề đơn giản như vậy.

Bạn bắt đầu hiểu rằng đại đa số các hệ thống giao dịch chỉ hoạt động tốt khi giá đang trend. Bạn sẽ đặt câu hỏi: “Thế sao ta không chỉ trade khi giá đang trend?”

Sự thật là không ai có thể biết chính xác điều gì diễn ra tiếp theo trong thị trường. Vì thế, hãy sẵn sàng cho một hệ thống có thể hoạt động ở mọi điều kiện thị trường khác nhau (nghĩa là kiếm được nhiều pip khi giá đang trend và lỗ rất ít khi giá đang sideway…)

Curve fitting chính vì vậy là một dạng niềm tin sai lầm khiến cho biết bao trader phải đổ máu cho mr.market. Và vì vậy, một phương pháp kiểm định mới ra đời – đó là forward testing (kiểm định lệnh tương lai). Forward testing nghe hoành tráng vậy chứ không có gì xa lạ, giống với việc bạn trade demo. Mình sẽ có chương riêng nói về forward testing.

Những điểm khác biệt giữa kiểm định thủ công (manual testing) và kiểm định tự động (automated testing).

Kiểm định tự động là khi bạn coding một em EA nào đó tuân theo hệ thống giao dịch của bạn, tìm điểm vào và thoát lệnh cho bạn. Ưu điểm của EA là kiếm tiền tự động khi bạn đang ngủ (nghe có vẻ quen quá :)), loại bỏ vấn đề cảm xúc khi trading. Tuy nhiên, bạn chỉ cần code sai một chút thôi có thể khiến cho tài khoản của bạn đi tong khi cho EA trade thật. Vì thế, bạn cần biết chính xác các điều kiện của hệ thống giao dịch và biết khi nào hệ thống không hoạt động. Một nhược điểm nữa là không phải hệ thống giao dịch nào bạn cũng có thể code được.

Kiểm định thủ công sẽ mất nhiều thời gian và có thể khiến bạn thất vọng khi kiểm định số mẫu lớn nhưng kết quả kiểm định lại không như mong đợi. Bù lại, đây là cách mà bất cứ trader nào cũng có thể làm được, không cần phải biết coding.

Quan điểm cá nhân mình không thiên về bên nào, tuỳ mỗi người sẽ tìm cho mình cách kiểm định phù hợp. Nhưng dù là cách nào, bạn cũng cần đầu tư nhiều thời gian để hiểu và trở thành chuyên gia với cách đó.

Hôm nay viết tới đây, mai rảnh mình sẽ viết tiếp nha !

Bạn cũng có thể thích