วิธีคำนวณ ROA ในเว็บ SET

14. August 2010

เพิ่งอ่านหนังสือเล่มแรกจบใน Kindle ไปได้ไม่นาน (The Little Book that beats the market) หนังสือมันสอนวิธีกรองหุ้นง่ายๆโดยใช้ reuturn on capital + earning yield แต่วิธีที่หนังสือมันใช้คำนวณสองค่านี่มันต้องใช้ค่าดิบๆบางอย่างจากงบการเงิน ซึ่งหามายากพอควร ( .. แปลว่า automate ไม่ได้ ..) ผมเลยลองมาดูๆค่าที่ใช้แทนได้ใกล้เคียงที่สุดแทนและมีบนเว็บ SET คือ ROA (return on assets - ผลกำไรต่อสินทรัพย์) และ ROE (return on equity - ผลกำไรต่อส่วนผู้ถือหุ้น)

 

ค่าสองตัวนี้ควรจะหาได้ง่ายๆ Wikipedia กล่าวว่า

ROA_FORM

แต่ทำไปทำมาปรากฎว่าคำนวณแล้วไม่เห็นจะตรงกับที่เขียนไว้ในเว็บเลยว่ะ ….’’ นั่งงงอยู่นาน

FS

จากรูป ถ้าจะหา ROA ปี 2009 (ปี 2010 ยังได้ข้อมูลไม่ครบ เด๋วจะงง) จะได้ 10190.22 / 115698.28 = 8.8076 %  … ไม่เห็นจะตรงกับ 13.33 % เลยอ้ะ

ถามอากู๋คนเดิมได้ความจากกระทู้ในพันทิบว่า SET มันใช้วิธีคำนวณคนละวิธี ใช้เป็น ROAA (return on average assets) แทน

ROAA = EBIT of nth year  / (0.5 * (NET assets n-1th year + NET assets nth year))

ตัวย่อแปลกๆในข้อความนี้อีกตัวคือ EBIT (Earnings before interest and taxes) ซึ่งเป็นกำไรแบบที่ยังไม่ได้คิดดอกเบี้ยเงินกู้กับภาษี ถ้าดูจากตารางข้างบนจะเห็น กำไร/ขาดทุน = 10,190.22 ล้านบาท แต่ถ้าไปเปิดงบกำไรขาดทุนละเอียดดูแล้วจะได้ EBIT = 14,878.46 ล้านบาท

INCOME

สุดท้ายเอาไปคำนวณ 14878.46 / ((115698.28 + 107510.00) / 2) ~ 13.3 % ตรงแล้ว

วันนี้แมงเม่าหนุ่มจึงอ่านงบการเงินเป็นมากขึ้นพอสมควรหลังจาก trade มานานเกือบปีแล้ว จดไว้นิดนึงเผื่อมีคนงงเหมือนกัน

หลักๆ หนังสือเล่มที่อ่านมันสอนให้ดูค่าพวกนี้เพื่อบอกว่าหุ้นตัวไหนน่าซื้อแบบ relative เค้าบอกว่าการทำนายอนาคตหรือราคาที่เหมาะสมนี่มันไม่ใช่เรื่องที่ใครๆก็จะทำได้ง่ายๆ แล้วหุ้นที่ undervalued แบบที่ Ben Graham เจ้าพ่อ VI ชอบซื้อปัจจุบันมันก็ไม่ได้เจอได้ง่ายขนาดนั้นอีกแล้ว ดังนั้นเรามาดูข้อมูลปีล่าสุดกันดีกว่า … ใครสนใจลองหาไปอ่านกันดู

General , , , ,

Correlation ในราคาหุ้น

13. June 2010

ช่วงนี้สนใจเรื่องแนวๆ quantitative มากเป็นพิเศษ อ่านไปเรื่อยๆก็สนุกดี แต่บางทีก็อดรู้สึกไม่ได้ว่านี่เอาเวลามาทำอะไรอยู่ฟะเนี่ย -*- ยิ่งทำๆไปแล้วยังไม่เห็นผลลัพธ์ที่จับต้องได้นี่ มันจะเริ่มหงุดหงิดๆ 555+

Correlation นี่มันเป็นความสัมพันธ์เชิงสถิติระหว่างข้อมูล (ในที่นี่ก็หมายถึงพวกราคานั่นแหละ) ซึ่งบางทีการที่ข้อมูลสองชุดมัน correlate กัน ก็ อาจจะ แปลว่ามีความสัมพันธ์อะไรบางอย่างอยู่เบื้องหลังก็ได้

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

ใน Excel มีฟังก์ชันสะดวกๆให้ใช้ชื่อ CORREL ส่วนใน Python เข้าใจว่าใน SciPy ก็มีเหมือนกัน แต่บางครั้งคนเราควร Reinvent the Wheel บ้าง เพื่อความบันเทิง :P

Pearson

วิธีการตีความผลลัพธ์คือ

  • ถ้าได้ค่าใกล้ 1 มาก แปลว่ามันขึ้นลงพร้อมๆกันมากๆ (correlate)
  • ถ้าได้ค่าใกล้ 0 แปลว่ามันแทบจะไม่ correlate กันเลย
  • ถ้าได้ค่าใกล้ 1 มาก แปลว่ามันจะขึ้นลงกลับกันมากๆ (correlate)
def corr(series1, series2):
"""Calculate Pearson's product-moment coefficient

More info: http://en.wikipedia.org/wiki/Correlation_and_dependence#Pearson.27s_product-moment_coefficient

"
""
if len(series1) != len(series2):
raise Exception((series1, series2), 'Lengths of series are not equal')

n = len(series1)
sum_x = sum(series1)
sum_y = sum(series2)
sum_sqx = sum(a*a for a in series1)
sum_sqy = sum(a*a for a in series2)
sum_xy = sum(map(lambda s: s[0] * s[1], zip(series1, series2)))

import math
res = (n*sum_xy - sum_x*sum_y)/(math.sqrt(n*sum_sqx - sum_x*sum_x)*math.sqrt(n*sum_sqy - sum_y*sum_y))

return res

ตัวอย่างที่ค่อนข้าง obvious:

  • [1,2,3] กับ [3,4,5] ได้ 1.0
  • [1,2,3] กับ [-3,-4,-5] ได้ -1.0

ลองเอามาทดสอบกับราคาหุ้นดู ช่วงนี้ผมมีฐานข้อมูลราคาเป็นของตัวเองแล้ว (จากการไป pull ข้อมูลมาจากเว็บสาธารณะ) เก็บใส่ mongdb ไว้ ใช้คู่กับ Python สะดวกโยธินมาก (เอาเวลาตอนไหนไปทำวะเนี่ย)

ทดสอบกับ data 500 วันล่าสุด

  • CPF กับ CPALL = 0.96  -- ขึ้นลงตามกันโคดๆๆ .. แน่ล่ะ
  • CPF กับ TUF = 0.94 -- อาหารเหมือนกันมั้ง
  • BBL กับ KBANK = 0.94 -- กลุ่มธนาคารเหมือนกัน
  • PS กับ QH = 0.89 -- อันนี้อยู่ใน sector อสังหาเหมือนกัน
  • DTAC กับ ADVANC = 0.74 -- ไม่เยอะอย่างที่คิด
  • CPN กับ CPF = 0.37 -- ห้างเซ็นทรัล กับ อาหาร
  • CPF กับ CAWOW = –0.68 – ไก่ ลง ฟิตเนส ขึ้น ??
  • TRC กับ PS = -0.11 -- ไม่ค่อยเกี่ยวกันเท่าไหร่ …
  • ..

พวก quant ตัวเทพเค้าบอกว่า จริงๆ correlation ไม่ค่อยมีประโยชน์กับการ trade เท่าไหร่ ที่มีประโยชน์คือ cointegration เป็นคุณสมบติอีกแบบที่บอกว่า series สองอันมันจะแตกต่างกันได้บ้างเป็นบางเวลา แต่สุดท้ายแล้วต้องกับมาขึ้นลงคู่กันอีกรอบ คุณสมบัตินี้ทำให้เอาไปใช้ทำ pair trading ได้

สรุปว่าถ้าลองทำกับทุกคู่ในตลาด (ประมาณ 500 ตัว) น่าจะพอเห็นอะไรบ้าง … ไว้เวลาเอื้ออำนวยอีกรอบละกัน :)

ช่วงนี้ความสนใจเยอะจัด สับสนมาก เลือกทำไม่ถูก - -‘ อย่างนึงที่ทำก็คือไล่อ่านบลอกของไอดอลคนใหม่อยู่ (Max Dama) ใครสนใจเรื่องพวก automated trading ต้องลองเข้าไปดู มีอะไรให้เก็บเกี่ยวเยอะแน่นอน

General , ,