【เรื่องราวความล้มเหลวในการพัฒนา EA】「ด้วยเงินตราใดก็ได้ที่ขึ้นแนวขวา」 EA ที่เคยมีแนวโน้มดี กลับพังทลายทันทีเมื่อปรับวิธีทดสอบเพียงวิธีเดียว
เมื่อครั้งก่อน ผมเขียนถึงตัวเลขห้าอย่างที่ตรวจสอบเมื่อเปิดการทดสอบย้อนหลัง — 最大 DD, จำนวนการเทรด, PF, อัตราชนะ, ระยะเวลาการทดสอบ —
และจากนี้ หากเอา 5 อย่างนี้ไว้ก่อน แล้วไม่ว่าเปลี่ยนช่วงเวลา หรือเปลี่ยนคู่สกุลเงิน ผลลัพธ์จะดี EA นี้น่าเชื่อถือหรือไม่
เมื่อไม่นานมานี้ ผมเพิ่งสร้าง EA แบบนั้นขึ้นมาเอง ซึ่งจาก 5 มุมมองยังไม่พบความรู้สึกผิดปกติใดๆ
แต่ถึงอย่างนั้น หากเปลี่ยนเงื่อนไขการทดสอบเพียงอย่างเดียว ก็สามารถพังทลายลงได้ และผมต้องหยุดพัฒนา
ครั้งนี้เป็นเรื่องราวของมัน
“อาจเป็นตรรกะที่ค่อนข้างแข็งแรง”
เป้าหมายคือ EA สไกลาป์ปิ้งระยะสั้นในตลาดฟอเร็กซ์ เงื่อนไขที่ละเอียดจะไม่กล่าวถึงทั้งหมด แต่มุ่งหาจุดย้อนกลับสั้นๆ ใกล้แนวระดับ
เข้าใกล้เส้นแนวระดับ → ยืนยันการย้อนกลับ 1 pip ภายใน 5 วินาที → เข้าซื้อ/ขาย
ใช้งานการเคลื่อนไหวของราคาศตวรรษในหน่วยวินาที
ผลลัพธ์แรกดูดี แต่ผลลัพธ์ที่ดีหนึ่งครั้งก็ไม่เพียงพอที่จะมั่นใจ
คิดว่า “ช่วงเวลานี้ไม่ใช่ทั้งหมด” หรือ “สกุลเงินนี้โดยเฉพาะรายนี้ใช่ไหม” ซึ่งเป็นเรื่องปกติในการพัฒนา
แม้เปลี่ยนช่วงเวลา ก็ยังบวก แม้ขยายสกุลเงิน ก็ยังบวก ผมได้ดู USDJPY, GBPUSD, EURUSD, GBPJPY, EURJPY ทั้งห้าคู่ ปรากฏว่าเป็นบวกทั้งหมด
ในการทดสอบบางรายการ รวมสกุลเงินทั้งห้าชื่อ PF เป็น 2.26
1,939 เทรด
+7,009.5 pips
PF 2.26
อัตราการชนะ 58.3%
ในช่วงเวลาที่ต่างออกไป
1,267 เทรด
+4,765.7 pips
PF 2.26
ในช่วงหลัง 2 ปี 8 เดือน มี 32 เดือน มี 30 เดือนที่ทำกำไร
จำนวนการซื้อขายไม่ลดน้อยจนเกินไป PF ไม่สูงผิดปกติ และอัตราชนะก็ไม่ถึง 90% เช่นกัน
แม้ดูจาก 5 มุมมองที่เคยเขียนไว้ก่อนหน้า ก็ไม่มีความรู้สึกผิดปกติ
ในการทดสอบสองช่วงเวลาที่ต่างกัน PF รวมของทั้ง 5 สกุลเงินยังคงเท่ากับ 2.26 ดังนั้นในตอนนั้น ผมคิดว่า
“นี่อาจเป็นตรรกะที่ค่อนข้างแข็งแรงที่ค้นพบขึ้นมา”
สิ่งที่มองข้ามไป
ระหว่างการทดสอบ ผมพบจุดที่สงสัย
ใน MT5 Strategy Tester มีวิธีการจำลองราคาหลายแบบ ผมเคยรันด้วยวิธีการ “ทุก tick”
อย่างไรก็ตาม EA นี้ไม่ใช่ประเภทที่ถือครองนาน
“ต้องเคลื่อนที่ 1 pip ภายใน 5 วินาที” จะเป็นสาขาการเข้าซื้อ
“อันนี้ควรตรวจสอบด้วยティックจริงๆ ดีกว่าใช่ไหม”
จึงเปลี่ยนวิธีทดสอบจาก “ทุกティック” ไปเป็น “ティックจริงทั้งหมด”
ตรรกะและพารามิเตอร์ยังเหมือนเดิม แค่เปลี่ยนวิธีทดสอบเท่านั้น
เมื่อรันใหม่ ผลลัพธ์แรกๆ ตอนแรกยังรับไม่ไหวว่าเกิดอะไรขึ้น
PF2 ก่อนหน้า ไปสู่ PF0.82
ผลลัพธ์จากティックจริงที่ตรวจสอบครั้งแรกคือ
894 เทรด
ขาดทุนสุทธิ −77,670 เยน
PF 0.82
จนถล่มลงไป จุดที่เคยเห็นกราฟขึ้นก็กลายเป็นตัวเลขที่แพ้ไป
อย่างไรก็ตาม ไม่ใช่คิดว่า “เพราะティックจริง EA นี้จบแล้ว”
ปัญหาคุณภาพประวัติศาสตร์ก็เป็นได้ ฉะนั้นผมทดสอบด้วยระยะเวลาสั้นลง หรือดูช่วงเวลาต่างๆ เพื่อหาแนวโน้ม ก็พบว่าแนวโน้มเดียวกัน จึงสรุปว่าไม่ใช่ปัญหาบนโลจิก แต่เป็นปัญหาบนข้อมูล
เมื่อค้นพบ ก็พบช่องว่างที่ซับซ้อนมากขึ้น
เหมือนเดิมที่ “1 pip ย้อนกลับ” แต่จำนวนครั้งประมาณ 2.7 เท่า
เปรียบเทียบจำนวนครั้งที่เงื่อนไขสำเร็จระหว่างทุกティック กับティックจริง
ในทุกティック เงื่อนไข “ย้อนกลับ 1 pip ภายใน 5 วินาที” เกิดขึ้น 509 ครั้ง ในティックจริง 1,375 ครั้ง ประมาณ 2.7 เท่า
ตอนแรกผมสงสัยสเปรด เพราะティックจริงมีการเคลื่อนไหว Bid/Ask เล็กน้อย ทำให้สเปรดมีผลมากขึ้น
แต่ถึงแม้จะยึดกรณีที่สเปรดแคบ ผลลัพธ์ก็ไม่กลับมาดีขึ้น
ปัญหากลับอยู่ตรงที่ ก่อนหน้านี้มากกว่านั้น
“ปรากฏการณ์ที่ชิ้นส่วนยั่วยวนด้วย ‘1 pip ย้อนกลับ’ ที่ถูกนำมาจับจริงๆ แล้วดูต่างกันตามโหมดที่ใช้อยู่”
ในティックจริง ราคายังมีการขึ้นลงแม้ในช่วงเวลาสั้น
ด้วยเหตุนี้ เมื่อเข้าใกล้แนวระดับ → ปรับขึ้นไปแค่ 1 pip แล้วย้อนกลับ → EA มองว่าย่อตัวแล้วเข้าเทรด → และกลับไปทิศทางเดิม
กรณีแบบนี้มักถูกกระชับมากขึ้น ในขณะที่โหมดทุกティック กระบวนการสร้างティックทำให้มองเห็นการถอยหลังที่ละเอียดแตกต่างออกไป
แม้จะใช้สมการเงื่อนไขเดียวกัน แต่ความละเอียดของการเคลื่อนไหวนั้นต่างออกไปตามข้อมูลที่รับไว้ นี่คือประสบการณ์ที่ผมรับรู้ในตอนนั้น
จาก 406 เทรดที่ชนะในทุกティック ผูกใหม่บนฝั่งティックจริง
แล้วเทรดที่ทำกำไรบนทุกティック หลักๆ มันเคลื่อนไหวอย่างไรบนティックจริง
ผมดึง 406 เทรดที่เข้าซื้อจริงบนทุกティックออกมา แล้วตรวจสอบกับティックจริงที่เวลาเดียวกัน
ฝ่ายที่ชนะมักเป็นเหตุการณ์ที่เข้าแนวจุดแล้วไปต่อด้วยพลังแรง บดบังคับให้เข้าสู่แนวระดับ
ค่าความผันผวนก่อนแตะ 60 วินาที เฉลี่ยชนะ 14.01 pips แพ้เฉลี่ย 8.48 pips
ในกรณีที่เคลื่อนไปมากกว่า 20 pips และไปถึงจุดนั้น ความชนะของเวอร์ชันทุกティックสูงถึง 87.3%
ตรงนี้ทำให้ผมเห็นว่า สิ่งที่ทุกティックจับได้คืออะไรบ้าง
“1 pip ย้อนกลับภายใน 5 วินาที” ไม่ใช่การแสดงการเคลื่อนไหวที่ตั้งใจไว้
อย่างไรก็ตาม ค่าเฉลี่ยบนティックจริงแสดงว่า เทรดที่ชนะในทุกティック ไม่ได้เคลื่อนไรราบเรียบตั้งแต่เริ่มเข้าเทรด
1 วินาทีต่อมา: −1.98 pips 3 วินาทีต่อมา: −1.46 pips 5 วินาทีต่อมา: −1.14 pips 10 วินาทีต่อมา: −0.52 pips
ส่วนใหญ่ตอนเริ่มต้นจะถอยก่อน เลย
30 วินาทีต่อมา: +1.44 pips 60 วินาทีต่อมา: +2.22 pips
ค่อยๆ ฟื้นตัวทีละนิดด้วยเวลา
ดังนั้น ข้อกำหนดเดิมที่ว่า “ย้อนกลับ 1 pip ภายใน 5 วินาที” อาจไม่แสดงพฤติกรรมที่ต้องการออกมาอย่างถูกต้อง
ลักษณะเด่นคือการเคลื่อนไหวแรงๆ เข้าใกล้แนวระดับ แล้ววิ่งไปอยู่ใกล้เส้นแนว เน้นหยุดและกลับตัว 10–60 วินาที
จนถึงจุดนี้ EA เดิมแทบไม่ใช่สิ่งเดียวกันอีกต่อไป
ลองสร้างใหม่อีกครั้ง แต่หยุดไว้ก่อน
หลังจากการตรวจสอบแล้ว ผมไม่ยอมปล่อยไปเฉยๆ ผมรวบรวมผู้ทดสอบティックจริงเพื่อประกอบเงื่อนไขใหม่
สุดท้าย ใช้ข้อมูล 3,897 รายการ เปรียบเทียบค่าช่วงก่อนแตะ ความย้อนกลับ ค่า Spread และจำนวนวินาที
หากไม่มีฟิลเตอร์ PF จะอยู่ประมาณ −0.55 ถึง −0.56 ไม่ดี
เมื่อจำกัดเงื่อนไข ลดลงได้ดังนี้
ค่าความต่างก่อนแตะ 60 วินาที สูงกว่า 20 pips
ภายหลัง 10 วินาที เคลื่อนไปในทิศทางย้อนกลับ 1 pip ขึ้นไป
Spread ไม่เกิน 2.0 pips
ทำให้ได้ 44 เทรด / เฉลี่ย +3.21 pips / อัตราชนะ 68.2% / PF 1.43
ผมยังคิดว่า “อาจไปได้อีก” แต่จากหลายพันเทรด เหลือแค่ 44 เทรดเท่านั้น
หากผ่อนเงื่อนไขก็จะได้ตัวเลขที่ดีขึ้นทันที
ถ้าคุณเพิ่มเงื่อนไขอีกจะทำให้ทดสอบย้อนหลังดูดีได้
สิ่งที่ผมรู้สึกคือ “อีกครั้งที่เพิ่มเงื่อนไห้ให้กับผลลัพธ์ตามเงื่อนไข”
ดังนั้น ผมจึงหยุดการพัฒนา EA นี้ชั่วคราว
“ティックจริงแล้วถูกต้อง” ไม่อยากพูดถึง
ผมไม่ได้ต้องการบอกว่า “อย่าปรึกษาผลลัพธ์จากทุกティック”
ขึ้นกับ EA แต่ละอัน ราคาที่ต้องการความละเอียดต่างกัน
การสั่นไหวครั้งใหญ่ที่เกิดขึ้นคือการที่การเข้าซื้อเกิดจากการเรียงลำดับของ “1 pip ใน 5 วินาที” ซึ่งขึ้นอยู่กับช่วงเวลาสั้นๆ
โลจิกที่ตัดสินด้วยวินาที อาจทำให้ผลลัพธ์เปลี่ยนแปลงได้ตามรูปแบบการจำลองティック
EA สำหรับกรอบเวลายาวกว่านี้ อาจไม่ต่างกันเท่ากันทั้งหมด
นอกจากนี้ティックจริงก็ไม่ได้ถูกต้องเสมอไป สถานะข้อมูลประวัติกับสภาพแวดล้อมที่ได้มาอาจทำให้การมองเห็นเปลี่ยนไป
สิ่งที่ต้องจำคือชื่อโหมดไม่ใช่เรื่องสำคัญเท่ากับดูว่าเงื่อนไขของเราขึ้นอยู่กับความละเอียดของข้อมูลส่วนไหน
ต้องยอมรับว่ายังมีส่วนที่ยังไม่สามารถอธิบายเป็นภาษาได้ทั้งหมด
ก่อนที่ตัวเลขจะถูกสร้างขึ้น
5 ตัวเลขเมื่อครั้งก่อน — DD, จำนวนการเทรด, PF, อัตราชนะ, ระยะเวลาการทดสอบ — ผมยังดูอยู่
ก่อนที่จะถึงตรงนี้ยังมีอีกหนึ่งข้อเพิ่มขึ้นมา “ตัวเลขนั้นมาจากเงื่อนไขการทดสอบแบบไหน”
EA ในตอนนี้ ไม่ว่าจะเปลี่ยนช่วงเวลา หรือเปลี่ยนสกุลเงิน หรือจำนวนการเทรด หรือ PF หรือมุมมองตามเดือน ก็ยังไม่ได้แย่เท่าไร
แต่การเปลี่ยนวิธีทดสอบเพียงอย่างเดียว ก็ทำให้พังลง
หากตั้งขึ้นมาพิเศษตั้งแต่ต้น คงไม่ทิ้งความรู้สึกไว้เช่นนี้
“สงสัยมากจนต้องตรวจสอบ แล้วก็ยังพลาด” เป็นประสบการณ์ที่ผมยังจำได้จนถึงวันนี้
เมื่อเห็นกราฟขวาชันสวยงาม ผมยังดีใจจริงๆ แต่ต่อมาก็มีอีกเรื่องที่ต้องคิดเพิ่ม
“กราฟขวาชันนี้ถูกสร้างขึ้นโดยตรรกะหรือโดยสภาพแวดล้อมการทดสอบ”
สรุป
EA นี้ไม่สมบูรณ์ ไม่ได้รันหลายวันแล้วออกเป็น CSV และดูหลายพันเทรด สุดท้ายก็หยุด ผลลัพธ์จึงถือว่าไม่สำเร็จ
แต่เมื่อดูการทดสอบย้อนหลังในภายหลัง ผมไม่เพียงพิจารณาเฉพาะผลลัพธ์ แต่รวมถึงวิธีการทดสอบด้วย
ยังมีสิ่งที่ได้เรียนจาก EA ที่ทำเสร็จแล้วและไม่สำเร็จ ซึ่งผมพบคุณค่าจากฝ่ายที่ไม่สมบูรณ์มากกว่า
ยิ่งพัฒนา ผมพบว่ามีเรื่องแบบนี้มากขึ้น
ครั้งต่อไป ผมจะเขียนถึงการบริหารเงิน โดยเฉพาะเรื่องการตั้งนัมพิน
บทความนี้ไม่ใช่การปฏิเสธทั้งหมด หากคุณเป็นผู้ที่สัมผัสมาก่อน และยังอยู่ระหว่างพัฒนาเรื่องนี้อยู่
ผมจะสรุปประสบการณ์บนพื้นฐานจริง ทั้งส่วนที่ดูแล้วน่าดึงดูดและส่วนที่ระวังเพื่อตรวจสอบให้แม่นยำในระบบย้อนหลัง