Trang chủBlogPhân Tích Kỹ ThuậtBacktest dữ liệu ngày và dữ liệu tuần có thể cho kết quả khác nhau ra sao?
Backtest dữ liệu ngày và dữ liệu tuần có thể cho kết quả khác nhau ra sao?
Phân Tích Kỹ Thuật

Backtest dữ liệu ngày và dữ liệu tuần có thể cho kết quả khác nhau ra sao?

Backtest dữ liệu ngày và dữ liệu tuần

Ngọc Hải LươngNgọc Hải Lương
3/8/2026
15 phút phút đọc
45 lượt xem

Khi bắt đầu backtest, nhiều người thường nghĩ dữ liệu ngày và dữ liệu tuần chỉ khác nhau ở số lượng cây nến. Một năm có khoảng 250 phiên giao dịch nhưng chỉ có khoảng 52 tuần, vì vậy họ cho rằng dùng dữ liệu tuần đơn giản là làm biểu đồ “gọn” hơn và giảm số lần giao dịch. Tuy nhiên, khi đổi từ dữ liệu ngày sang dữ liệu tuần, chúng ta không chỉ đổi độ phân giải của biểu đồ mà còn thay đổi cách chiến lược nhìn thị trường, cách chỉ báo được tính, thời điểm tín hiệu được xác nhận và cách lệnh có thể được thực hiện trong thực tế.

Cùng một ý tưởng giao dịch có thể tạo ra kết quả hoàn toàn khác khi chạy trên hai loại dữ liệu. Chiến lược dùng dữ liệu ngày thường phản ứng nhanh hơn trước biến động mới, nhưng cũng dễ bị nhiễu và giao dịch nhiều hơn. Chiến lược dùng dữ liệu tuần thường chậm hơn, bỏ qua được nhiều dao động ngắn hạn nhưng có thể vào lệnh muộn, thoát lệnh muộn và không nhìn thấy toàn bộ diễn biến xảy ra bên trong từng tuần.

8295c01f-6cd7-4374-9d16-bb7a8f474766.png

Vì vậy, kết quả khác nhau không chỉ nằm ở tổng lợi nhuận. Số giao dịch, tỷ lệ thắng, drawdown, chi phí, thời gian nắm giữ và rủi ro thực tế đều có thể thay đổi.

Phần 1: Dữ liệu tuần không chỉ là dữ liệu ngày được rút gọn

Dữ liệu ngày ghi lại giá mở cửa, cao nhất, thấp nhất, đóng cửa và khối lượng của từng phiên giao dịch. Khi chuyển sang dữ liệu tuần, nhiều phiên trong cùng một tuần được gộp thành một cây nến duy nhất. Giá mở cửa tuần được lấy từ phiên đầu tiên, giá đóng cửa tuần lấy từ phiên cuối cùng, giá cao nhất và thấp nhất được lấy từ toàn bộ các phiên trong tuần, còn khối lượng là tổng khối lượng của những phiên đó.

Nhìn qua, việc tổng hợp này có vẻ khá đơn giản. Nhưng vấn đề quan trọng là dữ liệu tuần đã làm mất thứ tự diễn biến của giá bên trong tuần. Chúng ta biết giá từng đạt mức cao nhất và thấp nhất, nhưng không biết mức nào xuất hiện trước. Trong nhiều chiến lược, thứ tự này quyết định giao dịch lãi hay lỗ.

Giả sử một cổ phiếu mở cửa tuần ở mức 100. Trong những phiên đầu tuần, giá giảm xuống 92 rồi sau đó phục hồi mạnh và đóng cửa cuối tuần ở 108. Trên biểu đồ tuần, chúng ta nhìn thấy một cây nến tăng đẹp và có thể kết luận xu hướng vẫn tích cực. Nhưng nếu chiến lược đang giữ vị thế mua với mức dừng lỗ tại 95, nhà đầu tư thực tế đã bị cắt lỗ từ đầu tuần, trước khi giá kịp hồi lên 108.

Nếu backtest chỉ dùng dữ liệu tuần và chỉ kiểm tra giá đóng cửa, hệ thống có thể cho rằng vị thế vẫn được giữ và giao dịch có lãi. Kết quả đó sẽ lạc quan hơn thực tế vì nó đã bỏ qua việc giá từng xuyên qua mức dừng lỗ.

Tình huống tương tự xảy ra khi trong cùng một tuần, giá vừa chạm mục tiêu lợi nhuận vừa chạm mức cắt lỗ. Dữ liệu tuần cho chúng ta biết cả mức cao nhất và thấp nhất đều xuất hiện, nhưng không cho biết lệnh nào được kích hoạt trước. Nếu chương trình luôn giả định mục tiêu lợi nhuận được chạm trước, backtest sẽ đẹp hơn thực tế. Nếu luôn giả định dừng lỗ xảy ra trước, kết quả sẽ bảo thủ hơn nhưng chưa chắc phản ánh đúng diễn biến.

Đây là lý do dữ liệu tuần phù hợp hơn với những chiến lược ra quyết định dựa trên giá đóng cửa tuần, thay vì những chiến lược phụ thuộc nhiều vào biến động trong tuần. Nếu chiến lược dùng stop loss, take profit, trailing stop hoặc lệnh giới hạn, người nghiên cứu nên giữ dữ liệu ngày hoặc dữ liệu trong ngày để mô phỏng việc thực hiện lệnh chính xác hơn.

Một khác biệt lớn khác nằm ở ý nghĩa của thông số chỉ báo. SMA 20 trên biểu đồ ngày và SMA 20 trên biểu đồ tuần đều có số 20, nhưng chúng không đại diện cho cùng một khoảng thời gian. SMA 20 ngày sử dụng khoảng một tháng giao dịch, còn SMA 20 tuần sử dụng gần năm tháng dữ liệu. SMA 50 ngày phản ánh khoảng hai tháng rưỡi, trong khi SMA 50 tuần bao phủ gần một năm.

Do đó, khi lấy nguyên chiến lược giao cắt SMA 20 và SMA 50 từ dữ liệu ngày rồi chuyển sang dữ liệu tuần, chúng ta đã biến một chiến lược trung hạn thành một chiến lược dài hạn. Nó không còn là cùng một hệ thống được thử nghiệm trên một tập dữ liệu khác, mà là một hệ thống có tốc độ phản ứng hoàn toàn khác.

Ngay cả khi quy đổi SMA 20 ngày thành SMA 4 tuần, kết quả vẫn không giống hệt nhau. SMA 20 ngày dùng 20 giá đóng cửa riêng biệt, trong khi SMA 4 tuần chỉ dùng bốn mức đóng cửa tuần. Một tuần có thể biến động rất mạnh nhưng nếu giá cuối tuần quay lại gần mức cũ, toàn bộ dao động trong tuần gần như biến mất khỏi phép tính SMA tuần.

Dữ liệu tuần vì thế có khả năng lọc nhiễu tốt hơn, nhưng đổi lại là mất chi tiết. Dữ liệu ngày giữ được nhiều thông tin hơn, nhưng đồng thời đưa thêm nhiều biến động ngắn hạn vào chiến lược.

Phần 2: Kết quả lợi nhuận, drawdown và số giao dịch sẽ khác nhau như thế nào?

Chiến lược chạy trên dữ liệu ngày thường tạo nhiều tín hiệu hơn. Mỗi phiên giao dịch đều có thể làm giá cắt lên hoặc cắt xuống một đường trung bình, phá vỡ một vùng giá hoặc thay đổi trạng thái của chỉ báo. Trong thị trường đi ngang, tín hiệu có thể xuất hiện liên tục, khiến hệ thống mua rồi bán trong thời gian ngắn.

Khi chuyển sang dữ liệu tuần, nhiều tín hiệu ngắn hạn bị gộp lại và biến mất. Giá có thể xuống dưới đường trung bình vào thứ Ba nhưng quay trở lại phía trên vào thứ Sáu. Trên dữ liệu ngày, chiến lược có thể đã bán rồi mua lại. Trên dữ liệu tuần, không có tín hiệu nào xuất hiện vì giá đóng cửa tuần vẫn nằm trên đường trung bình.

Điều này khiến số lượng giao dịch của backtest tuần thường thấp hơn đáng kể. Thời gian nắm giữ dài hơn và turnover cũng thấp hơn. Với chiến lược phải chịu phí giao dịch, thuế, spread và slippage, việc giảm số lệnh có thể tạo ra khác biệt lớn trong lợi nhuận ròng.

Ví dụ, một chiến lược ngày có thể tạo 120 giao dịch trong năm và đạt lợi nhuận 25% trước chi phí. Nếu tổng chi phí giao dịch và trượt giá làm mất 8%, lợi nhuận thực tế chỉ còn 17%. Trong khi đó, phiên bản dữ liệu tuần có thể chỉ tạo 25 giao dịch, đạt 21% trước chi phí nhưng giữ lại 19% sau chi phí. Phiên bản tuần có lợi nhuận thô thấp hơn nhưng hiệu quả thực tế lại cao hơn.

Tuy nhiên, dữ liệu tuần không phải lúc nào cũng tốt hơn. Vì tín hiệu chỉ được xác nhận khi tuần giao dịch kết thúc, hệ thống có thể phản ứng rất chậm trước một cú đảo chiều mạnh. Nếu thị trường giảm sâu từ đầu tuần, chiến lược tuần vẫn có thể phải chờ đến phiên cuối tuần mới phát tín hiệu bán. Đến lúc thực hiện lệnh ở đầu tuần sau, giá có thể đã giảm thêm một đoạn đáng kể.

Chiến lược ngày có thể thoát sớm hơn vì nó kiểm tra trạng thái sau mỗi phiên. Trong những giai đoạn thị trường giảm nhanh, lợi thế phản ứng sớm này có thể giúp hạn chế drawdown. Ngược lại, trong thị trường đi ngang, sự nhạy cảm của dữ liệu ngày khiến hệ thống dễ bị mua bán sai hướng nhiều lần, tạo ra một chuỗi thua lỗ nhỏ liên tiếp.

Có thể hiểu đơn giản rằng dữ liệu ngày dễ bị “quét” bởi những biến động ngắn hạn, còn dữ liệu tuần dễ bị chậm khi xu hướng đảo chiều nhanh.

Drawdown của hai phiên bản cũng không nhất thiết giống nhau. Nhiều người cho rằng chiến lược tuần luôn có drawdown thấp hơn vì ít nhiễu hơn, nhưng điều này chỉ đúng trong một số môi trường. Nếu thị trường dao động thất thường nhưng chưa hình thành xu hướng mới, dữ liệu tuần có thể giúp tránh giao dịch quá mức và giữ drawdown thấp. Nếu thị trường sụp đổ nhanh, việc chờ tín hiệu tuần có thể khiến khoản lỗ tích lũy lớn hơn.

Số lượng quan sát cũng ảnh hưởng đến độ tin cậy của kết quả. Mười năm dữ liệu ngày cung cấp khoảng 2.500 phiên, trong khi dữ liệu tuần chỉ có khoảng 520 cây nến. Nếu chiến lược tuần chỉ giao dịch vài lần mỗi năm, toàn bộ backtest có thể chỉ chứa 20 đến 40 giao dịch.

Một kết quả tỷ lệ thắng 70% nghe có vẻ rất tốt, nhưng nếu chỉ dựa trên 20 giao dịch thì chưa chắc đủ thuyết phục. Chỉ cần một hoặc hai giao dịch thay đổi, tỷ lệ thắng có thể giảm mạnh. Trong khi đó, chiến lược ngày có nhiều giao dịch hơn, giúp đánh giá tính ổn định tốt hơn, dù cũng phải đối mặt với nguy cơ overfitting cao hơn do có quá nhiều tín hiệu và tham số để thử.

Các chỉ số như Sharpe Ratio cũng cần được tính đúng theo tần suất dữ liệu. Khi dùng lợi nhuận ngày, hệ số năm hóa thường dựa trên khoảng 252 phiên. Khi dùng lợi nhuận tuần, hệ số năm hóa gần với 52 tuần. Nếu dùng nhầm hệ số, Sharpe Ratio của chiến lược có thể bị thổi phồng hoặc thu nhỏ.

Ngoài ra, cần phân biệt giữa lợi nhuận được ghi nhận mỗi ngày và lợi nhuận chỉ được lấy ở cuối tuần. Một chiến lược tuần vẫn có giá trị danh mục biến động trong các phiên giữa tuần, dù hệ thống không thay đổi vị thế. Nếu chỉ tính drawdown bằng giá đóng cửa tuần, những mức sụt giảm sâu giữa tuần có thể bị bỏ qua. Điều này làm Max Drawdown trông thấp hơn trải nghiệm thực tế của nhà đầu tư.

Vì vậy, một cách thận trọng là dùng tín hiệu tuần để quyết định vị thế nhưng vẫn định giá danh mục bằng dữ liệu ngày. Nhờ đó, chiến lược giữ đúng logic giao dịch theo tuần nhưng drawdown và rủi ro được đo lường sát thực tế hơn.

Phần 3: Làm thế nào để so sánh dữ liệu ngày và dữ liệu tuần một cách công bằng?

Trước khi so sánh, cần xác định rõ chúng ta muốn giữ nguyên điều gì. Nếu giữ nguyên thông số SMA 20–50 trên cả hai khung, chúng ta đang so sánh một chiến lược trung hạn trên dữ liệu ngày với một chiến lược dài hạn trên dữ liệu tuần. Đây là phép thử hợp lệ, nhưng không nên gọi đó là cùng một chiến lược.

Nếu muốn giữ khoảng thời gian gần tương đương, có thể quy đổi thông số. Chẳng hạn, SMA 20 ngày tương đương gần bốn tuần và SMA 50 ngày gần mười tuần. Khi đó, có thể so sánh SMA 20–50 ngày với SMA 4–10 tuần. Tuy nhiên, dù thời gian tương đương, dữ liệu đầu vào vẫn khác nhau nên tín hiệu sẽ không hoàn toàn trùng khớp.

Tốt nhất nên chạy hai loại kiểm tra. Kiểm tra thứ nhất giữ nguyên thông số để xem việc đổi khung thời gian làm thay đổi tính cách của hệ thống ra sao. Kiểm tra thứ hai quy đổi thông số để so sánh những chiến lược có chân trời đầu tư gần nhau.

Thời điểm vào lệnh cũng phải được xử lý nhất quán. Nếu tín hiệu ngày được tạo từ giá đóng cửa hôm nay, lệnh hợp lý thường được thực hiện ở giá mở cửa ngày tiếp theo. Nếu tín hiệu tuần chỉ hoàn tất sau phiên cuối tuần, lệnh nên được thực hiện ở phiên đầu tuần kế tiếp.

Không nên dùng giá đóng cửa vừa tạo tín hiệu để đồng thời giả định mua ngay tại chính mức giá đó, trừ khi chiến lược được thiết kế để giao dịch trong phiên đấu giá đóng cửa và có khả năng thực hiện thực tế.

Ví dụ, nếu giá đóng cửa thứ Sáu vượt MA50 và tạo tín hiệu mua, chương trình chỉ biết chắc điều đó sau khi phiên giao dịch kết thúc. Việc mua tại chính giá đóng cửa thứ Sáu là một giả định khó thực hiện. Hợp lý hơn là mua tại giá mở cửa thứ Hai, đồng thời chấp nhận khả năng xuất hiện gap.

Khi tạo dữ liệu tuần từ dữ liệu ngày, nhãn thời gian cũng phải được thiết lập đúng. Một lỗi nguy hiểm là gắn cây nến tuần vào ngày thứ Hai dù cây nến đó chứa cả dữ liệu đến thứ Sáu. Khi đó, chương trình có thể tưởng rằng ngay từ đầu tuần đã biết giá cao nhất, thấp nhất và đóng cửa của cả tuần. Đây là look-ahead bias rất nghiêm trọng.

Cây nến tuần cần được ghi nhận tại thời điểm nó thực sự hoàn tất, thường là phiên cuối cùng của tuần giao dịch. Những tuần có ngày nghỉ lễ vẫn có thể được sử dụng, dù chỉ có ba hoặc bốn phiên, miễn dữ liệu phản ánh đúng các phiên đã xảy ra.

Việc tính chi phí phải giống nhau giữa hai backtest. Dữ liệu tuần tạo ít lệnh hơn nhưng có thể gặp gap lớn hơn khi thực hiện vào đầu tuần. Vì vậy, không nên giả định slippage bằng 0 chỉ vì tần suất giao dịch thấp.

Quy mô vị thế cũng cần được điều chỉnh theo khoảng dừng lỗ. Một chiến lược tuần thường sử dụng ATR hoặc vùng giá rộng hơn, dẫn đến stop xa hơn. Nếu vẫn dùng cùng số lượng cổ phiếu như chiến lược ngày, số tiền chịu rủi ro trên mỗi giao dịch sẽ lớn hơn.

Cách so sánh công bằng là giữ rủi ro tiền tệ giống nhau. Ví dụ, cả hai hệ thống chỉ được phép mất tối đa 1% tài khoản cho mỗi giao dịch. Nếu stop của chiến lược ngày là 5% còn stop của chiến lược tuần là 10%, vị thế tuần phải nhỏ hơn một nửa để rủi ro được giữ tương đương.

Có thể diễn đạt bằng công thức:

Quy mô vị thế = Số tiền chấp nhận rủi ro ÷ Khoảng cách đến điểm dừng lỗ

Ngoài tổng lợi nhuận, bảng kết quả nên có CAGR, Max Drawdown, Sharpe Ratio, số giao dịch, tỷ lệ thắng, lợi nhuận trung bình mỗi giao dịch, turnover, thời gian nắm giữ và tỷ lệ thời gian chiến lược thực sự có vị thế trên thị trường.

Cũng cần kiểm tra lợi nhuận có phụ thuộc vào một vài giao dịch đặc biệt hay không. Một chiến lược tuần có thể đạt CAGR cao chỉ vì giữ được một xu hướng tăng rất dài. Nếu bỏ giao dịch đó, phần còn lại của hệ thống có thể không còn hiệu quả. Chiến lược ngày có thể tạo lợi nhuận đều hơn nhưng bị chi phí ăn mòn nhiều hơn.

Cuối cùng, nên kiểm tra cả hai phiên bản trên nhiều giai đoạn thị trường. Thị trường tăng dài, thị trường đi ngang và thị trường giảm nhanh sẽ tạo ra những kết quả khác nhau. Dữ liệu tuần thường thuận lợi trong xu hướng dài và ít hiệu quả hơn khi cần phản ứng nhanh. Dữ liệu ngày thường thích ứng nhanh nhưng dễ bị nhiễu trong giai đoạn không có xu hướng.

Kết luận

Backtest dữ liệu ngày và dữ liệu tuần có thể khác nhau rất nhiều vì hai loại dữ liệu không giữ cùng lượng thông tin và không phản ứng với thị trường theo cùng tốc độ.

Dữ liệu ngày cung cấp nhiều chi tiết, phát hiện tín hiệu nhanh và mô phỏng stop loss tốt hơn. Đổi lại, nó tạo nhiều giao dịch, nhiều nhiễu và chi phí cao hơn.

Dữ liệu tuần lọc bớt dao động ngắn hạn, làm xu hướng dễ quan sát và giảm turnover. Nhưng nó làm mất thứ tự diễn biến trong tuần, phản ứng chậm và có thể che giấu drawdown giữa các phiên.

Vì vậy, không nên kết luận chiến lược tuần tốt hơn chỉ vì đường lợi nhuận mượt hơn. Đường lợi nhuận có thể mượt một phần vì dữ liệu đã bỏ qua những biến động xảy ra bên trong tuần.