เมื่อแบ่ง EA ที่ชนะใน backtest ออกเป็นการซื้อและขายแล้วเห็นอะไรบ้าง
ในหกเดือน ได้สร้าง EA ประมาณ 40 ตัว ทำการทดสอบประเมินประมาณ 200 ครั้ง และมีกฎที่เหลืออยู่เพียง 1 ตัวเท่านั้น โดยรวมแล้วยังชนะอยู่ แต่ถ้าแยกว่า EA ที่ชนะรวมทั้งหมดเป็นการซื้อหรือขาย จะเห็นได้ประมาณ 3 สิ่งถัดไปนี้
- ฝ่ายเดียวทำกำไรเท่านั้น:ไม่ใช่พลังของกฎ แต่เป็นการวัดการขึ้นลงของตลาดโดยรวมทั้งการขึ้น (ลง) เท่านั้น
- ทั้งสองฝ่ายทำกำไร:มีความเป็นไปได้ว่า กฎเองมีพลัง
- รูปแบบที่ “ถ้าทำเช่นนี้จะดีขึ้นมากขึ้น”:อย่างไรก็ตาม ทันทีที่ค้นพบ มันจะกลายเป็นกับดัก
ความเห็นจาก 1 ตัวของฉันคืออะไร หรือขั้นตอนในการไปถึงจุดนั้น (นับจำนวนครั้งที่ทดสอบ, ทำการทดสอบซ้ำในระยะเวลาที่ไม่มีใครเห็น) จะถูกบันทึกเป็นตัวเลขจริง EA ของคุณจะไม่ใช่การขายหรือการแนะนำ แต่เป็นวิธีการที่จะแบ่งปันเพื่อสงสัย EA ของตนเอง
สมมติฐานของการทดสอบ
ก่อนอ่านตัวเลข ให้กำหนดว่าคุณวัดอะไรและอย่างไร ฉันจะตรวจสอบทุกครั้งว่าก่อนคำนวณกำไรขาดทุนเขียนเงื่อนไขและเส้นผ่านการรับรองลงในเอกสาร และล็อกด้วยแฮช
| รายการ | เงื่อนไข |
|---|---|
| กฎ (K2) | ถ้าราคาสูงสุด/ต่ำสุด 6 วันที่ผ่านมา หลุดแนวปิดวานก่อนหน้า จะเข้าในทิศทางนั้น พรุ่งนี้ปิดทำการ และขาดทุน 3 ATR ไม่มีการทำกำไร |
| สินทรัพย์เป้าหมาย | BTCUSD / ETHUSD / BTCETH / ZECUSD (เลือกโดยดูจากต้นทุนต่อช่วงแคบๆ ก่อนดูผลตอบแทน) |
| กรอบเวลา | 15 นาที (การทดสอบซ้ำใน 4 ชั่วโมง) |
| ระยะการเรียนรู้ | 〜มิถุนายน 2023 |
| ระยะเวลาการตรวจสอบ | กรกฎาคม 2023〜กันยายน 2026 |
| ระยะทดสอบซ้ำ (ช่วงเวลาที่ไม่มีใครเห็น) | พฤษภาคม 2017〜มิถุนายน 2020 (การซื้อขายจริงเริ่มมีในมีนาคม 2018) |
| ข้อมูล | ข้อมูลแท่งจากบัญชี MT5 ของฉัน |
| ต้นทุน | ประเมินราคาการทำธุรกรรมแบบราคาสลับปัจจุบันตามสัดส่วน และคิดค่า swap ทุกคืน (รวมถึงวันหยุดสุดสัปดาห์) ในส่วนผู้ให้ผลประโยชน์ |
| หน่วย | R (กำไรขาดทุนครั้งละครบ 1) |
จุดสำคัญมี 2 อย่าง ค่าใช้จ่ายไม่ควรถูกดึงทีหลัง แต่ควรถูกดึงตั้งแต่ขั้นตอนค้นหา แล้วระยะเวลาที่ใช้ในการทดสอบซ้ำควรไม่เปิดเผยจนกว่าจะกำหนดกฎชัดเจน
ขั้นตอนที่ 1: ทดลองมากๆ แล้วชัยชนะจะ “ถูกสร้างขึ้นมาเอง”
เมื่อทดสอบกฎ 200 รูปแบบด้วยระดับนัยสำคัญ 5% หากไม่มีความเหนือกว่าก็ยังประมาณ 10 ตัวที่ถูกตัดสินว่า “ชนะอย่างมีนัยสำคัญ” ซึ่งเป็นกับดักของการเปรียบเทียบหลายครั้ง
จำนวนชนะเท็จที่คาดหวัง = จำนวนการทดสอบ × ระดับนัยสำคัญ = 200 × 0.05 = 10 ตัว
การปรับแต่งพารามิเตอร์ในการปรับแต่ง EA ก็มีโครงสร้างเดียวกัน ยิ่งเพิ่มชุดค่าผสม ยิ่งมีโอกาสที่ชุดที่ชนะโดยบังเอิญจะถูกมองว่าเป็นค่าที่ดีที่สุด
ฉันมีมาตรการ 3 อย่าง
- เข้มงวดกับจำนวนที่ทดสอบพร้อมกัน:ถ้าทดสอบพร้อมกัน 4 ตัว กำแพงผ่านคือ 0.05 ÷ 4 = 0.0125 (การแก้ไข Bonferroni)
- เปรียบเทียบกับการสุ่ม:เปรียบเทียบทิศทางการซื้อขายแบบสุ่ม เปรียบเทียบกับช่วงเวลาในวันอื่น (4,000 ครั้งแต่ละรายการ) เพื่อดูว่าแพ้ชนะได้หรือไม่
- ให้ผ่านเงื่อนไข 4–12 ตัวเรียงกัน และไม่รับสมัครหากไม่ผ่านทั้งหมด:จำนวน, ค่าใช้จ่ายหลังค่าเฉลี่ย, ความเหลือที่เกี่ยวกับค่าใช้จ่าย (ค่าเฉลี่ยหลังหักค่าใช้จ่าย ≥ ค่าใช้จ่าย×3), maximum drawdown เป็นต้น
K2 (ผ่าน 6 วัน) เป็น 1 ใน 4 สกุลสกุลคริปโตที่ทดสอบพร้อมกัน ผลการตรวจสอบช่วงเวลานั้นเป็นดังนี้
| รายการ | ค่า |
|---|---|
| จำนวน | 1,208 ตัว (ประมาณ 31 ตัวต่อเดือน) |
| ก่อนต้นทุน ค่าเฉลี่ย | +0.219R |
| ต้นทุน | 0.081R |
| หลังต้นทุน ค่าเฉลี่ย | +0.124R |
| PF (ช่วงความน่าจะเป็น 95%) | 1.20 (1.04〜1.41) |
| เปรียบเทียบทิศทางสุ่ม | p = 0.0002 |
| เปรียบเทียบพร้อมกันในเวลาเดียวกันแต่วันต่างกัน | p = 0.0001 |
| 最大ドローダウン | 37.5R |
การทดสอบแบบสุ่มมีชัยชนะชัดเจน แต่การตัดสินใจนั้นยังเป็นไม่ผ่าน เนื่องจากค่าเฉลี่ยหลังต้นทุน (+0.124R) ไม่ถึง “Spread×3” (0.242R) และ drawdown สูงสุดเกินขีดจำกัด 30R อีกทั้งวิธีคำนวณต้นทุนที่ผิดพลาดถูกแก้ไขหลังจากเห็นกำไรขาดทุนหลังจากดูผลกำไรจึงจำเป็นต้องหักล้างตัวเลขนี้ด้วย ซึ่งเหตุนี้ครั้งต่อไปจึงทำการทดสอบในช่วงเวลา “ไม่มีใครเห็น”
ขั้นตอนที่ 2: ทดลองซ้ำในช่วงเวลาที่ไม่มีใครเห็น แบ่งซื้อกับขาย แล้วทำลายความมั่นใจ
K2 ในข้อมูลปี 2018–2020 ที่ยังไม่เคยใช้งานมาก่อน ก็ให้ผลรวมชนะในทิศทางและขนาดเดียวกัน ผลการตรวจสอบประมาณ 200 ครั้งเป็นครั้งแรกที่ Rule ผ่านและผ่านการทดสอบซ้ำในช่วงเวลาที่ไม่เกี่ยวกับข้อมูลอื่น ก่อนที่จะดึงข้อมูลมาใช้อย่างเป็นทางการ กำหนดเส้นผ่านการรับรอง (จำนวนขั้นต่ำ 100 ครั้ง, หลังต้นทุนบวก, PF 1 ขึ้นไป, ด้วยเปรียบเทียบ 2 ชนิดและ p < 0.05) ไว้ล่วงหน้า
| รายการ | ผลการทดสอบซ้ำ (4 ชั่วโมง, 2018–2020) |
|---|---|
| จำนวน | 390 ตัว |
| ก่อนต้นทุน / หลังต้นทุน ค่าเฉลี่ย | +0.154R / +0.125R |
| PF / อัตราชนะ | 1.49 / 45.9% |
| 最大 drawdown | 9.7R |
| เปรียบเทียบทิศทางสุ่ม / เปรียบเทียบวันอื่น | p = 0.003 / p = 0.001 |
| ปี (หลังต้นทุน) | 2018 +0.168R / 2019 +0.159R / 2020 +0.050R |
อย่างไรก็ตาม แม้ว่าจะชนะรวมกฎด้วยก็ยังมีลักษณะว่า “ฝ่ายเดียวทำกำไร” บ่อยครั้ง ที่จริงกฎที่พบในหุ้นสหรัฐที่ “ซื้อเท่านั้นชนะ” ก็เป็นเพียงการวัดการขึ้นของราคาหุ้นทั้งตลาดเท่านั้น จึงได้แยกผลทดสอบซ้ำ 390 ตัวออกเป็นแนวทิศทางเพื่อตรวจสอบ
| ทิศทาง | จำนวน | ก่อนต้นทุน | หลังต้นทุน | อัตราชนะ |
|---|---|---|---|---|
| ทั้งหมด | 390 | +0.154R | +0.125R | 45.9% |
| ซื้อ | 203 | +0.183R | +0.153R | 46.8% |
| ขาย | 187 | +0.122R | +0.096R | 44.9% |
การขายก็ยังบวกอยู่ ไม่ใช่เรื่องที่ 1. ฝ่ายเดียวเท่านั้นในปี 2018 ที่ BTC ร่วงลงมาก การขาย (+0.233R) ทำกำไรมากกว่าการซื้อ (+0.066R) ซึ่งไม่ได้วัดการขึ้นในตลาดขาขึ้นทั้งหมด
แกนของการแยกส่วนไม่ใช่แค่ทิศทางการซื้อขายเท่านั้น หากแยกตามสินทรัพย์ ปี เวลา แล้วจะเห็นว่าแหล่งที่ทำกำไรอยู่ที่ไหน ในกรณีของ K2 ZECUSD หลังต้นทุนก็แทบจะเป็นศูนย์ (−0.018R) อย่างไรก็ตาม หากตัด ZEC ออกไป ผลลัพธ์จะกลายเป็นการเลือกหลังจากเห็นผลลัพธ์ จึงยังคงไม่ถอดสินทรัพย์ออก
ขั้นตอนที่ 3: รูปแบบที่ค้นพบไม่ควรเพิ่มลงในกฎ แต่ควรตรวจสอบด้วยข้อมูลในอนาคต
เมื่อแยกส่วนออกมา จะพบรูปแบบที่ “ถ้าทำเช่นนี้จะดีกว่า” โดยเป็นข้อ 3 ในตอนต้น ใน K2 เมื่อเข้าไปในทิศทางเดียวกับ BTC ใน 30 วันที่ผ่านมา ก็มีการทำกำไรเฉพาะเมื่อเข้าไปในทิศทางเดียวกันเท่านั้น
| การเคลื่อนไหวใน 30 วันที่ผ่านมาควบคู่กับ | จำนวน | หลังต้นทุน ค่าเฉลี่ย |
|---|---|---|
| เข้าไปในทิศทางเดียวกัน | 250 | +0.221R |
| เข้าไปในทิศทางตรงกันข้าม | 140 | −0.046R |
เมื่อเพิ่มตัวกรอง “เฉพาะทิศทางตรงกันข้าม” จะเป็นการค้นหาข้อมูลโดยใช้ข้อมูลเดียวกันและประเมินด้วยข้อมูลเดียวกัน จะทำให้กลับไปสู่กับดักขั้นที่ 1 และแม้แต่ตัวเลขนี้ก็ไม่สามารถทำซ้ำได้ หากคำนวณในนิยามเดิมจะได้ค่าได้อยู่ที่ “เข้าไปในทิศทางเดียวกัน +0.190R / ตรงข้าม -0.026R” และเมื่อกำหนดนิยามให้ชัดเจนและคำนวณใหม่จะได้ค่าในตารางด้านบน และด้วยนิยามที่เรียบง่ายอื่นๆ ตรงข้ามมีค่า −0.05 ถึง −0.08Rการเคลื่อนไหวของตัวเลขจากนิยามแสดงถึงความไม่แน่นอนของรูปแบบนี้
ดังนั้นฉันจึงไม่เปลี่ยนกฎเดิม แต่เปลี่ยนวิธีการดังนี้
- กำหนนิยามให้เป็นหนึ่งเดียว และ “เพิ่มความถี่ของทิศทางบวกและลดทิศทางลบ” เขียนลงเอกสารและล็อกด้วยกุญแจ
- ให้กฎต้นฉบัลงคงเดิม ดำเนินการจำลองการซื้อขายเสมือนจริง (ไม่ออกคำสั่ง) แล้วคำนวณเวอร์ชันที่มีน้ำหนักด้านข้าง
- การตัดสินใจทำเพียงครั้งเดียว จับตัวเลข 840 รายการหรือวันที่เร็วสุด 30 กันยายน 2029 ด้วยการ bootstrapping รายสัปดาห์ เพื่อ p ที่ฝ่ายใดฝ่ายหนึ่ง < 0.05
- ถึงแม้จะเห็นช่วงเวลาที่ดีในระหว่างทาง ก็ไม่รับไว้
พลังในการตรวจสอบของการตัดสินนี้หายไปถ้าคุณจำลองก็ได้ประสิทธิผลเท่ากับข้อมูลพัฒนาเดิม 71–79% ซึ่งหมายถึง แม้จะเป็นของจริงก็ในเกือบ 4 ครั้งจาก 1 ครั้งจะไม่สามารถยืนยันได้ การรู้ไว้ล่วงหน้าจึงถือเป็นส่วนหนึ่งของการตรวจสอบ
กฎเดิมเองก็มีข้อกำหนดที่เงินจริงยังต้องผ่าน ก่อนที่จะเข้ากระบวนการ “ PF 1.0 ขึ้นไป จากการทดลองจำลอง 30 ตัว” ข้อมูลก่อนหน้าคือบัตรผ่านการตรวจเพียงครั้งเดียว หากปรับกฎหลังดูผลก็จะเป็นช่วงเวลาของการค้นหาแล้ว
สิ่งที่เกิดจริงในการใช้งาน: ใน 65 ไลน์ มีเพียง 0 ที่ “ยังมีชีวิตอยู่”
ก่อนที่จะนำขั้นตอนนี้ไป ฉันได้ทบทวน EA ที่ทำงานอยู่ทั้งหมดในเดือนมิถุนายน 2026 โดยแยกตามจำนวนคำสั่งซื้อ สายการค้า และสินทรัพย์ด้วยรหัสที่แตกต่างกัน
| การตัดสิน | เกณฑ์ | จำนวนสาย |
|---|---|---|
| ยังมีชีวิตอยู่ | รวมบวก PF 1.1 ขึ้นไป จำนวนคำสั่ง 15 ขึ้นไป | 0 |
| เปราะบาง | รวมไม่น้อยกว่า 0 แต่ไม่ถึงเกณฑ์ด้านบน หรือสเปรดกินกำไรเฉลี่ยมากกว่า 25% | 48 |
| ตายไปแล้ว | รวมขาดทุน | 17 |
จาก 65 สาย มี 61 สายที่จำนวนการไม่ถึง 30 ตัว จึงไม่มีปริมาณเพียงพอที่จะตัดสินชนะ-แพ้ ในจำนวนที่มากขึ้นอาจดูเหมือนว่า “บางส่วนชนะ” แต่โครงสร้างเหมือนขั้นตอนที่ 1
อีกข้อที่เห็นได้คือตราบใดที่ดูเฉพาะอัตราการชนะ จะพลาดความล้มเหลวบางอย่าง ในเส้น XAUUSD (22 ตัว) มีอัตราการล็อตการขาดทุนเฉลี่ย 0.032 เทียบกับการชนะ 0.01 คือ ประมาณ 3.2 เท่า ถึงแม้ทิศทางจะถูกต้อง แต่หากชนะตลอดเวลาจะไม่เหลือประมาณ 3.2 เท่าเมื่อทิศทางถูกก็ไม่แน่ แต่หากฝั่งพ่ายแพ้ก็ต้องเดิมพันใหญ่เพื่อไม่ให้เหลือ
จากการตรวจสอบนี้ ฉันจึงเปลี่ยนการใช้งานที่ใหม่ว่า “กำหนดเงื่อนไขก่อนดูผลกำไร” “เพิ่มโอกาสความคลาดเคลื่อนต่อค่าใช้จ่ายในการผ่านเงื่อนไข” และ “ผ่านการทดสอบจำลอง 30 รายการก่อนใช้งานจริง”
เช็กลิสต์การตรวจสอบสำหรับ EA ของฉัน
ใช้งานได้กับ EA ที่คุณกำลังพิจารณาซื้อหรือ EA ที่คุณสร้างเอง
- □ บันทึกจำนวนกฎและพารามิเตอร์ที่ลองทั้งหมด (รวมถึงสิ่งที่ไม่ถูกนำมาใช้ด้วย)
- □ ลบค่าค่าสเปรด ค่านายหน้า และสลิพเพจในขั้นตอนการค้นหา
- □ ค่าเฉลี่ยหลังต้นทุนอยู่หลายเท่าของสเปรด (เส้นทางการผ่านของฉันคือ 3 เท่า)
- □ จำนวนการเทรดเพียงพอสำหรับการตัดสินใจ (กรอบน้อยอาจถือเป็น “รอไว้”)
- □ ซื้อ/ขาย เวลา และปี แยกออกมาก็ยังไม่ส่งผลกำไรที่ผิดพลาด
- □ จำนวนล็อตของการขาดทุนไม่ใหญ่กว่าการชนะ
- □ ไม่เพิ่มรูปแบบที่พบในการแตกส่วนลงในกฎทันที
- □ มีช่วงเวลาที่เปิดใช้งานเฉพาะหลังการกำหนดกฎ (OOS) ที่เหลือไว้
สรุป: เมื่อแยกออกมา สิ่งที่เห็นคือ “2” และ “3”
ฉันจะตอบคำถามตั้งต้น การแบ่ง 1 ตัวของฉันเป็น ซื้อกับ ขาย ทำให้เห็นได้คือส่วนที่ 2 และ 3
| 3 สิ่งที่เริ่มต้น | เห็นหรือไม่ | เนื้อหา (หลังต้นทุน) |
|---|---|---|
| 1. ฝ่ายเดียวทำกำไร | ไม่เห็น | การขายก็ +0.096R ตลาดที่ลดลงในปี 2018 ขายทำกำไรมากกว่า |
| 2. ทั้งสองฝ่ายทำกำไร | เห็นแล้ว | ซื้อ +0.153R / ขาย +0.096R |
| 3. รูปแบบที่ดีกว่า | เห็นแล้ว | แนวโน้ม 30 วันที่ไปในทิศทางเดียวกัน +0.221R / ตรงกันข้าม −0.046R |
ข้อที่ 2 เป็นสัญญาณที่มั่นใจ เพราะมันกำจัดความเป็นไปได้ที่ว่า “ตลาดมีแนวโน้มสูง”
ข้อ 3 เป็นกับดักที่เมื่อค้นพบแล้วอยากนำเข้ากฎทันที การเพิ่มเข้าจะทำให้ผลลัพธ์ในอดีตกระบวนการดีขึ้น แต่ไม่ควร ใจเย็นจนถึงปี 2029 เพื่อดูการสังเกตการณ์ล่วงหน้า
สิ่งที่แตกต่างเมื่อเห็นแยกออกมาก็คือ ไม่ใช่คำตอบ แต่เป็นสมมติฐานที่คุณจะตรวจสอบถัดไปEA ของคุณเอง หากรวมชนะให้ลองแบ่งซื้อกับขายดู หากเห็นสิ่งที่เป็น 2 หรือ 3 อันนี้ ให้หยุดชั่วคราวก่อนที่จะเพิ่มสิ่งใด
คำชี้แจง: บทความนี้เป็นการแนะนำวิธีการตรวจสอบ ไม่ใช่คำแนะนำซื้อขาย EA หรือสินทรัพย์ใดๆ ผลการตรวจสอบในอดีตไม่รับประกันผลลัพธ์ในอนาคต ควรตัดสินใจลงทุนด้วยความรับผิดชอบของคุณเอง