【มุมมองการพัฒนาของห้องแล็บ】“การเปิดเผยข้อเท็จจริงที่ไม่สะดวก”〜สเปรดและการลื่นไถลที่กัดกร่อนขอบเขต〜
ในการเทรดระบบและการพัฒนา EA การวาดเส้นกราฟทรัพย์สินที่สวยงามในรูปแบบขึ้นอย่างต่อเนื่องนั้นเป็นเพียงผลลัพธ์จาก “ห้องปลอดเชื้อ” เท่านั้น ในบันทึกการเดินเรือครั้งก่อน ผมได้กล่าวถึงขอบเขตเชิงโครงสร้างของมันแล้ว
แล้วเมื่อเราเข็นระบบออกจากห้องปลอดเชื้อไปยังอากาศภายนอก (สภาพแวดล้อมการซื้อขายจริง) อะไรที่ทำให้ได้เปรียบของเรา (edge) ถูกทำลายลงอย่างแท้จริง บันทึกการเดินเรือนี้จะบันทึกอย่างเป็นกลางจากมุมมองการพัฒนาที่ห้องทดลอง เกี่ยวกับ “ข้อเท็จจริงที่ไม่สะดวก” ซึ่งมักถูกนักพัฒนาระบบจำนวนมากละเว้นจากการขาย-โปรโมต—นั่นคือการเสียดทานที่มองไม่เห็นในสภาพแวดล้อมจริง
โครงสร้างของ “การเสียดทาน” ระหว่าง Backtest กับสภาพแวดล้อมจริง
ในสภาพแวดล้อม backtest ช่องว่าง (ราคาซื้อ-ราคาขาย) และความสามารถในการทำคำสั่งโดยเฉพาะ ถูกจัดการในรูปแบบ “ค่าคงที่ในอุดมคติ” เพื่อความสะดวกในการคำนวณ อย่างไรก็ตาม ในทะเลของสภาพแวดล้อมจริง (Forward) สิ่งนี้จะก่อให้เกิดข้อผิดพลาดในการออกแบบที่ร้ายแรงมาก
ตารางด้านล่างสรุปความแตกต่างของการเสียดทานทางกายภาพระหว่างห้องปลอดเชื้อ (สภาพแวดลมการทดสอบ) กับสภาพแวดล้อมจริง
| รายการเปรียบเทียบ | ห้องปลอดเชื้อ (สภาพแวดล้อม Backtest) | สภาพแวดล้อมจริง (การใช้งาน Forward) | ผลกระทบต่อระบบ |
| สเปรด | คงที่เสมอ (ค่าต่ำสุดอุดมคติถูกล็อคไว้) | เปลี่ยนแปลงตลอดเวลา เมื่อเวลาอ้างอิงหรือ rollover จะมีค่ามากสุด | กดทับกำไร และกระตุ้นการ cut loss ที่อาจหลีกเลี่ยงได้จริง |
| ความเร็วในการดำเนินการ (Ping) | ความหน่วงเป็นศูนย์ (คำสั่งถูกดำเนินพร้อมสัญญาณ) | มีความล่าช้าทางกายภาพในสื่อสารหลายสิบถึงหลายร้อยมิลลisecond | การล่าช้าในการเข้าออเดอร์ทำให้เสียเปรียบ |
| สภาพคล่อง (Liquidity) | อนันต์ (สามารถทำคำสั่งที่ราคากำหนดได้เสมอ) | ช่วงเวลาที่สภาพคล่องแห้งขแห้ง มีระดับบอร์ดบางและลื่นไหล | เกิดสแตกหรือสเปรดทับซ้อนที่รุนแรง |
ในตลาดจริง สเปรดจะเปลี่ยนแปลงอยู่เสมอ และคำสั่งผ่านเซิร์ฟเวอร์ของโบรกเกอร์จะมีความล่าช้าทางสื่อสารอย่างแน่นอน โดยเฉพาะในช่วง “ภาวะที่ระบบรับภาระสูงสุด” (เช่น ช่วงความผันผวนขยายตัวอย่างรวดเร็ว) การเสียดทานเหล่านี้จะพองขึ้นหลายเท่าตัว
“Play” ของระบบและความทนทานต่อ Slippage
การเสียดทานที่มองไม่เห็นนี้ขึ้นกับตรรกะของระบบ (ช่วงค่าที่ต้องการและความถี่) ความเข้มข้นของระบบยิ่งสูงเท่าไร โอกาสที่จะมี “play (ความให้อภัย)” ต่อการเสียดทานในทะเลจริงยิ่งน้อยลง
| ลักษณะเชิงตรรกะ | ความทนทานต่อ Slippage และการสับเปลี่ยนสเปรด | ความเสี่ยงการลด edge ในการใช้งานจริง |
| การสแกลป์ที่ต้องการค่ากลางต่ำมาก | ต่ำมาก (อาจเป็นอันตรายถึงชีวิตระบบ) | 【สูงสุด】การไหลของราคาที่เพี้ยนหลายจุดจะชดเชยกำไรทั้งหมด |
| การหวังผลในช่วงระยะกลางถึงใหญ่ | ค่อนข้างสูง (ต้นทุนสำหรับแต่ละขนาดค่าผันผวนต่ำ) | 【กลางถึงต่ำ】 edge ลดลงแต่ไม่ถึงกับทำให้ระบบพัง |
[รูปที่ ①:เปรียบเทียบจำลองรายได้ของสเปรดคงที่กับสภาพแวดล้อมจริงที่มีการเปลี่ยนแปลงและการลื่นไหล]
กำไรที่เห็นใน backtest ถูกลดทอนอย่างเฉยเมยโดยการเสียดทานในสภาพแวดลมจริง (ต้นทุน)
edge ที่มีในทดสอบจะถูกลบล้างอย่างสมบูรณ์ด้วยการ滑行ของราคาหลายจุดในสภาพแวดล้อมจริง และทุกครั้งที่ทำการเทรดก็จะถูกหักด้วยค่า commissions ซึ่งทำให้ทุนในบัญชีลดลง นี่คือที่มาของ “หุบเหวแห่งความตาย” ที่ EA ที่ถูกปรับแต่งมากเกินไปมักจะจมลงทันทีที่เริ่มใช้งานจริง
กระบวนการออกแบบที่ตั้งอยู่บนข้อเท็จจริงที่ไม่สะดวก
แนวทางของ Semura Lab. ไม่ได้จำกัดการซ่อน “ข้อเท็จจริงที่ไม่สะดวก” เหตุผล คือการรวมการเสียดทานเหล่านี้เข้าไปตั้งแต่ขั้นตอนการออกแบบระดับสูงสุด เพื่อให้ระบบคงอยู่รอดต่อไป
การทดสอบความเครียดให้เป็นปกติ:คิดถึงสภาพการสื่อสารที่แย่ที่สุดและการขยายสเปรดสูงสุดเสมอ ทำการทดสอบโหลดที่เข้มงวด (Walk Forward Analysis เป็นต้น) และนำเฉพาะสาเหตุทางกายภาพที่ยังหลงเหลือมาใช้เป็น edge
การยอมรับเสียงรบกวน:การขาดทุนจากการ滑行ที่ไม่คาดคิดไม่ใช่ข้อผิดพลาดที่ควรหลีกเลี่ยง แต่เป็นเหมือน“การใช้งานเชื้อเพลิง”ที่หลอมรวมกับการบริหารเงิน
การหลุดพ้นจากโครงสร้างอินฟราสตรักเจอร์โบราณ:ไม่ยึดติดกับแพลตฟอร์มเก่าที่มีข้อจำกัดด้านกำลังการทำคำสั่งและความเร็วในการสื่อสาร ควรจำลองสภาพแวดล้อมการดำเนินที่สมจริงมากยิ่งขึ้นด้วยสถาปัตยกรรมยุคถัดไป
ในสภาพแวดล้อมจริงที่ถูกครอบงำด้วยเสียงรบกวนที่รุนแรงและการเสียดทานที่มองไม่เห็น จะทำอย่างไรให้ระบบยังคง “อยู่รอด”? ไม่มีเข็มทิศใดที่จะนำทางถ้าไม่เผชิญหน้ากับข้อเท็จจริงที่ไม่สะดวกและวางแผนอย่างไม่ตีสวยงามในกระบวนการออกแบบ