XAULearn

งานวิจัย · มาตรฐานบริการ · ตัวอย่างงานจริง

มาตรฐานการตรวจ EA
และผลตอนเราเอาระบบที่ดีที่สุดของตัวเองเข้าด่าน

รายงาน walk-forward ทั่วไปตอบว่า “ระบบนี้กำไรนอกกลุ่มไหม” · คำถามนั้นสำคัญ แต่ไม่พอ — เพราะมันไม่ได้บอกว่า ผลที่เห็นแยกออกจากโชคได้หรือไม่ · หน้านี้คือด่านแปดข้อที่เราใช้ และผลตอนเอาระบบของเราเองเข้าด่าน

ระบบของเราเอง ผ่าน 2 · ไม่ผ่าน 4 · ยังตัดสินไม่ได้ 1 · จาก 7 ด่าน DeskTrend_H4 · 290 ไม้ · 2013–2026 รัน 9 ก.ย. 2026
กำไรเฉลี่ยต่อไม้7.33$จาก 290 ไม้ตลอด 13.7 ปี
ขอบเล็กสุดที่มองเห็นได้14.09$เล็กกว่านี้ ข้อมูลชุดนี้แยกจากศูนย์ไม่ได้
ไม้ที่ต้องมีเพื่อยืนยัน1,073มีอยู่ 290 · ขาดอีกเกือบสี่เท่า
ชนะการสุ่มที่จับคู่78เปอร์เซ็นไทล์ · ต้องถึง 95
ไม้ท็อป 10142%ของกำไรสุทธิ — ที่เหลือรวมกันขาดทุน
ปีที่เป็นบวก8 / 14ปีที่ดีที่สุดคิดเป็น 45.6% ของสุทธิ

ด่านทั้งเจ็ด

สามด่านที่ทำเครื่องหมายไว้ หายาก คือด่านที่รายงาน walk-forward ทั่วไปไม่มี · ทั้งสามข้อมาจากโปรแกรมวิจัยของเราเองที่ทดสอบกลไก 15 ตระกูลแล้วไม่ผ่านสักตระกูล — เราค้นพบมันเพราะเราต้องอธิบายให้ตัวเองฟังว่า “ไม่ผ่าน” แปลว่าอะไรกันแน่

G0 รันได้จริงไหม รายงานทั่วไปไม่มี

ไบนารีเริ่มทำงานในสภาพแวดล้อมที่ควบคุมได้หรือไม่

ด่านที่เหลือทั้งเจ็ดไม่มีความหมายเลยถ้า EA เริ่มทำงานไม่ได้ · เราเพิ่มด่านนี้เข้ามาหลังซ้อมกับไฟล์กล่องดำ 59 ไฟล์แล้วพบว่า ทั้ง 59 ไฟล์ตายที่ขั้นนี้ — ใช้เวลาไฟล์ละไม่กี่วินาที เทียบกับการตรวจเต็มที่ใช้เวลาเป็นชั่วโมงต่อไฟล์

G1 ขอบที่มองเห็นได้ รายงานทั่วไปไม่มี

ข้อมูลชุดนี้แยกขอบเล็กสุดขนาดไหนออกจากศูนย์ได้

การบอกว่า “ระบบคุณไม่มีขอบ” โดยไม่บอกตัวเลขนี้ เป็นคำตัดสินที่พิสูจน์ผิดไม่ได้ · ระบบที่ยิงปีละ 20 ไม้ ผลลบแทบไม่มีความหมายตั้งแต่ต้น

G2 การกระจายตามเวลา

กำไรมาจากทุกปี หรือมาจากสองปี

ถ้ากำไรทั้งหมดมาจากไม่กี่ปี ลูกค้าไม่ได้ถือระบบ เขาถือเดิมพันบนสภาวะตลาดแบบหนึ่งที่อาจไม่กลับมา

G3 เกณฑ์ที่ถูกต้อง รายงานทั่วไปไม่มี

ชนะการถือสินทรัพย์นั้นเฉย ๆ ที่ความเสี่ยงเท่ากันไหม

Profit Factor วัดเทียบกับศูนย์ แต่ศูนย์ไม่ใช่ทางเลือกที่มีอยู่จริง · และ “เกณฑ์” มีสองนิยามที่ให้คำตอบต่างกัน ต้องรายงานทั้งคู่

G4 ตัวควบคุมที่จับคู่แล้ว

จังหวะเข้ามีข้อมูล หรือแค่ทิศทางกับระยะถือ

สุ่มเข้าโดยให้จำนวนไม้ ทิศ และระยะถือเท่ากันทุกอย่าง เหลือต่างกันแค่จังหวะ · ถ้าชนะไม่ได้ ลูกค้าไม่ต้องซื้อ EA ก็ทำได้

G5 หักค่าการค้นหา รายงานทั่วไปไม่มี

ลองไปกี่ชุดกว่าจะได้ผลนี้

ระบบที่ผ่านในความพยายามครั้งที่ 500 ก็ยังคือระบบที่ถูกดัด · เกณฑ์ต้องยกขึ้นตาม √(2 ln N)

G6 ความไวต่อต้นทุน

ต้นทุนเพิ่มเท่าไรระบบถึงตาย

ระบบ PF บาง ๆ จำนวนมากตายตรงขั้นนี้ และรายงานของผู้ขายไม่เคยแสดง

G7 การกระจุกตัว

ไม้ท็อป 10 คิดเป็นกี่เปอร์เซ็นต์ของกำไรสุทธิ

ถ้าเกิน 100% แปลว่าไม้ที่เหลือทั้งหมดรวมกันขาดทุน — ระบบขึ้นกับการจับเหตุการณ์หายากไม่กี่ครั้ง

ด่าน 0 มาจากไหน — ไฟล์กล่องดำ 59 ไฟล์ที่ไม่มีตัวไหนรันได้เลย

มาตรฐานนี้เริ่มต้นด้วยด่านเจ็ดข้อ · ด่านที่ศูนย์ถูกเพิ่มเข้ามาทีหลัง เพราะการซ้อมรับงานจริงสอนเราด้วยวิธีที่ตรงไปตรงมาที่สุด: เราติดตั้งไฟล์ .ex5 จำนวน 59 ไฟล์ที่ไม่เคยเห็นมาก่อน ลงเทอร์มินัลตรวจสอบที่แยกออกมาโดยเฉพาะ แล้วรันทีละตัวด้วยทิกจริง

ทั้ง 59 ไฟล์ล้มที่จุดเดียวกัน — ก่อนจะเทรดแม้แต่ไม้เดียว

สิ่งที่ตัวทดสอบเขียนไว้แปลว่า
DLL loading is not allowedEA เรียกไลบรารีเนทีฟจากภายนอก
global initialization failedจึงเริ่มทำงานไม่สำเร็จ
tester stopped because expert initialization failedการทดสอบจบทันที ไม่มีคำสั่งซื้อขายเลย

และไม่มีไฟล์ .dll แนบมาด้วยเลยสักไฟล์ → ถึงจะเปิดสิทธิ์ให้ ก็จะไปตายที่ cannot load library อยู่ดี ชุดนี้ใช้งานไม่ได้ในสภาพที่ส่งมา ไม่ว่ากลยุทธ์ข้างในจะดีแค่ไหน

เราไม่เปิดสิทธิ์เรียก DLL ให้ไบนารีที่อ่านซอร์สไม่ได้ · โค้ดเนทีฟอยู่นอกกรอบทั้งหมดของ MetaTrader — อ่านไฟล์ ต่ออินเทอร์เน็ต เขียนรีจิสทรีได้หมด · การยอมเปิดเพื่อให้ผลออกมา “ตรวจได้” คือการทิ้ง เหตุผลทั้งหมดที่เราแยกเทอร์มินัลออกมาตั้งแต่แรก · “รันไม่ได้ในกล่องทราย” เป็นผลตรวจที่ถูกต้อง ไม่ใช่ปัญหาที่ต้องแก้ให้ผ่าน

สิ่งที่ด่าน 0 ไม่ได้บอก

ผลว่า “ตรวจไม่ได้” ไม่ได้แปลว่ากลยุทธ์ข้างในดีหรือแย่ — เราไม่ได้เห็นมันเทรดแม้แต่ไม้เดียว จึงยังไม่มีความเห็นเรื่องผลตอบแทน ความเสี่ยง หรือความทนทาน · สิ่งที่พูดได้คือของที่ส่งมาใช้งานไม่ได้ ในสภาพที่ส่งมา ซึ่งเป็นคนละคำถามและตอบได้ก่อน ด้วยต้นทุนไม่กี่วินาที

สิ่งที่ลูกค้าควรขอจากผู้ขายเมื่อเจอผลนี้: บิลด์ที่ไม่เรียก DLL หรือไฟล์ .dll ทั้งหมดพร้อมชื่อผู้พัฒนาและเหตุผลที่ต้องใช้ · ผู้ขายที่ให้ไม่ได้ ก็เป็นข้อมูลสำหรับการตัดสินใจซื้ออยู่แล้ว

ด่าน 0 มีสี่คำตอบ ไม่ใช่สองคำตอบ

ผลแปลว่าคิดเงินไหม
รันได้เริ่มทำงานและออกคำสั่งได้ → ตรวจต่อได้ทุกด่านตรวจต่อตามแพ็กเกจ
ตรวจไม่ได้EA ปฏิเสธจะรัน (DLL · ล็อกบัญชี · หมดอายุ) — เป็นผลตรวจ ไม่ใช่ข้อผิดพลาดไม่คิดเงิน
รันได้แต่ไม่ออกไม้เริ่มทำงานปกติ แต่เงื่อนไขไม่เคยเข้าในหน้าต่างสั้นที่ใช้ตรวจตรวจต่อด้วยหน้าต่างเต็ม
ตั้งค่าไม่ครบปัญหาอยู่ฝั่งเรา — ข้อมูล สัญลักษณ์ หรือสภาพแวดล้อมยังไม่พร้อมไม่คิดเงิน แก้แล้วรันใหม่

คำตอบที่สามเพิ่งถูกแยกออกมาหลังรับงานจริง · โค้ดเขียนกรณีนี้ไว้ ตั้งแต่แรก แต่มันตัดสินจากตัวแปรที่เป็น “เท็จ” เสมอเมื่อไม่มีไม้ — ทางแยกนั้นจึงไปไม่ถึงเลยแม้แต่ครั้งเดียว และทุกเคสตกไปที่ “ตั้งค่าไม่ครบ · ปัญหาอยู่ฝั่งเรา” แล้วหยุดทั้งเคส · EA จริงตัวแรกที่เรารับมาเป็นระบบตัดกันของเส้นค่าเฉลี่ย 50/200 บน H1 ซึ่งไม่ตัดกันเลยใน 18 วัน — เรื่องปกติของระบบตามเทรนด์ทุกตัว · เครื่องมือกลับรายงานว่าเราตั้งค่าไม่ครบแล้วปฏิเสธงาน · แปลว่า เราจะปฏิเสธลูกค้าที่ระบบออกไม้ไม่บ่อย โดยโทษตัวเอง ทั้งที่ EA ไม่มีอะไรผิด

ถ้าส่งซอร์สโค้ดมา เราคอมไพล์เอง — และบอกไว้ในรายงานว่าเราคอมไพล์

ไฟล์ .ex5 คือไบนารีที่อ่านไม่ได้ · ถ้าลูกค้าส่ง .mq5 มาแทน เราตรวจตัวโค้ดได้ด้วย และ คอมไพล์เองในกล่องทราย จึงไม่ติดปัญหาไฟล์ประกอบที่ผู้ขายลืมแนบ — ซึ่งเป็นสาเหตุที่ฆ่าไฟล์กล่องดำทั้ง 59 ไฟล์ข้างบน

แต่ไบนารีที่เราคอมไพล์เอง ไม่ใช่ไบนารีที่ผู้ขายแจก · ถ้าผู้ขายคอมไพล์ด้วยเวอร์ชันอื่น หรือมีโค้ดที่ไม่ได้ให้มา ผลอาจต่างกัน · รายงานจึงบันทึกไว้เสมอว่าไบต์ชุดไหนถูกทดสอบ พร้อม SHA-256 ของทั้งซอร์สและไบนารี · ถ้ามีข้อโต้แย้งในอีกหกเดือน นี่คือสิ่งเดียวที่ตอบได้ว่าเราตรวจไฟล์ตัวไหน

และก่อนถึงด่าน 0 ทุกครั้ง เราตรวจว่าไฟล์ที่ได้รับครบไบต์หรือไม่ · อีเมลกับแชทบล็อกไฟล์ที่รันได้ คนจึงเปลี่ยนนามสกุลเป็น .txt เพื่อให้ส่งผ่าน — บางช่องทางจะไปแก้ท้ายบรรทัด ทำให้ไฟล์โตขึ้นราว 0.4% โดยที่หัวไฟล์ยังอ่านว่า “EX5” เหมือนเดิมทุกประการ · MT5 จะโหลดไม่ขึ้น และอาการเหมือนกันเป๊ะกับ EA ที่ถูกล็อกไลเซนส์ · เราแยกสองอย่างนี้ด้วยสัดส่วนไบต์ขึ้นบรรทัดที่มีตัวนำหน้า (ไฟล์ปกติ 0.3–0.6% · ไฟล์ที่เสีย 100.0% — วัดจากไฟล์จริง 59 ไฟล์ ไม่มีช่วงคาบเกี่ยว) · ถ้าเสียจากการส่ง เราบอกให้ส่งใหม่ ไม่ใช่รายงานว่า EA คุณมีปัญหา

ตัวอย่างจริง — เราตรวจระบบที่ดีที่สุดของเราเอง

DeskTrend_H4 คือ EA ตัวเดียวจากที่เราเขียนมาทั้งหมด ที่เคยผ่าน walk-forward 13.7 ปี (นอกกลุ่ม PF 1.39 · กวาดพารามิเตอร์ 27 ชุด กำไรทุกชุด · ดรอว์ดาวน์ 7.4%) · เช็คลิสต์มาตรฐานให้ใบผ่านเต็มใบ

ด่านผลตัวเลข
① ขอบที่มองเห็นได้ ยังตัดสินไม่ได้ กำไร 7.33$/ไม้ · พื้นที่มองเห็นได้ 14.09$ → ข้อมูลยังแยกจากโชคไม่ได้
② การกระจายตามเวลา ไม่ผ่าน บวก 8/14 ปี · ปีที่ดีที่สุด = 45.6% ของสุทธิ
③ เกณฑ์ที่ถูกต้อง ผ่าน ชนะเกณฑ์ความเสี่ยงเท่ากัน +4.98$ · ดรอว์ดาวน์ดีกว่าครึ่ง
④ ตัวควบคุมที่จับคู่ ไม่ผ่าน อยู่เปอร์เซ็นไทล์ 78.2 (ต้อง 95)
⑤ หักค่าการค้นหา ไม่ผ่าน เกณฑ์หลังหัก 12.92$ vs วัดได้ 7.33$
⑥ ความไวต่อต้นทุน ผ่าน ยังเป็นบวกที่ต้นทุน +1.00$/ไม้ · PF 1.256
⑦ การกระจุกตัว ไม่ผ่าน ไม้ท็อป 10 = 142.4% ของกำไรสุทธิ → อีก 280 ไม้รวมกันขาดทุน

⚑ ด่านที่หนักที่สุดคือด่านแรก — กำไรเฉลี่ย 7.33$ ต่อไม้ ขณะที่ขอบเล็กสุดที่ข้อมูล 290 ไม้มองเห็นได้คือ 14.09$ · แปลว่า “ระบบเดียวที่ผ่าน walk-forward ของเรา” ยังไม่มีขอบที่แยกออกจากโชคได้ ที่จำนวนไม้เท่านี้ — ต้องมีถึง 1,073 ไม้ ถึงจะยืนยันขอบขนาดที่วัดได้

กำไรรายปี

ปีไม้สุทธิ
201311 -149.93$
201418 -2.92$
201519 +62.97$
201622 -31.18$
201723 +110.58$
201826 +76.56$
201928 +243.59$
202024 +286.13$
202116 -105.77$
202223 -41.50$
202320 +676.16$
202421 +348.43$
202523 +968.31$
202616 -316.61$

ปีที่ 2023–2025 รวมกันคิดเป็น 94% ของกำไรทั้งหมด · 6 ใน 14 ปีขาดทุน · และปี 2026 ถึงตอนนี้ติดลบ · เช็คลิสต์มาตรฐานไม่มีข้อไหนจับเรื่องนี้ได้เลย

เกณฑ์มีสองนิยาม และเราเคยเผยแพร่ไปนิยามเดียว

นิยามถามว่าอะไรผล
ขนาดเท่ากัน อยู่ในตลาดตลอด ใช้กฎขนาดเดียวกันแต่ไม่เคยออกจากตลาด แพ้ 2,602$
ความเสี่ยงเท่ากัน สเกลให้ความผันผวนของเส้นทุนรายวันเท่ากัน เสมอ +4.98$ · ดรอว์ดาวน์ดีกว่าครึ่ง

ต่างกันมากเพราะระบบอยู่ในตลาดแค่ 21.5% ของเวลา · นิยามแรกลงโทษระบบที่แบนอยู่เป็นส่วนใหญ่ นิยามที่สองไม่ลงโทษ · ทั้งคู่ถูกต้อง และการเลือกนิยามเดียวแล้วไม่บอกว่ามีอีกนิยาม คือการเลือกคำตอบ ไม่ใช่การวัด — เราทำแบบนั้นไปแล้วครั้งหนึ่ง และแก้ไว้ที่นี่

walk-forward แบบขยับกรอบ — รันจบสายแล้ว และนี่คือหน้าตาของ curve-fit

MT5 มีโหมด Forward ในตัว แต่มันแบ่งข้อมูลครั้งเดียวที่วันเดียว ซึ่งตอบได้แค่ว่า “ชุดค่านี้รอดท่อนสุดท้ายไหม” — เป็นการโยนเหรียญหนึ่งครั้ง · เราจึงคุมหน้าต่างเองจากข้างนอก: ฟิตบนกรอบหนึ่ง ทดสอบบนกรอบถัดไปที่มันไม่เคยเห็น แล้วขยับกรอบ ทำซ้ำ

รอบพิสูจน์: ทอง 3 ปี · ทิกจริง 146,482,984 ทิก · ไม่มีชั่วโมงขาดเลย · ใช้เวลา 30 นาที

หน้าต่างฟิตบนทดสอบบนชุดที่ชนะในกลุ่มนอกกลุ่ม
02022-01 → 2023-012023-01 → 2023-0715 / 20+193$−128$
12022-07 → 2023-072023-07 → 2024-0115 / 20+638$−660$
22023-01 → 2024-012024-01 → 2024-075 / 60−191$−268$
32023-07 → 2024-072024-07 → 2025-0120 / 60−251$+23$

อ่านสองบรรทัดนี้ก็พอ — ในกลุ่มเฉลี่ย +97$ นอกกลุ่มเฉลี่ย −258$ · เป็นบวก 1 จาก 4 หน้าต่าง

แต่ตัวเลขที่บอกอะไรมากที่สุดไม่ใช่กำไร · ชุดค่าที่ชนะเปลี่ยนไป 3 แบบ ใน 4 หน้าต่าง (15/20 → 15/20 → 5/60 → 20/60) · ถ้าพารามิเตอร์ที่ดีที่สุดกระโดดไปมาแบบนี้ แปลว่ากริดกำลังจับเสียงรบกวน ไม่ใช่โครงสร้าง — และค่าที่ “ดีที่สุด” ของวันนี้ก็ไม่มีเหตุผลจะดีที่สุดในปีหน้า นี่คือลายเซ็นของ curve-fit ที่การแบ่งข้อมูลครั้งเดียวมองไม่เห็น

EA ที่ใช้ทดสอบคือ MA-cross ธรรมดาที่เราเขียนเองเพื่อพิสูจน์สาย ผลลบจึงเป็นสิ่งที่คาดไว้ · สิ่งที่พิสูจน์คือเครื่องมือ ไม่ใช่กลยุทธ์

ของแถมที่สำคัญกว่าที่คิด: เรารู้ N จริง

เราเดินกริดเอง ไม่พึ่งโหมด optimisation ของ MT5 → รอบนี้ลองไปทั้งหมด 32 ชุด (8 ชุด × 4 หน้าต่าง) ซึ่งเป็นตัวเลขที่นับได้ ไม่ใช่ตัวเลข ที่ต้องเชื่อคำบอก · ด่าน ⑤ จึงยกเกณฑ์เป็น √(2 ln 32) = 2.63 เท่าของค่าคลาด ได้อย่างมีที่มา · ข้อนี้สำคัญเพราะ N เป็นข้อที่ลูกค้าตอบต่ำกว่าความจริงเสมอ ไม่ใช่เพราะตั้งใจโกหก แต่เพราะไม่มีใครนับตอนลองผิดลองถูก

⚠ ข้อจำกัดที่ต้องอ่านคู่กันเสมอ — เราลบสิ่งที่ผู้ขายเคยเห็นออกไม่ได้ · ถ้าเขาจูน EA บนข้อมูลปี 2015–2025 แล้วเราแบ่ง “นอกกลุ่ม” ตามวันที่ในช่วงนั้น มันไม่ใช่นอกกลุ่มจริง เพราะสายตาเขาเห็นข้อมูลนั้นไปแล้วตอนออกแบบ · นอกกลุ่มที่ปลอมไม่ได้มีอย่างเดียวคือข้อมูลที่ยังไม่เกิดตอน EA ถูกสร้าง · walk-forward บนอดีตจึงเป็น ขอบล่างของการจับ curve-fit ไม่ใช่ใบรับรองความทนทาน — ผ่านแล้วแปลว่า “ยังจับไม่ได้” ไม่ได้แปลว่า “ไม่มี”

การซ้อมครั้งนี้จับบั๊กในเครื่องมือตรวจของเราเอง

รอบแรกที่รัน ตัวควบคุมสุ่มให้กำไร 206,876$ เทียบระบบ 2,125$ — เป็นไปไม่ได้ · สาเหตุคือการแปลงหน่วยเวลาผิดหนึ่งบรรทัด ทำให้แกนเวลาหดลง 1,000 เท่า และช่วงถือกินข้อมูลหลายปี

ถ้าไม่ซ้อมกับระบบที่เรารู้จักดีที่สุดก่อน บั๊กนี้จะไปโผล่ในรายงานฉบับแรก ที่ลูกค้าจ่ายเงิน — และมันจะทำให้ EA ทุกตัวดูเหมือน “แพ้การสุ่มขาดลอย” ซึ่งผิดทั้งหมด · เราจับได้เพราะตัวเลขมันเป็นไปไม่ได้ ไม่ใช่เพราะโค้ดฟ้อง นี่คือเหตุผลที่การซ้อมกับของที่เรารู้คำตอบอยู่แล้ว เป็นขั้นตอนที่ข้ามไม่ได้

และรอบล่าสุด เราจับบั๊กที่ไม่ทำให้อะไรพังเลย — ซึ่งอันตรายกว่า

ตรรกะของด่านทั้งเจ็ดเคยอยู่ในสองที่ · เส้นทางที่เริ่มจาก ไฟล์รายการไม้รันครบทุกด่าน ส่วนเส้นทางที่เริ่มจาก .ex5 ของลูกค้า — คือเส้นทางที่ลูกค้าจริงใช้ — ผ่านตัวเขียนรายงานคนละตัว ซึ่งไม่เคยคำนวณด่าน ① ③ ④ ⑤ เลย รวมถึงสองด่านที่เราติดป้ายบนหน้านี้เองว่าเป็นเหตุผลที่ควรจ้างเรา

ไม่มีอะไรพัง ไม่มี error ไม่มีคำเตือน · รายงานออกมาสวย มีคำตัดสิน มีตัวเลข — แค่ไม่มีสิ่งที่เราสัญญาไว้อยู่ในนั้น · บั๊กแบบล้มเสียงดังนั้นจับง่าย บั๊กที่ทำงานเรียบร้อยแล้วเงียบ ๆ ไม่ทำสิ่งที่ควรทำ คือแบบที่อยู่ได้เป็นปี · ตอนนี้ตรรกะเหลือชุดเดียว เกณฑ์ตัดสินเหลือสำเนาเดียว และมีเทสต์ที่ตกทันทีถ้าด่านไหนหายไปจากรายงาน หรือถ้ามีใครเขียนเกณฑ์ซ้ำในตัวเขียนรายงาน

เทสต์ตัวเดียวกันนั้นจับข้อที่สามได้ทันที

ตัวสรุปคิดเกณฑ์ของด่าน ① เองแยกจากตัวด่าน · ผลคือระบบของเราเองถูกพิมพ์ว่า “ไม่ผ่าน” ทั้งที่เนื้อความของด่านเดียวกันในรายงานฉบับเดียวกัน เขียนว่า “ยังบอกไม่ได้” · สองบรรทัดขัดกันเอง และฝั่งที่ผิด คือฝั่งที่กล่าวหาแรงเกินหลักฐาน · ตัวเลขบนหน้านี้จึงเปลี่ยนจาก “ผ่าน 1 จาก 5” เป็น “ผ่าน 2 · ไม่ผ่าน 4 · ยังตัดสินไม่ได้ 1 จาก 7” — ไม่ใช่เพราะผลดีขึ้น แต่เพราะคำตัดสินเดิมพูดเกินสิ่งที่ข้อมูลรองรับ

ข้อที่สี่: ตัวควบคุมที่หยาบเกินไปจะเข้าข้างระบบเสมอ

และข้อที่ห้า ซึ่งลูกค้าจริงเป็นคนทำให้เจอ — ไม่ใช่เทสต์ของเรา

ค่าถือข้ามคืนที่ลูกค้าแจ้งมาเป็น “ต่อล็อตต่อคืน” ถูกส่งเข้าสองที่ โดยไม่แปลงหน่วย · ฝั่งรายการไม้คิดต่อล็อตถูกต้อง แต่เส้นเกณฑ์ในด่าน ③ เป็นส่วนต่างราคาต่อหนึ่งออนซ์ — ทองต่างกัน 100 เท่า

ทิศของความผิดพลาดคือสิ่งที่ทำให้มันร้ายแรง: เกณฑ์ถูกคิดค่าถือเกินจริงร้อยเท่า → “ถือทองเฉย ๆ” ดูแย่กว่าความจริงมหาศาล → ระบบที่ควรตกด่าน ③ กลับได้ใบผ่าน · และด่าน ③ คือด่านที่เราตั้งขึ้นมา เพื่อจับเรื่องนี้โดยเฉพาะ หลังพบว่าระบบที่ดีที่สุดของเราเองแพ้การถือทอง ที่ความเสี่ยงเท่ากันอยู่ 3,464$ · ถ้าไม่จับได้ เราจะขายใบผ่าน ด้วยเครื่องมือที่สร้างขึ้นเพื่อไม่ให้ขายใบผ่าน · ตอนนี้แปลงหน่วยที่จุดเดียว และมีเทสต์ที่ตกทันทีถ้าขนาดของค่าถือฝั่งเกณฑ์ คลาดไปจากที่ควรเป็น

บั๊กสามข้อล่าสุด (ข้อนี้ · ทางแยก “รันได้แต่ไม่ออกไม้” ที่ไปไม่ถึง · และตัวอ่านไฟล์ที่ตัดสินว่าซอร์สคอมเมนต์ภาษาไทยเป็นไฟล์ไบนารี) ถูกเจอภายในชั่วโมงเดียวกัน ตอนรับไฟล์จริงมาตรวจครั้งแรก · ไม่มีข้อไหนทำให้อะไรพัง และไม่มีข้อไหนที่เทสต์เดิมจับได้ เพราะเทสต์เดิมง่ายกว่าของจริง — ตัวอย่างซอร์สในเทสต์เป็น ภาษาอังกฤษล้วน ทั้งที่ลูกค้าของเราเขียนคอมเมนต์เป็นภาษาไทยแทบทุกคน · เทสต์ที่ง่ายกว่าของจริง คือเทสต์ที่ไม่ได้ทดสอบอะไรเลย

ด่าน ④ สุ่มจุดเข้าโดยจับคู่ระยะถือให้เท่าของจริง · แต่ถ้าราคาอ้างอิงหยาบกว่า ระยะถือ — เช่นระบบถือ 50 วินาที แล้วเราวัดบนแท่ง 15 นาที — การสุ่มจะได้ผลต่างราคาเป็น ศูนย์ เกือบทุกรอบ ระบบจึงชนะตัวควบคุมโดยอัตโนมัติ ทั้งที่ไม่ได้เก่งอะไรเลย · ตอนนี้ด่านนี้จะปฏิเสธที่จะตัดสินเมื่อข้อมูลละเอียดไม่พอ และบอกไปตรง ๆ ว่าต้องใช้ข้อมูลละเอียดแค่ไหนถึงจะตัดสินได้

มาตรฐานสายสถิติ — สิ่งที่เพิ่มเข้ามา และสิ่งที่ยังไม่มี

คำถามจากคนที่อ่านรายงาน quant เป็น: เครื่องมือชุดนี้ผ่านเกณฑ์ที่ วงการยอมรับหรือยัง · ผมไล่ตรวจโค้ดของตัวเองแล้วเจอสิ่งที่ต้องรายงาน

PBO ถูกเขียนไว้ตั้งแต่ต้น เผยแพร่บนหน้าราคา แต่ไม่เคยถูกคำนวณเลยสักครั้ง

เป็นข้อบกพร่องประเภทเดียวกับที่เจอตอนเช้า — ฟังก์ชันมีอยู่ เทสต์ผ่าน คำโฆษณาเขียนไว้ แต่ไม่มีใครเรียกมัน · เหตุผลมีที่มา: PBO ต้องกิน ผลของ “ทุกชุดพารามิเตอร์” ไม่ใช่แค่ชุดที่ชนะ ซึ่งเราไม่เคยมี เพราะไม่เคยเดินกริดเอง · พอเปลี่ยนมาเดินกริดเองเพื่อแก้บั๊กอีกตัว อินพุตของมันก็เกิดขึ้นเป็นครั้งแรก

ด่าน ⑤ ตอนนี้มีหลักฐานสามชั้น และชั้นบนคว่ำชั้นล่างได้

เหตุผลที่ต้องเรียงแบบนี้: ชุดพารามิเตอร์ที่ใกล้กันให้ผลคล้ายกัน จำนวนการทดลองที่เป็นอิสระจริงจึงน้อยกว่า N มาก · √(2 ln N) มองไม่เห็นข้อนี้เพราะมันนับจำนวน ส่วนอีกสองตัววัดจากข้อมูลจริง

และตัวเลขที่ทำให้ต้องเขียนหัวข้อนี้: Monte Carlo แบบที่ทุกคนใช้ รายงานดรอว์ดาวน์ต่ำกว่าความจริง

ชั้นถามว่าข้อจำกัด
White's Reality Check ชุดที่ดีที่สุดดีเกินกว่าที่ “ลองเยอะ” จะอธิบายได้ไหม ต้องมีผลของทุกชุด → มีเฉพาะระดับ walk-forward
PBO การเลือกชุดที่ดีที่สุดบอกอะไรเกี่ยวกับอนาคตได้ไหม เหมือนกัน
√(2 ln N) ยกเกณฑ์ตามจำนวนครั้งที่ลอง นับหัวอย่างเดียว → เข้มเกินไปเมื่อกริดละเอียด
ข้อมูลทดสอบสลับลำดับไม้สุ่มเป็นก้อนต่างกัน
ไม้เกาะกลุ่ม (เหมือนระบบตามเทรนด์) DD p95 10.8%27.6% +154%
ไม้เป็นอิสระต่อกันจริง 8.1%10.4% +29%

Monte Carlo ที่สลับลำดับไม้ สมมติว่าไม้แต่ละไม้เป็นอิสระต่อกัน · ระบบตามเทรนด์มีไม้ชนะเกาะกลุ่มและไม้แพ้เกาะกลุ่ม การสลับจึงทำลายการเกาะกลุ่มนั้นทิ้ง และรายงานดรอว์ดาวน์ ต่ำกว่าความจริงถึงสองเท่าครึ่ง — ซึ่งเป็นทิศที่เข้าข้างระบบเสมอ · ตอนนี้รายงานพิมพ์สองค่าคู่กันทุกฉบับ พร้อมบอกเป็นเปอร์เซ็นต์ว่าสมมติฐานนั้นราคาเท่าไร (วิธีที่ใช้คือ stationary bootstrap — สุ่มเป็นก้อนที่ยาวตามการเกาะกลุ่มที่วัดได้จริง)

ผลจริงเมื่อเอา EA ทดสอบของเราเองเข้าเครื่องมือชุดใหม่

ทองสามปี ทิกจริง · เมทริกซ์ 36 เดือน × 7 ชุดพารามิเตอร์ · Reality Check p = 1.000 · PBO = 0.62

p = 1.000 ไม่ใช่ข้อผิดพลาด — มันคือค่าสูงสุดที่เป็นไปได้ และแปลว่าชุดที่ดีที่สุดยังทำได้ แย่กว่า สิ่งที่ความบังเอิญล้วน ๆ จะให้ได้แทบทุกรอบ · ตรงกับผล walk-forward ที่ชุดค่าที่ชนะกระโดดไปมา 3 แบบใน 4 หน้าต่าง — สองวิธีที่วัดคนละแกน ให้คำตอบเดียวกัน

Hansen's SPA — และตัวเลขที่ทำให้มันไม่ใช่ของเสริม

Reality Check มีจุดอ่อนที่ SPA แก้: มันสมมติว่าทุกชุดพารามิเตอร์ มีค่าเฉลี่ยจริงเป็นศูนย์ภายใต้สมมติฐานว่าง — รวมถึงชุดที่แย่อย่างเห็นได้ชัด · ชุดขยะเหล่านั้นก็แกว่งใน bootstrap และไปดันค่าสูงสุดของการกระจายว่างให้สูงขึ้น ผลคือยิ่งใส่ชุดขยะเข้าไปมาก ยิ่งปฏิเสธสมมติฐานว่างยากขึ้น ซึ่งกลับหัวโดยสิ้นเชิง

กริดทดสอบReality CheckHansen's SPA
ชุดที่มีขอบจริง 1 + ขยะผันผวนสูง 30 ชุด p = 0.999p = 0.004
ชุดที่มีขอบจริง 1 + ขยะผันผวนสูง 60 ชุด p = 1.000p = 0.003
ชุดที่มีขอบจริง 1 + ขยะผันผวนสูง 120 ชุด p = 1.000p = 0.000
เสียงรบกวนล้วน (ไม่มีขอบจริงเลย) p = 0.448p = 0.310

Reality Check มองไม่เห็นขอบที่มีอยู่จริงเลย ในสามแถวแรก ขณะที่ SPA จับได้ทุกครั้ง · และในแถวสุดท้ายทั้งคู่ไม่ปฏิเสธ — SPA จึง แรงขึ้น ไม่ใช่หลวมลง · กลไก: SPA ทำสถิติให้เป็นแบบ studentised (ชุดที่ผันผวนสูงไม่ได้เปรียบเพียงเพราะผันผวน) และ ตัดชุดที่แย่ชัดเจนออกจากการแข่งขัน ด้วยเกณฑ์ −√(2 ln ln n)

สิ่งที่ตัวเลขชุดนี้แปลว่า: ผู้ขายที่กวาดกริดใหญ่ ๆ ทำให้ Reality Check ตาบอดได้โดยไม่ต้องตั้งใจ — ยิ่งลองมาก ยิ่งมีชุดขยะมาก ยิ่งทำให้ การทดสอบผ่านง่ายขึ้น · เรารายงานทั้ง SPA และ RC คู่กัน และให้ SPA อยู่เหนือ RC ในการตัดสินด่าน ⑤

ADF / KPSS — “ขอบนี้เป็นค่าคงที่ หรือมันกำลังเลื่อน”

รายงานตรวจทุกฉบับเต็มไปด้วยค่าเฉลี่ย — กำไรเฉลี่ยต่อไม้ Sharpe อัตราชนะ · ตัวเลขเหล่านั้นมีความหมายก็ต่อเมื่อสิ่งที่มันเฉลี่ย เป็นค่าคงที่ที่มีอยู่จริง · ถ้าขอบดีมากในปี 2023 แล้วหายไปในปี 2025 “กำไรเฉลี่ย 7.33$ ต่อไม้” คือค่าเฉลี่ยของสองระบอบที่ไม่มีอันไหน เท่ากับค่านั้น

⚑ เราไม่เอา ADF ไปทดสอบ ราคา · ทุกคนรู้อยู่แล้วว่าราคาไม่นิ่ง และมันไม่ได้บอกอะไรเกี่ยวกับ EA เลย — การใส่ผลนั้นในรายงานคือพิธีกรรม ไม่ใช่หลักฐาน · เราทดสอบผลตอบแทนรายเดือนของระบบ ซึ่งเป็นสิ่งที่คำถามข้างบนพูดถึงจริง ๆ

และรายงานสองการทดสอบคู่กันเสมอ เพราะสมมติฐานว่างของมันตรงข้ามกัน (KPSS: นิ่ง · ADF: มีรากหน่วย) · การรายงานตัวเดียวทำให้ “ไม่ปฏิเสธ” ถูกอ่านเป็น “ยืนยันแล้ว” ซึ่งผิด · สองตัวคู่กันให้สี่กรณี และหนึ่งในนั้นคือ “ข้อมูลสั้นเกินกว่าจะบอกอะไรได้” ซึ่งเป็นคำตอบที่ซื่อสัตย์ที่สุด เมื่อ EA มีประวัติไม่กี่ปี

สิ่งที่ยังไม่มี และเราไม่แกล้งทำเป็นมี

⚑ รายการนี้อยู่บนหน้าขายของเราเอง โดยตั้งใจ · บริการนี้ขายคำตัดสินที่ บอกขอบเขตของตัวเองได้ — ถ้าเราปิดข้อจำกัดของตัวเองไว้ เราก็ไม่ต่างจาก backtest ที่โชว์เฉพาะช่วงที่สวย ซึ่งเป็นสิ่งที่บริการนี้ มีไว้จับพอดี

ความจุ — “ระบบนี้รับเงินได้เท่าไรก่อนที่มันจะพัง”

ความจุไม่ใช่คุณสมบัติของกลยุทธ์เพียงอย่างเดียว มันคือคุณสมบัติของ (กลยุทธ์ × ขนาด) และมันแสดงตัวออกมาเป็นต้นทุนเสมอ — เทรดใหญ่ขึ้น ฟิลแย่ลง ต้นทุนต่อไม้สูงขึ้น · เราจึงไม่ตั้งเป็นด่านใหม่ แต่ใส่ไว้ในด่าน ⑥ เพราะมันคือคำถามเดียวกันมองจากอีกด้าน

ด่าน ⑥ บอกว่า “ต้นทุนเท่าไรระบบตาย” · ความจุบอกว่า “ขนาดเท่าไรถึงไปถึงต้นทุนนั้น”

ประกอบกันได้ตัวเลขเดียวที่ลูกค้าใช้ตัดสินใจได้จริง — ขนาดใหญ่ที่สุดที่ระบบนี้ยังมีขอบเหลืออยู่ · สิ่งที่รายงานเพิ่มเข้ามา: จำนวนไม้ต่อปี · มูลค่าที่หมุนผ่านตลาดต่อปีเทียบกับเงินทุน · สัดส่วนเวลาที่มีสถานะเปิดจริง · ต้นทุนที่เพิ่มทุก 0.10$ ต่อไม้ กินกำไรปีละเท่าไร (ตัวเลขที่ทำให้เห็นทันทีว่าความถี่แลกมาด้วยอะไร) · และงบต้นทุนที่เหลือก่อนระบบตาย

เส้นที่เราไม่ข้าม: ไม่ให้ตัวเลขผลกระทบราคาเป็นดอลลาร์

สูตรรากที่สองที่ใช้กันทั่วไป (impact ≈ Y·σ·√(Q/V)) ต้องใช้ค่าคงที่ Y ที่วัดจากข้อมูลของเราไม่ได้ — มันมาจากงานวิจัยหุ้นสหรัฐ และการยืมมาใช้กับ CFD ทองคือการเดาที่ดูเหมือนการวัด · สิ่งที่เราบอกได้จริงคือ ที่ขนาดกี่เท่าของปัจจุบัน ออเดอร์เริ่มใหญ่ เมื่อเทียบกับปริมาณที่ข้อมูลของเราเห็น แล้วบอกตรง ๆ ว่าเกินนั้น ต้องไปขอข้อมูลฟิลจริงจากโบรก · ตัวเลขที่มั่นใจแต่ผิด แย่กว่าการบอกว่าวัดไม่ได้

⚠ และเราพิมพ์กำกับทุกครั้งว่าตัวหารคือฟีดของผู้ให้สภาพคล่องชุดหนึ่ง ไม่ใช่ปริมาณของตลาดทองทั้งโลก · หน่วยของปริมาณเราอนุมานเอา ไม่ได้ยืนยัน → ตัวเลขที่เป็นเปอร์เซ็นต์จึงมีสมมติฐานติดอยู่ ส่วนตัวเลขที่เป็น “กี่เท่าของขนาดปัจจุบัน” ไม่ขึ้นกับหน่วย จึงเป็นตัวหลักที่เรารายงาน

บั๊กหน่วยที่จับได้ระหว่างเขียนข้อนี้

ด่าน ⑥ ลบ ดอลลาร์ ออกจากกำไรต่อไม้ แต่มันเคยถูกป้อน ตัวคูณ (1.0 · 1.5 · 2.0) เข้าไป มันจึงลบ 1.00$ 1.50$ ซึ่งไม่เกี่ยวกับต้นทุนที่ลูกค้าแจ้งเลย แล้วผลนั้นถูกเอาไปคูณต้นทุนอีกที · ทั้งสองเป็นตัวเลขเหมือนกัน จึงไม่มีอะไรฟ้อง และคำตอบก็ดูสมเหตุสมผลตลอด — เป็นบั๊กชนิดเดียวกับที่จับได้สามครั้งแล้ววันนี้: ทำงานเรียบร้อย แต่ตอบคนละคำถาม

นโยบายการเปิดเผยชื่อ

ผลตรวจที่เผยแพร่บนเว็บนี้ ไม่ระบุชื่อ EA ของคนอื่นเลย · ไฟล์ทั้ง 59 ตัวข้างบนปรากฏเป็น EA-01…EA-59 และจะเป็นแบบนั้นเสมอ

เหตุผลไม่ใช่ความเกรงใจ · ผลลบที่พิมพ์ใต้ชื่อสินค้าของคนอื่น คือการกล่าวหาสาธารณะ ด้วยหลักฐานที่เก็บในสภาพแวดล้อม และค่าตั้งของเราเอง — และคุณค่าต่อคนอ่านคือ กลไกที่ล้ม กับสิ่งที่ต้องไปถามผู้ขาย ไม่ใช่ยี่ห้อที่ล้ม · ชื่อจริงอยู่ในรายงานฉบับที่ ส่งให้ผู้ว่าจ้างเท่านั้น

แต่ข้อนี้ไม่ใช้กับระบบของเราเอง

EA ของเราเองที่ตายที่ walk-forward ถูกเผยแพร่พร้อมชื่อ พร้อมตัวเลข และพร้อมเหตุผลทุกตัว — เพราะการยอมเปิดความล้มเหลวของตัวเอง คือฐานความน่าเชื่อถือทั้งหมดของบริการนี้ · เราปิดชื่อของคนอื่น ไม่ใช่ของตัวเอง

แปลว่าถ้าคุณส่ง EA มาให้ตรวจ ชื่อระบบของคุณจะไม่ขึ้นเว็บนี้ ไม่ว่าผลจะออกมาอย่างไร เว้นแต่คุณจะขอเองเป็นลายลักษณ์อักษร

สิ่งที่ด่านเหล่านี้ไม่ได้บอก

อยากให้ตรวจระบบของคุณด้วยด่านชุดนี้ · ดูขอบเขตงานและราคา