Nan đề quy nạp trong backtest chiến lược giao dịch


Những quyết định mua và bán trên thị trường được thực hiện bởi con người, với tư cách cá nhân hay tổ chức, hoặc bằng các công cụ hỗ trợ như thuật toán hay robot. Dù bằng cách nào thì chúng ta cũng cần phải có lợi thế, và chúng ta chỉ có được nó khi xác định thành công những thời điểm mà tại đó, thị trường ít ngẫu nhiên hơn bình thường, đồng thời thực hiện các giao dịch phù hợp với các lợi thế có được tại đó. Để biết được thực sự một chiến lược giao dịch có hiệu quả và khai thác được các lợi thế hay không, chúng ta cần tiến hành backtest (kiểm tra lại).

Backtest là quá trình thực thi một chiến lược giao dịch trên dữ liệu lịch sử để xem nó sẽ hoạt động như thế nào trong quá khứ. Backtest sẽ trả về tổng lợi nhuận giả định, danh sách các giao dịch lịch sử và nhiều số liệu hiệu suất khác để phân tích tiềm năng của hệ thống giao dịch trên thị trường. Ví dụ, chúng ta có thể mở một biểu đồ dữ liệu 10 năm của một loại tài sản nào đó và áp dụng chiến lược của mình trong nhận thức muộn, để xem chiến lược sẽ hoạt động như thế nào. Kết quả của backtest có thể giúp chúng ta định vị và đo lường được lợi thế một cách rất rõ ràng, cung cấp thông tin về cách chiến lược sẽ hoạt động trong tương lai. Mặc dù hiệu suất quá khứ không đảm bảo thành công trong tương lai, nhưng việc nhìn thấy hiệu suất tích cực trong quá khứ sẽ mang lại sự tự tin và tâm lý tốt cho nhà giao dịch.

Chúng ta có thể thực hiện quá trình này thủ công bằng trình phát lại biểu đồ trên phần mềm giao dịch, sau đó ghi chép và thống kê kết quả trong Excel, hoặc viết các đoạn code bằng những ngôn ngữ phổ biến như Python, C++, Pine,... Backtest thủ công không yêu cầu những kiến thức, tư duy logic như lập trình, đồng thời dễ dàng thực hiện với đa số mọi người. Tuy nhiên, nó lại tốn rất nhiều thời gian, dễ gặp các thiên kiến, sai lệch.

Để tìm được một chiến lược có thể áp dụng vào thực tế, chúng ta cần phải kiểm tra được nó với một số mẫu đủ lớn. Một hệ thống được kiểm tra trong khoảng thời gian vài năm không có nhiều ý nghĩa, bởi nó chưa chứng minh được hiệu suất trong nhiều giai đoạn thị trường khác nhau. Chiến lược nên được kiểm tra ít nhất trong khoảng thời gian 10 năm. Tốt hơn hết là chúng ta hãy học cách để sử dụng việc backtest bằng lập trình, điều này sẽ giúp chúng ta tiết kiệm thời gian đồng thời tránh được nhiều lỗi tính toán.

Có một vấn đề rất nan giải đã được đề cập trong phần trước, khi chúng ta thực hiện việc backtest. Đó là chúng ta không thể chắc chắn được một chiến lược có lợi thế có tiếp tục hoạt động trong tương lai hay không. Hình dưới tiếp tục cho chúng ta thấy một chiến lược như vậy. Chiến lược này từng hoạt động rất tốt trong khoảng thời gian từ 2006 đến 2015, với đường tăng trưởng vốn khá ổn đem lại kỳ vọng dương, nhưng kể từ 2015 đến nay, chiến lược lại thua lỗ liên tục.

Điều này có thể do hai nguyên nhân, thứ nhất là chiến lược này thực sự có lợi thế, nhưng do quá trình phân phối ngẫu nhiên, nó đang gặp một kịch bản xấu trong các kịch bản có thể xảy ra từ năm 2015, giống như kịch bản trong mô phỏng Monte Carlo. Nếu tiếp tục giao dịch chiến lược này, chúng ta có thể sẽ kiếm được lợi nhuận khi giá trị kỳ vọng của nó hội tụ về trung bình. Nguyên nhân thứ hai có thể là bởi chiến lược này không có lợi thế, nhưng do may mắn mà hiệu suất của nó trong hơn 10 năm đầu tiên đem lại kỳ vọng dương, điều đó chỉ diễn ra trong ngắn hạn mà thôi. Nếu tiếp tục giao dịch chiến lược này, chúng ta sẽ không đạt được kết quả nào cả.

Vậy thì đến đây, chúng ta sẽ đặt một câu hỏi, chiến lược này khác gì một chiến lược cho kết quả kỳ vọng dương trong 15 năm hoặc thậm chí 20 năm? Làm sao để phân biệt được đâu là một chiến lược có lợi thế thực sự và một chiến lược may mắn? Có thể kết quả tích cực trong 20 năm của một chiến lược nào đó chỉ là phân phối ngẫu nhiên thì sao? Hoặc một chiến lược cho kết quả backtest kém không phải do nó không tồn tại lợi thế mà chỉ bởi vì nó đang trải qua một kịch bản tồi tệ trong đám mây xác suất?

Thực tế, chúng ta không thể tìm ra một câu trả lời hoàn toàn chính xác cho vấn đề này. Tất cả những gì chúng ta có thể làm trong suốt cuộc đời, hay trong bất kỳ khoảng thời gian nào, chỉ là quan sát một tập hợp hữu hạn các giao dịch trong quá khứ, sau đó sử dụng phép quy nạp để suy luận những gì có thể xảy ra trong một tập hợp lớn hơn ở tương lai – một tập hợp vốn dĩ là vô hạn. Hãy thử tưởng tượng bạn đang giải thích cho con gái mình về định luật vạn vật hấp dẫn: nếu bạn thả một quả táo từ trên cao, quả táo sẽ rơi xuống đất. Bạn thả 100 lần, 100 lần quả táo rơi, bạn thả 1.000 lần, 1.000 lần quả táo rơi. Nhưng rồi cô bé hỏi: “Làm sao chắc chắn rằng lần thả thứ 1 nghìn lẻ 1, quả táo vẫn rơi? Và nếu lần đó quả táo rơi, thì làm sao biết lần thả thứ 1 nghìn lẻ 2, quả táo cũng rơi?”

Cứ như thế, chúng ta sẽ bị cuốn vào một vòng lặp vô tận. Đây chính là điểm yếu của phép quy nạp: nó giới hạn hiểu biết của chúng ta trong những gì đã được quan sát. Việc nhìn thấy 1 triệu con thiên nga trắng không có nghĩa rằng tất cả thiên nga trên đời đều trắng, bởi chỉ cần xuất hiện một con thiên nga đen, toàn bộ giả thuyết sẽ sụp đổ. Điều này nghe thật buồn, có lẽ chúng ta nên từ bỏ việc giao dịch bởi sự ngẫu nhiên quá đáng sợ. Nó như đang chế nhạo chúng ta, biến mọi nỗ lực của chúng ta trở nên vô nghĩa.

Vậy chúng ta phải đối mặt với nan đề này như thế nào? Liệu chúng ta có thể giải quyết nó không? Tôi sẽ cố gắng tìm ra câu trả lời trong các bài viết tiếp theo.

 


Comments