KenKem Journal

Vì sao một trading bot có thể nhiều ngày liền không vào lệnh?

· #trading-psychology #systematic-trading #market-regimes #risk-management #gold-trading

Một trading bot được xây dựng tốt có thể nhiều ngày liền không vào lệnh, vì lợi thế của nó chỉ tồn tại trong một số điều kiện thị trường nhất định, và bên ngoài các điều kiện đó, hành động đúng là không làm gì. Trên hệ thống vàng của mình, kết quả trung bình mỗi lệnh tăng theo biên độ ngày của vàng trong từng năm của cả sáu năm mình đã kiểm tra, nên vào những ngày trầm lắng nhất, hệ thống phần lớn đứng ngoài. Sự im lặng đó là hệ thống đang làm đúng việc, không phải hệ thống bị hỏng.

Các màn hình giao dịch sáng trong một căn phòng tối và vắng, biểu đồ vẫn chạy nhưng không có ai ngồi ở bàn
Phần lớn thời gian, màn hình vẫn chạy và không có việc gì cần làm. Ảnh: Rafael Minguet Delgado / Pexels.

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

Bài viết của người sáng lập KenKem, một kỹ sư phần mềm hai mươi năm kinh nghiệm, từng giao dịch vàng bằng tay trước khi xây dựng hạ tầng nghiên cứu đứng sau MasterVP. Bài này dành cho những ai từng nhìn một hệ thống tự động đứng yên và tự hỏi liệu nó có bị hỏng không, hoặc từng coi một ngày không vào lệnh là một ngày lãng phí. Đây là chia sẻ kiến thức, không phải khuyến nghị. Mọi con số dưới đây là kết quả backtest hoặc đo lường nghiên cứu trên dữ liệu tick thật, lấy từ bản tổng hợp phiên bản 1.26 ngày 15 tháng 9 năm 2026, và không con số nào là kết quả live.

Vì sao một bot im lặng lại có cảm giác như một bot bị hỏng?

Vì với trader giao dịch tay, hoạt động có cảm giác là đang làm việc, còn không hoạt động có cảm giác là thất bại.

Hồi giao dịch bằng tay, một phiên không có lệnh nào làm mình có cảm giác chưa làm xong việc của mình. Cảm giác đó không đến từ thị trường. Nó đến từ việc mình muốn thấy bản thân có ích, và nó sinh ra những lệnh mà mình sẽ không bao giờ viết thành kế hoạch. Nhiều trader biết rõ kiểu này: lệnh vào vì chán, lệnh "vào nhỏ thôi", lệnh vào vì biểu đồ đã đi ngang ba tiếng và chắc chắn phải có gì đó xảy ra.

Một hệ thống tự động loại bỏ cơn thôi thúc đó khỏi lệnh, nhưng không loại bỏ nó khỏi người đang theo dõi hệ thống. Phản ứng đầu tiên khi thấy bot im lặng là kiểm tra xem nó còn chạy không, và điều đó hợp lý, vì máy chủ đôi khi có khởi động lại. Phản ứng thứ hai mới nguy hiểm: muốn giúp nó một tay. Mình đã viết về cái giá thật của những lệnh thừa đó trong bài vì sao giao dịch quá nhiều âm thầm giết chết một chiến lược.

Vì sao hệ thống của mình đứng ngoài vào những ngày trầm lắng?

Vì vào những ngày trầm lắng, lợi thế đo được không có ở đó.

Qua 5,4 năm và 3.860 lệnh backtest, kết quả trung bình mỗi lệnh tăng đều theo biên độ ngày của vàng. Vào những ngày trầm lắng nhất, nó âm. Nó vượt qua điểm hòa vốn khi biên độ ngày vào khoảng 20 đến 22 đô la, và trên mức đó thì cải thiện dần khi biên độ lớn hơn. Mối quan hệ này đúng trong từng năm một từ 2021 đến 2026, sáu trên sáu, chứ không chỉ trong con số trung bình gộp.

Lý do mang tính cơ học. Một hệ thống breakout trả một khoản phí cố định cho mỗi lệnh, gồm spread và những lệnh thua phải chịu trong lúc chờ một nhịp giá thật. Khi thị trường gần như không chuyển động, không có nhịp nào đủ lớn để trả khoản phí đó. Vì vậy hệ thống được xây để lùi lại khi thị trường quá yên ắng để tự trả phí cho chính nó. Việc đứng ngoài là được thiết kế, không phải tâm trạng.

Một hệ thống tốt có thể không vào lệnh trong bao lâu?

Lâu hơn phần lớn mọi người nghĩ, và mình công bố các con số để khoảng im lặng được hiểu đúng.

Đo trên hệ thống đã phát hành, giai đoạn 2024 đến 2026, tính theo giờ thị trường:

  • khoảng cách trung vị giữa hai lần vào lệnh: 1,6 giờ
  • phân vị 95: 24,2 giờ
  • phân vị 99: 43,3 giờ
  • khoảng dài nhất: 91 giờ

Chín mươi mốt giờ thị trường là gần bốn ngày giao dịch trọn vẹn không có gì xảy ra. Nếu mình chưa đo con số đó, lần đầu nó xảy ra trên tài khoản live mình đã dễ coi đó là lỗi. Khi phân phối đã được ghi lại từ trước, câu hỏi "nó có hỏng không?" trở thành "khoảng này có nằm trong phạm vi mình đã biết không?", và câu hỏi đó có câu trả lời.

Còn có những khoảng im lặng có chủ đích khác. Hệ thống vào tối đa bốn lệnh mỗi phiên, và giới hạn lỗ trong ngày sẽ dừng hệ thống cho tới hết ngày khi chạm mức. Trong backtest 2024 đến 2026, giới hạn ngày đó đã tạm dừng giao dịch trong ba ngày.

Những phần nào của hệ thống được quyền nói không?

Ba lớp, và không lớp nào được tự mình nói có.

Lớp thứ nhất là bước kiểm tra môi trường ở trên: thị trường không đủ chuyển động thì không vào lệnh. Lớp thứ hai là các chỉ báo. Mình đã đo các chỉ báo kinh điển trên 849.963 nến vàng 1 phút và không chỉ báo nào đi trước giá, nên trong hệ thống của mình, chỉ báo chỉ có quyền phủ quyết. Một bước kiểm tra xu hướng có thể từ chối lệnh khi bối cảnh không đồng thuận. Nó không bao giờ được mở lệnh. Toàn bộ phép đo nằm trong bài chỉ báo giao dịch có thực sự dự đoán được giá không.

Lớp thứ ba là lớp bảo vệ, và thứ tự của nó có chủ đích: giảm khối lượng trước, rồi từ chối lệnh mới, rồi mới đóng toàn bộ vị thế. Lớp này có một đặc tính khiến mình lo hơn bất kỳ lệnh thua nào. Một giới hạn rủi ro không bao giờ kích hoạt trông y hệt một giới hạn đang hoạt động đúng, cho tới đúng ngày nó cần phát huy tác dụng. Các đợt kiểm tra tháng 8 và tháng 9 năm 2026 của mình tìm ra bốn lỗi âm thầm trong lớp đó: các ngưỡng an toàn có thể cắt nhau khi tài khoản lớn lên, một lần khởi động lại giữa ngày làm reset điểm bắt đầu ngày và xóa mất khoản lỗ đã chốt trong ngày, phí hoa hồng bị thiếu trong lần dựng lại đó, và một ngưỡng bảo vệ đặt chặt hơn cả mức sụt giảm bình thường của chính chiến lược. Ba bản sửa đầu được chạy lại từng lệnh ở cấu hình phát hành, 246 triệu tick và 368 dòng giao dịch giống hệt từng byte. Lỗi thứ tư là lý do bản phát hành 1.26 chạy lại chính các lớp bảo vệ của nó trước khi phát hành. Chi tiết hơn trong bài vì sao các trading bot làm cháy tài khoản.

Tự lấp khoảng im lặng thì phải trả giá bao nhiêu?

Thường là nhiều hơn chính lệnh mình thêm vào, vì không ai biết trước lệnh nào mang lại kết quả.

Trên hệ thống vàng khung 5 phút của mình, 30 lệnh tốt nhất trong 1.643 lệnh backtest chiếm khoảng 77 phần trăm kết quả. Một lệnh chạm mục tiêu cuối bù được khoảng năm lần dừng lỗ trọn vẹn. Phần còn lại là chi phí để có mặt trên thị trường khi con sóng lớn đến.

Hình dạng đó cắt theo cả hai chiều với người đang nhìn một bot im lặng. Thêm một lệnh ngoài kế hoạch trong lúc thị trường chết là lấy một lệnh từ đúng vùng phân phối mà hệ thống được xây để tránh. Tắt hệ thống vì nó đã nhàm chán cả tuần là chấp nhận rủi ro bỏ lỡ một trong số ít lệnh trả tiền cho phần còn lại. Cả hai đều không có vẻ đắt vào lúc đó. Tính trung bình, cả hai đều đắt. Mình viết kỹ hơn về sự tập trung đó trong bài nên chốt lời sớm hay để lệnh thắng chạy tiếp.

Làm sao mình biết việc đứng ngoài không chỉ là cái cớ cho một giai đoạn tệ?

Vì mình đã kiểm tra nó theo cách có thể thất bại, và một phần đã thất bại.

Mình dựng 1.000 phiên bản giả cho mỗi hệ thống: cùng thị trường, cùng khung giờ, cùng số lệnh, cùng quy tắc rủi ro, chỉ có thời điểm vào lệnh là ngẫu nhiên. Ngưỡng đạt, p dưới 0,05 cho cả hai giai đoạn, được ghi lại trước khi chạy kiểm định. Giai đoạn 2024 đến 2026, không một phiên bản giả nào trong 1.000 cái thắng được quy tắc thật. Giai đoạn 2021 đến 2023 thì có 299 cái thắng, p = 0,30. Phần đó không đạt, và mình công bố nó ngay cạnh những phần đạt.

Giai đoạn 2021 đến 2023 cũng là lúc biên độ ngày của vàng ở mức thấp trong thời gian dài, phần lớn dưới đường hòa vốn nói ở trên. Hệ thống không tìm thấy lợi thế ở đó, nên bây giờ nó đứng ngoài trong những điều kiện như vậy thay vì cố giao dịch xuyên qua. Trong giai đoạn đó, nửa năm tệ nhất của nó lỗ 1,5 phần trăm. Đó là phiên bản trung thực của "đứng ngoài": một môi trường hoạt động được đo đạc, với bằng chứng thất bại vẫn nằm trong hồ sơ. Phương pháp đứng sau kiểm định này có trong bài làm sao biến một mẫu hình giao dịch thành quy tắc có thể kiểm định.

Tài khoản live cho thấy điều gì mà backtest không thể?

Những ma sát thật, và một hồ sơ công khai về các quãng im ắng.

MasterVP đã giao dịch thật trên một tài khoản myfxbook công khai từ đầu tháng 9 năm 2026. Giao dịch thật cho thấy thứ backtest không bao giờ cho thấy: spread thật, khớp lệnh thật, một máy chủ có lúc khởi động lại. Mỗi báo cáo mình đăng đều mở đầu bằng các quy tắc, giới hạn lỗ 5 phần trăm mỗi ngày và 10 phần trăm tổng, kể cả những tuần không tốt. Một tháng giao dịch thật chứng minh rất ít theo cả hai hướng, nên mình theo dõi nó theo tháng, không phải theo ngày, và những ngày im ắng cũng là một phần mình báo cáo. Lý do mình chọn làm điều này công khai có trong bài công khai tài khoản giao dịch của mình.

Câu hỏi thường gặp

Vì sao trading bot của mình không vào lệnh nào? Thường là vì thị trường đang nằm ngoài các điều kiện mà quy tắc của nó được xây cho. Trước tiên hãy kiểm tra bot còn chạy và còn kết nối không, sau đó xem thị trường có đơn giản là quá yên ắng không. Trên hệ thống vàng của mình, kết quả trung bình mỗi lệnh âm vào những ngày biên độ thấp nhất, nên đứng ngoài lúc đó là hành vi được thiết kế.

Một trading bot không vào lệnh trong bao lâu là bình thường? Điều đó phụ thuộc hoàn toàn vào hệ thống, và vì vậy phân phối khoảng cách giữa các lệnh cần được đo và ghi lại. Trên hệ thống vàng đã phát hành của mình, giai đoạn 2024 đến 2026, khoảng cách trung vị giữa hai lần vào lệnh là 1,6 giờ và khoảng dài nhất là 91 giờ thị trường.

Hệ thống giao dịch ít hơn có luôn tốt hơn không? Không. Ít lệnh hơn chỉ có ích khi những lệnh bị bỏ qua là những lệnh không có lợi thế. Phép thử là kết quả mỗi lệnh có kém hơn một cách đo được trong những điều kiện hệ thống tránh hay không, và trên hệ thống của mình thì có, trong sáu trên sáu năm.

Có nên vào một lệnh tay khi bot đang im lặng không? Đó là quyết định của bạn, nhưng hãy rõ ràng về bản chất của nó. Một lệnh thêm vào trong lúc thị trường chết đến từ đúng những điều kiện mà hệ thống được xây để tránh, và nó không thuộc về bất cứ thứ gì đã được kiểm tra.

Bộ lọc trạng thái thị trường là gì? Là một quy tắc quyết định thị trường có đang ở trạng thái mà chiến lược có lợi thế hay không, trước khi xét bất kỳ điểm vào lệnh nào. Bộ lọc của mình đọc biên độ ngày của vàng. Qua 5,4 năm và 3.860 lệnh backtest, kết quả mỗi lệnh tăng đều khi biên độ đó lớn hơn.

Một giới hạn rủi ro có thể hỏng mà không ai nhận ra không? Có, và đó là kiểu hỏng nguy hiểm nhất, vì một giới hạn không bao giờ kích hoạt trông y hệt một giới hạn đang hoạt động đúng. Các đợt kiểm tra năm 2026 của mình tìm ra bốn lỗi âm thầm như vậy trong chính lớp bảo vệ của mình, và giờ mỗi bản phát hành đều chạy lại các lớp bảo vệ trước khi phát hành.

Đứng ngoài có nghĩa là chiến lược đã ngừng hiệu quả không? Tự nó thì không. Nó có thể nghĩa là thị trường đã rời khỏi môi trường của chiến lược. Cách phân biệt là kiểm định môi trường đó một cách trung thực. Kiểm định vào lệnh ngẫu nhiên của mình đạt trên giai đoạn 2024 đến 2026 và không đạt trên giai đoạn 2021 đến 2023 với p = 0,30, và đó là lý do hệ thống đứng ngoài trong điều kiện biên độ thấp.

Nếu bạn muốn xem phương pháp này dẫn tới đâu, MasterVP là phương pháp intraday của riêng mình, xây trên lý thuyết volume profile công khai. Nó được phát hành dưới dạng Master Volume Profiler indicator trên TradingView và MetaTrader 5, hiển thị cách đọc thị trường và để việc đặt lệnh cho bạn, và dưới dạng Master Volume Sniper trên MQL5 market, một Expert Advisor thực thi các quy tắc và thiết lập rủi ro do bạn cấu hình. Hệ thống của bạn có thể đứng yên bao lâu trước khi bạn bắt đầu muốn giúp nó một tay?


Bài viết được tổng hợp từ các bài đăng về chủ đề đứng ngoài thị trường trong chuỗi nhật ký xây dựng MasterVP. Chỉ nhằm mục đích giáo dục. Không phải lời khuyên tài chính. Các con số được trích dẫn là kết quả backtest và nghiên cứu trên dữ liệu tick thật, 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 mình.

← All journal articles

Chat