Vì Sao Một Edge Thật Luôn Nhỏ Hơn Vẻ Ngoài Của Nó?
· #research-method #backtesting #risk-management #systematic-trading #trading-psychology
Một edge thật thì nhỏ. Phần lớn những gì làm cho một backtest trông ấn tượng đến từ thiết lập rủi ro, từ một regime thuận lợi, và từ một nhúm lệnh có kết quả rất lớn, chứ không đến từ bản thân edge. Phần nghiên cứu chiến lược vàng của mình cho ra khoảng 0,05 Sharpe trên mỗi lệnh, và gần như mọi con số bắt mắt phía sau nó là một quyết định về khối lượng vị thế, không phải một phát hiện về thị trường.
Mình mất khá lâu để chấp nhận điều đó, và khi chấp nhận rồi thì cách mình xây hệ thống cũng thay đổi. Dưới đây là phần số học thành thật của một edge nhỏ, bao gồm cả những phần bằng chứng của chính mình đã bị một người review bên ngoài tháo tung ra.
Vì sao một edge trông lớn hơn thực tế?
Bởi vì con số phần trăm lợi nhuận là một phát biểu về đòn bẩy, mà đòn bẩy là một cái núm vặn chứ không phải một phát hiện.
Mình lấy một Sharpe khoảng 0,05 trên mỗi lệnh, cộng với một tỷ lệ rủi ro có thể đặt gần như tùy ý, thì con số theo năm đi ra ở đầu kia chính là vị trí mà mình đã vặn cái núm đó tới. Hai hệ thống có logic giống hệt nhau vẫn có thể báo cáo mức lợi nhuận rất khác nhau, chỉ vì một bên nhận rủi ro lớn hơn trên mỗi lệnh. Không có gì về thị trường thay đổi giữa hai bên cả.
Đây là cách phổ biến nhất khiến một kết quả bị thổi phồng, và mình từng mắc đúng lỗi đó trong tài liệu của chính mình. Cách sửa thì rất khô khan: luôn tách edge ra khỏi sizing mỗi khi báo cáo bất cứ điều gì. Edge là thống kê trên mỗi lệnh và profit factor. Lợi nhuận là thứ đã xảy ra khi mình chọn ấn mạnh tới đâu.
Edge của chính mình thực sự lớn cỡ nào?
Khiêm tốn, và khiêm tốn theo cách rất dễ bị bỏ qua nếu mình chỉ đọc con số tiêu đề.
Cấu hình đã được chứng nhận của Master Volume Profile trên vàng cho profit factor khoảng 1,42 trên cửa sổ kiểm định của nó. Ở chế độ breakout, vốn gánh khoảng 96 phần trăm số lệnh vào, lệnh thắng trung bình có kích thước xấp xỉ lệnh thua trung bình. Riêng dữ kiện đó đã nói cho mình biết edge không nằm ở đâu: nó không đến từ những lệnh thắng lớn chạy thật xa. Nó là một độ nghiêng thống kê rất mỏng, được lặp lại nhiều lần.
Bức tranh walk forward còn mỏng hơn nữa, và đó mới là bức tranh thành thật. Profit factor trung vị qua các fold bằng nhau nằm quanh 1,30, và trong một mô phỏng Monte Carlo 20.000 vòng lặp, profit factor ở phân vị thứ năm là 1,108. Vẫn trên một, nghĩa là edge sống sót khi bị lắc. Nhưng hoàn toàn không phải loại con số hay được chụp màn hình.
Mình thà xây một cỗ máy quanh con số 1,1 cứ lặp lại đều đặn, còn hơn quanh con số 3,0 chỉ xuất hiện đúng một lần.
Vì sao một tháng mạnh không chứng minh được điều gì?
Bởi vì một tháng chỉ là mẫu của khoảng hai mươi ngày giao dịch, trong khi edge của mình cần nhiều hơn thế rất nhiều mới có ý nghĩa.
Khi kiểm tra độ bền, mình nhìn vào việc hành vi có lặp lại qua nhiều cửa sổ hay không, chứ không nhìn vào việc có một cửa sổ nào xuất sắc hay không. Trên walk forward theo tháng, 11 trong 12 tháng có lãi với profit factor trung vị 1,336. Tháng đáng chú ý lại là tháng thứ mười hai. Tháng 8 năm 2025 kết thúc với profit factor 0,69 và giảm 21,6 phần trăm, nằm ngay trong cùng cửa sổ mà nếu không nhìn kỹ mình đã gọi là mạnh.
Một tháng thua bên trong một năm dương không phải là lỗi cần thiết kế cho biến mất. Đó là hình dạng thật của sự việc. Ai đưa cho bạn một chiến lược không có tháng nào như vậy thì hoặc cửa sổ của họ quá ngắn, hoặc họ chưa cho bạn xem hết.
Bao nhiêu phần kết quả đến từ một nhúm lệnh?
Nhiều hơn mức mình thấy thoải mái, và mình chỉ đo nó tử tế sau khi có người đặt câu hỏi.
Trên một luồng nghiên cứu gồm 3.502 lệnh vàng, một phần trăm lệnh tốt nhất, tức 35 lệnh, đã chiếm hơn toàn bộ kết quả ròng. Nếu mình bỏ đi 30 lệnh tốt nhất, tương đương 0,86 phần trăm mẫu, toàn bộ kết quả chuyển sang âm. Phân phối lợi nhuận có độ lệch 3,49 và độ nhọn vượt trội 19,5, và sau khi hiệu chỉnh cho điều đó, kích thước mẫu hiệu dụng tương đương Gauss chỉ còn khoảng 326 thay vì 3.502. Biên an toàn thật của mình so với minimum track record length là khoảng 326 trên 192, không phải bội số dễ chịu mà mình vẫn trích dẫn.
Bằng chứng ngược lại xứng đáng nằm cùng một đoạn văn chứ không phải trong một chú thích nhỏ. Một bootstrap 20.000 lần rút trên chính luồng đó cho xác suất kết quả ròng không dương là 0,08 phần trăm. Edge này bền vững khi bị lấy mẫu lại từ chính nó. Điều mà việc lấy mẫu lại không nói được là liệu hai năm rưỡi tiếp theo có chứa một tập hợp sự kiện đuôi tương tự hay không, nên phát biểu mình bảo vệ được là: edge có thật trong regime đã kiểm định, được gánh bởi một số ít sự kiện, và tính bền vững của nó thì chưa được kiểm chứng.
Profit factor và Sharpe thường được trích dẫn như thể chúng tóm tắt được cả phân phối. Với độ nhọn gần 20, chúng không làm được điều đó.
Chuyện gì xảy ra khi mình để người ngoài kiểm tra các con số?
Con số mình dựa vào nhiều nhất hóa ra là con số không thể trượt.
Mình đã yêu cầu một bài review khắc nghiệt từ bên ngoài, nhắm vào quy trình chứ không nhắm vào đường cong lợi nhuận. Phát hiện nặng nhất liên quan tới thống kê robustness mình trích dẫn nhiều nhất, đó là deflated Sharpe ratio, chỉ số điều chỉnh một kết quả theo số lượng cấu hình đã được tìm kiếm trước khi kết quả đó xuất hiện. Với chính các tham số mình ghi lại, ngưỡng điều chỉnh nằm thấp hơn Sharpe của chiến lược xa đến mức quá trình tìm kiếm sẽ phải chạy tới cỡ mười mũ mười bốn lần thử thì phán quyết mới có thể ra âm. Nó cho điểm gần như tuyệt đối bởi vì số học không thể cho ra thứ gì khác.
Tệ hơn, bài kiểm tra thực sự có khả năng phân biệt thì đã trượt. Xác suất overfitting của backtest cho kết quả trên một nửa ở tám trong chín ô cross validation, và mình đã bác bỏ nó bằng một lập luận về vị trí của các cấu hình trong phân phối out of sample. Lập luận bác bỏ đó lấy ba mẫu từ đúng cái phân phối mà bài kiểm tra vừa tuyên bố là không đáng tin.
Không điều nào ở trên nói rằng edge là giả. Nó nói rằng bằng chứng của mình không đủ sức chứng minh edge không giả, trong khi tài liệu của mình lại được viết như thể nó đủ sức. Vì vậy con số bão hòa kia không còn dẫn đầu phần bằng chứng nữa, bài kiểm tra có khả năng phân biệt mới dẫn đầu, và quy tắc báo cáo mình thêm vào là: phán quyết từ một cổng không thể trượt thì phải in ra là không ràng buộc, chứ không được in ra là đạt.
Phần khó chịu nhất là người review đã dùng chính repository, chính code và chính các dữ liệu đầu vào mình ghi lại. Mọi thứ cần thiết để tìm ra nó đã nằm ngay trước mắt mình từ lâu.
Vì sao với một edge nhỏ thì chi phí là toàn bộ cuộc chơi?
Bởi vì khi lệnh thắng trung bình và lệnh thua trung bình xấp xỉ nhau, chi phí không phải sai số làm tròn, nó chính là biên lợi nhuận.
Minh chứng rõ nhất trong nghiên cứu của mình là năm 2024. Năm đó spread trên vàng chạy ở mức khoảng 8,6 phần trăm của average true range, tức khoảng gấp đôi môi trường mà chiến lược được xây dựng, và cùng một logic trông vững vàng ở nơi khác đã lỗ 67,1 phần trăm với drawdown tối đa 74,2 phần trăm trong bản xác nhận trên MetaTrader 5. Không có rule nào thay đổi. Chi phí kinh doanh thay đổi, và một edge mỏng thì không có chỗ để hấp thụ điều đó.
Mô hình chi phí của chính mình vẫn còn ưu ái mình, và mình muốn nói ra hơn là để người khác phát hiện. Trong Dquants engine mình tự phát triển, spread được tính trên mọi lệnh, nhưng slippage, latency và swap thì chưa được mô hình hóa. Kết quả live nên được kỳ vọng là mỏng hơn kết quả nghiên cứu, và phía exit của bất kỳ con số nào mình tạo ra đều đáng nghi ngờ hơn phía entry, bởi vì engine không thể biết giá đã đi đường nào bên trong một tick.
Edge nhỏ hơn có nghĩa là công việc kém hơn không?
Không, nhưng nó có nghĩa là một công việc khác, và có nghĩa là mình phải báo cáo thành thật về quy mô.
Sharpe mình trích cho sản phẩm chủ lực là khoảng 3,8 trong regime của nó và khoảng 1,8 trên toàn chu kỳ, và mình tính nó theo cách một desk chuyên nghiệp sẽ tính, chứ không theo cách một lát cắt in sample sẵn sàng trao cho mình. Vẫn có một phiên bản của con số đó nằm trong khoảng 8 đến 10 nếu mình chọn một cửa sổ dễ chịu rồi ngừng đặt câu hỏi. Mình không công bố nó, vì đó là phép đo cách mình chọn cửa sổ, không phải phép đo chiến lược.
Điều thứ hai mà một edge nhỏ mang lại là làm cho đa dạng hóa trở nên có giá trị về mặt cấu trúc, chứ không còn là một khẩu hiệu. Cấu hình vàng thứ hai, thận trọng hơn, của mình vượt qua ngưỡng chống may rủi đúng bốn lệnh, 126 so với mức tối thiểu 122, tức là vượt trong gang tấc chứ không phải một biên rộng, và mình ghi rõ điều đó trên nhãn. Giá trị của nó không nằm ở lợi nhuận riêng. Kết quả theo ngày của nó gần như không tương quan với sản phẩm chủ lực, nên trong nghiên cứu, cặp hai cấu hình chạy ổn định hơn từng cái đứng riêng. Hai edge nhỏ và thành thật, thua ở những thời điểm khác nhau, có thể là một công việc tốt hơn một edge lớn nhưng dễ vỡ.
Phía sau tất cả những điều này vẫn chưa có một track record thật nào. Tiền thật duy nhất mà logic chủ lực của mình từng giao dịch là một tài khoản prop nhỏ với 62 lệnh, một mẫu quá mỏng để có ý nghĩa theo bất kỳ hướng nào. Câu tiêu đề thành thật là: bằng chứng live là thứ mình đang thiếu, không phải thứ mình đang giấu.
Mình nghĩ thế nào về việc xây dựng trên một thứ nhỏ như vậy?
Mình đặt đúng những câu hỏi sẽ đặt cho bất kỳ hệ thống production nào, bởi vì nó đúng là như vậy.
Nó hỏng theo cách nào. Mình test nó ra sao. Nó có bảo trì được không. Đây là regime nào. Điểm vô hiệu hóa nằm ở đâu. Những câu hỏi đó cắt qua nhiễu nhanh hơn bất kỳ khoảng thời gian nhìn chart nào, chủ yếu vì không câu nào trong số đó có thể trả lời bằng cảm giác của mình về ý tưởng. Một chiến lược là phần mềm tiêu tiền, và phần mềm tiêu tiền xứng đáng được soi kỹ như phần mềm chạm vào cơ sở dữ liệu.
Tiêu chuẩn mình giữ không phải là chủ nghĩa hoàn hảo, mà là sự từ chối để một ý tưởng yếu tiêu thời gian và ngân sách rủi ro của mình chỉ dựa trên sự hào hứng của chính mình. Hào hứng là tín hiệu về mình. Bằng chứng là tín hiệu về thị trường. Chỉ một trong hai được lá phiếu quyết định, và nếu mình không tái tạo được một kết quả theo yêu cầu, nhiều khả năng mình chưa hiểu nó đủ để dựa vào.
Điều rút ra thành thật là gì?
Nếu bạn đến từ ngành kỹ thuật, hãy chuẩn bị tinh thần rằng thứ thật sẽ nhỏ hơn thứ bạn tưởng tượng, và hãy chấp nhận điều đó là bình thường.
Một edge nhỏ không phải giải khuyến khích. Đó là hình dạng thật của một độ nghiêng thống kê, sau khi mình đã bóc đòn bẩy ra, tính chi phí một cách thành thật, đếm phần đuôi cho đúng, và ngừng tự chấm bài của mình bằng một bài kiểm tra không thể trượt. Nhỏ mới là kích thước bình thường. Công việc nằm ở chỗ làm cho một thứ nhỏ như vậy sống sót khi va vào thực tế, và báo cáo nó đủ chính xác để người khác có thể kiểm tra lại.
Con số mình tin nhất trong nghiên cứu của mình không phải con số lớn nhất. Đó là con số mình đã cố phá vỡ nhiều nhất.
Câu hỏi thường gặp
Một edge thực tế thì nên lớn cỡ nào? Nhỏ hơn phần lớn các ví dụ được công bố. Trong nghiên cứu vàng của mình, cấu hình đã chứng nhận cho profit factor khoảng 1,42 trên cửa sổ kiểm định, còn trung vị qua các fold walk forward gần 1,30 hơn. Sharpe khoảng 0,05 trên mỗi lệnh là tín hiệu nền, và mọi con số lớn hơn phía sau nó là quyết định về khối lượng vị thế chứ không phải một edge mạnh hơn.
Vì sao lợi nhuận backtest trông lớn hơn edge nhiều đến vậy? Vì con số phần trăm lợi nhuận trộn chung edge với mức rủi ro trên mỗi lệnh, và chỉ nửa đầu là phát hiện. Cùng một logic có thể báo cáo mức lợi nhuận theo năm rất khác nhau chỉ vì cái núm sizing. Đó là lý do mình cố gắng công bố thống kê trên mỗi lệnh và profit factor bên cạnh bất cứ thứ gì thể hiện bằng phần trăm.
Tập trung ở phần đuôi là gì và vì sao nó quan trọng? Đó là mức độ mà một kết quả đến từ một số rất ít lệnh. Trên luồng nghiên cứu 3.502 lệnh của mình, việc bỏ đi 30 lệnh tốt nhất, chưa tới một phần trăm mẫu, làm toàn bộ kết quả ròng chuyển sang âm. Điều đó không chứng minh edge chỉ là may mắn, vì một bootstrap 20.000 lần rút cho xác suất kết quả không dương là 0,08 phần trăm, nhưng nó cho thấy profit factor một mình là bản tóm tắt kém về những gì đã xảy ra.
Một chiến lược đã có Monte Carlo 20.000 vòng lặp phía sau thì còn hỏng được không? Có. Việc lấy mẫu lại chỉ kiểm tra kết quả có bền vững khi xáo trộn chính mẫu đang có hay không. Nó không nói được giai đoạn tiếp theo có chứa tập hợp sự kiện tương tự hay không. Bản chạy xác nhận năm 2024 của mình là ví dụ: cùng rule, một regime chi phí cao hơn, và khoản lỗ 67,1 phần trăm với drawdown tối đa 74,2 phần trăm.
Vì sao bạn ngừng dẫn đầu bằng deflated Sharpe ratio? Vì một bài review bên ngoài cho thấy nó không thể trượt với các tham số mình ghi lại. Ngưỡng điều chỉnh nằm thấp hơn Sharpe của chiến lược xa đến mức không có số lần thử thực tế nào tạo ra được phán quyết âm, nên một điểm số hoàn hảo không mang thông tin nào. Bây giờ nó được in ra là không ràng buộc, và bài kiểm tra thực sự phân biệt được, tức xác suất overfitting của backtest, mới dẫn đầu. Bài đó đã trượt ở tám trong chín ô, và mình báo cáo nó thay vì làm tròn cho đẹp.
Một tháng thua có nghĩa là chiến lược đã hỏng không? Không, nếu chỉ có một tháng. Trong walk forward theo tháng của mình, 11 trong 12 tháng có lãi và tháng tệ nhất kết thúc ở profit factor 0,69 và giảm 21,6 phần trăm, ngay trong cửa sổ mà mình vẫn gọi là mạnh. Một chuỗi kết quả không có tháng xấu nào thường nghĩa là cửa sổ quá ngắn, chứ không phải hệ thống giỏi khác thường.
Chi phí giao dịch quan trọng tới đâu với một edge nhỏ? Nó có thể là toàn bộ biên lợi nhuận. Khi lệnh thắng trung bình xấp xỉ lệnh thua trung bình, spread và commission quyết định một kết quả dương mỏng có trở thành âm mỏng hay không. Engine của mình tính spread trên mọi lệnh nhưng chưa mô hình hóa slippage, latency hay swap, nên mình coi mọi con số nghiên cứu là lạc quan so với live.
Master Volume Profile đã có track record thật chưa? Chưa, và mình sẽ không ám chỉ ngược lại. Toàn bộ nội dung ở trên là backtest và các bản xác nhận trên MetaTrader 5 với dữ liệu tick lịch sử thật. Mẫu live duy nhất là 62 lệnh trên một tài khoản prop nhỏ, không đủ ý nghĩa thống kê, và kết quả live nên được kỳ vọng mỏng hơn nghiên cứu. Giao dịch luôn có rủi ro, bao gồm rủi ro thua lỗ.
Viết bởi KenKem, một kỹ sư phần mềm và nhà sáng lập với hai mươi năm kinh nghiệm, đang học giao dịch định lượng một cách công khai và chia sẻ toàn bộ quá trình, bao gồm cả những ý tưởng bị loại.
Bài viết này được tổng hợp từ chuỗi nhật ký xây dựng của KenKem. Chỉ nhằm mục đích giáo dục. Không phải lời khuyên đầu tư. Mọi con số được trích dẫn là kết quả backtest, bản chạy xác nhận hoặc kết quả audit, không phải track record thật. Hiệu suất trong quá khứ không đảm bảo kết quả trong tương lai.