nhật ký phản nghiệm · H&V

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ómknexpRwrtboot_loboot_hi
ES+NQ0,05237+0,080943,04 %0,94−0,06850,2576
ES+NQ0,25234+0,084043,16 %0,97−0,09060,2896
ES+NQ0,50230+0,089343,04 %1,02−0,07420,2860
DAX+GOLD0,05142+0,070238,73 %0,57−0,18130,2795
DAX+GOLD0,25137+0,137840,15 %1,07−0,11930,3576
DAX+GOLD0,50135+0,107639,26 %0,84−0,10760,3133
BTC+ETH0,05333−0,237635,14 %−3,15−0,3869−0,0768
BTC+ETH0,25330−0,215035,45 %−2,82−0,3720−0,0458
BTC+ETH0,50323−0,176936,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ử.

thử cả block 20 lẫn block 10:

nhómkboot_lo bảngKS block20KS block10
ES+NQ0,25−0,0906−0,1159−0,1193
ES+NQ0,50−0,0742−0,0955−0,1067
DAX+GOLD0,25−0,1193−0,0228−0,0978
DAX+GOLD0,50−0,1076−0,0223−0,0979
BTC+ETH0,25−0,3720−0,3710−0,3792
BTC+ETH0,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ómk=0,05k=0,25k=0,50thay đổi
BTC+ETH64,56 %64,24 %63,16 %−1,40 pp
DAX+GOLD61,27 %59,85 %60,74 %−0,53 pp
ES+NQ56,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ómmfe_R_tb lệnh STOPmfe_R_tb lệnh KHÔNG stopstop từng đạt ≥1Rstop từng chạm đích
ES+NQ0,6191,65720,0 %0,0 %
DAX+GOLD0,5441,91214,9 %0,0 %
BTC+ETH0,6651,97026,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ómn ghépthua→thắngthắng→thuaexpR k=0,05expR k=0,50Δ
ES+NQ223440,07240,0723−0,0001
DAX+GOLD133440,09310,1082+0,0151
BTC+ETH31794−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:

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ôihiện vật crypto_cong3.pkl
n311333
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

  1. disp_buf giữ nguyên 0,05. Không đổi gì trên live.
  2. Đó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ê.

  1. 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.

  1. 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.

Lấy sổ lệnh thật của tôi — và hai con số lỗ khác nhau trong cùng một sổ

Sổ giao dịch đầy đủ, không cắt lệnh xấu. Tài khoản mất −670,30 €, nhưng chỉ −343,30 € đến từ quyết định giao dịch — −327,00 € còn lại là 3 lệnh kiểm thử hạ tầng khớp thật trên sàn. Ai công bố một trong hai số mà không nói còn số kia thì đang kể một nửa.

Sổ sạch: 5 lệnh · WR 20 % · expR −0,090 · PF 0,298. Kèm bảng dựng lại đòn bẩy từng lệnh — 13 dòng vượt trần 10×, nhưng đúng 1 dòng là lệnh thật (02/09, US30, 22,72×, −296,40 € = 86 % toàn bộ lỗ thật). 12 dòng còn lại tới 188× là test. Phân biệt được hai loại đó là toàn bộ giá trị của file này.

Để email, tôi gửi kèm mỗi phép đo mới giết được một giả thuyết. Không tín hiệu, không kèo, không mời góp vốn.

Không lưu IP. Bỏ đăng ký bất cứ lúc nào. Không muốn đưa email? Sổ vẫn để công khai tại /tai/ — tôi không gate thứ mình rao là minh bạch.

← tất cả bài