Tôi nới stop lên gấp 10 lần. Nó cứu được 1,4 % số lệnh — và 0,0 % ở index
2026-09-28 · H&V Company
Giả thuyết dễ tin nhất trong trading
"Chiến lược của tôi đúng hướng, chỉ là stop dán quá sát nên bị quét."
Tôi đã tin câu đó. Nó có mọi tính chất của một giả thuyết nguy hiểm: nó an ủi, nó không đòi bạn bỏ chiến lược, và nó luôn có bằng chứng — vì bạn luôn tìm được vài lệnh chạm stop rồi giá quay đúng hướng.
Ngày 28/09/2026 tôi đăng ký phán quyết trước khi chạy, rồi đo. Kết quả: CO_CHE_BAC_BO. Bài này là toàn bộ số đo, kể cả phần chứng minh rằng lập luận ban đầu của tôi là vòng tròn.
Phép thử: ba mức đệm, ba nhóm thị trường, nửa ngoài mẫu
Tham số bị thử là disp_buf — đệm stop tính theo ATR. Bản live chạy 0,05. Tôi thử thêm 0,25 và 0,50, tức nới tới 10 lần. Chỉ ba giá trị, có assert chặn quét thêm trong mã, để không ai (kể cả tôi) lẻn vào dò tham số.
Mốc chia TRAIN / KHOÁ đọc từ gate_von.json: 2025-05-25 10:35 ET. Không hard-code. Mọi số dưới đây là nửa KHOÁ — phần dữ liệu chiến lược chưa từng nhìn thấy.
| nhóm | k | n | expR | wr | t | boot_lo | boot_hi |
|---|
| ES+NQ | 0,05 | 237 | +0,0809 | 43,04 % | 0,94 | −0,0685 | 0,2576 |
| ES+NQ | 0,25 | 234 | +0,0840 | 43,16 % | 0,97 | −0,0906 | 0,2896 |
| ES+NQ | 0,50 | 230 | +0,0893 | 43,04 % | 1,02 | −0,0742 | 0,2860 |
| DAX+GOLD | 0,05 | 142 | +0,0702 | 38,73 % | 0,57 | −0,1813 | 0,2795 |
| DAX+GOLD | 0,25 | 137 | +0,1378 | 40,15 % | 1,07 | −0,1193 | 0,3576 |
| DAX+GOLD | 0,50 | 135 | +0,1076 | 39,26 % | 0,84 | −0,1076 | 0,3133 |
| BTC+ETH | 0,05 | 333 | −0,2376 | 35,14 % | −3,15 | −0,3869 | −0,0768 |
| BTC+ETH | 0,25 | 330 | −0,2150 | 35,45 % | −2,82 | −0,3720 | −0,0458 |
| BTC+ETH | 0,50 | 323 | −0,1769 | 36,53 % | −2,28 | −0,3253 | −0,0220 |
Ngưỡng đăng ký trước: cùng một k > 0,05 phải cho boot_lo > 0 ở ≥ 2/3 nhóm.
Kết quả: 0/3 nhóm, ở cả k = 0,25 và k = 0,50.
Nhìn cột expR thì "nới stop có vẻ tốt lên": ES+NQ đi từ 0,0809 lên 0,0893. Đó đúng là cái bẫy. Cột quyết định là boot_lo — cận dưới khoảng tin cậy 95 % dựng bằng circular block bootstrap. Nó âm ở cả 9 ô. Một kỳ vọng dương mà cận dưới âm nghĩa là: tôi không phân biệt được nó với số không.
Tôi không tin bảng của chính mình
Bảng trên do phép thử tự in ra. Tôi viết một script kiểm soát riêng, đọc thẳng sổ lệnh từng lệnh trong .pkl và không import một hàm đo nào của phép thử.
- Tính lại
expR: lệch tối đa 4,0 × 10⁻⁵ — thuần làm tròn 4 chữ số. Lệch n: 0. - Dựng lại bootstrap bằng seed khác (12345 và 999, bản gốc dùng 20260926),
thử cả block 20 lẫn block 10:
| nhóm | k | boot_lo bảng | KS block20 | KS block10 |
|---|
| ES+NQ | 0,25 | −0,0906 | −0,1159 | −0,1193 |
| ES+NQ | 0,50 | −0,0742 | −0,0955 | −0,1067 |
| DAX+GOLD | 0,25 | −0,1193 | −0,0228 | −0,0978 |
| DAX+GOLD | 0,50 | −0,1076 | −0,0223 | −0,0979 |
| BTC+ETH | 0,25 | −0,3720 | −0,3710 | −0,3792 |
| BTC+ETH | 0,50 | −0,3253 | −0,3202 | −0,3341 |
0/6 dòng có boot_lo > 0 ở bất kỳ cài đặt nào. Kết quả không phải xảo thuật seed. Nhóm gần cửa nhất là DAX+GOLD (−0,022) nhưng nửa KHOÁ chỉ có 137 lệnh và vẫn âm ở mọi cấu hình.
Ba con số giết giả thuyết
Bác bỏ bằng thống kê là chưa đủ — nó chỉ nói "không đạt ngưỡng", không nói "vì sao". Ba phép đo dưới đây nói vì sao, và chúng đóng hướng này chặt hơn cái bảng ở trên.
(a) Nới đệm 10 lần gần như không giảm tỉ lệ bị quét stop
Tỉ lệ lệnh chết vì chạm stop, nửa KHOÁ:
| nhóm | k=0,05 | k=0,25 | k=0,50 | thay đổi |
|---|
| BTC+ETH | 64,56 % | 64,24 % | 63,16 % | −1,40 pp |
| DAX+GOLD | 61,27 % | 59,85 % | 60,74 % | −0,53 pp |
| ES+NQ | 56,96 % | 56,84 % | 56,96 % | ±0,00 pp |
Nới đệm từ 0,05 lên 0,50 ATR — gấp mười — và ở ES+NQ số lệnh bị quét stop không đổi một lệnh nào. Nếu stop thật sự dán quá sát, con số này phải sụp.
(b) Lệnh bị quét stop không phải lệnh "sắp thắng bị clip"
Đây là phép đo tôi thấy đắt nhất. Với riêng nhóm lệnh chết vì stop, tôi hỏi: trước khi chết, nó đã đi thuận chiều được bao xa?
| nhóm | mfe_R_tb lệnh STOP | mfe_R_tb lệnh KHÔNG stop | stop từng đạt ≥1R | stop từng chạm đích |
|---|
| ES+NQ | 0,619 | 1,657 | 20,0 % | 0,0 % |
| DAX+GOLD | 0,544 | 1,912 | 14,9 % | 0,0 % |
| BTC+ETH | 0,665 | 1,970 | 26,5 % | 0,0 % |
Lệnh bị quét stop đi thuận trung bình 0,54 – 0,67 R rồi chết. Nó không đi đâu cả. Và cột cuối: trong toàn bộ nửa KHOÁ, không một lệnh nào bị stop mà trước đó đã chạm đích. Không phải "ít". Là 0,0 % ở cả ba nhóm.
Nới stop rộng ra chỉ cho một lệnh đang đi sai thêm chỗ để chết chậm hơn.
(c) Ghép cặp từng lệnh, cùng thời điểm, cùng mã
Bảng tổng có thể che giấu việc tập lệnh ở mỗi k là khác nhau (đổi k → đổi risk_pts → đổi rr → bộ lọc min_r cắt khác). Nên tôi ghép cặp theo đúng (ts, sym) giữa k = 0,05 và k = 0,50:
| nhóm | n ghép | thua→thắng | thắng→thua | expR k=0,05 | expR k=0,50 | Δ |
|---|
| ES+NQ | 223 | 4 | 4 | 0,0724 | 0,0723 | −0,0001 |
| DAX+GOLD | 133 | 4 | 4 | 0,0931 | 0,1082 | +0,0151 |
| BTC+ETH | 317 | 9 | 4 | −0,2536 | −0,1861 | +0,0675 |
ES+NQ: bốn lệnh chuyển từ thua sang thắng, bốn lệnh chuyển ngược lại, chênh lệch kỳ vọng −0,0001 R. Nới stop gấp mười lần trên 223 lệnh đổi được số không.
Crypto có nhích thật (+0,0675 R mỗi lệnh) nhưng đi từ −0,25 lên −0,19: vẫn âm, cận trên khoảng tin cậy vẫn dưới 0. Bớt lỗ không phải hết lỗ.
Phần khó nhất: lập luận ban đầu của tôi là vòng tròn
Giả thuyết được xây trên một quan sát: "mae_R trung bình tăng ở nửa ngoài mẫu ⇒ giá đi ngược sâu hơn ⇒ stop quá sát."
Đo trên sổ lệnh thì mae_R bị kiểm duyệt bởi chính cái stop:
- lệnh bị stop có
mae_R ∈ [1,000 ; 2,43] — trung bình 1,10 – 1,13 - lệnh không bị stop có
mae_R trung bình 0,38 – 0,47 - tỉ lệ
mae_R ≥ 1,0 trùng khít 100 % với tỉ lệ bị quét stop ở cả 9 ô
Nghĩa là "mae_R trung bình tăng" và "nhiều lệnh bị quét stop hơn" là cùng một sự kiện được nói hai lần. Dùng cái thứ nhất làm bằng chứng cho cái thứ hai là lập luận vòng tròn. Tôi đã làm đúng như vậy.
Tương tự, mfe_R trung bình gộp (≈ 1,07 – 1,17) trông "giữ nguyên", nhưng nó là trung bình trộn của lệnh thắng (1,66 – 2,07) và lệnh thua (0,54 – 0,67). "Biên độ thuận chiều còn nguyên" thực ra chỉ là hiệu ứng trộn tỉ lệ.
Và khi đối chiếu ba con số trong đề bài với hiện vật gốc:
| đại lượng | đề bài của tôi | hiện vật crypto_cong3.pkl |
|---|
| n | 311 | 333 |
| expR | −0,2660 | −0,2376 |
| t | −3,47 | −3,1547 |
grep con số "311 lệnh" trên toàn bộ kho verdict trả về đúng một file: chính đề bài. Ba con số đó không tồn tại ở bất kỳ hiện vật nào. Chúng ra đời trong lúc ai đó (tôi) chép số vào bản giao việc.
Phép thử vẫn chạy đúng luật và tự bác bỏ giả thuyết đã sinh ra nó. Đó là lý do duy nhất tôi phát hiện được chuyện này.
Đã thi hành
disp_buf giữ nguyên 0,05. Không đổi gì trên live.- Đóng hướng "nới stop" cho cả ba nhóm. Không mở lại bằng một
k khác — cơ chế
bị bác ở mức chẩn đoán (lệnh chết chỉ đi thuận 0,54–0,67 R), không chỉ ở mức thống kê.
- Sửa quy ước đo: từ nay
mae_R_tb không được dùng làm bằng chứng "stop quá
sát", vì nó bị kiểm duyệt bởi stop. Thay bằng: tỉ lệ quét stop + mfe_R của riêng nhóm lệnh bị stop.
- Ba con số sai trong bản giao việc được thay bằng số hiện vật.
Đường sống duy nhất còn lại trong tập số liệu này không nằm ở stop, nó nằm ở cửa vào: 57–65 % số lệnh chết vì stop, và chúng chưa từng đi thuận quá 0,67 R. Tức là lọc setup, không phải nới stop. Hướng đó chưa được chứng minh — nó chỉ là hướng chưa bị bác bỏ.
Tự kiểm chứng
# bảng đo gốc — 324 dòng, cột đúng đặc tả
head -5 ~/Documents/trading/ES-NQ/sl_chuan_bien_do.csv
# verdict đăng ký TRƯỚC khi chạy (dòng 50-53 của chính phép thử)
sed -n '50,53p' ~/Documents/trading/ES-NQ/sl_chuan_bien_do.py
# chốt chặn không cho quét thêm tham số
grep -n "K_LIST\|assert" ~/Documents/trading/ES-NQ/sl_chuan_bien_do.py | head
# cơ chế stop: tỉ lệ quét + mfe của riêng nhóm bị stop
cat ~/Documents/company/projects/trading/ks_sl_chuan_bien_do_cochestop.csv
# ghép cặp cùng (ts,sym) giữa k=0,05 và k=0,50
cat ~/Documents/company/projects/trading/ks_sl_chuan_bien_do_ghepcap.csv
# bootstrap tính lại độc lập, seed khác
cat ~/Documents/company/projects/trading/ks_sl_chuan_bien_do_audit.csv
Nếu bạn chạy lại và ra số khác, tôi muốn biết. Đó là toàn bộ lý do tôi để sổ ở đây.
Cảnh báo rủi ro
Bài này là phân tích giáo dục về phương pháp kiểm định chiến lược, không phải lời khuyên đầu tư. Hiệu suất quá khứ không bảo đảm kết quả tương lai. Giao dịch đòn bẩy có rủi ro mất toàn bộ vốn. Kết quả trên đo bằng replay offline trên dữ liệu lịch sử, không có lệnh thật nào được đặt trong phép thử này. Tôi không nhận góp vốn, không bán tín hiệu.