fbpx

SQPE()

  • ผู้สร้าง
    กระทู้
  • #16110
    punpunhome
    Participant

    สอบถามเกี่ยวกับการคำนวณ P/E ของ SiamQuant เพื่อความเข้าใจในการทำ Backtest ในประเด็นดังต่อไปนี้

    1. ผมตรวจสอบ P/E ย้อนหลัง ณ สิ้นปี 2016 จาก SETTRADE.COM เปรียบเทียบกับ SQPE() กับหุ้นต่างๆโดยสุ่มหลายๆตัว พบว่าผลตรงกันเป๊ะ! ในแง่หนึ่งก็รู้สึกดีมากๆว่าข้อมูลถูกต้องน่าเชื่อถือ

    แต่มาคิดดูในรายละเอียดว่า การประกาศงบนั้น ทางบริษัทต่างๆจะไม่ได้ประกาศ ณ วันสิ้นปีหรือวันปีใหม่ แต่จะล่าช้าออกไปนานทีเดียว แต่ SQPE() กลับรู้ Earning ที่ประกาศ ตั้งแต่วันสิ้นปี (เฉพาะปีที่ผ่านมานานเลยวันประกาศงบแล้ว)

    1.1 การทำ Backtest โดยใช้ SQPE()  มันมีผลอย่างมากกับบริษัทที่พื้นฐานเปลี่ยน ข้ามขอบเขตที่ Trading System กำหนด ซึ่งน่าจะมีอยู่ไม่น้อยถ้าระยะการเทรดยาวนาน และมันเป็นจุดสำคัญมากๆที่จะทำให้เกิดกำไรตอนทดสอบออกมาดีกว่าความเป็นจริงมากๆๆๆ เปรียบเหมือน Insider Trade เลย รู้ข้อมูลทางการเงินที่ละเอียดก่อนเจ้าของบริษัทอีก! แต่ตอนซื้อขายจริงไม่สามารถทำได้เช่นนั้น ไม่แน่ใจว่าที่ผมเข้าใจนั้นถูกต้องหรือไม่? แล้วจะเชื่อมั่นใช้ระบบได้ยังไง?

    1.2 ผมเพิ่งใช้ SiamQuant V3 ได้เพียงไม่กี่วัน ไม่ทราบว่าจะมี Function ไหนที่จะได้ข้อมูล P/E หรือข้อมูล Fundamental ตามวัน/เวลา ที่ได้รับข้อมูลจริง ไม่ใช่การปรับข้อมูลย้อนหลัง บ้างหรือไม่? ถึงแม้ข้อมูลจะล่าช้า (เช่น ต้องใช้ Earning ของ Q ก่อนตอนยังไม่ประกาศงบ) แต่ก็ตรงกับความเป็นจริงที่สาธารณชนรับรู้ ซึ่งเป็นหัวใจของการ Backtest รู้ว่าระบบจะเป็นอย่างไรก่อนใช้งานจริง

    1.3 ถ้าไม่มีทางเลี่ยงตาม 1.2 แล้ว ขอคำแนะนำในการประยุกต์ใช้ข้อมูล SQPE() ให้ได้ประโยชน์ (ถ้ามี)  เพื่อเป็นแนวทางในการใช้ข้อมูล Fundamental อื่นๆต่อไป

    2. Earning ที่ใช้ในการคำนวณ P/E เป็นแบบไหน? ใช้ฟังก์ชั่นไหนเรียกจึงจะได้ Earning (SQEPS_xxx()?) ที่เป็นตัวหาร?

    ขอบคุณครับ

กำลังดู 5 ข้อความตอบกลับ - 1 ผ่านทาง 5 (ของทั้งหมด 5)
  • ผู้เขียน
    ข้อความตอบกลับ
  • #16116

    สวัสดีครับ คุณ punpunhome ในส่วนประเด็นของค่า PE Ratio นั้นผมขอชี้แจงดังนี้ครับ

    ค่า PE Ratio เป็นอัตราส่วนที่เรารับจากตลาดโดยตรง ซึ่งเราไม่ได้ทำการปรับข้อมูลย้อนหลังแต่อย่างใดครับ

    โดยส่วนประเด็นที่คุณ punpunhome กังวลว่าอาจเกิดกรณี Look-Ahead Bias ขึ้นนั้น ต้องเรียนอย่างนี้ครับเนื่องจากข้อมูล Fundamental ของเรานั้นจะมีการทำ Time Stamp ณ วันที่บริษัทยื่นข้อมูลให้กับทางตลาดหลักทรัพย์ อย่างไรก็ดี ในบางกรณีข้อมูล Time-Stamp อาจล่าช้าจากความเป็นจริงอยู่ที่ประมาณ 2 ถึง 3 วันครับ เนื่องจากทางตลาดหลักทรัพย์บันทึกข้อมูลล่าช้าในช่วงงบออกนั่นเองครับ

    ดังนั้น ไม่เพียงแต่ Look-Ahead Bias แล้วก็ยังอาจมีเดลย์บ้างนานๆทีครับ

    อีกประเด็นคือ เรื่องของการคำนวณอัตราส่วน P/E ratio นั้น ซึ่งทางตลาดหลักทรัพย์จะคำนวณจาก P/E Ratio = ( ราคาปิดของหุ้นสามัญ * [(จํานวนหุ้นสามัญ + จํานวนหุ้นบุริมสิทธิ) – จํานวนหุ้นซื้อคืน)] ) / กำไรงวด 12 เดือนล่าสุด (อ้างถึงใน ข้อมูลค่าสถิติของตลาดหลักทรัพย์แห่งประเทศไทย หน้า 4 ครับ )

    โดยแปลงเป็นโค้ดได้ดังนี้ครับ PE = ( C * SQLS() ) / SQNP_Roll();

    หมายเหตุที่ 1 : SQLS() = Listed shares หมายถึง จำนวนหลักทรัพย์ที่จดทะเบียนในปัจจุบัน

    หมายเหตุที่ 2 : SQNP_Roll() = กำไรสุทธิย้อนหลัง 12 เดือน

    #16120

    ผมอยากเล่าว่าจริงๆแล้วข้อมูล SiamQuant Hybrid Database ถูกสร้างขึ้นมาเพื่อจุดประสงค์ในการใช้งานด้าน Quantitative Trading โดยเฉพาะ เนื่องจากแต่ก่อนถ้าเราจะพยายามหาข้อมูลพื้นฐานมาใช้นั้นก็มักจะได้เพียงแต่อ้างอิงจากวันปิดงบ ซึ่งไม่ตรงกับความเป็นจริงของเหตุการณ์นั้นๆและจะทำให้ผลวิจัยคลาดเคลื่อนได้อย่างมหาศาล (ผมเคยเห็นหลายคนวิจัยกลยุทธ์การลงทุนพื้นฐานด้วยการสมมติว่างบไตรมาสนั้นประกาศในวันสุดท้ายของไตรมาสนั้น ซึ่งทำให้ผลดูดีเว่อร์เกินจริงไปมาก)

    ดังนั้น เรื่องการ Time-Stamp ข้อมูลพื้นฐานกับเวลาที่งบออกนั้นเป็นสิ่งหนึ่งที่เป็น Requirement แรกในการสร้างฐานข้อมูลชุดนี้ขึ้นมา เราจึงได้ทำการจับคู่ให้การเปลี่ยนแปลงของงบการเงินนั้นตรงกับวันที่บริษัทและตลาดหลักทรัพย์ได้มีการประกาศออกมาจริงๆแทนครับ ซึ่งผลลัพท์ที่เกิดขึ้นในแง่ของ Time-Stamp ก็คือข้อมูลตรงกับวันประกาศ หรืออาจมีล่าช้าออกไปบ้างจากการที่ตลาดบันทึกข้อมูลลงมาช้า (ส่วนใหญ่ไม่เกิน 1-2 วัน ซึ่งตรงนี้เราไม่สามารถทำอะไรได้แล้วครับ เพราะเป็นความล่าช้าจากการบึนทึกข้อมูลแบบ End-of-Day ของทาง SET เช่นงบออกบ่ายแก่ๆหรือเย็นๆวันที่ 10 ข้อมูลมันก็จะไปเปลี่ยนในวันที่ 11 แทน ซึ่งหากเราไปเปลี่ยนก็ไม่แน่ใจว่าจะถูกต้องหรือปล่าวอีกครับ)

    สำหรับวิธีหนึ่งในการตรวจสอบวันประกาศงบกำไรขาดทุนของหุ้นแต่ละตัวนั้นสามารถใช้ฟังค์ชั่น SQQE() ทดสอบดูได้นะครับ เช่นการ Explore ตามสูตรนี้ดู

    Filter = SQQE() != Ref(SQQE(),-1);
    AddColumn(SQQE(),”Quarter of EPS”,1.2);

    หมายเหตุ : สำหรับงบกำไรขาดทุนใช้ SQQE() แต่ถ้าเป็นงบดุลและงบกระแสเงินสดใช้ SQQM() เนื่องจากในบางครั้งงบกำไรขาดทุนมันมาไม่ตรงกับงบอื่นๆครับ

    โดยตัวอย่างด้านล่างคือวันที่มีการเปลี่ยนแปลงงบกำไรขาดทุนของหุ้น PTT ซึ่งจะเมื่อตรวจสอบงบไตรมาสสุดท้ายจะพบว่าข้อมูลข่าวใน set.or.th. นั้นประกาศงบการเงินไตรมาสที่ 3/2560 (สอบทานแล้ว) ในวันที่ 13 พ.ย. 2560 เวลา 18:33 น. แต่เมื่อเราตรวจสอบจากฐานข้อมูลจะพบว่าข้อมูล EPS มีการเปลี่ยนแปลงในวันที่ 14 แทนครับผม

    หวังว่าจะมีประโยชน์นะครับ 😀

    SQQE-PTT-2017-Q3-Check

    #16121
    punpunhome
    Participant

    ก่อนอื่นขอขอบคุณ และประทับใจมากที่ช่วยตอบอย่างรวดเร็วแม้เป็นวันเสาร์ก็ตาม ทั้งคุณ Thanadon Praphutikul และคุณ มด

    ผมพยายามอ่านทำความเข้าใจกับคำตอบที่ทั้งสองท่านช่วยตอบ ในส่วนของความล่าช้า 2-3 วันในการบันทึกข้อมูลของตลาดหลักทรัพย์นั้น น่าจะพอหาทางทดสอบได้โดยใช้ Ref ย้อนหลังไป 2 วันแล้วทดสอบครั้งหนึ่งนำมาเปรียบเทียบกับย้อนไป 3 วัน ถ้าผลมีแนวโน้มเดียวกันไม่ต่างกันมากนักก็หาข้อสรุปได้ว่าระบบมันใช้งานได้ ถ้าต่างกันมากก็ยังมีข้อสงสัยในระบบ

    ในส่วนของคุณมดที่ยกตัวอย่าง SQQE() มานั้น ผมยังไปไม่เป็นเลยว่ามันจะใช้กับ P/E ยังไง ขอตัวอย่างตรงๆได้ไหมครับ ดังที่เรียนว่าผมยังเพิ่งเริ่มต้นใช้งาน SQ กว่าจะเข้าใจจนพัฒนาเองได้คงต้องใช้เวลาอีกพอสมควร แต่ผมค่อนข้างใจร้อนอยากทดสอบระบบเร็วๆ โดยผมอ่านบทความ ระบบ SPTS จาก http://www.siamquant.com/watchara-kaewsawang-spts-trading-system/  แล้วทึ่งใน Net Profit เป็นอย่างมาก แต่ก็ไม่มีระบบตัวอย่างให้ดู จึงลองมั่วเขียนคำสั่งเองตามเงื่อนไขในบทความ โดยค่า P/E และ EPS YoY ผมใช้คำสั่งแบบตรงไปตรงมาตัวอย่างเช่น

    GoodStock=SQPE() <20 AND SQEPS_YoY() >0;

    เพื่อเป็นตัวกรองหุ้นในสัญญาณซื้อ แล้วลอง Backtest ดู ผลก็ได้ Net Profit สูงคล้ายๆในบทความ แต่ก็มีข้อสงสัยตามคำถามที่เรียนถามไปก่อนหน้าว่ามันใช้ข้อมูลล่วงหน้า

     

    จึงรบกวนขอตัวอย่าง code จากบทความ SPTS (ถ้าเป็นไปได้) หรือตัวอย่างในการเรียกใช้เฉพาะ SQPE(), SQEPS_YoY() ที่ไม่มี Look Ahead Bias ขอบคุณล่วงหน้าครับ

    #16125

    สูตรระบบเสี่ยงป๋องนั้นทาง SiamQuant ต้องขออภัยที่ไม่สามารถแจกสูตรระบบเต็มๆได้นะครับ เนื่องจากเป็นมารยาทที่เราไม่อยากนำแนวคิดที่เราได้จากการเข้าสัมภาษณ์เสี่ยป๋องมาทำเป็น Commercial ของเราเอง อย่างไรก็ตามผมสามารถแนะนำได้ครับว่าแก่นแนวคิดการลงทุนและระบบ SPTS โดยหลักการแล้วคือ Momentum Growth Investing โดยหัวใจอยู่ที่การ Long-Term Trend Breakout + EPS Growth ครับ ซึ่งหากเขียนเป็นสูตรจะสามารถเขียน Entry ในส่วนนี้ได้คือ

    Cross( H, Ref(HHV(H,250),-1) ) AND SQEPS_YoY() > 0;

    โดยสำหรับเรื่องของสูตรที่เขียนแล้วจะไม่ Look Ahead ก็สามารถเขียนสูตรอย่างที่คุณ PunPunHome ว่ามาเลยครับ ซึ่งสาเหตุที่ทำให้ไม่เกิดการ Look Ahead ก็เพราะ Raw Database ของ SiamQuant รวมถึง Function ที่ใช้ทำการคำนวณเกี่ยวกับข้อมูลพื้นฐานเพิ่มเติมของเรานั้นจะไม่มีการ Look Ahead อยุ่แล้ว ถ้ามีก็อาจจะมีว่าล่าช้า Delay ไปสัก 1-2 วันจากการที่ทางตลาดบันทึกข้อมูลล่าช้ามาตั้งแต่ต้นทาง ซึ่งแทบไม่มีความแตกต่างในกรณีที่นำมาใช้เป็น Filter แบบนี้ แต่หากนำไปใช้เป็น Event Trigger Signal เลยก็อาจต้องลองพิจารณาเป็นระบบๆไปว่าแตกต่างกันมากน้อยแค่ไหนอีกทีครับ (แต่เอาจริงๆระบบที่ใช้ Fundamental Data เป็น Signal เลยมักมี Holding Period ระยะยาวอยู่แล้ว มันเลยไม่ค่อยแตกต่างอยู่ดี นอกจากนี้ในมุมของคนทำระบบนั้น ถ้า Holding Period ยาวนาน แต่ Sensitive กับการ Delay ของข้อมูลแค่ 1-2 วันแบบนี้เราก็อาจพิจารณาไม่นำมาใช้อยู่แล้วเช่นกันเพราะเปราะบางเกินไปครับ)

    หมายเหตุ : ผลตอบแทนที่แสดงออกไปนั้นเกิดจากเงื่อนไขตามสมมติฐานที่ตั้งไว้ในการทดสอบ อย่าลืมปรับเงื่อนไขให้เข้ากับขนาดพอร์ทและข้อจำกัดในการลงทุนต่างๆของเราด้วยนะครับ 😀

    หมายเหตุ 2 : หากอยากได้ตัวอย่างสูตรเกี่ยวกับการใช้ Technical + Fundamental ลองดูสูตร SQ System 009 ซึ่งเป็นสูตร Original CANSLIM ดูนะครับ น่าจะพอเห็นภาพและทำให้ายห่วงเรื่อง Look Ahead ไปได้ครับผม

    #16166
    punpunhome
    Participant

    ขอบคุณครับ

กำลังดู 5 ข้อความตอบกลับ - 1 ผ่านทาง 5 (ของทั้งหมด 5)
  • คุณต้องเข้าสู่ระบบเพื่อตอบกลับกระทู้นี้

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • เปิดใช้งานตลอด

บันทึกการตั้งค่า