Check Data Quality

แทบจะไม่มีประโยชน์ใดๆเลย ที่จะทำการพัฒนาระบบเทรด ด้วยข้อมูลที่ไม่มีคุณภาพ ตรวจสอบคุณภาพข้อมูลด้วยโค้ด AmiBroker 5 บรรทัด ก่อนอื่นเลยขอย้ำตรงนี้ว่า ถ้าข้อมูลที่ใช้ไม่มีคุณภาพ เวลาเทรดจริง จะได้ผลลัพธ์ที่ต่างจากตอนทดสอบ ซึ่งมักจะแย่กว่า (ถึงแย่มากกว่า) ผลที่คาดไว้ Perfect Data is a Myth. ข้อมูลสมบูรณ์แบบไม่มีจริง เต็มที่ก็คือ ดีแค่ไหน ดีพอในระดับที่จะนำมาใช้ได้มั้ย นี่คือเหตุผลหนึ่ง ที่ Quants บางกลุ่มได้เปรียบคนอื่น ถึงไม่สมบูรณ์แบบ แต่ถ้าเรารู้จักข้อจำกัดของมัน ถึงไม่สมบูรณ์แบบ แต่ถ้าเรารู้จักเลือกช่วงที่จะใช้ ก็สามารถ “ลดปัญหา” จากผลกระทบของข้อมูลได้   สรุป แทบจะไม่มีประโยชน์ใดๆเลย ที่จะทำการพัฒนาระบบเทรด ด้วยข้อมูลที่ไม่มีคุณภาพ ปรกติเทรดจริง ก็จะได้ผลลัพธ์ที่แย่กว่า ตอนทดสอบอยู่แล้ว และถ้ายิ่งใช้ข้อมูลที่ไม่มีคุณภาพ จะยิ่งทำให้ตอนเทรดจริง แย่ลงไปอีก มีวิธีวัดคุณภาพของข้อมูลหลายรูปแบบ เช่น ความถูกต้อง ด้านราคา ด้านวันเวลาสำคัญของข้อมูลพื้นฐาน การแตกพาร์ ความครบถ้วน ด้านจำนวนหุ้นทั้งหมด จำนวนหุ้นที่ถูกเพิกถอนออกไป ข้อมูลที่ห่วยมากๆควรถูกโยนทิ้งไป… Continue reading

AmiBroker Code Fixing Problems from Data

หลายๆครั้งที่ผมเห็น นักพัฒนากลยุทธ์ระบบเทรด (เรียกสั้นว่า “ควอนทฺ” quants) ได้ทำการสร้างกลยุทธ์ที่ดีมีหลักการเหตุผล ถึงขั้นที่จะนำไปเทรดได้กำไรจริง แต่ปรากฎว่า ผลลัพธ์จากการทดสอบ (backtest result) กลับบอกว่ากลยุทธ์นั้นไม่กำไร/ขาดทุน ทำให้ quants เข้าใจผิดทิ้งกลยุทธ์นั้นไป (++ผิดหวังและท้อแท้) พลาดโอกาสในการลงทุนด้วยระบบของตนเอง เพียงเพราะ “ปัญหาที่เกิดจากข้อมูลต่อการทดสอบ” ซึ่งจริงๆแล้วสามารถป้องกันได้ด้วยการใช้โค้ดไม่กี่บรรทัด กลยุทธ์ที่ดีมีหลักการเหตุผล แต่ผลการทดสอบกลับขาดทุน อาจเพราะ โค้ดในการทดสอบไม่ตรวจสอบข้อมูลที่ผิดเพี้ยน เพื่อช่วยป้องกันเหตุการณ์ที่น่าเสียดายข้างต้น (แทนที่จะได้กลยุทธ์ดีๆของตนเองมาเทรดทำกำไร) ดังกล่าว quants จะต้องเข้าใจและโค้ด (Understanding & Coding) เรื่องการจัดการข้อมูลที่เกี่ยวข้องกับ หุ้นที่… split, delisted, renamed, suspended, และ tick size ตั้งแต่ก่อนจะทำการทดสอบ ดังนั้นจึงมีความจำเป็นมากๆที่ต้องเพิ่ม AmiBroker Code เพื่อหลีกเลี่ยงปัญหาต่างๆข้างต้น ถึงแม้ว่าโค้ดในส่วนนี้ จะไม่เกี่ยวข้องใดๆกับกลยุทธ์ก็ตาม โดยที่ Code ตัวช่วยจะเป็นชุดคำสั่งโค้ดเล็ก หรือที่เรียกกันว่า “Code Snippet” ซึ่งในโพสนี้จะแสดงตัวอย่างจริงพร้อมคำอธิบาย… Continue reading