3-10 อ่านผลการทดสอบ Backtest Results

วิธีอ่านผลการทดสอบ Backtest Results นี้ คือ การแปรผลว่าระบบที่เราสร้างมีเป็นอย่างไร มีข้อเสีย ที่ควรแก้ไขหรือไม่ เช่น มีผลตอบแทนที่น้อยไปไหม หรือ มีจำนวนครั้งการเทรดที่ไม่เหมาะสม เพื่อจะได้พัฒนาระบบให้เป็นตามที่เราต้องการต่อไป

จุดประสงค์: อ่านผลการทดสอบ Backtest Results

  1. เข้าใจการอ่านผลของ BackTest Result
  2. เข้าใจ ความหมายของค่าต่างๆ ใน BackTest Results
  3. มีความรู้ในการหาข้อผิดพลาดของระบบ ว่าระบบทำตามที่เราต้องการหรือไม่

เนื้อหา: อ่านผลการทดสอบ Backtest Results

ในบทนี้จะกล่าวถึงการอ่านผลของ Backtest ว่าระบบที่สร้างมามีข้อดี ข้อเสียอย่างไร โดย ในบทนี้จะกล่าวถึงค่าหลักๆ ที่ใช้ดูว่าระบบที่เราเขียนมาเป็นอย่างไร

[1] Ending capital คือ เงินสุดท้ายในพอร์ตเรา โดยจะรวมทุน + กำไร / ขาดทุน
[2] Net Profit คือ กำไรของระบบที่สามารถทำได้ ณ ช่วงเวลาทดสอบ
[3] Net Profit % คือ กำไร คิดเป็น เปอร์เซ็นต์ เมื่อเทียบกับทุน
[4] Annual Return % คือ ผลตอบแทนต่อปี
[5] All trades คือ จำนวนครั้งที่เทรดทั้งหมด ของระบบ ณ เวลาที่เราทดสอบ ปกติ ค่านี้ควรจะอยู่ที่ 30-50 ครั้ง ต่อปี
[6] Max. system % drawdown คือ ค่าความสูญเสียมากที่สุดของระบบ (เคยกล่าวไว้ในบทก่อนหน้านี้แล้ว)
[7] CAR/MaxDD คือ ผลตอบแทนที่คิดเป็น เปอร์เซ็น หารด้วย MaxDD โดยค่านี้ถ้ามากกว่า 2 จึงจะดี [CAR (Compound Annual % Return)]
[8] RAR/MaxDD คือ ค่าของ Risk Adjusted Return หารด้วย MaxDD โดยค่านี้มากกว่า 2 จึงจะดี
[9] Risk Adjusted Return (RAR) คือ ผลตอบแทนประจำปี หารด้วย เปอร์เซ็นต์ของผลกระทบที่กระทำต่อตลาด
[10] Exposure % คือ คือ เงินที่ยังคงอยู่ในหุ้น

หลังจากผลลัพธ์ทีได้ออกมาแล้ว สามารถดู กราฟ (chart) ที่เป็นผลลัพธ์ ได้ โดย ในส่วนของหัวข้อ chart จะแสดงให้เห็นถึงลักษณะการ เติบโต หรือ ถดถอยของทรัพย์สิน รวมถึง แสดงถึง กำไร / ขาดทุน ของทรัพย์สินในแต่ละเดือนอีกด้วย

วีดีโอ: อ่านผลการทดสอบ Backtest Results

คำบรรยายวีดีโอ

ใน VDO ชุดนี้น่ะครับก็จะมาจบในส่วนของ Backtest น่ะครับ ซึ่งจะมาจบส่วนของ Backtest report ว่าเป็นยังไงเปิด Amibroker ขึ้นมาน่ะครับ เปิด Formula มา อ่ะ เดี๋ยวลอง run backtest ดูอีกทีว่าค่าเป็นยังไงตอนนี้ ผมก็ไม่ได้ไปเปลี่ยนอะไรมันน่ะครับ อ่ะว่ากันไป 5ล้าน ขอเปลี่ยนเป็น 10 ล้านแล้วกันเหมือนเดิม backtest เสร็จปุ๊บได้ results มา อ่ะนี่น่ะครับเราก็จะมาไล่ให้ดูกันว่าอะไรเป็นอะไร อันนี้คือ initial capital เงินต้นเป็นยังไงตอน ending capital คือตอนจบ period ของการทำ backtest ก็มาดูที่ตัว Analysis document เริ่ม 2011 จบสิ้นปี 2014 ก็คือกำไรประมาณ 9 แสน นี่น่ะครับแล้วก็ดู Annual Return นี่น่ะครับ เฉลี่ยแล้วได้ต่อปีประมาณ 18% น่ะครับ ก็ถือว่า ok น่ะครับอยู่ระหว่าง 20 หรือ 15 % ก็ ok Risk Adjusted Retrun อยู่ที่ประมาณ 50% น่ะครับ อ่า อันนี้ก็ถือว่า ok น่ะครับ ดูแค่เนี่ยจะรู้ได้ไง ว่า ok หรือไม่ ok น่ะครับ ก็ตัว Amibroker ขึ้นสีเขียวน่ะครับ อันนี่ถือว่าผ่านระดับหนึ่ง ถือว่าดีแล้วกัน ผ่านหรือดีแล้วแต่น่ะครับ อันนี้ก็มาที่ตัว All trade จำได้ไหมครับที่ผมบอกว่าเราควรจะ trade เนี่ย เฉลี่ยคร่าวๆโดยทั่วไป stagy โดยทั่วไป ปีละประมาณ 30 ถึง 50 trade okน่ะครับ 30ถึง 50 trade ตัวนี้เนี่ย 4 ปีใช่ไหมครับ 4 หาร 166 ได้ประมาณ 40 trade ก็กลางๆ ก็ถือว่า ok น่ะครับ อยู่ในrang 30 ถึง 50 นี่ ok พวกนี่ถ้า Amibroker ขึ้นสีเขียวแสดงว่าใช้ได้น่ะครับ คราวนี้มาที่ ตัว percent win อยู่ที่ 36 % ต่ำไปหน่อยน่ะครับ Amibroker ก็เลยไม่ได้บอกว่าอะไร แต่ความจริงเนี่ยเราควรได้อยู่ที่ประมาณ 40%ขึ้นน่ะครับ อ่า max. consecutive อยู่ที่ 8 อันนี้ก็ ok ก็แล้วแต่กรณีไปอันนี้ก็ข้ามไป percent loss อยู่ที่ 63 สูงไปหน่อย ควรอยู่ที่ 60 หรือน้อยกว่านั้นนะครับ แล้วก็ max. consecutive เนี่ย 16 ถือว่าค่อนข้างเยอะน่ะครับ ก็แล้วแต่ stagy ด้วยน่ะครับ เพราะอันนี้เราใช้เป็น basic stagy น่ะครับ อันนี้เราอยู่ในส่วนของอะไรครับ อ่า Introduction level น่ะครับอันนี้ก็ว่ากันไปตามนี้และ ก็ max.system drawdown เนี่ยอยู่-19 น้ำเงินกลางๆ ไม่ได้ดี ไม่ได้แย่อะไรน่ะครับ อ่า นี่นะครับ compound annual return นี่นะครับ ต่อMax.DD อันนี้เป็น Max system drawdown เขาเขียนสั้นๆ MaxDD แบบนี้น่ะครับ อ่า Amibroker ออก เป็นสีแดง ไม่ดี อย่างต่ำต้องอยู่ประมาณ 1.5 น่ะครับ ก็ ok หน่อย ถ้าดีก็ต้อง 2 ขึ้นไป อ่ะนี่น่ะครับ Rick Adjusted Return Amibroker บอกว่า ok ครับความจริงตัวนี้ควรอยู่ที่ประมาณ 3 ถ้าเราชอบ อ่ะส่วนที่เหลือก็ต้องไปเปิดดูเอาเอง แนะนำให้ไปหาน่ะครับ ตนเป็นที่พึ่งแห่งตน น่ะครับ Profit Factor คืออะไร Payoff Ratio คืออะไร และก็มี นี้ครับSharpe Ratio คืออะไร อันนี้อย่างต่ำต้องเป็น 1น่ะครับ อันนี้ก็ไม่ได้บอกว่าดีอะไร K.Ratio คืออะไร ซึ่งตารางควรไปทวนน่ะครับ พยายามเข้าใจทุกตัวน่ะครับ แล้วก็ลองดูว่าตัวไหนสำคัญไม่สำคัญยังไง ตัวไหนสำคัญก็ที่แจงให้ฟังไปเมื่อกี้น่ะครับนั่นคือส่วนที่สำคัญ บอกให้ไปหาก็สำคัญน่ะครับ ในส่วนนี้เราก็จะมาขอจบ อ่ะอย่าเพิ่งจบเลย มาดูที่ chartsก่อน อ่ะนี่คือ charts Equlity นี่คือ curve ของเรา นี่คือ Portfolio Equlity น่ะครับว่าเป็นยังไง 2011 ก็มีขึ้นมีลง 2012 ก็พุ่งเอาพุ่งเอาดีครับ จนมาถึงตอน quarter สิ้นquarter 1 น่ะครับเนี่ย ก็โดนหนักๆ ร่วงลงมา แล้วก็ร่วงลงมาเรื่อยน่ะครับ ผมไปกดอะไร แป๊บนึง กดเปิดขึ้นมาใหม่ไปที่ charts อ่ะ แล้วก็ล่วงลงมา โดนหนักๆ เข้าไป แล้วก็ขึ้นมาแล้วก็มาจบที่ตรงนี้ส่วนนี้จากตรงเนี่ย จาก peak ของเรา ลงมาเรื่อยๆ มาจุดนี้ส่วนต่าง นี่น่ะครับ หลังจากที่ได้เงินขึ้นไป ล้านแปด แล้ว ลงเหลือประมาณ ล้านห้า อันนี้ก็คือ 19% Maximum system drawdown ของเราเนี่ยน่ะครับ แล้วก็ลงมาเรื่อยๆโชว์ให้ดู เห็นไหมครับช่วงเนี่ยนี่ครับลงมา19% อันนี้ก็แจ้งให้ดูว่ารายเดือนได้เสียเท่าไหร่ ต่อปีเป็นอะไร ก็จะเห็นอันนี้ ทรงๆ น่ะครับ ปีนี้ทรงๆ ปี 2012 วิ่งเอาวิ่งเอา 2014 วิ่งเอาวิ่งเอา อันนี้ก็กลางๆ ก็ยัง ok น่ะครับ อันนี้ก็ผ่านไป ที่นี้ก็มาดูต่อ Profit distribution น่ะครับ หลักๆเปอร์เซ็น ก็ประมาณ ต้นๆ 10,20,30 ก็แล้วแต่ แล้วก็มี Profit run หลักร้อย ก็ว่ากันไปมีลบ -5 ,-10 ,-20 ก็เห็นไม่ชัดเท่าไหร่ ก็ไปเช็ค ไม่น่ากลัวเท่าไหร่ กรณีที่น่ากลัวนี้น่ะครับ +200% จริงหรือเปล่า มีการ อย่าลืมว่า databaseของเรายังไม่ได้ปรับตัว. split.น่ะครับ แตก par อะไรอันนี้เป็นกรณีนั้นหรือเปล่าก็ไปหาดูจากในนี้ ที่บอกว่าต้องมาเช็คในนี้ด้วยน่ะครับ ก็กด Profit ดูเนี่ย 240 เห็นไหมครับ คราวนี้ก็ต้องเปิดตัวนี้ขึ้นมาดูน่ะครับ อ่ะ double click อ่ะขึ้นมาแล้ว คลิกขวาทีนึง มาที่ Show arrows for actual trades เรียบร้อยแล้ว นี่คือ2014เดือน 11 วันที่ 10 น่ะครับ ของผมเป็น format อังกฤษน่ะครับ เดือน11 วันที่ 10 แถวๆนี้ 2014 แล้วก็ ซูมไปจนเดือน 11 okแนวนี้ เข้าจริง กำไรจริงน่ะครับถูกต้องผ่านไม่มีปัญหาอะไร คราวนี้ตัว Chart เราเห็นไหมครับ ว่าเราเซ็ตเอาไว้ เป็น 20 , 60 200 ท่านก็ควรจะเปลี่ยนน่ะครับเปลี่ยนให้ตรงกับอะไร ตรงกับ stagy ที่เราเซ็ต คลิกขวาที่ parameters เอาง่ายๆดีกว่า เอาตัวกลางแล้วกันเปลี่ยนเป็น 40 ซะ จำได้ไหมว่าเราเป็น cross overใช่ไหมครับ close 40 cross close 200 กด ok ก็คือตรงจุดนี้น่ะครับ 40 นะครับ ไม่ใช่ไปดู 20 น่ะครับ อ่ะตรงเนี่ย ส้มเนี่ย cross สีแดงขึ้นไป มี volume เข้ามา คลิกดู volume คูณ close ใช่ไหมครับ เกิน 10 ล้าน MACD มากกว่า 0 น่ะครับ อ่ะกรณีนี้ ok อันนี้ ok ไหม เราก็ Click ดู เสร็จแล้วก็ click ขวาShow arrows for actual trades นี่น่ะครับ เดือน 9ปี2012 date ที่เข้า ก็คือ เดือน9 ปี 2012 ถูกไหมครับ นี้คือวันที่เข้าแล้วก็วิ่งไปเรื่อย สีส้มเห็นสีส้มไหมครับ cross สีแดง นี่คือ 40 cross 200 แล้วก็ปล่อยวิ่งไปเรื่อยๆน่ะครับจนถึงสีแดงนี่น่ะครับอันนี้เป็นกรณีอะไรรู้ไหมครับผมกลับไปเปิดใหม่ เป็นกรณี trailing เห็นไหมครับ ก็จะบอกว่าเป็น trailing long เนี่ยคือ stop โดยตัว sellcondition น่ะครับ มี trailing ทีนี้ใน code ของเรามีอะไรบ้าง เซตอะไรบ้าง มี trailing มี set stop loss ด้วยStoploss เดี๋ยวกลับตรงเนี่ยน่ะครับ เห็นไหมครับขึ้น maxloss เห็นไหมครับเนี่ยมี trailing นี่มี buysell conditionก็จะได้ดูออกน่ะครับ คราวนี่เนี่ย loss สูงสุดที่เรามีเนี่ยจำได้ไหมครับ ว่าใน Formula เรามี stop loss เราอยู่ที่ 15 แต่บางทีตอนออกเนี่ยอีกวันถัดไปมันไหลครับ มันไหล มันก็เลยเกิน 15 ก็ยังถือว่า control ยังดีอยู่ ไม่เจอกรณี split แล้วหุ้นล่วงลงไป แล้วขายไปเลย อันนี้ผั่งของ lossข้อมูลถูกต้องน่ะครับคราวนี้ก็เหลือเช็คแค่ฝั่งของ Profit แค่นั้นเอง ลองมาดูตัวนี้ก็ได้ siri นี่นะครับว่ากำไร 120 จริงหรือเปล่า เข้าไปเดือน 6 ปี 2012 double click แล้วคลิกขวาอีกที Show arrow for actual tradesเดือน 6 /2012 อ่ะมาดู เดือน6 อ่า นี่คือเดือน6 น่ะครับ อันนี้ขึ้นมาจริง อันนี้ถูกต้อง อันนี้ที่ผมระวังผมกลัวอะไรครับ สมมุติเป็นกรณีขาดทุนแล้วกัน ซื้อมาเสร็จปุ๊บ สมมุติเขามีการ split ขึ้นมาเห็นไหมครับ จาก 5 บาท อยู่ดีๆกลายเป็น 1 บาทเนี่ย ไม่ใช่ว่าเราขาดทุน 80% น่ะครับท่านก็ต้องมาดู เพราะฉะนั้นเนี่ยที่ผมเช็คกรณีขาดทุน ดูเนี่ยนะครับผมไม่มีอยู่ใน rangeประมาณไม่เกิน20 25 ถือว่าทุกอย่างถูกต้องไม่มีปัญหา อ่ะคราวนี้มาดูในฝั่งของตัวกำไรมากกว่าอ่ะคิดว่าอันนี้น่าจะพอโชว์ให้ดูคร่าวๆน่ะครับว่าตัว Report เนี่ย เราอ่านยังไงน่ะครับแล้วก็มาดูที่ chart น่ะครับ อธิบายให้ฟังว่าอะไรเป็นอะไรคร่าวๆ เนี่ยน่ะครับ แล้วก็มาดูว่าเอาตาราง นี้เรียกว่า tradeน่ะครับว่าวิเคราะห์ยังไง ว่าที่เรา backtestมา results มา ถูกต้องไหม มีปัญหาเรื่อง data ไหมอย่างเมื่อกี้ผมshow ว่าเป็นการ split data เอ่อ split หุ้น มีผลกระทบต่อ result ของเรามั้ยอันนี้ก็จบแต่เพียงเท่านี้ก็ลองเล่นกันไปแล้วกัน ok ขอบคุณครับ