Tỷ lệ thắng lịch sử cao không tự xác nhận lợi thế. Backtest đánh giá quy tắc rõ trên dữ liệu xác định dưới mô hình thực thi; kiểm tra cẩn thận vẫn không bảo đảm lợi nhuận tương lai.

Vì sao kiểm thử lịch sử?

Kỳ vọng lịch sử dương là bằng chứng về mẫu đã thử. Nó có thể do may mắn, lựa chọn hoặc quá khớp; cần dữ liệu giữ lại, phí và độ bền trước khi suy rộng. Test có thể phát hiện quy tắc mâu thuẫn mà chưa cần nạp tiền.

Quy tắc phải xác định lúc thông tin có sẵn

Ghi mã, khung, đầu vào tín hiệu, lúc gửi, thoát và tính cỡ. Quy tắc ngày giả định so close nến đã hoàn thành với high nến trước rồi chỉ gửi khi close được biết. Dùng close cuối để vào open đầu cùng nến là nhìn trước. Định cách xử lý vị thế có sẵn, dữ liệu thiếu hoặc không đủ margin; cài chỉ báo không tự giải quyết hoặc bảo đảm khớp.

Tìm lợi thế giao dịch cần xem cả chọn mẫu và bất định. Replay tay và chạy mã có thể trả lời câu hỏi vận hành khác; không cách nào tự loại thông tin tương lai.

Đổi nhãn giờ không đổi lúc biết close

Lịch nến giả định mở 00:00 UTC ngày 21/10/2026, đóng 00:00 UTC ngày 22/10. Tại Việt Nam UTC+7, đó là mở 07:00 ngày 21, đóng 07:00 ngày 22. Tín hiệu dùng close ngày 22 không được khớp giả tại open 07:00 ngày 21. Đổi tên “nến ngày 21” sang ngày Việt Nam không đưa dữ liệu về sớm hơn 24 giờ. Đây là lịch nến do ví dụ đặt, không lịch server của một broker.

Thẻ tái lập lưu: múi giờ nguồn, khoảng nến, giờ biết giá cuối, giờ gửi sớm nhất và giá khớp giả định. Nếu broker dùng ranh ngày khác, dựng lại nến thay vì chỉ đổi nhãn. Giữ thời điểm UTC để đối soát, trình bày thêm giờ Việt Nam cho người đọc.

Dữ liệu và cỡ mẫu

Chọn sản phẩm và mô hình khớp phù hợp: futures tiền tệ, spot OTC và CFD là hợp đồng khác; dữ liệu futures tập trung không tự thay được chiến lược retail spot. Không có 100 lệnh là ngưỡng thống kê chung; bằng chứng phụ thuộc phân tán, phụ thuộc, hiệu ứng, số thử và chế độ bao phủ. Báo bất định/cỡ mẫu hiệu dụng.

Ghi nhà cung cấp, hợp đồng, Bid/Ask, múi giờ và gap. OHLC không cho biết stop hay target bị chạm trước trong một nến. Tài liệu MT5 cho biết khi có nến phút nhưng thiếu tick, tester có thể sinh tick ngay trong kiểm thử tick thực; kiểm tra dataset/journal thay vì tin tên chế độ. Danh mục phải dùng lựa chọn tồn tại lúc đó, dữ liệu vĩ mô là bản đã công bố khi đó, không bản sửa sau.

Đối soát giá trước khi trừ spread

Mua Ask, bán Bid khác cách đo giữa midpoint. So hai cách trên một ví dụ đầy đủ.

Cuộn ngang để xem toàn bộ sơ đồ

Cuộn ngang để xem hết sơ đồ.

Đối soát giá trước khi trừ spreadMô hình giả định mua rồi bán một đơn vị lượng, không hoa hồng/tài trợ/trượt. Lúc vào Bid 100, Ask 102, mid 101; lúc ra Bid 103, Ask 105, mid 104. Ask 102→Bid 103 cho+1. Mid tăng+3, trừ hai nửa spread 1 và 1 cho+1. Trừ cả hai spread đầy đủ 2 và 2 từ thay đổi mid cho−1 là sai. Thanh kết quả cùng mốc 0/thang tuyến tính;−1 là lỗi đo, không phương án khớp khác hợp lệ.HAI CÁCH, CÙNG KẾT QUẢLong giả định • một đơn vị lượngBidAskMidpointVào100102101Ra103105104Midpoint thay đổi+3Ask → Bid+1Sai: −2 − 2−1−2024Đơn vị giá • +3 − 1 − 1 = +1

Giả định: Hai báo giá Bid/Ask giả định cùng một công cụ hư cấu: lúc vào 100/102, lúc ra 103/105. Midpoint là trung bình hai phía. Một đơn vị lượng tùy chọn, khớp đúng Ask/Bid gán. Không phí, tài trợ, gap, trượt. Không phải giá Forex hiện hành hoặc khớp bảo đảm.

Khớp đúng giá gán cho 103 − 102 = +1. Midpoint đổi 104−101=+3. Giá vào cao hơn mid 1, giá ra thấp hơn mid 1:3−1−1=+1. Hai cách đối soát cùng mô hình.

Spread đầy đủ bằng 2 lúc vào và 2 lúc ra. Trừ cả hai từ thay đổi midpoint cho 3−2−2=−1, không khớp thực thi gán. Trừ 2 từ 103−102 cũng tính lặp vì kết quả đã dùng Ask/Bid.

MetaQuotes — giá giao dịch Bid và Ask phân biệt giá dựng biểu đồ với giá thực thi. Ghi nguồn từng giá trước khi so báo cáo. Phép tính dùng một đơn vị lượng/giá; phí thêm hoặc khớp khác cần mô hình riêng.

Kết quả Ask → Bid đã phản ánh chênh so với midpoint.

Spread, hoa hồng và trượt

Mua Ask, bán Bid đã phản ánh spread trong P/L giá; trừ tiếp là tính lặp. Thêm hoa hồng, tài trợ và chênh thực thi riêng. Spread giả định 0,8 pip chiếm 0,4% đích 200 pip, 16% đích 5 pip; đó là tỷ trọng khoảng đích, không tỷ trọng lợi thế hoặc kết quả giao dịch thật.

Ví dụ nước ngoài riêng giữ PLN: 50 giao dịch, 30 lãi PLN 40 và 20 lỗ PLN 50 trước phí. Tổng lãi 1.200, lỗ 1.000, ròng 200 PLN. Gán cùng toàn bộ phí cho mọi lệnh đã đóng, cả lệnh lỗ.

50 giao dịch giả định, không phải tài khoản thật
Phí/lệnhRòngTrung bìnhProfit factor ròng
PLN 0PLN 200PLN 41,20
PLN 2PLN 100PLN 2≈1,10
PLN 4PLN 0PLN 01,00

Tại phí PLN 2, mỗi lãi thành 38, mỗi lỗ 52:PF=1.140/1.040≈1,10. Bảng chỉ đổi giả định phí. Thử độ nhạy phí/khớp hợp lý; quy tắc gấp hai phí bình quân là bộ lọc chọn, không biên an toàn chung hoặc bằng chứng có lời.

Quá khớp và dữ liệu giữ lại

Chọn tốt nhất trong nhiều tham số, mã hoặc cách chia có thể khớp đặc điểm riêng của mẫu. Ghi mọi thử, kể cả ý tưởng bỏ ngoài optimizer. Kết quả mạnh không tự chứng minh đã quá khớp nhưng cần đánh giá riêng. Chỉ tối ưu hai tham số không xóa lựa chọn ở nơi khác.

Khóa quy tắc, phí và phần chia trước khi tinh chỉnh; 70/30 là một thiết kế, không bảo đảm. Test kém có thể do chế độ hoặc lấy mẫu, không chỉ overfit. Sửa sau khi xem test khiến nó trở thành dữ liệu phát triển; ghi việc dùng đó. Nghiên cứu của Bailey và cộng sự thảo luận rủi ro nhiều thử; giữ lại đơn giản không là thuốc chữa mọi rò rỉ.

Ví dụ nhãn kết quả tại t+3, test đầu bắt đầu t 10 và fit phải xong trước đó. Từ quyết định t 1–t 9, chỉ t 1–t 6 có kết quả trước t 10: t 6 biết tại t 9; t 7–t 9 biết tại t 10–t 12 không được dùng fit này. Giá cũ vẫn có thể cần để tính chỉ báo test. Loại ba nhãn chồng lấn chỉ xử lý lỗi vừa nêu, không mọi rò rỉ.

Đọc con số đúng phạm vi

Giả định xác suất thắng 0,54, lãi bình quân 2,3R, lỗ 1R: kỳ vọng gộp 0,54×2,3−0,46=0,782R;PF≈2,70. Không suy drawdown hoặc tổng lợi nhuận từ các giả định này. Riêng mức tăng được gán 87% trong đúng 5 năm cho lãi kép năm≈13,34%; không được suy nó từ thống kê giao dịch trên.

Thực hành kiểm tra

Gắn báo cáo với dataset, phiên bản quy tắc và mô hình khớp. Tái lập từng lệnh: một lỗ, tín hiệu thiếu, trường hợp thứ tự trong nến không rõ. Chạy demo có thể kiểm tra vận hành thời gian thực, không buộc chuyển sang tiền thật sau kết quả dương.

  1. Viết quy tắc máy móc trong một tệp: lúc thông tin có, lệnh, cỡ, cách xử lý thiếu/mơ hồ. So tín hiệu tái lập độc lập, điều tra sai khác.
  2. Chọn thời lượng và chia theo thời gian trước tối ưu; 2 hoặc 5 năm không là yêu cầu chung.
  3. Gồm spread đúng phía, hoa hồng, tài trợ, giả định trượt; thử độ nhạy. Mất hơn 20% lợi nhuận gộp cho phí không là ngưỡng loại chung.
  4. Ghi số lệnh, phụ thuộc, phân tán và bất định. Thêm mã/lịch sử có thể đổi giả thuyết; 100 lệnh không tự có ý nghĩa thống kê.
  5. So demo với mô hình đã khóa, điều tra chênh. Ba tháng không bảo đảm sẵn sàng tiền thật hoặc quyền có lãi.

Đổi giờ không được đổi thứ tự thông tin

Đổi giờ không được đổi thứ tự thông tinLịch nến do ví dụ đặt, UTC+7 Việt Nam; không suy lịch server thực.PHÉP TÍNH GIẢ ĐỊNHOpen21/10 00:00 UTCClose được biết22/10 00:00 UTCSai nhìn trướcDùng close tại open cũ
Đổi giờ không được đổi thứ tự thông tin. Lịch nến do ví dụ đặt, UTC+7 Việt Nam; không suy lịch server thực.

Ghi giờ biết thông tin và giờ lệnh riêng, không chỉ ngày in trên nến.

Trên màn hình nhỏ, bạn có thể cuộn ngang hoặc phóng to sơ đồ. Các giá trị và kết luận cũng có ở phần văn bản bên dưới.

Open
21/10 00:00 UTC – 21/10 07:00 tại Việt Nam.
Close được biết
22/10 00:00 UTC – 22/10 07:00 tại Việt Nam.
Sai nhìn trước
Dùng close tại open cũ – Đổi nhãn giờ không đưa giá cuối về trước 24 giờ.

Đọc nghiên cứu dữ liệu nguồn

Nghiên cứu ECB 2016–2025 của thư viện báo cáo 2.560 công bố EUR/USD, 49 ngày trong tuần không công bố và đối chiếu lịch TARGET; có dữ liệu, biểu đồ và mã. Đây là nghiên cứu được liên kết, không dataset giao dịch của ví dụ trên.

Không công bố tỷ giá không nhất thiết là gap dữ liệu: lịch ECB→