VNREBATES

Backtest là gì? Hướng dẫn backtest hệ thống chính xác nhất

16.10.2021, 17:10 14 phút đọc

Backtesting, hay backtest là một trong các phương pháp quan trọng nhất khi phát triển một chiến lược hay một hệ thống giao dịch mới. Việc thực hiện backtest có thể giúp các nhà giao dịch lựa chọn được những thiết lập tốt nhất để áp dụng cho chiến lược của mình, đồng thời giúp chúng ta có được sự tự tin cao nhất mỗi khi áp dụng chiến lược đó.

Quan điểm của phân tích kỹ thuật là những thiết lập giá hoạt động hiệu quả trong quá khứ thì đều có khả năng hoạt động tốt trong tương lai, do đó các nhà giao dịch thường sử dụng những thiết lập đó để tìm kiếm cơ hội vào lệnh. Tuy nhiên, trước hết chúng ta cần biết một thiết lập có thực sự hoạt động tốt trong quá khứ hay không bằng cách thực hiện backtest.

Nếu kết quả backtest cho thấy một thiết lập hay một mô hình giá đã hoạt động tốt trong quá khứ, chúng ta có thể yên tâm sử dụng chúng cho các chiến lược giao dịch của mình. Ngược lại, nếu dữ liệu backtest cho kết quả không tốt, anh em cần cân nhắc trước khi sử dụng chiến lược đó.

Vậy backtest là gì, backtesting là gì? Chúng ta sẽ cùng nhau tìm hiểu trong bài viết dưới đây nhé.

1. Backtest là gì? Backtesting là gì?

Backtest,  hay backtesting là phương pháp kiểm tra lại tính hiệu quả của một chiến lược hay mô hình giá bằng những dữ liệu trong lịch sử của giá. Hiểu một cách đơn giản, backtest một chiến lược tức là chúng ta sẽ tìm kiếm những thiết lập giống với chiến lược đó trong quá khứ, tìm kiếm được càng nhiều thiết lập càng tốt, và quan sát xem chúng đã thất bại hay thành công bao nhiêu lần, qua đó đánh giá được tính hiệu quả của chiến lược.

Việc backtest để xác định tính hiệu quả của một mô hình giá hay một chiến lược xuất phát từ ý tưởng của phân tích kỹ thuật, đó là các chiến lược hoạt động tốt trong quá khứ thì sẽ hoạt động tốt trong tương lai. Ngược lại, những chiến lược có hiệu quả kém trong quá khứ thì sẽ tiếp tục hoạt động không tốt trong tương lai.

Backtesting cho phép chúng ta nhìn nhận rất thực tế và khách quan về cách một chiến lược hoạt động mà không cần mạo hiểm với bất kỳ khoản vốn nào. Bất cứ một chiến lược nào sử dụng các yếu tố kỹ thuật trên bản đồ đều có thể backtest một cách rất dễ dàng bằng dữ liệu thực tế của giá trong quá khứ.

Xem thêm: Các trường phái phân tích kỹ thuật trong Forex

2. Có những cách nào để backtest hệ thống giao dịch

2.1. Backtest thủ công

Backtest thủ công có nghĩa là anh em sẽ thực hiện việc kiểm tra các dữ liệu lịch sử một cách hoàn toàn thủ công, bao gồm việc tìm kiếm các tín hiệu trên biểu đồ và ghi chép thống kê các lần thất bại hay thành công của chúng. Anh em cần tập hợp được một lượng dữ liệu đủ lớn, từ đó tính toán ra tỷ lệ thành công của chiến lược mà chúng ta đang xem xét.

Việc backtest thủ công nghe có vẻ khá vất vả và mất thời gian, nhưng chúng có một số ưu điểm sau đây:

  • Có thể thực hiện bởi bất cứ ai
  • Có thể kiểm tra được bất cứ thiết lập nào liên quan đến giá cả
  • Mô phỏng được các giao dịch trực tiếp, từ đó rút ra được nhiều kinh nghiệm thực tế
  • Việc backtest thủ công cho phép chúng ta hiểu được cách mà các phần mềm backtest hoạt động, từ đó giúp anh em backtest với các phần mềm đó dễ dàng hơn, thậm chí là tự mình phát triển một phần mềm backtest tự động nếu có kỹ năng lập trình.

Chúng ta sẽ tìm hiểu về cách backtest hệ thống giao dịch tự động trong phần sau. Trước tiên, mình sẽ phân tích kỹ hơn một chút về backtest thủ công. Việc hiểu được nguyên lý và bản chất của backtest thủ công là một cách rất tốt để tiếp cận với backtest tự động và backtest EA online.

Để thực hiện backtest forex bằng phương pháp thủ công, trước hết anh em cần có một biểu đồ giá. Chúng ta có thể backtesting trên bất cứ nền tảng nào như MT4, MT5 hoặc Ninja Trader. Tuy nhiên, có thể nói rằng nền tảng tốt nhất để thực hiện backtest thủ công chính là Tradingview bởi các công cụ biểu đồ tiên tiến của nó.

Đầu tiên, tradingview là một nền tảng website trực tuyến, nó không yêu cầu anh em cài đặt bất cứ thứ gì vào thiết bị của mình mà vẫn có thể sử dụng đầy đủ các chức năng ưu việt. Và lý do quan trọng nhất để chúng ta backtest trên nền tảng này là tính năng phát lại biểu đồ.

Anh em có thể dùng tính năng này để biêu đồ bắt đầu chuyển động từ một điểm trong quá khứ và chúng ta sẽ không nhìn thấy những gì phía sau đó. Thời điểm mà anh em bắt đầu phát lại được coi như thời điểm hiện tại, tuy nhiên chúng ta có thể nhìn thấy các cây nến sau đó hình thành với tốc độ nhanh hơn thay vì phải chờ đợi hết phiên.

Nếu thực hiện backtest một chiến lược dựa vào những gì đã xảy ra trên các biểu đồ hoàn chỉnh, có thể anh em sẽ chỉ bị thu hút vào những thiết lập đã thành công mà bỏ qua những lần chúng thất bại, từ đó ảnh hưởng đến kết quả backtest.

Tuy nhiên, với tính năng phát lại, chúng ta sẽ nhìn thấy tất cả các thiết lập cần kiểm tra ngay khi chúng xuất hiện và chưa hề biết kết quả ra sao. Điều này sẽ giúp chúng ta có một thống kê chính xác và khách quan hơn, đồng thời cũng dễ quan sát hơn rất nhiều khi anh em chỉ việc nhìn theo sự chuyển động thực tế của giá thay vì phải tìm kiếm giữa rất nhiều những cây nến đã hình thành.

Để bật tính năng phát lại trên biểu đồ, anh em có thể làm theo các thao tác sau:

  • Bật tính năng phát lại biểu đồ: Sử dụng biểu tượng hình tam giác trên thanh công cụ phía trên màn hình (như hình minh họa)
các bước backtest

Bật tính năng phát lại biểu đồ

  • Cài đặt công cụ: Một thanh công cụ mới sẽ xuất hiện trên biểu đồ để điều khiển trình phát lại, và một đường dọc màu đỏ cũng xuất hiện tại vị trí của con trỏ. Đường màu đỏ này chính là đường đánh dấu nơi bắt đầu. Anh em có thể di chuyển chúng về bất cứ vị trí nào muốn bắt đầu phát lại và phần biểu đồ phía sau nó sẽ hoàn toàn biến mất.
  • Cuối cùng, chỉ cần nhấn nút Play để bắt đầu quá trình phát lại từ điểm bắt đầu cho đến cây nến ở phiên hiện tại. Anh em cũng có thể điều chỉnh tốc độ phát lại tùy ý ở thanh kéo Speed.
các bước backtest

Cài đặt phát lại biểu đồ

Tuy nhiên, có một điều anh em cần lưu ý là tính năng phát lại trên Tradingview bản miễn phí chỉ khả dụng với biểu đồ khung ngày trở lên. Nếu muốn phát lại ở các khung nhỏ hơn, anh em cần nâng cấp lên các phiên bản trả tiền nhé.

Hãy nhớ rằng trước khi backtest, anh em cần có một chiến lược rõ ràng, xác định rằng mình sẽ vào lệnh với những tín hiệu nào, đặt stoploss và takeprofit ra sao. Sau đó, khi biểu đồ trong quá trình phát lại, anh em cần ghi chép đầy đủ các yếu tố này mỗi khi có tín hiệu hợp lệ xuất hiện.

Hãy thực hiện một cách khách quan và công tâm nhất đối với từng tín hiệu và chờ xem nó sẽ thành công hay thất bại, nếu thất bại thì ta thua lỗ bao nhiêu, thành công thì có mức lợi nhuận thế nào. Từ đó, khi có một tập dữ liệu đủ lớn anh em có thể tính toán chi tiết hiệu quả của chiến lược mà mình đang kiểm tra.

2.2. Backtest bằng phần mềm tự động

Việc backtest thủ công đòi hỏi khá nhiều công sức và thời gian để có thể thực hiện được một, và đôi khi nó có thể thiếu chính xác do người thực hiện có thể bỏ sót các tín hiệu. Vì vậy, có các phần mềm backtest tự động đã được phát triển để phục vụ các Trader backtest một cách đơn giản và chính xác hơn.

Với các phần mềm này, anh em có thể backtest bất cứ một mô hình giá hay chỉ báo nào, thậm chí là cả một chiến lược giao dịch hoàn chỉnh với các quy tắc ra vào lệnh. Tuy nhiên, điều kiện là chúng phải được chuyển hóa dưới dạng ngôn ngữ lập trình để máy có thể hiểu được.

Điều này có vẻ như không khả thi với phần lớn các Trader, trừ khi chúng ta bỏ tiền thuê các nhà phát triển khác. Vậy nên, mình sẽ cùng anh em tìm hiểu cách backtest đơn giản với một loại chiến lược đã có sẵn dưới dạng ngôn ngữ lập trình, đó là các EA, hay nói cách khác là các robot giao dịch tự động.

Cách backtest EA tương đối đơn giản và có thể thực hiện được bằng những công cụ miễn phí hoặc phần mềm trả tiền. Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách backtest EA một cách hoàn toàn miễn phí dựa trên công cụ có sẵn của nền tảng MT4.

Xem thêm: Giao dịch breakout tự động với robot Expert Advisor

3. Cách backtest EA hiệu quả trên MT4

Để bắt đầu backtest EA, tất nhiên anh em cần có một EA trước. Trên thị trường hiện nay có rất nhiều loại EA khác nhau hỗ trợ anh em giao dịch tự động theo các chiến lược khác nhau, và việc kiểm tra hiệu quả của các EA này trước khi sử dụng là điều vô cùng quan trọng.

Có một điều anh em cần lưu ý, đó là chúng ta đang nói đến việc backtest EA với các công cụ miễn phí, tuy nhiên các EA tốt thì không hề miễn phí. Anh em nên tìm hiểu và cân nhắc kỹ trước khi đưa ra quyết định lựa chọn một EA phù hợp nhất, và thực hiện backtest để kiểm tra xem nó hoạt động tốt như thế nào.

Nếu như anh em đã có sẵn một EA trong MT4, hãy thực hiện việc backtest với công cụ Strategy Tester có sẵn trong MT4 qua một vài bước cơ bản sau đây:

Bước 1: Mở bảng điều khiển Strategy Tester bằng cách chọn View/ Strategy Tester

backtest EA

Mở bảng điều khiển stragety tester

Giao diện bảng điều khiển Strategy Tester có dạng như sau:

backtest EA

Giao diện stragety tester

Bước 2: Thực hiện theo hướng dẫn với các số được đánh dấu trong ảnh như sau:

các bước backtesting EA

Các bước thực hiện backtesting

  • Chọn EA muốn backtest tại mục 1
  • Tại mục 2: anh em chọn cặp tiền tệ ở ô Symbol, đồng thời chọn khung thời gian muốn sử dụng tại ô Period.
  • Trong mục 3 – Model: chúng ta sẽ chọn chế độ thực hiện backtest. Có 3 lựa chọn bao gồm Every Tic (đọc từng chuyển động của giá), Open Close Only (chỉ đọc giá đóng cửa và mở cửa) và Control Point. Anh em nên lựa chọn Open Close Only sẽ phù hợp nhất với các giao dịch thông thường.
  • Ở mục 4 – Spread: Spread ở mỗi sàn là khác nhau và nó ảnh hưởng khá nhiều đến kết quả backtest, do đó ở mục này anh em lựa chọn Spread theo đúng sàn giao dịch và cặp tiền tệ đang sử dụng. Anh em cũng có thể chọn mức Spread cao hơn để an toàn hơn.
  • Các mục 5 và 6 anh em nên bỏ chọn nếu như thực hiện backtest lần đầu.

Bước 3: Nhấn Start để quá trình backtest bắt đầu diễn ra.

Sau khi quá trình backtest hoàn tất, anh em sẽ nhận được một bảng chi tiết các thông số kết quả của EA trong phạm vi backtest đã lựa chọn như ví dụ dưới đây. Anh em có thể xem qua tất cả 5 cửa sổ Setting, Results, Garph, Report và Journal để biết kết quả backtest.

kết quả backtest EA

Kết quả backtest EA

Một số lưu ý trong quá trình backtest:

  • Nếu anh em sử dụng khung thời gian quá nhỏ, có thể kết quả sẽ sai lệnh rất nhiều so với giao dịch thực tế vì khung thời gian nhỏ có quá nhiều tín hiệu nhiễu
  • Càng nhiều dữ liệu thì kết quả backtest càng chính xác
  • Anh em nên sử dụng các khung thời gian lớn vì nó vừa có các tín hiệu chính xác và vừa backtest được trong khoảng thời gian dài hơn.

Xem thêm: EA tự đặt Take Profit và Stop Loss hỗ trợ giao dịch Forex

4. Làm sao để có kết quả backtest một cách chính xác nhất

Trên thực tế, có nhiều nhà giao dịch backtest một chiến lược hay một mô hình giá và nhận được kết quả rất tốt. Tuy nhiên, khi áp dụng các chiến lược đó vào giao dịch thực tế lại nhận được kết quả thảm hại.

Lý giải cho tình trạng này, có lẽ yếu tố quan trọng nhất chính là việc các nhà giao dịch thường thiếu khách quan khi thực hiện backtest.

Khi nhìn vào biểu đồ để kiểm tra một chiến lược, chúng ta có xu hướng bị thu hút bởi những thiết lập thành công nhiều hơn so với những lần chúng thất bại. Điều đó có nghĩa là có nhiều tín hiệu đúng với chiến lược nhưng lại bị bỏ qua khiến cho kết quả backtest thiếu chính xác, cụ thể là có tỷ lệ thành công cao hơn so với thực tế.

Ngoài ra, có đôi lúc chúng ta cũng thiếu nghiêm khắc trong khi thực hiện việc kiểm tra. Ví dụ anh em đang backtest một chiến lược với mức cắt lỗ 100pips. Trong quá trình kiểm tra anh em thấy một thiết lập mà giá đi ngược tới 120 pips rồi mới trở lại đúng hướng. Nếu không đủ nghiêm khắc, anh em sẽ nghĩ rằng “có thể lúc giao dịch mình sẽ dịch stoploss và lệnh này vẫn thắng”. Điều này đã biến một lệnh sai thành một lệnh đúng và ảnh hưởng đến kết quả backtest.

Để khắc phục được vấn đề này, anh em chỉ cần thực hiện backtest một cách công tâm, khách quan và nghiêm khắc. Nghe có vẻ đơn giản nhưng thực tế để làm được như vậy không phải điều dễ dàng, đòi hỏi rất nhiều sự cố gắng từ anh em.

Một vấn đề khác khiến cho kết quả backtest thường tốt hơn thực tế là một số thiết lập có thể thành công một cách rất ngẫu nhiên trong một số điều kiện thị trường. Điều này thường xảy ra khi anh em thực hiện backtesting với quá ít dữ liệu hoặc trong một điều kiện thị trường hạn chế.

Để khắc phục, hãy cố gắng thống kê được càng nhiều dữ liệu càng tốt, và kiểm tra trên nhiều điều kiện thị trường khác nhau. Điều đó sẽ làm giảm tỷ lệ của những thiết lập thành công một cách ngẫu nhiên, từ đó phản ánh đúng nhất hiệu quả của chiến lược trong mọi điều kiện thị trường.

5. Tổng kết

Backtest là một bước vô cùng quan trọng trước khi bắt đầu bất cứ một chiến lược giao dịch mới nào. Tuy nhiên, trên thực tế giai đoạn này lại bị nhiều người bỏ qua vì cho rằng nó mất nhiều thời gian và công sức.

Tất nhiên, sự thật đúng là chúng ta cần nhiều thời gian và công sức, nhưng anh em cần nhớ rằng ở trên thị trường này không có phần thưởng nếu như không nỗ lực. Anh em bỏ công sức ra bao nhiêu thì sẽ nhận lại kết quả xứng đáng bấy nhiêu, do đó hy vọng anh em sẽ dành thời gian backtesting bất cứ một chiến lược hay mô hình giá nào trước khi sử dụng.

Sau khi đã tìm kiếm được chiến lược có hiệu quả tốt, anh em vẫn nên thử áp dụng với tài khoản demo để đảm bảo nó hoạt động tốt trước khi giao dịch với tài khoản thật nhé. Hãy bảo vệ tài khoản của mình thật tốt trước khi nghĩ đến lợi nhuận, đó chính là cách làm tốt nhất để tồn tại lâu dài trên thị trường.

Chúc anh em giao dịch an toàn và hiệu quả.

VnRebates tổng hợp

👉 Cập nhật Phương pháp trading mới và hiệu quả nhất trên thế giới bằng 4 Khóa học video miễn phí
Risk Disclaimer: Bài viết thể hiện quan điểm và góc nhìn của cá nhân tác giả, chỉ có giá trị tham khảo về mặt thông tin, kiến thức và không có giá trị pháp lý về khuyến nghị đầu tư hay thay thế cho việc tư vấn tài chính nào tương đương. Bài viết không đảm bảo bất kỳ khoản lợi nhuận nào hay giảm thiểu rủi ro đầu tư nào cho chính độc giả. VnRebates không chịu trách nhiệm hay liên quan đến khoản đầu tư của độc giả khi sử dụng thông tin từ bài viết này. Bản quyền thuộc về đóng góp của tác giả.