วันอาทิตย์ที่ 4 ธันวาคม พ.ศ. 2559

01/11/2016 - 04/12/2016



SET ที่เดิม บีบตัวไม่มี Volume สัดส่วนหุ้นขึ้น-ลงแทบไม่เปลี่ยนแปลง ไม่มีสัญญาณใหม่ ขึ้นกับลงพอๆกัน ส่วนตัวไม่ได้มองว่าจะมีลงแบบตูมเดียว 100 จุด ไม่เหมือนบรรยากาศของจุดสูงสุด ทรงแบบนี้ตลาดน่าจะอมหุ้น indicator เกือบทุกตัวในตลาดเหวี่ยงอยู่ที่ cut point พอดี และมีสัดส่วนหุ้นที่บวกในเดือนนี้ ~40% แทบไม่มี Overbought (~1%)  รวมทั้ง PE ตลาดด้วย(สูงเหมือนเดิม) คือมันสมดุล แสดงว่าทุกคนในตลาดก็ควรจะ exposure >50% ไปจนถึงเต็ม port น่าจะราวๆนี้

ในขณะที่ธุรกิจดีขึ้น ที่บ้านก็ดี คนมาขอใบรับรองแพทย์สมัครงานเยอะกว่าช่วงก่อน ที่ไม่เข้าท่าอย่างเดียวคือ การขึ้นค่าแรงขั้นต่ำ อาจจะทำให้ค่าครองชีพสูงขึ้นไปอีก  คือการขึ้นแค่ 5-10 บาทต่อคนมันอาจไม่มีนัยยะเลยนะ ซึ้อน้ำเปล่าได้เพิ่มขึ้น 1 ขวดต่อวันที่ไปทำงาน รายจ่ายที่มาตกที่บริษัท 5-10 บาท มีพนักงานแค่ 100 คนคงไม่เท่าไหร่ แต่มอง scale ใหญ่ขึ้น "บริษัทขาดความสามารถในการแข่งขัน" มันสำคัญมากเลยนะ เพราะประเทศเราไม่ได้ขับเคลื่อนด้วยแรงงานขั้นต่ำ แต่"จำเป็นต้องมี"คือมันหลีกเลี่ยงได้ยาก ถ้าบริษัทเราไม่ใหญ่จริง  แต่เรื่องการขึ้นค่าแรงเป็นเรื่องซับซ้อน ผมเองก็ไม่ได้เข้าใจกลไกจริงๆของมัน ไม่ขึ้นก็ไม่ได้ เพราะจริงๆเราก็ควรจะมีรายจ่ายราวๆ 10,000 บาทต่อเดือนยืนพื้น (ค่าเฉลี่ยของประเทศคือ 20000-25000 บาท/เดือน) ปัญหามันไม่ได้ก่อความลำบากให้กับพวกเรามากนัก แต่มันกระทบต่อการแข่งขันของบริษัทครับ  มันเป็นแบบนี้ครับ...

อ้างอิงจากสถิติเก่า

ถ้าบริษัทไหนใช้เครื่องจักร+แรงงาน"ฝีมือ" เป็นสัดส่วนสูงกว่า แรงงานขั้นต่ำ มันจะสร้างช่องว่างของ 2 บริษัทให้ห่างขึ้นไปอีก การแข่งขันที่สูงอยู่เดิม+ความยากในการแข่งขัน ถ้าบริษัทไหนหาทางออก  โดดไปใช้แรงงานฝีมือได้(แล้วประเทศเรามีแรงงานฝีมือเยอะ?) โดดไปใช้เครื่องจักร(แล้วเรามีทุนขนาดโดดไปใช้ได้เลยหรือไม่?)  มันเหมือนเสริมให้เสี่ยทุนใหญ่ยืนได้ง่ายขึ้น  พวกขนาดเล็กและกลางก็ไปดิ้นรนกันเอง SME ก็ไปสู้กันท่ามกลางการแข่งขันสูงลิบๆ พวกเรามัน GenY อายุ 20-40 ก็อยากมี Small enterprise เป็นของตัวเอง แต่แรงงานขั้นต่ำในอนาคต มันอาจจะเป็นกำแพงกั้นระหว่างเรากับ Large enterprise ก็ได้ ใครจะไปรู้  ตัวเลขความล้มเหลวของการ"เริ่มต้นธุรกิจ"จะมีสัดส่วนสูงขึ้นแบบอัตตราเร่ง ซึ่งก็ตรงกับสถิติ และสัจจะธรรมของโลกทุนนิยม
 ===> เราควรจะแก้สัดส่วน "แรงงานฝีมือ" ให้มีปริมาณมากก่อน เหมือนที่เราชอบพูดกัน "คนไทยไม่แพ้ชาติใดในโลก" ถ้าแรงจูงใจในการเติบโตจาก แรงงานขั้นต่ำ ไปเป็น แรงงานฝีมือ ไปเป็นเจ้าของกิจการ มีมากพอ มันก็น่าจะเป็นรางวัลให้กับคนที่ก้าวไปข้างหน้า  ดีกว่าเพิ่มต้นทุนให้ฐาน แต่ขาดอำนาจในการแข่งขัน มันจะคุ้มต่อภาพรวมจริงๆหรอ?  ความเหลื่อมล้ำของรายได้จะไม่โดดไปไกลกว่านี้หรอ?

นอกเรื่องไปไกล กลับมาก RSI ที่เดิม กึ่งกลาง คิดว่าน่าเสี่ยงขาขึ้น(อีกสักรอบ)



Port  YTD 18.24%
SET  YTD 16.59%
แผนเดิม control Heat ให้พอๆกับ SET ก็พอ DD ปิดสิ้นปีน่าจะไม่เกิน 15% และจะปิดปีได้ YTD เป็นบวก
เรื่อง control heat นี้คือดูค่าเฉลี่ย Volatile Port ให้ไม่สูงเกินไป แทนการคุม exposure (แต่ exposure เต็มอยู่ตอนนี้เพราะ Heat ไม่ได้สูงอย่างที่คิด) คิดว่าช่วงนี้ต้องไม่หวัง profit มาก heat เกินก็ลดไปก่อน เป้าของ Exposure คือ 50% เหมือนเดิม พร้อมทิ้งทุกเมื่อ  ถ้า SET ยังไม่มี FTD ยังไม่เล่น Long Trend คิดไม่ออกว่าถ้าตลาดไม่ใช่ uptrend จะมีตัว HomeRun ได้เยอะขนาดไหนถ้าไม่โชคดีจริงๆ  แต่ยอมรับว่าวิธีนี้ทำให้รอบนี้ Port มี profit จาก DD ล่าสุดแค่ 5% เท่านั้นเอง  ก็กำลังศึกษาโมเดลที่ใช้การควบคุมอัตตราเฉลี่ยการเคลื่อนที่ของราคาหุ้นใน port เพื่อ scale in/out (ไม่ใช่การ buy/sell)  แนวคิดนี้ดูดี ในตลาดที่ Volatile สูง ก็ควรลด Volatile ใน port สวนทางกับตลาดโดยรวม [ไม่ใช่การ rebalance correlation อันนั้นจะดูทิศทาง(Direction) แต่อันนี้จะดูความผันผวน] ยังไม่รู้ว่าสรุปแล้วดีไหม เพราะยังไม่เห็นผลชัดๆ มีข้อดีย่อมมีข้อเสีย

สรุปแผนคือ Control Heat ไม่ให้ volatile สูงเกินกว่า 4% + ถ้ามี DD ขายออกก่อน 30% + Trailing stop ใกล้กว่าเดิม (run trend ยาว ถ้า stop ไม่ลึก) + พร้อม Panic ทิ้ง 50%ตามเป้า exposure

Momentum 4/12/2016



วันอังคารที่ 1 พฤศจิกายน พ.ศ. 2559

03/10/2016-01/11/2016



SET ถ้าให้เทียบวันเวลาเดียวกันกับเดือนที่แล้ว มันก็สมเหตุสมผลที่มันจะอยู่ที่เดิม port ก็ไม่ได้ไปไหน(ติดลบนิดหน่อยด้วย) ท่ามกลางเศรษฐกิจอันห่วยแตก ทีตอนช่วงหุ้นขึ้นตัวเลขเศษฐกิจยังดูดีอยู่เลย พอลงปุ๊ป ดูแย่ทันที Sentiment โดยรวมคือ bearish แบบชัดเจน มีเรื่องข้าวราคาตกอีก  ข่าวตาม TV เซียนหุ้นให้ถือเงินสด 80-90% กลยุทธ์ตามโบรกเกอร์คือเล่นรอบ ขายที่แนวต้าน บวกกับการลงอย่างหนักหน่วงในวันสำคัญ เค้าขายกัน เราก็ขาย พวกเราขายกันหมดเลย ไม่รู้ใครรับไป  ขึ้นมาเป็นจุดวัดใจอีกแล้ว ไม่รู้จะเหมือนเมื่อวันที่ 30/09/2016 อีกรึเปล่า โพสปุ๊ปลงเลย  RSI ก็วิ่งอยู่แถว 50 เหมือนกัน  ดัชนีอยู่ที่เดียวกัน เพียงแต่สิ่งที่ไม่เหมือนกันของรอบนี้เทียบกับวันเดียวกันของเดือนก่อน นอกจาก sentiment แล้ว คือ หุ้นรายตัว มีราคาเหนือค่าเฉลี่ย 20 วัน อยู่เกินครึ่งตลาด (ภายในเวลา 1 เดือนเท่ากันด้วย) ไม่มีหุ้น oversold เลย(ยกเว้น SAWANG แค่ตัวเดียว) ROC เป็นบวกราวๆครึ่งหนึ่งของทั้งตลาด ในขณะที่ RSI เกินครึ่งมากกว่า 70%  ผมเลยมองว่าราคาหุ้นยังพอมี Momentum ถ้ามองในคาบเวลา 1 เดือน   แต่ข้อค้านคือ ตลาดโลกมันไม่มี upside ให้กิน ถึงมันจะไม่มี Downside ลึกๆก็ตาม

Leading ไฟเหลือง

Port ลบนิดหน่อย แต่ exposure ตั้งใจ limit ที่ 70% ของ Port พร้อมล้างทุกเมื่อ Heat รอบนี้คือ 4% ก็จะพา DD ปิดปีนี้ไปที่ ~14 %   YTD ที่ ~15%  เป้าหมายคือ อีก 2 เดือนไม่ขอ outperformance SET แล้วแต่จะเกาะ SET ไปเรื่อยๆ น่าจะไม่ยากเกินไป ปีหน้าค่อยว่ากัน


Port YTD 17.20%
SET YTD 16.81%

Momentum เดือนตุลาคม



WIN ไร้สภาพคล่อง trade กันไม่กี่ล้าน


ESSO จุดพลุ ระบบ Breakout ต้องได้กินตัวนี้ แต่ก็พอถูไถไปกลบขาดทุนตัวอื่นเท่านั้น ราคาน้ำมันโลกก็ไม่รู้จะเป็นขาขึ้นจริงรึเปล่า พี่ใหญ่ PTT ก็ถอย แต่ Vol ปล่อยก็น้อยไปหน่อย (หรือ กลุ่มนี้จะลากกันจริงๆ?.... ไม่หรอกไม่งั้น SET ก็ต้องขึ้นสิ)


EIC ถ้ามี Volume ก็น่าสนใจ

NEWS ไม่มีสภาพคล่อง


PPM เข้าระบบ กราฟสวย สภาพคล่องห่วย


SAPPE เป็นหุ้นที่มี momentum แต่ไม่แข็งเท่าไหร่ถ้าเทียบกับ SET


QTC  momentum สวย ติดแค่สภาพคล่อง อยากซื้อเต็ม Position


SUSCO เหมือนกันพวกพลังงาน


BCPG ipo ไม่นาน ทรงค่อนข้าง ok พื้นฐาน ไม่รู้


ACAP ทรงงั้นๆนะ ตอนเหวี่ยงลงลึกไปหน่อย อาจไม่ไปไหนไกลนัก


ITEL ipo เหมือนกัน หุ้น IT PE สูงมากก


TKN ok เทียบตอนที่ลงหนักๆ ตัวนี้โอเคเลย

วันพุธที่ 19 ตุลาคม พ.ศ. 2559

Price Distribution (Part 2 : Test Of Distribution)


Price Distribution (Part 2 : Test Of Distribution)


จากความเดิมตอนก่อน เราพอจะทราบคร่าวๆว่า Daily Price Change นั้นไม่ได้กระจายตัวแบบ Normal Distribution  (http://idestinyo.blogspot.com/2016/10/price-distribution-part-1-normal.html) ซึ่งสำคัญมากในการแปลผลค่าทางสถิติ โดยเฉพาะอย่างยิ่ง ความน่าจะเป็น ใน Part นี้พิสูจน์ให้เห็นภาพชัดยิ่งขึ้น นอกจากเราจะรู้ว่าการกระจายตัวของผลตอบแทนรายวันของ SET ไม่ใช่ การแจกแจงแบบปกติแล้ว เราจะรู้ขนาดความคลาดเคลื่อนด้วยว่าหากเรายังแปลผลแบบเดิม เรามีโอกาสผิดพลาดได้มากขนาดไหน ด้วยขนาดความเชื่อมั่น เราก็จะใช้สถิติเชิงอนุมาน ชนิด Non-parameter เพราะเรากำลังอนุมานข้อมูลอนุกรมเวลาดังที่กล่าวไปแล้ว  

เหมือนเดิมครับ ผมจะเล่าปัญหาก่อน ส่วนถัดไปผมก็จะพิสูจน์ และคงความเป็นคณิตศาสตร์ไว้บางส่วน แล้วเดี๋ยวจะอธิบายไว้ที่หลังนะครับ

การทดสอบข้อมูลใดๆ ว่าเป็นการแจกแจงแบบ Normal Distribution รึเปล่าเราเรียกวิธีการนี้ว่า Normality test

Normality Test นั้นมีหลายวิธีมากซึ่งก็มาจากการพิสูจน์สมมติฐานในวิชาสถิติ สามารถหาอ่านได้ในหนังสือสถิติทั่วๆไป เช่น
1) Anderson–Darling test
2) Cramér–von Mises criterion
3) Kolmogorov–Smirnov test
4) Shapiro–Wilk test
5) Pearson's Chi-squared test
และอีกมากมาย วิธีที่ง่ายที่สุดคือ Chi-squared test ไคสแควร์คำนี้น่าคุ้นหูที่สุดแล้วด้วย ตอนสมัยนิสิตแพทย์ผมเรียนปี 3 วิจัยในทางการแพทย์ก็เรียนเรื่องนี้ไปสอบ หลักการก็คือการเทียบข้อมูลของเรากับค่ามาตราฐานที่สร้างบนความน่าจะเป็น ณ ตำแหน่งข้อมูลเดียวกัน   แต่ข้อเสียมันก็คือถ้าใช้กับข้อมูลที่มีปริมาณมาก (ใน case ของเราคือ ~10000) Degree of Freedom ก็จะเยอะเกินกว่าจะมีในตาราง Chi-Squared มาตราฐาน  จริงๆก็แก้ไข้ได้ด้วยการปรับข้อมูลเป็นอันตราภาคชั้นก็ได้ พิสูจน์ได้เหมือนกัน แต่ความน่าเชื่อถือก็จะน้อยกว่าวิธีอื่น (Beta power ไม่เยอะเท่าวิธีอื่น) ส่วนวิธีที่มีความน่าเชื่อถือที่สุดในการทดสอบ Normality ก็คือ Shapiro–Wilk test (พิสูจน์ Beta power จาก MonteCarlo ในข้อมูลสุ่ม) แต่เราก็จะเจอปัญหาเดียวกันกับ Chi-Squared test  เรื่องของปริมาณข้อมูล

ในที่นี้ผมจึงใช้วิธี Kolmogorov–Smirnov test  ชนิด one-tailed test เนื่องจากเข้าใจง่ายที่สุดแล้วครับ แล้วก็วิธีทำก็ไม่ยากด้วย
(แต่ก็ไม่ต้องสนใจวิธีทำก็ได้ครับ เดียวผมจะอธิบายด้วยรูปอีกที)

Null Hypothesis ของเรายังเหมือนเดิม คือ สมมติฐานว่าการแจกแจงข้อมูลรายวันของ SET Index เป็นการแจกแจงแบบปกติที่ ค่าเฉลี่ยที่ 0.026 และ ส่วนเบี่ยงเบนมาตราฐานที่ 1.436


ให้  S(x) แทน  Cumulative Distribution Function ของข้อมูลที่เก็บได้ (ซึ่งเรายังไม่รู้ว่ามีการแจกแจงแบบใด)
วิธีพิสูจน์คือ สมมติ G(x) แทน Cumulative Distribution Function ของ Normal Distribution ซึ่งคือค่าทางทฤษฎีที่ควรจะเป็น  
แทนค่า  H0 (Null Hypothesis) : S(x) = G(x)  {  = 0.026  , SD =  1.436 }
และ       H1                              : S(x) ≠ G(x)
กำหนดระดับนัยสำคัญ alpha ที่ 0.05    ( α = 0.05)

ตัวทดสอบสถิติ Kolmogorov Smirnov statistic คือ   Dn =   supx lS(x) - G(x)l
(สูตรนี้ในภาษาคนอธิบายคือ Sup = Supremum คือ ค่าขอบเขตบนสูงสุดในเซตของ Function ดังกล่าว ในที่นี้คือค่าสมบูรณ์ของความแตกต่าง CDF ของ S(x)  และ G(x))

Critical values for the Kolmogorov-Smirnov Test for goodness of fit  =
เมื่อ  n = จำนวนข้อมูลทั้งหมด
       α = ระดับนัยยะสำคัญ ในที่นี้เรากำหนด 0.05
ปล. ที่ใช้สูตรนี้เพราะเป็นการ test แบบ one-tailed test จริงๆจะไปเปิดตาราง  Kolmogorov Smirnov Table ก็ได้ แต่สูตรนี้คือสูตรในรูปทั่วไป
ปล2. ln คือ log ฐานธรรมชาติ

ยอมรับ H0  เมื่อ Dn  <  Critical values at α 0.05 

หมดส่วนนิยามแล้วครับ มึนตึบไปเลยไหมครับ จริงๆส่วนนิยามระเบียบทางคณิตศาสตร์ นั้นไม่ได้ยากครับ ที่ทำยากคือการเตรียมข้อมูลใน Function เรามาเริ่มจากแนวคิดพื้นฐานกันก่อนครับ ถ้าเข้าใจจุดเริ่มต้นของทฤษฎีแล้ว ที่เหลือมันจะดูง่ายไปหมด  เหมือนที่เค้าพูดกันว่า คณิตศาสตร์นั้นถ้าเข้าใจแล้ว ก็ไม่ต้องท่องสูตรหรอก ลองค่อยๆคิดตามดูช้าๆนะครับ รับรองว่าไม่ยากครับ

สมมติผมเก็บข้อมูลมาชุดหนึ่ง มีการแจกแจงแบบนี้ตาม Histogram ดังรูป 



ลองคิดเล่นๆดูนะครับว่าเราจะทำยังไง ที่เราจะบอกได้ว่ามันเป็นการแจกแจงแบบใด มีการแจกแจงปกติหรือไม่  ....งั้นก็ลองวิธีง่ายๆดูสิ   ลองเอากราฟข้างบนนี้ ไปเทียบกับกราฟ Histogram ของการแจกแจงปกติดู  แล้วก็ลองทาบๆหมุนๆยืดๆดู ว่ามันเหมือนกันไหม มันทับกันพอดีไหม... พูดง่ายๆคือ เราก็สร้างกราฟการแจกแจงแบบปกติมาซ้อนทับกับข้อมูลของเราไปเลย แล้วดูว่ามันเข้าได้กับรูปของเราหรือไม่



แบบดังรูปนี้ ดูว่ามันทับสนิดกันดีหรือไม่ ในทางคณิตศาสตร์วิธีแบบนี้เราใช้คำว่า "การทดสอบภาวะสารูปสนิทดี" หรือ Goodness of fit 

ลองคิดตามต่อไปเรื่อยๆนะครับ แสดงว่าข้อมูลแต่ละ อันตราภาคชั้น (ในรูปก็คือ 1 แท่งของ Histogram) นั้น ถ้าเป็นการแจกแจงแบบปกติมันควรอยู่ตรงกันกับ แท่ง Histogram ในอุดมคติ (ในรูปก็คือเส้นสีน้ำเงิน) 

ในความเป็นจริง เราก็ต้องพยายามปรับ Parameter ให้ใกล้เคียงกับข้อมูลของเรามากที่สุด  เมื่อได้ค่าทางทฤษฎีแล้ว  มันก็จะมีบาง Histogram ที่ตรงกันกับค่าทางทฤษฎี  บาง Histogram ก็จะไม่ตรงกับค่าทางทฤษฎี  เราจะต้องเข้าใจก่อนว่า "=" ในทางสถิติ ไม่ได้หมายความว่า "เท่ากับ" เปะๆแบบสมการคณิตศาสตร์ทั่วๆไป  แต่มันมีหมายความว่า "ใช้แทนกันได้"   คำพูดที่บอกว่า "ใช้แทนกันได้" ก็คือการอนุมาน ว่าอ๋อ...ถ้าข้อมูล A ใกล้เคียงกับข้อมูล B มาก เราก็สามารถใช้ข้อมูล B แทนได้เลย ค่าที่ได้อนุมานว่า "เหมือนกัน"  

แต่เพราะมันไม่ใช้เท่ากับจริงๆ เราแค่อนุมานว่าเหมือนกัน  เราจึงต้องสร้างขอบเขตยอมรับ ว่าเรายอมให้ข้อมูลผิดพลาดได้ขนาดไหนถึงจะยอมให้ใช้แทนกันได้  เราจะยอมทิ้งข้อมูลไปบางส่วน ในที่นี้คือค่า Alpha หรือ α ถ้าหากทิ้งข้อมูลไปบางส่วนแล้วยังไม่อาจแยกข้อมูลได้ขาดจากกันได้  เราก็จะสรุปว่า "ไม่แตกต่างกันอย่างมีนัยสำคัญทางสถิติที่ α  = ค่าที่เรากำหนด"  เพราะฉะนั้นจึงอนุมานว่า "ใช้แทนกันได้ที่ความมั่นใจ 1-α"  

การกำหนดค่า alpha ที่ 0.05 หรือ 5% ก็เป็นค่ามาตราฐานที่เราใช้กัน เราก็จะมีความมั่นใจ 95% 

ทั้งหมดคือหลักการพื้นฐานครับ ทีนี้เราได้เข้าใจที่มาที่ไปแล้ว ส่วน Model ทางคณิตสาสตร์เพื่อทดสอบสมมติฐานคงจะอธิบายทั้งหมดไม่ไหว  ขนาดสมัยเรียนยังต้องเรียนเป็นเดือนเลยครับ  ให้ลองหาอ่านเพิ่มเตินในเรื่อง สถิติอนุมาน (Inferential Statistics) มีคำถาม ถามได้นะครับ ผิดถูกยังไงจะได้ช่วยกันแก้

เข้าเรื่องกัน  หลักการของ Kolmogorov–Smirnov test   (Ref: https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test)
ก็ใช้หลักการข้างตั้นทั้งหมดที่ได้อธิบายมา โดยหัวใจสำคัญอยู่ที่เราจะเปรียบเทียบ CDF (Cumulative Distribution Function) นั่นเอง ลองอ่านเพิ่มสั้นๆจาก link ก็ได้ครับ





วิธีทำ 

--> นำข้อมูลมาเรียงจากน้อยไปมาก column B 

--> สร้าง CDF จากข้อมูลของเรา (ความน่าจะเป็นสะสม) column D  แทนด้วย Function S(x)

--> สร้าง Expected Z value  column E ขั้นตอนนี้คือการสร้างข้อมูลตามทฤษฎี สำคัญมาก ถ้าเราเชื่อว่าข้อมูลเป็นการแจกแจงปกติจริง จะต้องประมาณความน่าจะเป็นได้จากสูตรมาตราฐาน โดยนำ SD กับ  มาใช้คำนวนข้อมูลมาตราฐานจากความน่าจะเป็นสะสมที่สร้างใน column D โดยนำสูตร PDF ใน Part ที่ 1 มา intregrate จะได้ CDF ดังนี้
โดยที่ p = ความน่าจะเป็น CDF ของข้อมูล x บนการแจกแจงปกติที่   = μ และ SD = σ
หรือก็คือการถอดสมการหาค่า x ในสูตรนั่นเอง 
ชื่อ Normal inverse cumulative distribution function ไม่ต้องตะลึงกับสูตรครับ ใน excel ก็มี Function ให้เราใช้แทนค่าไม่ถึง 10 วินาทีก็ได้แล้ว  หรือจะใช้ Matlab ก็ได้ ในกรณีที่ข้อมูลเราเยอะเกินกว่าที่ excel จะคำนวนได้ (Excel limit Row ที่ 1,048,576  มันจะไม่มีปัญหาถ้าใช้ข้อมูลหุ้นตัวเดียวเช่น SET ก็แค่ 10,000 ข้อมูล แต่มันมีปัญหามากตอนที่วิจัยโดยใช้ข้อมูลหุ้นทุกตัวเอาแค่ในประเทศไทยเก็บ daily price change ทั้งหมดจะได้ 4 ล้านตัว excel จะไม่สามรถทำได้แล้วครับ ต้องใช้ R ไม่ก็ Matlab ช่วย แต่ก็ต้องมี CPU กับ Ram ที่รองรับข้อมูลมหาศาลขนาดนี้ ยอมรับว่าผมไม่มีคอมใช้วิจัยที่ดีกว่า macbook air แล้วครับ ลำพังแค่เรียกดูข้อมูลก็ค้างแล้วครับ  ผมต้องสุ่มข้อมูลโดยใช้ Monte carlo แทนการใช้ข้อมูลทั้งหมดใน part ต่อๆไป ซึ่งก็คงสู้การใช้ข้อมูลดิบทั้งหมดไม่ได้ แต่ก็พออนุมานได้เป็นวิทยาทาน ถ้าผมมี  computer ดีๆ ผมก็อยากหาความจริงของ Price distribution ในเมืองไทยเหมือนกันครับ )

-->  สุดท้ายกราฟในอุดมคติที่เราเกริ่นตั้งแต่ต้น column E คือ สร้าง CDF ของการแจกแจงปกติมาตราฐาน มีคำว่า"มาตราฐาน"ด้วยนะครับ มันคือ "การแจกแจงปกติ ที่  = 0 , SD = 1" คือกราฟที่รู้จักกันทั่วโลก ที่เราชอบอนุมานว่า +-1SD จะมีควมน่าจะเป็น 68% ที่ข้อมูลจะตกอยู่ในช่วงนี้ ตัวเลขความน่าจะเป็น 68% มันก็มาจากพื้นที่ใต้กราฟของการแจกแจงปกติมาตราฐานนั่นเอง  พูดได้ว่าถ้าอยากใช้ตัวเลขนี้อ้างความน่าจะเป็น ก็ต้องพิสูจน์ให้ได้ก่อนว่าข้อมูลเราอนุมานได้จากการแจกแจงปกติ ที่เรากำลังทำกันอยู่นี้นั่นแหละครับ และคำนวนพื้นที่ใต้กราฟเพื่อมาซ้อนทับเปรียบเทียบข้อมูลของเรานั่นเอง  แทนด้วย Function G(x)

--> คำนวนตัวทดสอบสถิติใน column H  ก็ไม่มีอะไรครับ เอา Function มาลบกันเฉยๆ แล้วก็ตัดเครื่องหมายทิ้ง (ใส่ Absolute)

--> หาค่า supremum ของ column H ได้ตัวทดสอบสถิติที่เราต้องการเท่ากับ Dn = 0.091845836 (K-S test)

--> เปิดตารางหาค่าวิกฤต Critical values for the Kolmogorov-Smirnov Test for goodness of fit หรือแทนสูตร Critical values ที่แสดงไว้ในนิยามได้  เท่ากับ  0.013463057

--> เนื่องจาก   Dn  >  Critical values at α 0.05  เราจึงปฎิเสธ  H0 (Null Hypothesis) ที่ α = 0.05

--> หรือก็คือ การแจกแจงของ Daily price Change ของ SET index แตกต่างจาก การแจงแจกปกติอย่างมีนัยสำคัญที่ α = 0.05

-->หรือ การแจกแจงของ Daily price Change ของ SET index ไม่สามารถอนุมานได้ด้วยการแจกแจงแบบปกติ ที่ความมั่นใจ 95%

เราก็สรุปได้แล้วว่าการแจกแจงของการเปลี่ยนแปลง SET Index รายวันไม่ใช่ การแจกแจงปกติ เราจึงไม่สามารถนำค่า SD มาประมาณความน่าจะเป็นจากความรู้พื้นฐานของ Normal Distribution ได้

ถ้าเราจะประยุกต์ต่อยอดกับข้อมูลอื่นๆดู  ถ้าเราลองนำไปใช้กับ PE นำไปใช้กับ Moving average นำไปใช้กับ Indicator อื่นๆ และลองหา Distribution หุ้นรายตัว แม้กระทั่งลองนำมาใช้กับ portfolio ของเราดู เราจะค้นพบความลับบางอย่างของตลาดหุ้น ว่าจริงๆแล้วที่เราแปลผลกันอยู่ในปัจจุบันนั้น มันน่าเชื่อถือจริงๆรึเปล่า  ...ลองถอยกลับมาตั้งคำถามว่า "ผลลัพธ์ของข้อมูลเรานั้น เชื่อถือได้จริงๆรึเปล่า?"  ถ้า optimize ค่าที่ดีที่สุดของระบบออกมาแล้ว จริงรึเปล่า? ว่าเราสามารถอนุมานได้ว่าสิ่งที่เราค้นพบคือ parameter ที่ดีที่สุดของประชากรในอนุกรมเวลา ของตลาดหลักทรัพย์ นั่นคือคำถามที่ Quantitative ต้องการคำตอบมากที่สุด



ผมจะแสดงตัวอย่างให้ดูว่าทำไมถึงอนุมานความน่าจะเป็นไม่ได้จากการแจกแจงปกติ  เราลองนำข้อมูลมา plot กราฟดูก่อน ผมตัดค่าสูงสุดกับ ต่ำสุดของข้อมูล แค่  2 ตัวทิ้งเพื่อรูปกราฟที่สวยงาม



แกน X คือ Standard derivation  หรือ SD 
แกน Y คือ ค่าของข้อมูล
เรียงข้อมูลก่อน แล้วก็เข้าคู่กับ SD ที่อยู่บน แกน X
เส้นสีแดง คือ ข้อมูลของเราครับ
เส้นสีน้ำเงิน คือ ข้อมูลในอุดมคติ ที่สร้างจาก normal distribution นั่นเอง
วิธีแปลผลกราฟนี้คือ ถ้าข้อมูลของเราเป็นการแจกแจงปกติจริง มันจะต้องวิ่งไปล้อกันไปกับเส้นสีน้ำเงิน ที่เป็นการแจกแจงปกติ

อย่างแรก มันก็สอดคล้องกันกับการพิสูจน์ Normality test ข้างต้น เราจะสังเกตว่า ข้อมูลไปกระจุกตรงกลางเยอะ แสดงถึงความโด่งของข้อมูล และตั้งแต่ ~2SD เป็นต้นไป ข้อมูลกระจายตัวไปยังค่าสุดโต่งอย่างมาก  ความน่ากลัวมันอยู่ตรงที่ ขนาด 3SD ของกราฟมาตราฐาน ซึ่งข้อมูลจะต้องมีโอกาสเกิดขึ้นน้อยมากๆ (ตามทฤษฎีคือ 1% แบ่งไปทางบวก 0.5% และทางลบ 0.5%) พูดง่ายๆใน 10 ปี(2000วัน) มันควรจะเกิดแค่ครั้งเดียว แต่ในความเป็นจริงพวกเราที่ลงทุนมานานจะรู้สึกว่า มันคนละเรื่องเลย แค่ปีนี้ก็ไม่รู้กี่ครั้งแล้ว ยิ่งไปกว่านั้น ขนาดการเปลี่ยนแปลงลง กับขนาดการเปลี่ยนแปลงขึ้น ยังคาดการณ์ไม่ได้อีก เพราะค่าสุดโต่ง นั้นเลยค่าสุดโต่งทางทฤษฎีไปมาก  เราจะเรียกส่วนหาง(tail) ทั้ง 2 ข้าง ว่าเป็น Fat Tail

ผมอยากเตือนเพื่อนๆแบบนี้ครับ  "โอกาสที่หุ้นจะเปลี่ยนแปลงไปเกินกว่าทฤษฎีทั่วไป ทั้งในด้านขนาดการเปลี่ยนแปลง และในด้านของความน่าจะเป็นยังพบบ่อยกว่าทฤษฎีอีกด้วย" ผมไม่อยากให้นิ่งนอนใจเกินไป  ในเวลา Panic จริงๆ ต้องมีแผนเสมอ

อาจจะมีคนเถียงว่าก็แค่ตัดช่วงข้อมูลที่เกิน +-2SD ไปก็ประมาณได้ว่าเป็น Normal distribution แล้ว แต่ถ้าเป็นเช่นนั้นจะมีประโยชน์อะไรถ้าหากว่าเกิดเหตการณ์ที่เกินกว่า +-2SD  (ซึ่งเกิดบ่อย และรุนแรง)  แล้วอธิบายตามสถิติเดิมไม่ได้  แถมวันรุ่งขึ้นถ้าต้องการหาความน่าจะเป็นที่หุ้นจะดีดกลับต้องเก็บข้อมูลใหม่ เพราะเป็นเหตุการณ์ที่เงื่อนไขว่าต้องเป็นวันถัดไปและเคลื่อนที่ทิศทางตรงกันข้าม  ไว้ใน part หน้าเราจะมาดู distribution ในคาบเวลาต่างๆกัน

"ถ้าเป็นเช่นนั้น หากว่า Model ของ Normal Distribution ใช้ไม่ได้แล้ว เราจะทำอย่างไรกันต่อ?" แน่นอนครับมีคนตั้งคำถามนี้มาก่อนแล้วหลายสิบปี ก่อนตลาดหุ้นไทยจะมีซะอีก  จึงมีการคิดค้น Model ของ Distribution ใหม่ๆเพื่อมาอธิบายการเคลื่อนไหวของตลาดหลักทรัพย์มากมาย ที่ดังๆก็อย่างเช่น Cauchy distribution ที่จะอธิบายข้อมูลที่เป็น Fat-tailed distribution ซึ่งลืมสถิติที่เคยเรียนมาให้หมดเลยครับ รวมไปถึง Moment ต่างๆ ก็จะคำนวนไม่เหมือน Normal distribution (อันนี้ก็เป็นเหตุผลว่าทำไม Part 1 ผมถึงเรียกค่า SD,Skewness,kurtosis ว่า Moment เพราะ พอไม่ใช่ Normal distribution แล้ว เราก็ค่อยได้ใช้ Parameter นั้นกันแล้วครับ ถ้าจะศึกษาเรื่องนี้ก็ต้องข้ามไปที่ Engineering Statistic ซึ่งต้องมีพื้นฐาน calculus ระดับหนึ่ง แต่ผมคิดว่า Robot Trade ก็เหมือนเครื่องจักรกล ผลการ trade ก็เหมือน ผลลัพธ์ของสมการ คิดแล้วเรื่องนี้ก็มีประโยชน์ไม่น้อยสำหรับ Quantitative analysis นะครับ) --> แล้ว Model อื่น...เค้าคิดกันยังไง?  

ต้องตั้งคำถามต่อว่าเรามองเห็นอะไรในกราฟนี้บ้าง?

จริงๆเราก็หา correlation จากกราฟนี้พิสูจน์เรื่อง Normality test ได้ด้วยนะครับ แต่เราจะไม่พูดซ้ำเรื่องเดิมแล้ว ผมอยากให้มองอย่างนี้ครับ แต่ไหนแต่ไรมา เราก็ใช้ Linear Regression มาทำนายตลอด ก็คือ สมการเชิงเส้น ที่เราพูดๆใน part ก่อนๆเนี่ยแหละครับ แทบจะทุกอย่างเราอิงความน่าจะเป็นบนกราฟเส้นตรงนี้เอง แต่ความจริงอย่างที่พิสูจน์มันไม่ใช่แบบนั้น  ถ้าคนเรียน calculus ก็จะพอมองออกว่า กราฟสีแดงอันเป็นการเรียงของข้อมูลของเรานั้นหน้าตาของมันก็คล้ายสมการ Polynomial บางแบบนั่นเอง  ทำไมถึงพูดว่า"บางแบบ" เพราะ Polynomial Function ในรูปทั่วไปแสดงได้ดังนี้


นี่แค่ตัวอย่างนะครับ  แล้วยังมี Function อีกมากมายเท่าดาวบนฟ้าเลยที่หน้าตาคล้ายกับกราฟเส้นแดงๆในรูป ^ ^

ข้อมูลที่ต่างกันย่อมได้ Function ที่ต่างกัน ตัวแปร และจำนวนพจน์ก็แตกต่างกัน เราสามารถแทนค่าแล้วใช้วิธีทาง calculus สร้าง function ที่ไม่ใช่ Linear Regression ได้แล้ว และยังใช้ calculus สร้าง Probability Distribution Function ประยุกติ์ Integrate หาความน่าจะเป็นที่เราต้องการได้อีกด้วย เหมือนอย่างเช่น ท่าน  de Moivre ที่คิดค้นสมการโค้งปกติในปี 1738 คิดดูนะครับ เมื่อ 300 ปียังไม่มีเครื่องคิดเลขเลย ตอนนี้คอมพิวเตอร์ก็คำนวนแทนเราได้หมดแล้ว ไว้ถ้าว่างๆผมจะยกตัวอย่างสร้าง Function ของเราดูกันครับ น่าสนใจไหมครับ? 

หรือ อีกวิธีที่นิยมกันและง่ายกว่านั้น เพราะไม่ต้องไปยุ่งกับ Calculus มากคือวิธี Tranformation Function ก็ได้ แทนที่จะหาสมการใหม่ ก็ใส่ Function ครอบตัวแปร x ก่อน แปลงให้กลายเป็นสมการเส้นตรงอาจจะง่ายกว่าก็ได้?  แค่เราต้องลองดูเท่านั้นเองครับ 

เนื่องจากมันไม่มีวิธีตรงไปตรงมา มันต้องมโนขึ้นมาในหัวก่อนว่า จะเป็น Function นี้ได้อย่างไร สองวิธีนี้จึงเข้าใกล้ Advance Math มากกว่าสถิติ แต่ก็น่าจะตื่นเต้นไม่แพ้สถิติเลย

แล้วครั้งหน้าผมจะมาตอบคำถามว่าทำไมต้องใช้ log ในการหาอัตราการเปลี่ยนแปลงด้วย ทั้งๆที่ผลมันก็ไม่ได้ต่างอะไรมากเทียบกับใช้ Simple Change มาตราฐาน  มันมีเหตุผลทางคณิตศาสตร์ที่ใช้อธิบายด้วยความรู้ใน Part นี้  ซึ่งเราก็จะลงไปขุด Data ให้ลึกอีกขั้นหนึ่ง


วันพฤหัสบดีที่ 13 ตุลาคม พ.ศ. 2559

Price Distribution (Part 1 : Normal Distribution)

Price Distribution (Part 1 : Normal Distribution)


อยากทำเพื่อพ่อหลวงของเรา ในสิ่งที่เราถนัด ในวิชาชีพที่เราทำ วันที่เขียนบทความนี้วันที่ 14 ตุลาคม 2559 เป็นวันที่มีคนไข้เยอะมาก สิ่งที่แปลกประหลาดใจที่สุดคือ ผมรู้สึกทุกๆคนมีความรู้สึกเดียวกัน มันสัมผัสได้โดยไม่มีวาจาใด จะมีผู้ใดในโลกที่สามารถผูกใจทั้งแผ่นดินให้ 1 เดียวกันขนาดนี้ อยากจะตรัสกับท่านว่า ผมจินตนาการไม่ออกว่าประเทศไทยหากขาดท่านจะเป็นอย่างไร แต่ไม่ต้องห่วงพวกเรานะครับ ผมคนหนึ่งจะเดินตามรอยของพ่อหลวงตลอดไป เป็นหนึ่งเดียวกันให้ท่านพักผ่อนเสด็จสู่สวรรคาลัย  "I Love The King, The Spirit Of Thailand"

เดือนก่อนผมได้ไปงาน SiamQuant  ศาสตร์ทางด้านนี้เจริญงอกงามขึ้นเรื่อยๆ  แล้วผมเชื่อว่าจะมีบทความด้าน Quantitative เกิดมากขึ้นในเมืองไทย น่าติดตามอย่างยิ่ง

 เรื่องของ Price distribution จริงๆเรื่องนี้เป็นเรื่องใหญ่มาก ถ้าให้เขียนเนื้อหาทั้งหมด blog นี้ก็ไม่พอ ทำเป็นหนังสือทั้งเล่มได้เลยแค่เรื่องๆเดียว  ค่อนข้างเป็นเรื่องที่ใกล้ความเป็นคณิตศาสตร์มากกว่าลงทุนหุ้น  ต้องมีพื้นฐานทางด้านสถิติเข้ามาเกี่ยวพอสมควร  แต่นี้ก็เป็นศาสตร์ของ Quantitative analysis  ที่สำคัญที่สุด    คณิตสาสตร์นั้นถึงจะยากแต่ก็งดงาม ผมก็อยากคงความเป็นคณิตศาสตร์ไว้ บทความนี้จึงแตกเป็นหลาย Part เนื่องจากไม่อยากให้ยาวเกินไป ผมจะย่อให้มากที่สุดเท่าที่ยังพอทำความเข้าใจได้อย่างง่าย

เหมือนเคย ผมจะยกตัวอย่างปัญหาก่อนจะเข้าเรื่องนะครับ  เรามักจะได้ยินสถิติในตลาดหุ้นอยู่เสมอ  เช่น การลงของหุ้นในวันนี้ 100 จุด! จากการทดสอบย้อนหลัง  เคยเกิดขึ้นในตลาดหลักทรัพย์ XX ครั้งตลอด 20 ปี โดยส่วนใหญ่โอกาส ZZ % จะดีดกลับมา YY จุด  หรือไม่ก็ กลยุทธ์นี้มีความน่าจะเป็นที่จะกำไร 55% จากการทดสอบหุ้นทุกตัวในตลาด 20 ปี    เป็นต้น เราฟังแล้ว test ตั้ง 20 ปี ก็น่าจะเชื่อถือได้นะครับ  แต่คำถามแรกที่ Quantitative ต้องถามคือ "การกระจายตัวของข้อมูลที่ทดสอบเป็นอย่างไร"

"การกระจายตัวของข้อมูลที่ทดสอบเป็นอย่างไร"  ประโยคนี้เป็นสิ่งแรกสุดของงานวิจัยทุกเรื่องบนฐานของสถิติที่จำเป็นต้องมี   เพราะค่าสถิติเชิงพรรณนา (Descriptive statistic) จะมีความน่าเชื่อถือ เมื่อข้อมูลอยู่ภายใต้ "การแจกแจงปกติ"   และ ไม่มีความน่าเชื่อถือ เมื่อการแจกแจงมีหลายฐานนิยม

ในโลกความเป็นจริง มันใกล้ตัวเรามากกว่าที่เราคิด จนเราอาจจะลืมนึกไป เช่น ถ้าในห้องเรียนมีนักเรียน 10 คน มีค่าเฉลี่ยคะแนนคณิตศาสตร์อยู่ที่  70/100  คะแนน  เราก็แปลความว่าห้องนี้เรียนเก่งมากจริงไหมครับ  แต่ถ้าคะแนนรายคน ออกมาเป็น  100,100,100,100,100,40,40,45,45,30   เป็งยังไงครับ ค่าเฉลี่ย 70 ก็จริง แต่เราด่วนสรุปเกินไป ค่าเฉลี่ยนนั้นกลับไม่น่าเชื่อถือ    เพราะเราดูรายคน เราก็ค้นพบว่า "ข้อมูลมีการแจกแจงไม่ปกติ" เพราะมีคนทำได้เต็มครึ่งห้อง อีกครึ่งห้องตกหมด  พูดง่ายๆข้อมูลมี 2 ฐานนิยม แบบนี้ผู้บริหารโรงเรียนก็ความหาสาเหตุ ว่าเป็นที่ข้อสอบไม่ดี ครูสอนไม่เก่ง หรือเป็นที่ตัวเด็ก กันแน่  



เห็นไหมครับ "การแจกแจงไม่ปกติ" ไม่ใช่ข้อมูลไม่มีประโยชน์นะครับ แต่มันชี้ให้เราเห็นว่ามันต้องมีปัจจัยอะไรแน่ๆที่มากระทบข้อมูล ต้องหาสาเหตุ  ไม่งั้นค่าเฉลี่ยที่เราหาได้ ก็ไม่มีประโยชน์เลย หากไม่ทราบการกระจายตัวของข้อมูล

เข้ามาเรื่องหุ้น (สักที = =) ช่วงที่หุ้นตกหนัก เราก็มักวิเคราะห์กันว่าตกรุนแรงแบบนี้ เดี่ยวมันก็เด้ง เป็นไปตามสถิติ ว่าราคาหลุด 2SD เดี่ยวราคาก็กลับมาที่ค่า Mean  (แนวคิดนี้อ่านได้ในเรื่อง Bollinger Band) ที่ความน่าจะเป็น 60%   ถ้าเป็น 3SD จะมีโอกาสน้อยมากที่จะเกินไม่ถึงกี่ percent ก็ว่ากันไป   บางคนก็เห็นด้วย  บางคนก็ค้านว่าการเคลื่อนที่ของราคาหุ้นมันไม่ใช่ normal distribution นะ   เอาจริงๆมันเป็นปัญหาระดับโลกที่มีคนเห็นด้วยกับไม่เห็นด้วยอยู่แล้วในเรื่องนี้ เพราะทั้งโลกใบนี้ก็พิสูจน์กันเรื่อยมา ในเรื่องของ "Random Walk"  ลองไปอ่านเพิ่มกันดูนะครับ

มีหลายทฤษฎีที่พยายามอธิบาย แต่ผมอยากให้เข้าใจตรงกันก่อน ว่าราคาหุ้นเป็นข้อมูลอนุกรมเวลา หมายความว่าข้อมูลในอดีตทั้งหมดในเวลานี้ จะกี่ร้อยปีก็ตาม มันเป็นเพียง Sample เล็กๆ ในจักรวาลของเวลา เช่น ตลาดหุ้นไทย 30 ปี ก็เป็นเศษของข้อมูลของตลาดอเมริกา แล้ว 100 ปีของตลาดอเมริกาก็เป็นเศษเสี้ยวของปริมาณข้อมูลในอีก 1000 ปีถัดไป (ถ้าเราอยู่กันถึงนะ)  เพราะฉะนั้นมันไม่มีทางเป็น Population ของข้อมูลทั้งหมด มันเป็นเพียงเศษเสี้ยวของ Sample ที่เราหยิบขึ้นมาเท่านั้น เพราะฉะนั้น ผลของตัวเลขต่างๆอาจจะจริงหรือไม่จริงก็ได้  แต่สามารถอนุมานได้ทางสถิติ ซึ่งก็คือ ความน่าจะเป็น อันเป็นหัวใจสำคัญที่สุดของ Quantitative analysis

เรามาพิสูจน์กันก่อนใน Part นี้ ผมจะทำให้เข้าใจง่ายที่สุด  เราจะเริ่มจาก SET index  

สมมติฐาน  : เราเชื่อว่า การเปลี่ยนแปลงของดัชนี (index change) ในคาบเวลาที่กำหนด มีการกระจายตัวแบบปกติ
(แล้วเราจะต้องพิสูจน์เพื่อค้านสมมติฐานนี้)

นิยาม ตัวแปร index change เราจะคำนวน Close price To Close price (เอาเฉพาะราคาปิด) จากสูตร ln(ClosePrice/PreviousClosePrice) x 100 ค่าที่ได้จะเป็น percent การเปลี่ยนแปลง  ไว้ผมจะมาพูดที่หลังนะครับว่าทำไมถึงใช้สูตรนี้แทนการคำนวนแบบ simple change ทั่วๆไป(   (ClosePrice - PreviousClosePrice)/PreviousClosePrice  x 100  ) ผลลัพท์ของ 2 สูตรนี้แตกต่างกันน้อยมากถ้าดูรายตัวของข้อมูล  แต่ขอให้เชื่อตามผมไปก่อน เข้าใจ part นี้แล้ว ใน Part หน้าผมจะแสดงให้ดูว่ามันมี Impact มากขนาดไหนเมื่อพิจารณารวมข้อมูลทั้งหมด (เปรียบเหมือน Butterfly Effect)
ปล. ln คือ log ฐานธรรมชาติ e

นิยาม ตัวแปร คาบเวลา  อันนี้ผมจะเลือกการเปลี่ยนแปลง 1 วัน มาวัดอัตราการเปลี่ยนแปลงของ SET index  ก็คือ SET index เปลี่ยนแปลงไปกี่ percent เมื่อเทียบราคาปิดวันนี้กับราคาปิดของเมื่อวาน

เริ่มดึงข้อมูลตั้งแต่มีการบันทึกข้อมูล SET ในตลาดหลักทรัพย์ เท่าที่ผมหาได้ ตั้งแต่ 1975 นะครับ



แล้วก็ใส่สูตรไล่ไปเรื่อยๆ 



เราจะได้ข้อมูลทั้งหมด เป็น percent การเปลี่ยนแปลงทั้งหมด กลุ่มละ 10,000 ค่า
(บทความนี้เขียนตั้งแต่เดือนที่แล้ว แต่คอมฯ macbook air มัน error หลายรอบมาก กว่าจะทำเสร็จ เลยล่าช้าเพราะเหตุนี้)

เริ่มจากกลุ่มแรก 1 Day change (ไว้จะอธิบายกลุ่มอื่นๆที่หลัง) อัตราการเปลี่ยนแปลงของ SET index รายวัน

ผมก็เอาข้อมูลมาเรียง  แล้วขึ้น Histogram แบ่ง 60 อันตาภาคชั้น ให้เห็นภาพดังในรูป
แกน Y คือ ปริมาณข้อมูลในแต่ละอันตาภาคชั้น
แกน X คือ ค่าของข้อมูล Index change ของ 1 วัน
ผมตัดค่า outlier ที่ 5% (ที่เลือกค่านี้เพราะผมว่ามันดู critical ในชีวิตจริง ถ้า SET ที่ 1500 ตกไป 5% หมายกว่าว่า Close วันนี้ปิดตลาดตก 75 จุด และเพื่อรูปกราฟที่มองง่าย ซึ่งผมจะค่อยๆอธิบายต่อไป)
เส้นกั้นกลาง คือ ค่า 0 % ไม่ใช่ค่าเฉลี่ย Mean นะครับ

มองคร่าวๆแล้วเป็นอย่างไรบ้างครับ  -- มันก็ดูเป็นการแจกแจงปกตินี่  คำนวนค่า Mean ได้ 0.0236 % แสดงว่าส่วนใหญ่แล้ว SET มีการเปลี่ยนแปลงแค่ 0.0236% ต่อวันเอง  คำนวนค่า SD หรือ Standard Deviation ได้ 1.436   แสดงว่า SET เบ้ออกจากจุดศูนย์กลาง +-1 SD = +-1.436    คำนวนความน่าจะเป็นที่ SET จะเปลี่ยนแปลงแค่ +-1SD  ที่ 68% คำนวนตามสถิติเชิงพรรณนา Descriptive Statistic ได้ดังนี้




 เอาแค่นี้ก่อน  ... เราอย่าพึ่งด่วนสรุป! เหมือนที่ผมได้อธิบายไว้ข้างต้นเรื่องค่าเฉลี่ยคะแนนสอบ เราจะต้องดูก่อนว่าข้อมูลมีการแจกแจงแบบใด  --> แต่นี่ก็สร้าง Histogram แล้วนี่ ได้กราฟที่หน้าตาเหมือนการแจกแจงปกติด้วย  มันก็อนุโลมให้เป็นการแจกแจงปกติได้

จริงๆคำพูดว่า "เหมือน"  เราก็ต้องกำหนดให้ชัดก่อนว่าเหมือนอย่างไร --> ก็...ข้อมูลที่เห็นก็ไม่ได้เบ้ซ้าย หรือเบ้ขวา เหมือนในบทความก่อนๆ แล้วยังมีฐานนิยมเดียวด้วย ทำไมจะเป็นการแจกแจงแบบปกติไม่ได้หละ -->  จริงอยู่ที่กราฟไม่เบ้ให้เราเห็นจนยอมรับไม่ได้  แต่แบบนี้ก็ยังพูดไม่ได้เต็มปากว่า ข้อมูลไม่เบ้ = การแจกแจงแบบปกติ  เราจะสรุปได้เพียงข้อมูลมีความสมมาตรซ้ายและขวาจากค่ากลาง

อ่าว แล้ว.... ทำไมข้อมูลฐานนิยมเดียวที่สมมาตราซ้ายและขวา จึงยังไม่ใช่ Normal distribution?

คำตอบของคำถามนี้  เราต้องย้อนกลับไปเริ่มต้นที่คุณสมบัติของ การแจกแจงแบบปกติทั่วไป ในสมัยที่เรียนตอน ม.ปลายกันเลยครับ คนที่คิดค้นสมการโค้งปกติคนแรกคือ de Moivre เผยแพร่ตั้งแต่ปี 1738  เป็นสูตร  Probability density of the normal distribution ดังนี้
(ref: https://en.wikipedia.org/wiki/Normal_distribution#Moments)



แต่ไม่ต้องท่องสูตรก็ได้ครับ แค่แทนค่าในสูตรก็จะได้ กราฟความหนาแน่นของความน่าจะเป็นของการแจกแจงแบบปกติ ดังนี้



Probability Density Function ย่อว่า PDF แสดงค่าของตัวแปรในแกน X และความน่าจะเป็น ณ ตำแหน่งข้อมูลในแกน Y รวมพื้นที่ใต้กราฟได้ 1.0 (สัดส่วนความน่าจะเป็น)


Cumulative Distribution Function ย่อว่า CDF เป็น กราฟเมื่อสักครู่นี้ แต่แกน Y คือผลรวมความน่าจะเป็นจากข้อมูลซ้ายไปขวา ค่าสูงสุดคือ 1.0

ซึ่งจะได้คุณสมบัติของ  Normal distribution ดังนี้



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

ทีนี้เราสามารถเปรียบเทียบค่ามาตราฐานกับข้อมูลของเราได้แล้ว เดิมทีวิธีการสร้าง Histogram เป็นวิธีพื้นฐานที่สุดในการพิสูจน์การแจกแจงเป็นปกติหรือไม่  แต่น่าเชื่อถือน้อยที่สุด เพราะอาศัยแค่ตาดูคร่าวๆว่าทรงกราฟน่าจะใช่   วิธีถัดมาก็ก็เป็นการเทียบกับค่า parameter มาตราฐาน ซึ่งเป็นวิธีที่เรียนในสถิติ ม.ปลายครับ

1) mean = median = mode  ซึ่งข้อนี้ผมเห็นด้วย ข้อมูลของเรา คือ 0.026 ~0.00~0.02  ซึ่งมันก็โอเคยอมรับได้
2) ข้อมูลมีฐานนิยมเดียว (Unimodal) มียอดสูงสุดที่ตำแหน่ง Mean เห็นชัดเจนว่าข้อมูลของเรามียอดสูงสุดของปริมาณข้อมูลแค่ยอดเดียว แล้วก็ใกล้เคียงค่า Mean
3) ข้อมูลมีความสมมาตรซ้ายและขวา ดูจาก Mean Median Mode ว่าค่าต้องเป็นค่าเดียวกัน หรือใกล้เคียงกันอย่างมาก(ตรงนี้ก็ไม่มีข้อกำหนดอย่างชัดเจนว่าต้องใกล้ขนาดไหน) หรือดูค่า Skewness (ความเบ้) ก็ได้  ควรจะมีค่าเข้าใกล้ 0  ซึ่งก็ยอมรับได้ (วิธีการจริงๆเราจะต้องคำนวน Standard error แล้วประเมิน p-value  แต่ค่า -0.107 ก็ยอมว่าสมมาตรแล้วหละครับ)
4) ข้อนี้แหละครับที่เป็นปัญหาอยู่จนปัจจุบัน แล้วดันเป็นข้อที่สำคัญที่สุด  คือ เวลาขยายช่วงค่า x ออกมาจากแกนกลาง พื้นที่ใต้กราฟต้องประมาณได้จาก Function สูตรข้างต้น  เช่น ขยายช่วงค่า x ออกมาจากแกนกลางข้างละ 1 SD จะกินพื้นที่ประมาณ = 68%  ผมจะพิสูจน์วิธีสากลของ Normality Test ในตอนถัดไป ซึ่งต้องใช้ สถิติเชิงอนุมาน แต่ในตอนนี้เราสามารถพิจารณาทางอ้อมได้จาก Moment วิธีนี้ง่ายที่สุด ถูกเขียนไว้ในหนังสือ  Statistical Models in Engineering ของ Hahn and Shapiro

ก่อนอื่น เราต้องรู้จัก Moment ในทางสถิติก่อน นึกถึงแกนหมุนในวิชาฟิสิกส์ 

Moment ที่ 1 คือ ค่าเฉลี่ยนระยะห่างจากค่ากลางกำลัง 2 ก็คือค่า Variance (ความแปรปรวน) นั่นเอง ค่าที่ได้ไม่มีวันเป็นลบ ถอดรากที่ 2 ได้ระยะห่างจากค่ากลาง หรือว่า Standard deviation  เราย่อว่า SD หรือเรียกว่า Sigma นั่นเอง เหมือนวัดระยะห่างยากแกนหมุน  





Moment ที่ 2 คือ ให้นึกถึง Moment ที่ 1 เรายกกำลัง 2 แต่ Moment ที่ 2 เราจะยกกำลัง 3 ของระยะห่างจากค่ากลางเราจะได้ค่า บวก/ลบ กลับคืนมาแต่ข้อมูลที่มีค่ามาก เมื่อยกกำลัง 3 แล้ว ค่าจะกระโดดไปไกลจากค่ากลางมาก ตั้งชื้อให้ว่า Skewness (ความเบ้)  แสดงว่าถ้าข้อมูลไม่สมมาตรจริง ค่าเป็นบวกที่มากเกินไปพอยกกำลัง 3 แล้วจะกระโดดไปไกลทางบวกอย่างมาก บวกกันแล้วก็จะได้ค่าเป็น บวก จึงแปลผลได้ว่าข้อมูลนี้ เบ้ไปทางบวก หรือ เบ้ไปทางขวา หรือ Positive Skewness ในทางกลับกันค่าเป็นลบที่มากเกินไปพอยกกำลัง 3 แล้วจะกระโดดไปไกลทางลบอย่างมาก บวกกันแล้วก็จะได้ค่าเป็น ลบ จึงแปลผลได้ว่าข้อมูลนี้ เบ้ไปทางลบ หรือ เบ้ไปทางซ้าย หรือ Negative Skewness ให้ลองนึงถึงแรงกดบนแกนหมุนด้านไหนมีแรงมากกว่าก็จะกดให้ คานเอียงไปด้านนั้น บ้างจึงใช้คำว่า ข้อมูลเอียงไปทางบวก หรือลบ ก็มี


ใน Normal distributio ค่า Skewness = 0  เราพิจารณาไปแล้ว 

Moment ที่ 3 คือ นึกถึง Moment ที่ 1 แต่ยกกำลัง 4 ของระยะห่างจากค่ากลาง เราให้ชื่อว่า Kurtosis (ความโด่ง)  ค่าที่ได้จะไม่มีวันติดลบอีกรอบ  แต่เนื่องจากต้องหารด้วย moment ที่ 1  ยกกำลัง 2 (Sigma ยกกำลัง 4) ซึ่งมีผลต่อค่าข้อมูลที่มีค่ามากๆ ก็จะโดนหารเยอะ ค่า Moment ที่ 3 ก็จะน้อยลง  แปลได้ว่า ข้อมูลแบนราบ หรือ Negative Kurtosis กลับกันถ้าค่าที่กระจุกอยู่รอบค่าเฉลี่ยเยอะ จะทำให้ Moment ที่ 1 มีค่าน้อย ส่วนหารน้อย ค่า Moment ที่ 3 ก็จะมากขึ้น  แปลได้ว่า ข้อมูลโด่ง หรือ Positive Kurtosis 



สูตรนี้ถูกปรับแล้ว ชื่อ Excess Kurtosis เนื่องจาก ปกติ Kurtosis ของ Normal distribution จะมีค่า = 3 
แต่เนื่องจากค่ากลางเป็น 3 ดูจำยาก พอจะเทียบทีก็ต้องเอา 3 ไปลบ จะได้ดูง่ายขึ้น ก็เลยมีการปรับสูตร เรียกว่า Excess Kurtosis  โดยจะมีค่ากลาง ที่ 0
ซึ่งใน Excel ก็จะคำนวนค่า Kurtosis เป็น Excess Kurtosis เป็นมาตราฐานอยู่แล้ว ไม่ต้องไปลบด้วย 3 อีก


ก่อนจบบทความนี้ Kurtosis (Ex.Kurtosis) ที่เราวัดได้ = 8.97 ! (เทียบกับ Normal distribution K ควรมีค่า = 0)  เป็นค่าที่ Extreme มากๆ หรือข้อมูลมีความโด่งแบบสุดโต่ง หมายความว่า  SET นัวเนียอยู่แถว 0 เท่านั้นในสภาวะทั่วๆไป  เวลาเราวาด Histogram ทำให้เราพลาดภาพใหญ่ไป หน้าตาดูเหมือน Normal Distribution เนื่องจากเราไม่เห็นค่า extreme ที่บวกเกินไป กับลบเกินไป  ถ้าเราวาดใหม่ให้โชว์ทุกอันตราภาคชั้น...



เราจะเห็นแค่อันตราภาคชั้นรอบๆค่า Mean เท่านั้น แล้วอยู่ดีๆ ก็หายไปอย่างรวดเร็ว มันไม่ได้หายไปไหนครับ แต่มันมองเทียบกับค่าสุดโต่งนั่นเอง  ทำให้เราไม่สามารถแทนค่า SD แล้วหาความน่าจะเป็นของพื้นที่ใต้กราฟได้อย่างแม่นยำดังที่นิยามไว้   หรือพูดได้ว่า ความน่าจะเป็นที่หาได้จาก PDF of Normal Distribution ในกรณีนี้ไม่มีความแม่นยำ 

เพราะฉะนั้น ภาวะปกติ SET จะไม่เคลื่อนที่ไปไหนไกลมากนัก แต่ภาวะที่ไม่ปกติ SET จะเปลี่ยนแปลงไปมากกว่าที่คาดคิดไว้นั่นเอง

ตอนนี้เราพอทราบคร่าวๆแล้วว่า การแจกแจงของการเปลี่ยนแปลงรายวันของ SET ไม่ใช่ Normal Distribution 

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

ตอนต่อไปจึงจะเป็นวิธีทางสถิติเชิงอนุมาน ในส่วนของ Normality Test  ซึ่งสามารถแสดงภาพให้เห็นได้อย่างชัดเจนยิ่งขึ้น และวิธีการประยุกติ์ใช้ข้อมูลดังกล่าว


King Bhumibol Adulyadej - 13 October 2016 -



...In Memory...
5 December 1927  -  13 October 2016

King Bhumibol Adulyadej


พระบาทสมเด็จพระปรมินทรมหาภูมิพลอดุลยเดช มหิตลาธิเบศรรามาธิบดี จักรีนฤบดินทร สยามินทราธิรา บรมนาถบพิตร



(Ref:https://en.wikipedia.org/wiki/Bhumibol_Adulyadej)

วันอาทิตย์ที่ 2 ตุลาคม พ.ศ. 2559

09/09/2016 - 30/09/2016 ปิดเดือน SEP "risk ไม่คุ้ม reward"





SET ดูไม่ดีเลยหลังจากขึ้นมาให้ใจชื้นตั้งแต่ต้นปี ....ตบเดือนเดียว อะไรๆก็ดูแย่ไปหมด ยังอยู่ในช่วง Sideway ถ้ามี New Low ก็คงรอกันยาวๆ RSI ลงมาเลี้ยงล่างถ้าไม่ตัด 50 ขึ้นมาก็มีแนวโน้มลงมากกว่าขึ้น อันที่จริง SET เราก็ขึ้นมา Trade กันที่ PE สูงมากๆแล้ว ขนาดใน TV ยังหยิบเรื่องนี้มาพูดเลย (อันที่จริงก็มีคนพูดมาตั้งแต่ต้นปีเลยนะ)


ref: https://www.set.or.th/th/market/market_statistics.html

อันนี้เป็นสถิติ PE รายเดือนตั้งแต่ 2518 ถึง ปัจจุบัน ค่าเฉลี่ย PE อยู่ที่ประมาณ 18 (เส้นสีเขียว) และเส้นสีเหลือคือ +- 1SD  และเส้นสีส้มคือ +- 2SD   SET เราเคย trade กันเกิน 2SD อยู่แค่ 3 ครั้งในประวัติศาสตร์  เด่นๆก็ตอนสงคราม วิกฤตต้มยำกุ้ง และ วิกฤตแฮมเบอร์เกอร์  แต่ตอนนั้นภาคธุรกิจจริงก็แต่งตั้งชื่อให้ได้จำกัน   แต่วันนี้มันถึงขั้นนั้นหรือยัง? จะมีชื่อให้มันเร็วๆนี้มัน ถ้ามันลงยาวๆ ดูแนวโน้มแบบนี้แล้ว Upside มันช่าง Limit อย่างยิ่ง มีอยู่ 2 ทางเท่านั้นที่ SET เราจะได้ไปต่อกัน คือ 
   1) เศรษฐกิจจะต้องมี Earning ที่วิ่งตามดัชนีให้ทัน --> ก็ต้องลองคิดดูว่าอนาคตบริษัทไทยเราทั้ง 700 ตัว จะดัน Earning เพื่อกด PE เราให้กลับมาสู่ภาวะปกติได้รึเปล่า
   2) สร้างประวัติศาสตร์ใหม่ไปเลย ทุกคนพร้อมใจกัน Trade ที่มากกว่า PE+2SD เป็นเรื่องปกติ เนื่องจากเงินเฟ้อล้นโลก --> ถ้าพึ่ง FundFlow เราก็ไม่ต้องสนใจ PE ในอดีตมากนัก เอาแค่เทียบกับประเทศรอบข้างเรา แล้วเราเนื้อหอมกว่าก็พอ ยังไงเงินก็ไม่มีวันหยุดอยู่กับที่

Leading system ไฟแดง แผนคือ Limit Exposure ไม่เกิน 30% + งด Pyramid 
จริงๆค่า Maximum ของ Exposure 30%  มันมาอย่างนี้ครับ ตอนปกติระบบที่ Backtest มาช่วงขาลงยังไงก็ขาดทุนมากกว่าได้ แล้ว Drawdown มันมักลึกขึ้นเรื่อยๆในขาลง จนมาสุดที่ค่าๆหนึ่งซึ่งก็จะกลายเป็น Maximum DD ในช่วงเวลานั้น แต่ปัญหาคือเราไม่มีวันรู้ว่ามันจะไปหยุดเมื่อไหร่ พระเจ้าเท่านั้นที่รู้ และผมไม่เอาอีกแล้ว Fully System  แต่ก็ไม่อยากหยุด System ไปเลยเสียทีเดียว  ผมก็สมมติไปเลยถ้าหากเรา run system เสมือนว่ามันเหลือเงินแค่ 30% ของ Port และซื้อขาย 30% ของ Position ที่ควรซื้อ ทีนี้สถิติ"จำนวน"กำไร/ขาดทุนใน Port จะไม่เปลี่ยนแปลง แต่"ขนาด"กำไร/ขาดทุน น้อยลง   ก็น่าจะทำให้ DD ไม่ลึกเท่า Fully System

==> ถ้าเทียบกับไพ่โปกเกอร์(Poker) คือ ในเมื่อหน้าไพ่เรารู้อยู่แล้วว่า Risk ไม่คุ้ม Reward ที่จะเสี่ยง มีทางเลือกที่ฉลาดในการ Bet ครั้งนี้ก็คือ ไม่หมอบไพ่ไปเลย(หยุดเล่น) ก็ Bet ให้มันน้อยลง  ทีนี้เราจะเลือกอะไรก็แล้วแต่คนจะเสี่ยงครับ ในเกม Poker ก็ต้องเสี่ยงเหมือนกัน เพราะความเสี่ยงที่ใหญ่ที่สุดในเกมนี้คือ "อนาคต"  เราไม่รู้ว่าอนาคตไพ่ที่หมอบอยู่มันเข้าข้างเราหรือไม่   ในกรณีของผมก็แค่เสี่ยงเท่าที่เราจะได้ดูไพ่ใบต่อไป แต่ก็ bet ให้น้อย เพื่อที่เราพลาดจะได้มีสิทธิ์เริ่มจั่วไพ่กันใหม่ในรอบหน้า ดีกว่าลุกออกจากโต๊ะเป็นไหนๆ





Port YTD 17.31%
SET YTD 15.15%
ช่วงนี้ exposure ราวๆ 20% ไม่มีหุ้น winning เลย ทุกตัว คิดว่าคงรอให้ผ่านพ้นช่วงที่ลำบากนี้ไปก่อน ค่อยคิดกันอีกรอบ สรุปแล้ว 2 ปียังไม่กลับไปจุดสูงสุดเดิมเลย แค่ YTD พอไปวัดไปวาได้เฉยๆ แต่ Equity ตั้งแต่ตน MaxDD ตั้งเกือบ 40% จะเอากลับมาได้ก็ต้องทำกำไร 67% เพื่อกลับมาเท่าทุน ตอนนี้ยัง DD ~10% ต้องทำอีก  ~10 % ทรงแบบนี้ก็น่าจะปีหน้า Drawdown period 3 ปี! 
ปล. ยังไม่ได้เปิดดู Robot แต่น่าจะคล้ายๆกัน ไว้สิ้นปีค่อยดู ไม่อยากกวน


Momentum 


ไม่มีตัวไหนอยู่ในสายตาเลย ต้องไปขุดกันดู