OptiNod Academy

Profit Factor - phân phối và cỡ mẫu ẩn sau một con số

Đọc PF cùng mức tập trung lợi nhuận, độ phụ thuộc của mẫu và chi phí; dùng dữ liệu chưa tham gia tối ưu hóa để kiểm tra độ bền của kết quả.

Chỉ riêng việc Profit Factor cao không đủ để tin vào một chiến lược. Bạn phải nhìn cả phân phối của những giao dịch đã tạo ra con số đó.


Profit Factor (PF) là tổng lợi nhuận của các giao dịch đã đóng chia cho giá trị tuyệt đối của tổng thua lỗ của các giao dịch đã đóng. Ví dụ giả định: tổng lãi 10.000 USD và tổng lỗ 5.000 USD cho PF 2,0. PF bằng 1,0 nghĩa là lãi và lỗ cân bằng theo cách báo cáo đó ghi nhận chi phí; trên hoặc dưới 1,0 cho biết mẫu đã đóng đang lãi hay lỗ. Nếu không có lệnh thua, mẫu số bằng 0 nên không thể dùng một tỷ lệ hữu hạn để so sánh. Định nghĩa của TradingView về Profit Factor cũng chỉ xét kết quả đã thực hiện, không gồm vị thế đang mở.


Cách dùng phổ biến là xem con số này như bảng xếp hạng chất lượng chiến lược. Người ta đặt một chiến lược có Profit Factor 1,5 cạnh một chiến lược 3,0 rồi kết luận chiến lược sau tốt gấp đôi, hoặc chọn bộ tham số có PF cao nhất. PF cao hơn chỉ mô tả tỷ lệ tổng lãi trên tổng lỗ cao hơn trong mẫu đang xét; nó không tự chứng minh lợi nhuận, độ ổn định hay chất lượng tương lai tốt hơn.


Profit Factor là một tỷ lệ. Nó nén số lượng, quy mô và mức độ tập trung của các giao dịch vào một con số. PF 1,5 từ 200 giao dịch có thể cung cấp nhiều dữ liệu hơn PF 3,0 từ 12 giao dịch, nhưng chưa đủ để kết luận mẫu đầu đáng tin hơn: các lệnh có thể phụ thuộc nhau hoặc cùng thuộc một môi trường thị trường. Một PF cao tập trung vào một lệnh thắng lớn cần được kiểm tra độ nhạy. Bài viết này đưa cỡ mẫu và phân phối phía sau Profit Factor ra xem xét lại.


Phân phối lãi lỗ từng giao dịch ẩn sau một con số Profit Factor
Phân phối lãi lỗ từng giao dịch ẩn sau một con số Profit Factor

Bỏ lệnh thắng lớn nhất cho thấy mức độ tập trung lợi nhuận


Một phép kiểm tra độ nhạy đơn giản là loại bỏ giao dịch có lợi nhuận lớn nhất rồi tính lại PF. Kết quả cho thấy mức độ phụ thuộc của mẫu vào giao dịch đó; nó không tự phân biệt được may mắn với lợi thế thật của chiến lược.


Hãy dùng một ví dụ hoàn toàn giả định, không gắn với tài sản hoặc sự kiện lịch sử cụ thể. Trong một năm, chiến lược theo xu hướng đóng 20 giao dịch; tổng lãi là 7.610 USD và tổng lỗ là 1.950 USD. PF = 7.610 / 1.950 ≈ 3,90. Nếu 6.200 USD trong tổng lãi đến từ một giao dịch, bỏ lệnh đó sẽ để lại tổng lãi 1.410 USD và tổng lỗ 1.950 USD: PF ≈ 0,72. Mẫu còn lại có kết quả âm theo cùng giả định chi phí.


Sự thay đổi từ 3,90 xuống 0,72 cho thấy lợi nhuận tập trung vào một xu hướng lớn. Nó không dự đoán PF của năm kế tiếp và cũng không chứng minh giao dịch lớn đó chỉ là may mắn. Giả sử mẫu có 9 lệnh thắng trong 20 lệnh, tỷ lệ thắng là 45%. Các chiến lược theo xu hướng có thể chủ động chấp nhận nhiều khoản lỗ nhỏ để tìm một số ít khoản lãi lớn. Điều cần kiểm tra là các cơ hội như vậy có xuất hiện trên những giai đoạn độc lập khác hay không, và thời gian chờ cùng mức sụt giảm có phù hợp giới hạn vận hành của bạn hay không.


Không có ngưỡng PF 1,2 sau khi bỏ lệnh lớn nhất áp dụng cho mọi chiến lược. Hãy ghi cả PF ban đầu, PF sau khi bỏ lệnh lớn nhất và phần trăm tổng lãi do lệnh đó tạo ra. PF giảm dưới 1,0 là tín hiệu tập trung lợi nhuận cần điều tra thêm, không phải phán quyết về may rủi. Dùng kết quả để chọn thêm giai đoạn kiểm định, thay vì tự động chấp nhận hoặc loại bỏ chiến lược.


Khi mẫu giao dịch quá nhỏ, Profit Factor khó phân biệt với may rủi


Cùng là Profit Factor 2,5, nhưng 2,5 đến từ 8 giao dịch và 2,5 đến từ 300 giao dịch có trọng lượng hoàn toàn khác nhau. Mẫu càng nhỏ, tỷ lệ càng dễ bị lệch ngẫu nhiên về một phía, và độ lệch đó trông giống như năng lực thật.


Trong một ví dụ giả định khác với 8 giao dịch, tổng lãi 1.450 USD và tổng lỗ 500 USD cho PF 2,90, thấp hơn 3,90 của ví dụ trước. Nếu phát sinh thêm một lệnh thua 600 USD, tổng lỗ tăng thành 1.100 USD và PF giảm xuống khoảng 1,32. Chỉ một giao dịch đã thay đổi đáng kể tỷ lệ; số lượng nhỏ khiến từng quan sát có ảnh hưởng lớn.


Không có quy tắc thống kê chung rằng đủ 100 hoặc 200 giao dịch thì PF trở nên đáng tin. Ngay cả mẫu 300 lệnh cũng có thể thay đổi mạnh vì một khoản lỗ đuôi lớn, đòn bẩy hoặc các lệnh phụ thuộc nhau. Hãy xem số lệnh thắng và thua, mức tập trung lợi nhuận, chuỗi lệnh tương quan và mức độ bao phủ các trạng thái thị trường. Khi ước lượng độ bất định, phương pháp lấy mẫu lại cũng cần giữ được cấu trúc phụ thuộc của dữ liệu.


Chiến lược ngắn hạn dễ gom nhiều giao dịch, nhưng các lệnh gần nhau có thể cùng chịu một cú sốc thị trường. Chiến lược swing có ít giao dịch có thể cần lịch sử dài hơn để quan sát thêm cơ hội. Mở rộng thời gian không tự tạo ra mẫu đồng nhất: phí, thanh khoản và trạng thái thị trường có thể thay đổi. Hãy báo cáo kết quả theo từng giai đoạn cùng kết quả gộp, thay vì kéo dài backtest chỉ để đạt một số lượng lệnh định sẵn.


PF nhạy với cả tử số lẫn mẫu số. Nếu chỉ có vài lệnh thua, một khoản lỗ lớn có thể làm tổng lỗ tăng mạnh; một lệnh thắng đặc biệt cũng có thể nâng tổng lãi. Khi quy mô giao dịch và phân phối tương đương, thêm dữ liệu thường giảm ảnh hưởng tương đối của một quan sát thông thường. Tuy nhiên, điều đó không bảo vệ mẫu khỏi khoản lỗ hiếm gặp hoặc thay đổi môi trường. Hãy kiểm tra các lệnh lớn nhất ở cả hai phía trước khi diễn giải PF.


Ảnh hưởng của một giao dịch đối với PF trong các mẫu có quy mô khác nhau
Ảnh hưởng của một giao dịch đối với PF trong các mẫu có quy mô khác nhau

Profit Factor trước khi tính chi phí giao dịch là một con số khác


Trước khi điều chỉnh PF, hãy kiểm tra chi phí nào đã có trong báo cáo. Khi commission đã được cấu hình, TradingView khấu trừ phí khỏi lãi của lệnh thắng và cộng phí vào độ lớn khoản lỗ, theo tài liệu về Gross profit và Gross loss. Không trừ lại khoản phí đã được tính. Ví dụ sau bắt đầu từ kết quả chưa có chi phí.


Hãy xét ví dụ giả định gồm 200 giao dịch: 104 lệnh thắng, mỗi lệnh lãi 120 USD, và 96 lệnh thua, mỗi lệnh lỗ 90 USD. Tỷ lệ thắng là 52%; tổng lãi 12.480 USD, tổng lỗ 8.640 USD, nên PF ≈ 1,44. Nếu mỗi giao dịch chịu thêm 35 USD phí và trượt giá cho cả vòng vào-ra, lệnh thắng còn lãi 85 USD và lệnh thua mất 125 USD. PF sau chi phí = (104 × 85) / (96 × 125) = 8.840 / 12.000 ≈ 0,74. Các con số đều thuộc mô hình minh họa có mức lãi, lỗ và chi phí cố định, không phải kết quả giao dịch được xác minh.


Trong ví dụ đó, 35 USD bằng khoảng 29,2% khoản lãi 120 USD của một lệnh thắng. Tác động của chi phí phụ thuộc vào quy mô lệnh, mức lợi thế trên mỗi giao dịch và vòng quay; tần suất cao một mình chưa đủ để định lượng mức suy giảm PF. Với dữ liệu thật, hãy trừ chi phí từng lệnh rồi phân loại lại lệnh thắng, thua và hòa vốn, vì một lệnh lãi nhỏ có thể thành lỗ. Báo cáo không có chi phí là kịch bản lạc quan theo cùng giả định khớp lệnh, không phải mức trần được bảo đảm của mọi kết quả thực tế.


Cách chi phí giao dịch kéo Profit Factor từ trên ngưỡng 1,0 xuống dưới
Cách chi phí giao dịch kéo Profit Factor từ trên ngưỡng 1,0 xuống dưới

Profit Factor được tạo từ tỷ lệ thắng và tỷ lệ lãi/lỗ, nên phải được phân rã


Chỉ với con số Profit Factor 1,5, bạn không thể biết chiến lược đó có tính chất gì. Cùng một Profit Factor có thể xuất hiện ở hai chiến lược hoàn toàn trái ngược.


Khi có cả lệnh thắng và thua, PF = (số lệnh thắng / số lệnh thua) × (lãi thực hiện trung bình / giá trị tuyệt đối của lỗ thực hiện trung bình). Đây là tỷ lệ lãi/lỗ thực tế trong báo cáo, không phải tỷ lệ mục tiêu chốt lời/cắt lỗ lúc đặt lệnh. Chỉ khi không có lệnh hòa vốn, hoặc khi W được tính riêng trên các lệnh thắng và thua, mới viết được PF = W / (1 − W) × tỷ lệ lãi/lỗ trung bình. Ví dụ giả định với W = 35% và tỷ lệ 3,0 cho PF ≈ 1,62; W = 70% và tỷ lệ 0,6 cho PF ≈ 1,40.


Trong mẫu không có lệnh hòa vốn, thắng 35% nghĩa là 65% giao dịch còn lại thua; mức lãi trung bình lớn có thể bù cho nhiều khoản lỗ nhỏ. Tỷ lệ này không cho biết thứ tự các lệnh hoặc độ dài chuỗi thua. Với mẫu thắng 70% nhưng lãi trung bình nhỏ hơn lỗ trung bình, một khoản lỗ có thể xóa nhiều khoản lãi. Hãy đọc chuỗi giao dịch và cách kiểm soát lỗ để biết mình có thể vận hành cấu trúc đó hay không.


Khi đọc PF, hãy kiểm tra cùng lúc số lệnh thắng, số lệnh thua và mức lãi/lỗ thực hiện trung bình trên cùng cơ sở chi phí. Với cùng PF, tỷ lệ thắng thấp hơn cần tỷ lệ lãi trung bình trên lỗ trung bình cao hơn; điều đó chưa có nghĩa lợi nhuận phụ thuộc vào một lệnh ngoại lệ. Ngược lại, tỷ lệ thắng cao có thể đi cùng những khoản lãi nhỏ hơn khoản lỗ. Hãy xem phân phối, các giao dịch lớn nhất và chuỗi thua để nhận diện điểm yếu, thay vì áp dụng các ngưỡng tỷ lệ cố định cho mọi chiến lược.


Profit Factor tương đối gần nhau có thể đi cùng tỷ lệ thắng và lãi/lỗ khác nhau
Profit Factor tương đối gần nhau có thể đi cùng tỷ lệ thắng và lãi/lỗ khác nhau

Kết quả tối ưu hóa PF cần được đánh giá trên dữ liệu chưa dùng


Nếu chọn PF làm mục tiêu tối ưu hóa, công cụ sẽ tìm bộ tham số đạt PF tốt nhất trong các cấu hình đã thử. Việc chọn kết quả đứng đầu từ nhiều lần thử có thể khuếch đại nhiễu của dữ liệu quá khứ. PF đó cần kiểm định trên dữ liệu chưa dùng để chọn tham số trước khi suy luận về tương lai.


Ví dụ minh họa: quét hai chu kỳ đường trung bình từ 5 đến 200, bước 1, tạo ra hàng chục nghìn cặp trước khi áp dụng ràng buộc chu kỳ ngắn phải nhỏ hơn chu kỳ dài. Một cặp có thể đạt PF 4,0 trong giai đoạn phát triển nhưng giảm ở giai đoạn khác. Chỉ riêng mức PF cao không cho biết phần nào đến từ lợi thế thật và phần nào đến từ việc thử nhiều cấu hình. Hãy lưu phạm vi tìm kiếm và kiểm tra các tham số lân cận để thấy mức nhạy của kết quả.


Một cách kiểm tra là chia dữ liệu theo thứ tự thời gian: ví dụ dùng 70% đầu để phát triển, khóa tham số rồi đánh giá trên 30% cuối chưa dùng. Tỷ lệ 70/30 chỉ để minh họa; mỗi phần cần đủ dữ liệu và cơ hội phù hợp với chiến lược. Nếu PF giảm từ 3,5 xuống 1,1, hãy điều tra quá khớp, thay đổi trạng thái thị trường, chi phí và độ bất định do mẫu nhỏ. Sự giảm này không tự chứng minh quá khớp, và hai PF gần nhau cũng chưa đủ xác nhận độ bền. Không tiếp tục chỉnh tham số dựa vào tập kiểm định rồi vẫn gọi đó là dữ liệu chưa dùng; nếu đã chỉnh, cần một giai đoạn độc lập mới.


Các bước kiểm tra trước khi tin vào Profit Factor


Nếu chỉ nhìn một mình Profit Factor rồi chọn chiến lược, bạn sẽ phơi mình trước các bẫy đã nêu ở trên. Trước khi tin vào Profit Factor trong báo cáo, hãy kiểm tra lần lượt các mục sau.


  • Cỡ mẫu và độ phụ thuộc: Ghi số lệnh thắng, thua, hòa vốn, thời gian bao phủ và các cụm lệnh tương quan. Không coi 100 hoặc 200 lệnh là giấy chứng nhận độ tin cậy.
  • Mức tập trung lợi nhuận: So sánh PF trước và sau khi bỏ lệnh thắng lớn nhất. Không dùng ngưỡng 1,2 làm tiêu chuẩn chấp nhận chung.
  • Chi phí thực tế: Tính lại lãi/lỗ từng lệnh sau phí và giả định trượt giá được ghi rõ, rồi phân loại lại lệnh thắng và thua.
  • Tỷ lệ thành phần: Dùng tỷ lệ lãi/lỗ thực hiện và mẫu có cùng cơ sở chi phí; xử lý riêng các lệnh hòa vốn.
  • Dữ liệu chưa dùng: Khóa tham số trước kiểm định và ghi lại mọi lần lựa chọn hoặc điều chỉnh sau khi xem kết quả.

Chỉ so sánh PF sau khi đã nêu rõ những khác biệt về giai đoạn, quy mô vị thế, chi phí và mức độ bất định. Danh sách này giúp phát hiện chỗ cần điều tra, không chứng nhận rằng chiến lược sẽ có lãi.


Hai kiểm tra bổ trợ để xác minh độ tin cậy của Profit Factor


Ngoài những kiểm tra trên, hãy đọc thêm phân bố theo thời gian và mức sụt giảm để biết tỷ lệ tổng hợp đang che khuất điều gì.


Thứ nhất là xem PF theo từng năm hoặc quý. Trong một ví dụ giả định, PF gộp của 5 năm là 2,0 nhưng một năm có xu hướng mạnh đạt 4,0 còn các năm khác gần 1,0. Điều đó cho thấy lợi nhuận phụ thuộc vào môi trường, chưa đủ kết luận chiến lược bị khớp riêng với năm đó. Đối chiếu số lệnh và tổng lãi/lỗ của từng giai đoạn; PF gộp phải được tính từ tổng lãi và tổng lỗ, không phải trung bình cộng các PF. Sau đó kiểm tra khả năng vận hành trong các giai đoạn không có xu hướng.


Thứ hai là kiểm tra mức sụt giảm tối đa (Maximum Drawdown) cùng thời gian phục hồi. PF không giữ thứ tự lệnh, nên không cho biết đường vốn đã giảm sâu hoặc kéo dài bao lâu. Ví dụ giả định, PF 2,5 với drawdown 15% và PF 3,0 với drawdown 45% đặt ra hai yêu cầu chịu rủi ro khác nhau; lựa chọn cần theo giới hạn vốn và quy mô vị thế đã định trước. Không có ngưỡng drawdown phù hợp với mọi người. Chỉ dùng PF để quyết định sau khi đã đọc cả phân phối, chi phí và đường đi của vốn.


Tham khảo cách mô phỏng chi phí, khớp lệnh và giới hạn backtest trong tài liệu chiến lược Pine Script của TradingView.

Kiểm tra backtest của bạn

Tải lên CSV kết quả tối ưu hóa hoặc danh sách giao dịch của chiến lược TradingView để xem các chỉ số hiệu suất cùng kết quả kiểm tra độ bền. Không cần đăng nhập để phân tích.

Phân tích tệp kết quả Xem báo cáo mẫu