【開発録】バックテストの「幻の約定」。テスト環境とリアル口座で生じる決定的な乖離
ในการพัฒนาการเทรดระบบ ความพยายามที่ระบุไว้ในรายงานการทดสอบย้อนกลับที่描ฉากกราฟสินทรัพย์ที่ไม่สามารถหาข้อผิดพลาดได้ เมื่อย้ายไปสู่การทดสอบฟอร์เวิร์ดหรือการใช้งานจริงในบัญชีจริง ระบบนั้นกลับทำงานไม่ได้เลยและก่อให้เกิดการลดลงของทุน
เมื่อเผชิญกับเหตุการณ์นี้ นักพัฒนาส่วนใหญ่มีแนวโน้มที่จะค้นหาสาเหตุภายในตรรกะว่า “ยังขาดการปรับแต่ง” หรือ “ความผันผร้อยของตลาดเปลี่ยนแปลงไป”
อย่างไรก็ตาม จากมุมมองของวิศวกรออกแบบกระบวนการ เหตุทางลำดับที่ทำให้ความแตกต่างที่ร้ายแรงนี้เกิดขึ้นไม่อยู่ที่พารามิเตอร์ของตรรกะ แต่เกิดจากข้อบกพร่องเชิงโครงสร้างที่ระบบถูกสร้างขึ้นบน “สถาปัตยกรรมที่ยืนอยู่ได้เฉพาะในสภาพแวดล้อมทดสอบเสมือนเท่านั้น”
1. ประวัติการทำรายการ幻の約定ที่ティック補間สร้างขึ้น
หนึ่งในสาเหตุใหญ่ที่สุดที่ทำให้ผลลัพธ์การทดสอบย้อนกลับกับบัญชีจริงแตกต่างกันคือกลไกการสร้างข้อมูลราคาหรือ “ティック補間” ในสภาพแวดล้อมทดสอบ
เครื่องมือทดสอบย้อนกลับทั่วไปมักใช้ข้อมูลราคาประเภท OHLC (Open, High, Low, Close) ตามที่พบในข้อมูลประวัติศาสตร์เป็นพื้นฐาน และในระหว่างสี่จุดนี้จะมีการเติมข้อมูลการเคลื่อนไหวราคาย่อยๆ (ティック) โดยอัลกอริทึมภายในเครื่องมือจะทำการสุ่มหรือใช้หลักการบางอย่างในการเติม/สร้างเส้นทางราคาที่เป็น “เสมือนจริง” เท่านั้น
ข้อกำหนดนี้ทำให้เกิดบั๊กที่สำคัญอย่างมากในการออกแบบระบบ เมื่อระบบมีขอบเขตการตั้งค่าขาดทุนทางแนวรับและจุดทำกำไรที่แคบมาก ในสภาพแวดล้อมการทดสอบ มักมีกรณีที่ราคาถึงระดับทำกำไรก่อนและถูกตัดสินว่าได้กำไร ผลลัพธ์จริงๆ ในตลาดอาจไม่เป็นเช่นนั้น
นี่คือ “幻の約定” ประวัติการทำรายการเสมือนจริงที่ทำให้ชนะสูงเกินจริงหรืออัตราการชนะและปัจจัยกำไรสูงขึ้นโดยไม่สะท้อนโครงสร้างตลาดจริง
2.忘却「物理的遅延」在実行環境
อีกหนึ่งการหลอกลวงร้ายแรงที่อยู่ในสภาพแวดล้อมการทดสอบคือ “ความล่าช้าเชิงกายภาพ (Latency) และการไม่ปฏิเสธการทำรายการ”
ในพื้นที่การทดสอบย้อนกลับ เมื่อโลจิกถูกเรียกใช้งาน ความล่าช้าเป็นศูนย์ สลิปเพจเป็นศูนย์ และคำสั่งถูกประมวลผลตามราคาที่ต้องการอย่างสมบูรณ์ อย่างไรก็ดี ในโครงสร้างการซื้อขายจริง มันเป็นปรากฏการณ์ที่เป็นไปไม่ได้ ทางพีซีท้องถิ่นหรือ VPS ส่งแพ็กเก็ตคำสั่งไปยังเซิร์ฟเวอร์โบรคเกอร์และผ่านผู้ให้บริการสภาพคล่อง (LP) เพื่อทำตลาดจะมีเวลาการสื่อสารและเวลาประมวลผลที่หลีกเลี่ยงไม่ได้
โดยเฉพาะในสถานการณ์ที่สภาพคล่องต่ำและมีสเปรดขยายออก และในช่วงที่เกิดการเปลี่ยนแปลงราคากะทันหัน ความล่าช้านี้จะกลายเป็น “การขาดทุนที่ชัดเจน” ในรูปแบบของ Slippage เครื่องมือสถาปัตยกรรมที่แข่งขันในระดับมิลลิวินาทีโดยอาศัยความได้เปรียบในศูนย์การณ์ล่าช้าจะถูกลดทอนความได้เปรียบลงเมื่อมันถูกติดตั้งในสภาพแวดล้อมโครงสร้างจริง เน้นที่ความงามของโค้ดไม่ใช่การออกแบบที่แพ้ต่อข้อจำกัดโครงสร้างของโครงสร้างเครือข่าย
3. หลักการออกแบบกระบวนการที่อิงกับความแตกต่าง
ฉันไม่ใช่นักโปรแกรม ฉันไม่เห็นคุณค่าของทักษะการเขียนภาษาที่ใช้งานในสภาพแวดล้อมเสมือนจริง การออกแบบกระบวนการที่ฉัน追求ในฐานะวิศวกรออกแบบกระบวนการคือความมั่นคง (robustness) ที่ระบบนี้จะสามารถอยู่รอดในสภาพแวดล้อมโครงสร้างที่ไม่เอื้ออำนวยและตลาดที่ไม่แน่นอนในโลกจริง
เพื่อออกแบบระบบที่สามารถใช้งานจริงได้ คุณต้องยอมรับว่าการแตกต่างระหว่างทดสอบกับความจริง เช่น幻の約定จากティック補間หรือการสลิปเพจจากความล่าช้าในการสื่อสาร จะเกิดขึ้นเสมอ จึงต้องกำหนดให้เป็นเงื่อนไขเริ่มต้นและออกแบบให้รองรับ
เพื่อให้มีความสามารถในการอยู่รอดอย่างแท้จริง ต้องมีหลักการถือครองตำแหน่งเดียวและกำหนดเส้นทางออกจากการซื้อขายที่ชัดเจน (SL) และเมื่อสภาพแวดล้อมการดำเนินการไม่เอื้ออำนวย เช่นในช่วงที่สเปรดขยาย การกรองการเข้าเทรดเพื่อรอดพ้นก็ต้องทำงานอย่างเข้มงวด เพื่อสกัดเฉพาะข้อได้เปรียบที่ยังคงอยู่แม้ในสภาพแวดล้อมที่มีเสียงรบกวนของความจริง
結論:排除机上の空論และรับประกันความอยู่รอดทางกายภาพ
ในห้องอบอุ่นของการทดสอบย้อนหลัง ระบบที่ถูกปรับแต่งในสภาพแวดล้อมที่มี蒂ックเสมือนและ latency เป็นศูนย์จะไม่สามารถป้องกันในตลาดจริงได้
เป้าหมายที่แท้จริงของการเทรดระบบคือไม่ใช่การสร้างรายงานที่สมบูรณ์แบบในโลกเสมือนจริง แต่คือการปกป้องทุนของตนเองให้อยู่รอดในสภาพแวดล้อมจริงที่มีความล่าช้าของการสื่อสารและสลิปเพจ และสกัดหาประโยชน์ที่มั่นคง Semura Lab. จะไม่แนะนำให้เปิดใช้งานกล่องดำที่สร้างจาก机上の空論อย่างเด็ดขาด ตรวจสอบความซื่อสัตย์ของตรรกะการเทรดอย่างสม่ำเสมอและมุ่งเน้นการออกแบบกระบวนการที่ทำให้รอดในสภาพแวดล้อมจริงเป็นอันดับแรก
เราต้องทิ้งตรรกะที่พึ่ง幻の約定 ละเว้นอารมณ์ และออกแบบระบบให้มั่นคงโดยพึ่งตำแหน่งเดียวดายในอดีตและการกำหนดการถอนอย่างเคร่งครัด เพื่อให้ระบบโดยรวมถูกออกแบบใหม่จากรากฐาน