Nội dung này phục vụ mục đích giáo dục, không phải lời khuyên đầu tư, bảng xếp hạng EA hoặc ngưỡng risk dùng chung.

Trả lời ngắn: Đánh giá EA cần xem năm mặt: kiếm được bao nhiêu, có thể mất bao nhiêu, kết quả có đều không, lệnh được xử lý ra sao và kết quả có giữ được trên dữ liệu khác không. Lợi nhuận ròng hay tỷ lệ lệnh thắng riêng lẻ chưa đủ.

Đọc xong, bạn sẽ hiểu:

  • Vì sao một metric dễ đánh lừa.
  • Return và drawdown được đọc cùng nhau thế nào.
  • Stability khác Robustness ra sao.
  • Cách lập scorecard có flag thay vì “điểm đẹp”.

1. Một metric không đại diện chất lượng EA

a. Năm trục, một test passport

Chỉ so report khi EA version, inputs, data window, tick model, costs và initial state tương đương. Sau đó đọc năm trục:

  1. Return: kết quả tạo ra bao nhiêu.
  2. Risk: đường đi xấu tới đâu.
  3. Stability: kết quả có phân bố đều hay tập trung.
  4. Execution Quality: request/result/cost có vấn đề không.
  5. Robustness: kết quả có giữ khi đổi sample/assumption hợp lý.

Hình 1 — Một EA chỉ được đọc đủ khi cả năm trục đều có evidence.

b. Rule reject đứng trước score

Một số lỗi làm report không đủ điều kiện chấm:

  • logic case fail;
  • data leakage;
  • passport thiếu;
  • report không tái tạo;
  • position state không khớp result;
  • costs bị bỏ.

Nếu gate đỏ, dừng. Không cộng “điểm profit” để bù lỗi dữ liệu.

c. So táo với táo

EA A +20% với initial 1.000 và EA B +20% với initial 10.000 giống tỷ lệ nhưng có thể khác volume/cost/risk. Win rate 80% với payoff nhỏ khác win rate 40% với payoff lớn. So metric cần cùng định nghĩa, sample và assumptions.

2. Return và Risk: kết quả cùng đường đi

a. Return có mẫu số

Demo: initial equity 1.000, net result +200.

Return = 200 ÷ 1.000 × 100 = 20%

Con số không phải claim. Cần ghi period, currency, deposits/withdrawals, compounding, gross/net costs. Annualization từ sample ngắn có thể phóng đại.

Profit factor, expected payoff và recovery factor là statistics khác. Mỗi cái có công thức riêng; không trộn. MQL5 Tester Statistics liệt kê nhiều property như profit, drawdown và ratios. MQL5 Reference — Tester Statistics

b. Drawdown là rơi từ đỉnh

Drawdown là mức giảm từ peak tới trough sau đó. Demo:

  • Peak equity 1.200.
  • Trough 950.
  • Absolute drop 250.
  • Relative drawdown 250 ÷ 1.200 × 100 = 20,83%.

Hình 2 — Drawdown cần cả độ sâu, thời lượng và điểm phục hồi, không chỉ một tỷ lệ.

Drawdown 20% trong hai ngày khác 20% kéo dài mười tháng. Thêm duration, time to recovery và số episode.

c. Balance và equity drawdown

Balance chỉ đổi khi deal được ghi; equity phản ánh floating P/L. Strategy giữ lỗ mở lâu có balance curve đẹp nhưng equity drawdown sâu. Phải biết report dùng loại nào.

Không có drawdown “an toàn phổ quát”. Ngưỡng phụ thuộc mandate, capital, horizon và risk policy. Bài không đề xuất ngưỡng.

d. Return/risk ratio cần context

Recovery factor hoặc return/DD giúp đặt kết quả cạnh downside. Nhưng tỷ lệ cao từ sample nhỏ vẫn yếu. Nếu denominator drawdown bị underestimate do tick/cost assumption, ratio bị thổi.

Kết luận nên là “trong run này, return X đi cùng equity DD Y theo passport Z”, không phải “EA tốt”.

e. Tail loss và recovery không nên bị làm phẳng

Average loss có thể che tail. Ví dụ 99 loss quanh -1 và một loss -50: average nhìn nhỏ hơn nếu sample lớn, nhưng một event cực đoan vẫn quyết định capital path. Hãy xem max loss, percentile, sequence và nguyên nhân.

Recovery cũng cần cơ sở. Sau drawdown 20%, equity phải tăng 25% từ trough mới về peak cũ: 950 → 1.200+250, tương đương 26,32% trên 950 trong demo. Mức giảm và mức phục hồi không đối xứng theo phần trăm. Điều này không dự báo thời gian recovery; nó chỉ giúp đọc arithmetic đúng.

3. Stability, Execution và Robustness

a. Stability: phân bố trong sample

Stability hỏi kết quả có trải qua nhiều trade/regime hay phụ thuộc vài điểm.

Demo: tổng profit 200, ba trade lớn đóng góp 140 = 70%. Bỏ ba outlier, phần còn lại chỉ 60.

Hình 3 — Concentration cao cho thấy report nhạy với vài trade, dù tổng profit vẫn dương.

Kiểm theo month/quarter, symbol, direction, session và trade contribution. Không cần mọi bucket dương; cần biết nguồn return.

b. Execution Quality: strategy và hạ tầng gặp nhau

Theo dõi:

  • requests/accepted/rejected;
  • retcode distribution;
  • slippage/deviation giả;
  • spread/cost paid;
  • duplicate/timeout/retry;
  • orphan position/order.

Demo 100 request, 8 reject. Tỷ lệ 8% chưa tự tốt/xấu; phải phân reason. Nếu cả 8 do invalid volume step, đó là bug configuration/execution. Nếu market closed theo expected, classification khác.

c. Robustness: ra khỏi sample chọn

Robustness hỏi behavior giữ tới đâu khi:

  • chạy holdout;
  • đổi window/regime;
  • tăng costs hợp lý;
  • thay input quanh baseline;
  • dùng tick model phù hợp khác;
  • forward demo.

Robust không nghĩa metrics giống hệt. Nó nghĩa conclusion không sụp vì thay assumption nhỏ. Holdout giảm nhẹ khác holdout đổi dấu và tăng DD mạnh.

d. Stability khác Robustness

Stability nhìn phân bố bên trong một run/sample. Robustness nhìn qua nhiều run/sample/assumption. Một run có monthly curve đều vẫn có thể fail holdout. Ngược lại, return theo tháng lồi lõm nhưng behavior giữ qua nhiều regime có thể robust hơn.

e. Regime map thay vì một đường trung bình

Chia sample theo volatility cao/thấp, trend/range, session hoặc cost bucket — nhưng định nghĩa bucket phải được chốt trước. Ta không tạo bucket sau khi thấy kết quả chỉ để giải thích curve.

Ví dụ EA tạo +180 trong regime A và -160 ở B. Tổng +20 che dependency rất mạnh. Flag đúng là REGIME_DEPENDENT, rồi kiểm strategy contract có chấp nhận hay không. Không xóa regime B khỏi report.

Execution cũng nên map theo regime: reject tăng khi session mở, slippage tăng trong data gap? Nếu có, cần operational mitigation và test, không chỉ giảm trade count để làm metric đẹp.

4. Sai lầm, giới hạn và rủi ro

a. Win rate trap

Win rate 90% có thể đi cùng average loss lớn hơn average win nhiều lần. Phải đọc payoff distribution và tail.

Demo 9 win × +1 = +9; 1 loss × -12 = -12; net -3 dù win rate 90%.

b. Metric shopping

Chạy nhiều report rồi chọn metric đẹp nhất là metric shopping. Nếu Profit Factor yếu nhưng win rate đẹp, người bán có thể chỉ show win rate. Cần scorecard định trước.

c. Sample size và dependency

1.000 trade không chắc là 1.000 quan sát độc lập; nhiều trade cùng regime/correlation. Sample size thô cần đi cùng diversity.

Câu chắc chắn: report mô tả sample đã chạy.

Câu có điều kiện: nếu passport, holdout, robustness và execution evidence đều tốt, ta có thể tăng confidence — không guarantee live.

Nếu trước đây bạn coi “nhiều trade = chắc”, cần sửa thành “nhiều independent conditions hơn mới hữu ích”.

d. Backtest-to-live gap

Live có latency, reject, data gap, operational error, provider changes và human intervention. Demo/forward evidence giúp phát hiện một phần gap, không xóa nó.

Testing Report cung cấp graph, trades/deals và statistics, nhưng reviewer vẫn phải đọc journal/log và assumptions. MetaTrader 5 Help — Testing Report

e. Multiple comparisons

Nếu thử 100 EA/preset rồi chọn top 1, top result có thể cao chỉ vì chance. Đây là selection bias. Phải ghi số candidate đã thử, criterion chọn và correction/holdout độc lập.

Một report đứng riêng không kể search process. EA “best” trong 500 pass cần scrutiny khác baseline được định trước. Không có con số correction đơn giản phù hợp mọi case, nhưng việc công bố search space là gate tối thiểu.

Ngoài ra, version drift làm comparison vô nghĩa: EA A dùng data update mới, EA B dùng cache cũ. Re-run cùng environment hoặc ghi rõ không comparable.

e. Khi phải reject

Reject evidence nếu:

  • drawdown type không rõ;
  • deposits/withdrawals lẫn return;
  • outlier concentration bị giấu;
  • execution rejects không phân loại;
  • holdout được tune;
  • metric definition không nhất quán;
  • không có raw trades/log.

5. Checklist và scorecard 15 phút

a. Checklist theo thứ tự

  1. Gate passport/data/logic.
  2. Ghi return period/mẫu số/cost.
  3. Ghi equity/balance DD, depth/duration/recovery.
  4. Phân trade contribution.
  5. Phân execution outcomes.
  6. So development/holdout.
  7. Stress cost/input/window.
  8. Ghi uncertainty và missing evidence.
  9. Đặt flag, không rating cảm tính.
  10. Quyết định reject/retest/research tiếp.

b. Bài tập

Dùng Sheets/giấy, 10–15 phút; không account/tiền thật.

Mẫu đối chiếu đã điền

Trục Evidence giả Flag
Return +200 trên 1000 context needed
Risk DD 250 từ peak 1200 20,83%
Stability 70% profit từ 3 trade concentration
Execution 8 reject / 100 request investigate
Robustness holdout giảm mạnh fragile

Không cộng thành 72/100. Flag concentration, investigate, fragile cần xử lý trước. Kết quả mong đợi là danh sách evidence cần thêm.

Thêm cột Next evidence:

  • Return: period/cost breakdown.
  • Risk: duration/recovery.
  • Stability: contribution by month/regime.
  • Execution: reject reasons.
  • Robustness: untouched holdout + cost stress.

Sau 15 phút, output phải là review queue, không phải phán quyết mua/dùng EA.

c. Điểm dừng

Dừng nếu raw trade/log thiếu hoặc run không comparable. Không suy từ screenshot curve.

6. Tổng kết

a. Năm ý chính

  • Đánh giá EA cần năm trục, không một metric.
  • Return phải đọc cùng drawdown path.
  • Stability nhìn concentration trong sample.
  • Execution Quality nối strategy với result thật.
  • Robustness cần holdout/stress/forward evidence.

b. Câu hỏi tự kiểm tra

  • Vì sao win rate 90% vẫn có thể net âm?
  • Relative DD demo được tính thế nào?
  • Stability khác Robustness ở đâu?
  • Khi holdout đã tune, flag gì?

c. Gợi ý đáp án

Xem gợi ý câu 1

Average loss có thể lớn hơn tổng win; xem demo 9×1 và 1×-12. Xem lại mục 4.

Xem gợi ý câu 2

(1.200−950)/1.200 = 20,83%. Xem lại mục 2.

Xem gợi ý câu 3

Stability trong một sample; Robustness qua sample/assumption. Xem lại mục 3.

Xem gợi ý câu 4

Holdout invalid/data leakage; không dùng làm evidence ngoài mẫu. Xem lại mục 3 và mục 4.

d. Thuật ngữ cần nhớ

Thuật ngữ Giải thích ngắn
Return Kết quả so với mẫu số đã khai báo.
Drawdown Mức giảm từ peak tới trough.
Stability Mức phân bố kết quả trong sample.
Execution Quality Chất lượng request/result/cost.
Robustness Khả năng giữ conclusion qua assumption khác.
Concentration Kết quả phụ thuộc ít trade/bucket.
Outlier Quan sát cực đoan ảnh hưởng mạnh.
Holdout Dữ liệu không dùng chọn rule.
Metric shopping Chỉ chọn metric đẹp để kể chuyện.

e. Nguồn tham khảo

Bài trước: Backtest EA là gì? #10. Bài tiếp theo: Các chiến lược EA phổ biến #12.

Nội dung này phục vụ mục đích giáo dục; không phải lời khuyên đầu tư, xếp hạng EA hoặc ngưỡng risk áp dụng chung.