Tuesday, 10 May 2016

Algo Order Execution

« Money Management สำคัญอย่างไร | Main | Robo-advisor มันคืออะไร! »

ในที่สุดเราก็เดินทางมาถึงด่านสุดท้ายของ Algo Trading Process กันแล้วนะครับ วันนี้เราจะมาทำความรู้จักกับ Order Execution ไปพร้อมกัน ซึ่งแม้จะเป็นขั้นตอนสุดท้าย แต่ Order Execution นี้ถือเป็นจุดกำเนิดของ Algo Trading เลยก็ว่าได้ ในช่วงทศวรรษที่ 1980 นั้น Algo Trading หรือ Program Trading เริ่มถูกใช้โดยนักลงทุนสถาบันในอเมริกา โดยมีวัตถุประสงค์เพื่อส่งคำสั่งซื้อขายที่มีมูลค่าสูงให้ได้รับการจับคู่ราคาที่เหมาะสม ลดการเกิด Market Impact ยกตัวอย่างเช่น หากเราต้องการซื้อหุ้นจำนวน 10 ล้านหุ้นใน 1 วัน แต่ในเวลานั้นมี Best Offer ให้ซื้อได้แค่ 4 ล้านหุ้น Program Trading จะช่วยให้เราทยอยซื้อหุ้นได้ครบตามจำนวนในราคาที่ไม่สูงจนเกินไป เป็นการช่วยลด Slippage Cost ครับ

เพื่อทำความเข้าใจ Order Execution สำหรับ Algo Trading Process ในเบื้องต้น ผมขอแนะนำตัวอย่างของ Algo Order ซึ่งใช้กันอย่างแพร่หลาย ดังต่อไปนี้ครับ 

·   Iceberg: หากเราต้องการส่งคำสั่งซื้อขายแบบ Limit Order ในราคาเดียวสำหรับรายการที่มี Volume มาก ๆ โดยไม่อยากให้ Volume ทั้งหมดไปแสดงในจอ Bid-Offer เป็นก้อนใหญ่ Iceberg จะแบ่ง Volume ทั้งหมดออกเป็น Order ย่อยในจำนวนเท่า ๆ กัน และเริ่มส่งทีละ 1 Order เมื่อได้รับการจับคู่ Iceberg จะส่ง Order ถัดไปทันทีในระดับราคาเดิมที่กำหนดไว้ และทำแบบนี้ไปเรื่อย ๆ จนกว่าจะส่งครบทุก Order

 

·   Time Weighted Average Price (TWAP): หากโมเดลของเรามีสัญญาณให้ซื้อขายหุ้น แต่เราไม่อยากทำรายการทั้งหมดในทันที เพื่อลดความเสี่ยงจาก Market Impact และความเสี่ยงจากราคาที่ผันผวนระหว่างวัน เราสามารถแบ่งรายการออกเป็น Order ย่อยในจำนวนเท่า ๆ กัน จากนั้นทยอยส่ง Order ตามช่วงเวลาที่กำหนด ยกตัวอย่างเช่น ส่งคำสั่งซื้อที่ Best Offer จำนวน 100,000 หุ้น ในทุก ๆ 30 นาที เริ่มตั้งแต่ 10:30 ไปจนถึง 12:30 จนครบ 500,000 หุ้น เป็นต้น

 

 

·    Volume Weighted Average Price (VWAP): หากเราต้องการซื้อขายหุ้นให้เกิดการจับคู่ในราคาที่ใกล้เคียงกับราคาเฉลี่ยของวัน VWAP จะใช้ข้อมูลการซื้อขายในอดีตเพื่อคำนวณหา Volume Profile ว่าในแต่ละช่วงเวลาของวันมี Volume การซื้อขายโดยเฉลี่ยจำนวนเท่าไหร่ จากนั้น VWAP จะทยอยส่ง Order ที่เป็นสัดส่วนตาม Volume Profile ดังกล่าว โดยมีวัตถุประสงค์เพื่อให้ได้ราคาที่ใกล้เคียงราคาเฉลี่ยที่เกิดขึ้นในตลาด

 

Percentage of Volume (POV): คำสั่งซื้อขายแบบนี้จะคล้ายกับ VWAP แต่ POV นี้จะส่ง Order ที่เป็นสัดส่วนตาม Volume ที่เกิดขึ้นจริงในวันนั้น โดยไม่มีการอ้างอิงจาก Historical Volume Profile

Iceberg, TWAP, VWAP และ POV เป็นเพียงตัวอย่างแบบพื้นฐานเพื่อแนะนำให้เรารู้จักกับ Algo Order Execution เท่านั้น สำหรับการใช้งานจริงนั้น Order Execution Module จะถูกออกแบบให้เหมาะสมกับลักษณะเฉพาะของแต่ละโมเดล แต่ละหุ้น ในแต่ละสภาวะของตลาด โดยที่การมี Order Execution Module ที่ดีจะช่วยให้ Algo Trading Model มีประสิทธิภาพในการทำกำไรที่ใกล้เคียงกับผลการทบสอบ Back Testing & Forward Testing) เพราะเราสามารถควบคุม Slippage Cost ไม่ให้สูงจนเกินไปได้

สิ่งที่ผมอยากบอกกับทุกคนที่สนใจ Algo Trading คือ ทุกครั้งที่มีคนเอาผลการทดสอบกลยุทธ์มาให้เราดู ไม่ว่าผลนั้นจะสวยหรูแค่ไหน เราต้องถามเกี่ยวกับ Slippage Cost และ Commission Rate ที่ใส่ลงไป รวมทั้ง Money Management และ Maximum Fund Size ที่โมเดลจะรองรับได้ จากนั้นวิเคราะห์ว่าหุ้นใน Universe ดังกล่าว สามารถซื้อขายได้ใน Slippage Cost ที่กำหนดหรือไม่ เนื่องจากในทางปฏิบัติแล้ว เรามักจะซื้อหุ้นได้ในราคาที่สูงกว่า Trigger Price (ราคาที่ทำให้เกิดสัญญาณซื้อขาย) และขายหุ้นได้ในราคาที่ต่ำกว่า Trigger Price อยู่เสมอ อย่างไรก็ตาม แม้จะใส่ Slippage Cost ลงไปแล้ว สิ่งนั้นก็เป็นแค่เพียงการทดสอบเท่านั้น แนวทางที่ดีที่สุดในการเลือกลงทุนใน Algo Trading Model คือการวิเคราะห์ผลการลงทุนที่เกิดขึ้นจริงว่าเหมาะสมกับตัวเราเองหรือไม่ ลงทุนแล้วสบายใจ ลดความกังวล กินได้ นอนหลับสนิท หรือไม่ เพราะอย่าลืมว่าเราหา Robot มาช่วยทำให้ชีวิตเราง่ายขึ้นครับ!

Posted by chonladet at 1:12 PM in Algo Trading

 

[Trackback URL for this entry]

Comment: pinai at Mon, 23 May 7:37 AM

ผมทดลองทำ model การเทรด โดยใช้ excel ผลตอบแทนน่าสนใจมาก อยากให้คุณช่วยทดสอบให้หน่อย ไม่ทราบจะติดต่อคุณได้อย่างไร

Comment: pinai at Mon, 23 May 12:29 PM

ผมทดลอง model การเทรด ผลตอบแทนน่าสนใจมาก อยากให้คุณชลเดช ช่วยตรวจสอบให้หน่อย ไม่ทราบจะติดต่อได้อย่างไร

Comment: Chonladet at Wed, 25 May 10:54 PM

สวัสดีครับคุณ Pinai
ติดต่อผมโดยตรงผ่านทาง chonladet@fintech.co.th ได้เลยครับ
ผมจะให้ทีม Quant Modeler ช่วยทดสอบให้ครับ

Your comment:

(not displayed)
Code:
 
 
 

Live Comment Preview:

 
« May »
SunMonTueWedThuFriSat
1234567
891011121314
15161718192021
22232425262728
293031