KenKem Journal

MasterVP 9/10: ổn định dưới áp lực. Spread, slippage, độ trễ, hai giai đoạn tách biệt

· #mastervp #backtesting #robustness

Ai cũng có thể làm một chiến lược trông đẹp trên dữ liệu sạch với khớp lệnh hoàn hảo. Bài test duy nhất mình thật sự tin là bài test được thiết kế để khiến chính hệ thống của mình thất bại, và mình công bố cả bài test mà nó đã thất bại.

MasterVP 9/10: ổn định dưới áp lực. Spread, slippage, độ trễ, hai giai đoạn tách biệt: biểu đồ cho phần 13 của loạt bài Từ giao dịch cảm tính đến giao dịch hệ thống
Phần 13/15, Từ giao dịch cảm tính đến giao dịch hệ thống. Biểu đồ do mình tự vẽ, mang tính minh họa, không theo tỷ lệ.

MasterVP · Hành trình giao dịch hệ thống

Phần 13/15: Từ giao dịch cảm tính đến giao dịch hệ thống

Chương 1 định nghĩa một hệ thống đã được chứng minh là hệ thống được test trong những điều kiện gây tổn thương: spread lớn, slippage, lệnh vào bị trễ. Chương này cho thấy điều đó trông như thế nào với MasterVP, từng bài test một, cùng những con số mình sẵn sàng đứng ra chịu trách nhiệm.

Test 1: tick thật, spread thật

Mọi kết quả đều đến từ dữ liệu tick thật: 238.8 triệu tick vàng thật của Exness từ tháng 1 năm 2021 đến tháng 5 năm 2026, mỗi tick có bid và ask riêng. Spread được đo theo từng tick, không bao giờ giả định là hằng số. Slippage được mô phỏng theo đường đi của tick tại thời điểm khớp lệnh. Không có nến mô phỏng, không có chi phí lấy trung bình.

Test 2: hai engine phải khớp nhau

Nghiên cứu chạy trên Dquants engine mình tự phát triển, viết bằng C++, vì nó có thể chạy hàng nghìn cấu hình. Nhưng tiếng nói cuối cùng về bất kỳ con số tiền nào thuộc về Strategy Tester của chính MetaTrader 5 trên tick thật, thứ mình coi là trọng tài. Trên năm nhánh đang triển khai và hơn 4,900 lệnh, hai bên khớp nhau về hướng lệnh và lý do vào lệnh với không một bất đồng nào. Khi nghiên cứu cần một con số mà riêng engine không thể xác nhận, nó được đưa trở lại cho trọng tài.

Test 3: vào lệnh trễ

Lệnh thật không khớp ngay tại khoảnh khắc ra quyết định. Mình đã test mọi nhánh ở độ trễ thực thi 0, 5 và 15 mili giây. Các nhánh 10 phút gần như không bị ảnh hưởng. Nhánh 5 phút giữ được hơn chín phần mười kết quả ngay cả ở 15 mili giây. Tác động thậm chí không đơn điệu, vì độ trễ làm thay đổi tick nào khớp lệnh, nên mình công bố một khoảng giá trị và không bao giờ công bố chi phí trên mỗi mili giây. Để tham khảo, server vận hành thật kết nối tới broker trong khoảng 3 mili giây.

Test 4: điểm vào lệnh có tốt hơn ngẫu nhiên không?

Đây là bài test mình thích nhất, vì nó được thiết kế để làm chiến lược bẽ mặt. Giữ nguyên mọi thứ của hệ thống, cùng thị trường, cùng số lệnh, cùng giờ và tháng, cùng tỷ lệ mua và bán, cùng kích thước stop, cùng engine thoát lệnh, và chỉ ngẫu nhiên hóa thời điểm vào lệnh. Làm như vậy 1,000 lần. Nếu các phiên bản ngẫu nhiên thường xuyên thắng quy tắc thật, thì quy tắc vào lệnh chẳng làm được gì.

Trên giai đoạn 2024-2026, 0 trên 1,000 phiên bản vào lệnh ngẫu nhiên thắng được quy tắc thật, trên cả hai khung thời gian, p dưới 0.001. Ngưỡng đạt p dưới 0.05 đã được đăng ký trước khi chạy test.

Trên giai đoạn 2021-2023, cùng bài test đó đã thất bại. 299 trên 1,000 phiên bản giả thắng quy tắc 10 phút, p bằng 0.30. Mình cố tình công bố bảng kết quả đó. Những năm đó nằm ngoài môi trường mà hệ thống được xây dựng để hoạt động, và phản ứng đúng là hệ thống đứng ngoài ở đó thay vì cố giao dịch xuyên qua, đó chính xác là điều các bộ lọc môi trường buộc nó làm.

Test 5: hai giai đoạn, đánh giá riêng

Ổn định nghĩa là kết quả không đến từ một giai đoạn may mắn. Qua mười một nửa năm từ 2021 đến 2026, 8 nửa năm dương, và nửa năm tệ nhất lỗ 1.5 phần trăm. Drawdown tối đa trên danh mục đang phát hành là 11.2 phần trăm.

Test 6: thiết lập cố định so với tối ưu lại

Một hệ thống bị curve-fit cần được tối ưu lại liên tục. Vì vậy mình đặt bộ thiết lập cố định đang phát hành đấu với một đối thủ chọn lại cấu hình tốt nhất trong 72 cấu hình ứng viên trước mỗi nửa năm, chỉ dùng dữ liệu có sẵn tại thời điểm đó. Qua chín giai đoạn mà cả hai cùng tồn tại, bộ thiết lập cố định làm tốt hơn. Một hệ thống không cần tối ưu lại là một hệ thống không bị tối ưu theo quá khứ.

Test 7: thật sự có bao nhiêu núm vặn được fit

Mọi thiết lập mà một preset đang phát hành áp dụng đều được dịch lên và xuống 10 phần trăm, từng cái một, qua 436 lần chạy trên tick thật. Trong 231 thiết lập được nhận diện, 82 được preset áp dụng, 49 có thể thay đổi việc lệnh nào xảy ra, và 33 được phát hành ở giá trị đã tinh chỉnh. So với mẫu hiệu dụng, như vậy là khoảng 19 đến 20 quan sát độc lập cho mỗi thiết lập được fit.

Test 8: quy tắc prop firm, mọi ngày bắt đầu

Quy tắc prop firm rất khắt khe, nên chúng là một bài stress test tốt. Với rủi ro 0.25 phần trăm mỗi lệnh trong giới hạn 5 phần trăm theo ngày và 10 phần trăm tổng, mình đã mô phỏng 567 ngày bắt đầu. Không lần nào vi phạm. Lần tệ nhất chạm drawdown 8.3 phần trăm so với ngưỡng 10 phần trăm.

Nghiên cứu phía sau

Tất cả những điều này nằm trên nền 7,990 cấu hình đã được tìm kiếm, 169 lần chạy trọng tài trên tick thật của MetaTrader 5 và hơn 335,000 lệnh mô phỏng. 158 thí nghiệm được đăng ký với quy tắc quyết định viết ra trước. 140 thí nghiệm không bao giờ trở thành sản phẩm. Tìm kiếm rộng như vậy chính là lý do các bài test chống overfitting ở trên phải nghiêm ngặt: thử đủ nhiều biến thể thì những kẻ sống sót ấn tượng sẽ xuất hiện do ngẫu nhiên.

Những gì tất cả điều này không chứng minh được

Backtest không phải là thành tích thực tế. Hồ sơ live đang công khai và vẫn còn non trẻ, và chương 14 nói về nó. Lợi thế này cần vàng chuyển động. Thị trường tương lai có thể tệ hơn giai đoạn 2021 đến 2026. Các bài test này là một dấu hiệu đầy hứa hẹn, đủ mạnh để mình chạy hệ thống bằng tiền thật và theo dõi nó. Điều đó đưa người khác đi xa đến đâu là do họ tự đánh giá từ bằng chứng và kỳ vọng của chính họ.

Điều rút ra

Trước khi tin bất kỳ backtest nào, kể cả của mình, hãy hỏi bốn điều. Tick thật hay nến mô phỏng? Chi phí và độ trễ được tính vào hay bị giả định là không có? Đã được test so với điểm vào ngẫu nhiên chưa? Và có giai đoạn nào nó thất bại không, tác giả có cho bạn thấy không?

Trong bốn điều đó, chiến lược hiện tại của bạn sẽ gặp khó nhất với điều nào?

Từ giao dịch cảm tính đến giao dịch hệ thống, phần 13/15.
Bài trước: MasterVP 8/10: giờ chặn và bảo vệ drawdown, những quy tắc giữ hệ thống sống sót
Bài tiếp: MasterVP 10/10: tài khoản live công khai, và vì sao mình chỉ thỉnh thoảng mới kiểm tra bot


Phần 13 của loạt bài Từ giao dịch cảm tính đến giao dịch hệ thống, cũng được đăng dưới dạng X Article. Chỉ nhằm mục đích giáo dục. Không phải lời khuyên tài chính. Các số liệu được trích dẫn là kết quả backtest và nghiên cứu trừ khi ghi rõ là live, và hiệu suất trong quá khứ không đảm bảo kết quả trong tương lai. Mỗi trader tự chịu trách nhiệm về thiết lập rủi ro và quyết định của chính mình.

← All journal articles

Chat