วันอังคารที่ 21 มกราคม พ.ศ. 2557

System Metric: ตัวเลขแสดงประสิทธิภาพของระบบ trading

Systematic trading เมื่อออกแบบและสร้างระบบให้มีสัญญาณซื้อขายแบบอัตโนมัติได้แล้ว สิ่งต่อมาที่ต้องทำคือการทดสอบระบบแบบย้อนหลัง backtest ซึ่งจะให้ report ที่แสดงประสิทธิภาพของระบบสัญญาณซื้อขายนั้นออกมาในรูปแบบตัวเลขหลายตัวที่สามารถบ่งบอกความสามารถของระบบว่ามีประสิทธิภาพดีมากน้อยเพียงใด

Systematic trading ระบบการซื้อขายจะมีข้อได้เปรียบการวิเคราะห์ทางเทคนิคที่ นอกจากจะสามารถสร้างระบบให้ออกมาได้อย่างน่าเชื่อถือ ตามหลักการออกแบบที่ดี และให้สัญญาณซื้อขายที่ไม่บิดเบือนไปตามอารมณ์ของผู้ใช้แล้ว ลักษณะที่สร้างความน่าเชื่อถือในการใช้งานมากขึ้นไปอีกก็คือ การทดสอบระบบย้อนหลัง backtest เพื่อวัดประสิทธิภาพระบบ
ที่ใช้คำว่าทดสอบระบบย้อนหลัง backtest  เพราะเป็นการนำข้อมูลในอดีตที่เกิดขึ้นจริงมาทดสอบกับสัญญาณซื้อขายที่สร้างขึ้นมา ซึ่งไม่สามารถทดสอบสิ่งที่เกิดขึ้นในอนาคตได้ เพราะไม่มีอะไรที่สามารถบอกอนาคตได้ในโลกของความเป็นจริง  โลกในนิยายบางครั้งก็ทำได้ ทำได้ถึงขนาดไปเปลี่ยนแปลงอนาคต หรือทำนายได้อย่างแม่นยำ

เรื่องการทำนายที่ใช้ในการ trading มักจะเป็นที่นิยมในไทยเพราะผู้ทำนายมักมีลักษณะเหมือนนักการเมืองคือพูดจา สื่อสารน่าเชื่อถือ สามารถสื่อสารสิ่งที่ต้องการให้ทำได้อย่างชัดเจน จะผิดหรือถูกคนที่ฟังก็ยังมีความนิยมไม่เสื่อมคลาย แม้ไม่ได้พึ่งคำนายเหล่านั้น แต่ติดใจในการพูดจาของนักวิเคราะห์มากกว่าผลงาน เป็นลักษณะจิตวิทยานักลงทุนที่มักจะใช้เฉพาะระบบที่มีความเชื่อถือแม้ระบบนั้นไม่ได้ให้กำไรที่ดีแต่อย่างใด เหมือนการเล่นหุ้นปั่น ที่เล่นไปหลายๆรอบก็รู้ว่าขาดทุน แต่ก็ยังนิยมเล่น เพราะคิดว่าต้องการได้ค่ากับข้าว แต่การเสียหายระดับ รถยนต์ เอารถยนต์ไปแลกค่ากับข้าวนั่นเอง
ลักษณะการทำนายหลักการที่ใช้มักจะใช้ pattern ในรูปแบบใดรูปแบบนึงเช่น CandleStick ที่ความยาวสั้นของแท่งราคาจะบอกอนาคตได้เหมือนการโยนไม้เสี่ยงทายที่คนโบราณใช้ทำนายสภาวะฟ้าฝน หรือ Elliott wave ที่มีการนับคลื่น ซึ่งก็มีลักษณะเหมือนจะบอกว่าถ้าฝนตกจะตกกี่เม็ด กี่ชั่วโมงจึงจะหยุดเหมือนจะมีหลักการทำนายบอกได้แต่มีคนบอกได้จริงๆหรือไม่ว่าฝนตกกี่เม็ด การนับคลื่นแม้จะนับผิดหรือถูกก็ไม่ได้มีนักลงทุนสนใจ ขอแค่บอกมาว่าจะขึ้นหรือลงจากการเดาแบบมีหลักวิชา ซึ่งก็ไม่ได้แม่นไปกว่า indicator ธรรมดาแต่อย่างใด

การทดสอบ ระบบการซื้อขาย จำเป็นต้องพึ่งเครื่องมือในระดับที่เป็น Testable Tool เช่น MetaStock Amibroker ที่สามารถสร้าง System test หรือ backtest ที่สามารถส่งคำสั่งให้ซื้อขายตามเงื่อนไข indicator แบบปกติหรือสัญญาณที่สร้างขึ้นเอง
เครื่องมือแบบนี้ให้สัญญาณซื้อขาย และมีการทดสอบสัญญาณซื้อขายกับหุ้นหรือ index แบบย้อนหลังได้โดยกำหนดเป็นช่วงเวลา เลือกตัวหุ้นที่ทดสอบได้
ผลลัพธ์ของการทดสอบที่ให้มาจะเป็น Report ที่ระบุถึงตัวเลขที่แสดงประสิทธิภาพของระบบในแง่มุมต่างๆ กำไร ขาดทุน จำนวนที่กำไร ซึ่งทั้งหมดจะสะท้อนความสามารถในการทำกำไรของระบบ โดยสิ่งที่สร้างตัวเลขเหล่านี้จะเป็นการรวบรวมการ trade ในแต่ละครั้งที่มีสัญญาณซื้อขาย ถ้าระบบให้กำไรดี ตัวเลขต่างๆก็จะออกมาในทิศทางที่ดีสอดคล้องกัน

ในการวัดประสิทธิภาพระบบจำเป็นต้องมีระบบเปรียบเทียบ benchmark ที่เป็นตัวต้นแบบ เป็นกลยุทธอย่างง่ายที่ให้สัญญาณซื้อขายแบบง่าย เพื่อเปรียบเทียบว่าระบบที่สนใจมีความสามารถดีกว่ามาตรฐานหรือไม่ ที่ต้องมีตัวเปรียบเทียบเพราะตัวเลขที่ให้มาใน Report บางตัวยากที่จะสื่อความหมายว่าระบบดีหรือไม่ดี ถ้าดูแค่ตัวเลขเพียงตัวเดียว แม้กระทั่งกำไรก็ยังบอกได้ยากถ้าพิจารณาแค่ระบบเดียว
Benchmark แบบง่ายอาจเป็นกลยุทธ ซื้อแล้วถือ นำราคาปัจจุบันเทียบกับราคาที่เริ่มทดสอบ หรือเป็น indicator ยอดนิยมเช่น stochastic %k %d

การทดสอบที่น่าเชื่อถือควรมีจำนวนการ trade ที่มากเพียงพอที่จะครอบคลุมรูปแบบต่างๆของการเคลื่อนไหวของราคา ในทางปฏิบัติรูปแบบของราคาจะมีลักษณะแค่ sideway และเป็น trend ถ้ารูปแบบราคาที่ทดสอบมีรูปแบบทั้งสองอย่างนี้การทดสอบก็มีความน่าเชื่อถือเพียงพอ
จะรู้ได้อย่างไรว่าเมื่อใดเป็น sideway เมื่อใดเป็น trend , ถ้าเป็น sideway indictor แบบ sideway จะทำกำไรได้ดี แต่ถ้าเป็น trend indicator แบบ trend จะทำกำไรได้ดี , sideway และ trend indicator ต้องศึกษาเพิ่มเติมว่า indicator แบบนี้จะเรียกว่าอะไร
และแน่นอน เราจะรู้แค่ว่าในอดีตเป็น sideway หรือ trend ไม่มีทางที่จะรู้ว่าอนาคตจะเป็นแบบใด ไม่ควรไปคาดเดาลักษณะราคา ซึ่งผิดหลักการของ systematic trading ที่มองอดีต ไม่มองอนาคต
อีกหนทางนึงคือทดสอบให้ครบ 20-30 trade signal ก็อาจเพียงพอที่จะเป็นตัวแทนของระบบได้ ถ้ามีระดับ 100 signal การทดสอบจะน่าเชื่อถือมากขึ้น ในระดับ timeframe day การทดสอบระดับ 10 ปี ซึ่งมักข้ามวัฎจักรเศรษฐกิจรุ่งเรื่องและตกต่ำมาแล้ว การทดสอบที่ผ่านช่วงเวลาดังกล่าว ก็เพียงพอ

Backtest Report

ตัวอย่างการทดสอบระบบ สร้างมาจาก AmiBroker ทดสอบ SET 20 ปี พ.ศ. 2536 ถึง 2556 จาก SET ที่ 893 มาที่ 1293 คิดเป็นผลตอบแทนทบต้น(CAR Compound Annual Return)ที่ =(1293/893)^(1/20)-1=1.86%
โดยทดสอบด้วย กลยุทธ 
Stochastic %K ตัด %D ทำการซื้อขายแบบปกติ
Fake เป็นระบบที่สร้างจาก Zigzag,Peak and Tough เป็นระบบหลอกที่ใช้เทคนิคการ coding ให้ดูเหมือนมีการซื้อขายปกติ แต่ถ้านำไปใช้จริงจะพบว่าระบบนี้จะให้ซื้อขายย้อนหลังไปหลายวัน ซื้อราคาย้อนหลังในอดีตซึ่งเป็นเรื่องที่เป็นไปไม่ได้ จุดประสงค์เพื่อนำตัวเลขมานำเสนอเพื่อการเปรียบเทียบ ไม่สามารถใช้ซื้อขายได้จริง

ใน Report  จะมีตัวเลขที่น่าสนใจดังต่อไปนี้
Annual Return เป็นผลตอบแทนทบต้นต่อปี ตัวเลขยิ่งมากยิ่งดี ตัวเลขนี้เหมือนดอกเบี้ยประจำปี
Winners จำนวน trade ที่กำไร
Max. Cons(ecutive) จำนวนครั้งที่กำไรหรือขาดทุนต่อเนื่องสูงสุด
Max. system % drawdown สินทรัพย์ equity ที่ลดลงจากยอดสูงสุด เป็นช่วงที่ portfolio ประสบการขาดทุนต่อเนื่องมากที่สุดโดยวัดที่ขนาดขาดทุน เป็นตัวเลขที่บอกถึงขนาดขาดทุนสูงสุด เป็นช่วงที่ระบบแย่ที่สุด

CAR/MaxDD นำ Compound Annual Return มาหารด้วย Max drawdown เปรียบเทียบกำไรกับขนาดที่ขาดทุนสูงสุด ถ้า >1 ระบบจะดีมาก แต่เนื่องจาก MaxDD เป็นค่าสูงสุดที่จะขาดทุนได้ ค่า CAR/MaxDD <1 ก็ยังยอมรับได้ ช่วงเวลาส่วนมากของระบบจะไม่ขาดทุนใกล้เคียงกับ MaxDD บ่อยครั้งนัก

Profit factor นำกำไรทั้งหมด/ขาดทุนทั้งหมด เหมือนนำขาดทุนจ่ายไป แล้วได้กำไรกลับมา
Payoff Ratio ขนาดกำไรเฉลี่ย/ขาดทุนเฉลี่ย
ตัวเลขทั้งสองควร >1 ยิ่งมากยิ่งดี

Good System

ระบบที่ดีควรมีตัวเลขดังนี้ 
Annual Return> Buy and Hold, ในที่นี้ Buy and Hold= 1.8% กลยุทธทั้งสองผ่านเกณฑ์ กำไรเป็นสิ่งแรกที่ควรพิจารณา เป็นลักษณะที่แยกระบบดีออกจากระบบธรรมดาได้
CAR/MaxDD >1, Stochastic ไม่ผ่านเกณฑ์นี้ แต่ก็ยังสามารถใช้ trade ได้เพราะ MaxDD ไม่ได้เกิดบ่อยครั้ง Stochastic ก็ยังให้กำไรที่ดีถ้าดูจาก Annual Return ถึง 18% ไม่มีดอกเบี้ยที่ไหนให้ดอกเบี้ยเท่านี้ได้
Profit factor >1 , กำไรรวมมากกว่าขาดทุน 
Payoff Ratio>1, กำไรเฉลี่ยมากกว่าขาดทุนเฉลี่ย
Win ratio เท่าใดก็ได้ เพราะไม่ใช่ส่วนสำคัญของระบบ Payoff Ratio จะมีผลต่อระบบมากกว่า

คลิ๊กที่ภาพเพื่อดูรายละเอียด


นอกจากนั้นยังได้แสดง Equity ของระบบ Fake ในภาพ เนื่องจากการโฆษณาระบบสัญญาณโดยส่วนมากมักจะแสดง equity ในลักษณะนี้คือขึ้นชันเป็นเส้นโค้ง เป็นสัญลักษณ์ที่ใช้ความร่ำรวยของการใช้ระบบเป็นตัวล่อนักลงทุนได้ดี  และมักจะโฆษณาไปถึง Win Ratio เช่น trade 20 ครั้งกำไร 18 ครั้ง แต่ว่าแต่ละครั้งเป็นกำไรขนาดเล็กๆ ถ้านำมาวัด Payoff อาจมีค่าต่ำถ้าได้วัดทั้งระบบ การโฆษณาบางทีก็เลือกช่วงเวลาที่ดีที่สุดของระบบมาแสดง เช่น ระบบ Fake มี Winner Max.Cons มากถึง 15 ครั้งติดกันน่าประทับใจอย่างมากนั่นเอง
ระบบ Fake จะมีข้อสังเกตง่ายๆคือ Winners % > 70% ที่เป็นเช่นนี้เพราะ ระบบทั่วๆไปจะมีความแม่นยำประมาณ 30-60 % ค่ากลางๆจะประมาณ 40%  
Systematic trading แบบที่ใช้งานได้จริง จะไม่เน้นความแม่นยำ ไม่สามารถทำนายอนาคต ถ้ามีระบบทำนายอนาคตได้จริง การพนันคือคำตอบของระบบทำนายเพราะผลตอบแทนหลายสิบเท่าในการพนันแต่ละชนิด ไม่จำเป็นต้องมาลงทุนในตลาดทุนที่ผลตอบแทนเป็น %
ถ้าระบบทำนายนั้นยืนยันว่า pattern หรือวิชาที่ใช้นั้น ตลาดหุ้นต้องเป็นไปตามนั้นเสมอ ก็ลองนึกดูถึงคนประมาณ 1 ล้านคนว่าคิดเห็นว่าหุ้นจะขึ้นหรือจะลง อาจแบ่งได้ 50:50 แต่ถ้าถามลึกลงไปว่า กี่จุดยากที่จะตอบได้ตรงกัน แม้จะบอกได้ว่าช่วงไหนคนตอบมากที่สุด แต่ตลาดหุ้นก็ยังขึ้นกับทุนขนาดใหญ่มากกว่าความคิดเห็นคนส่วนใหญ่ หรือวิชาใด เพราะเจ้าของทุนต้องรักษาผลประโยชน์ตนเองที่ยากจะมีใครรู้ว่ากลุ่มคนเหล่านั้นคือใคร ถืออะไรอยู่ ใช้ directional หรือ hedging style อยู่ directional กินส่วนต่าง hedging เล่นสวนทิศกับสิ่งที่ถืออยู่เดิม แต่ไม่ว่าอย่างไรการทำนายด้วยการวิเคราะห์ทางเทคนิคก็ยังเป็นที่นิยมที่มาจากการโฆษณาประชาสัมพันธ์ของสื่อทุกแขนงอยู่นั่นเอง

การวัดประสิทธิภาพระบบจำเป็นต้องใช้เครื่องมือที่มีความสามารถในการออกแบบระบบ การอ่านค่า metric ที่ report แจ้งมาต้องมีระบบอื่นนำมาเปรียบเทียบ และให้ตั้งข้อสงสัยในระบบที่ดูดีเกินไปจากระบบทั่วๆไป การใช้งานจริง การทำอย่างต่อเนื่อง วินัย การวาง sizing, money management การเลือกสินทรัพย์ ก็ยังเป็นปัจจัยที่ทำให้ระบบใช้งานได้ดี จะไม่มีระบบใดที่ทำกำไรได้อย่างดีในสินทรัพย์ที่ sideway ยาวนาน ขนาดเล็ก แต่จะมีระบบธรรมดาที่ให้กำไรอย่างดีในสินทรัพย์ที่เป็น Trend ขนาดใหญ่



คลิ๊กที่ภาพเพื่อดูรายละเอียด

1 ความคิดเห็น:

  1. ความคิดเห็นนี้ถูกลบโดยผู้ดูแลระบบของบล็อก

    ตอบลบ