fbpx

เจอหุ้นราคาติดลบครับ

SiamQuant Minimal Home – White Webboard ห้องโปร : Professional Membership Support เจอหุ้นราคาติดลบครับ

  • ผู้สร้าง
    กระทู้
  • #9940
    nonpang
    Participant

    หุ้น TCJ และ RANCH

    ทำไมมีช่วงที่ราคาติดลบด้วยครับ เกิดจากอะไร

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

    เจออีกอย่างนึงครับ

    หุ้น AIFT ช่วงปี 1999 เดือน 6 มีช่วงนึงที่สองแท่งห่างกันราว 20 วัน แต่ยังอยู่ใน ALLDATASTOCK เป็นแท่งที่ราคาขึ้นมา 1500 เปอเซนครับ

    เลยลองเอา DataRestriction มากรอง explore ดู ปรากฎว่ามันยังผ่านเข้ามาได้อีกอ่ะครับ

    ทั้งๆที่ควรจะโดน NoRehabExit = Days – Ref( Days, -1 ) <= 5; คัดออกไปแล้ว ฝากเช็คด้วยครับ

    #9947
    satapornk
    Keymaster

    ขอบคุณครับ รับเรื่องแล้วนะครับ เดี๋ยวขอเวลาตรวจสอบข้อมูลก่อนนะครับ 🙂

    #9977
    SiamQuant Team
    Keymaster

    สวัสดีครับ

    สำหรับในกรณีที่ราคาหุ้นติดลบนั้น ทางทีมงานขอชี้แจงดังนี้ครับ

    ราคาที่มีหุ้นที่มีราคาต่ำกว่า 0 นั้นจะเป็นราคาที่ถูกปรับราคา (Adjusted Price) จากการมีเงินปันผลเป็นเงินสดออกมาจากบริษัทจดทะเบียน

    ในกรณีตัวอย่างหุ้น TCJ และ RANCH เกิดจากการที่หุ้นถูกห้ามซื้อขายและในระหว่างที่หุ้นถูกห้ามซื้อขายอยู่นั้น บริษัทฯ มีการจ่ายปันผลเป็นเงินสดออกมามากกว่าราคาหุ้น ณ เวลาก่อนที่ถูกห้ามซื้อขาย จึงทำให้การปรับราคาจากเงินปันผลนั้นย้อนกลับไปในอตีตทำให้เกิดราคาต่ำกว่า 0 และติดลบ ซึ่งผลตอบแทนที่ได้จากเงินปันผลส่วนนนั้นถูกนำไปปรับราคาหุ้นในอดีต เพื่อจะสะท้อนผลตอบแทนที่เราได้รับจากการลงทุนในหุ้นที่แท้จริงมากที่สุดครับ

    ขอบคุณครับ

    #9985
    nonpang
    Participant

    แล้วเรื่อง AIFT ละครับ งงคับ

    #9993
    BlueStepz
    Participant

    [quote quote=9945]เจออีกอย่างนึงครับ หุ้น AIFT ช่วงปี 1999 เดือน 6 มีช่วงนึงที่สองแท่งห่างกันราว 20 วัน แต่ยังอยู่ใน ALLDATASTOCK เป็นแท่งที่ราคาขึ้นมา 1500 เปอเซนครับ เลยลองเอา DataRestriction มากรอง explore ดู ปรากฎว่ามันยังผ่านเข้ามาได้อีกอ่ะครับ ทั้งๆที่ควรจะโดน NoRehabExit = Days – Ref( Days, -1 ) <= 5; คัดออกไปแล้ว ฝากเช็คด้วยครับ [/quote]

    สวัสดีครับคุณ nonpang

    สำหรับเรื่องนี้ทางทีมงานขออธิบายแยกเป็น 2 ประเด็นดังนี้ครับ

     

    1. เรื่องของกลุ่ม Watchlist ALLSTOCK กับ BADDATASTOCK

    หุ้นที่อยู่ในกลุ่ม Watchlist : ALLSTOCK คือ รายชื่อ Symbol ทุกตัวในฐานข้อมูลที่ไม่มีตัวอักษร 3 แบบนี้คือ “^”, “~” และ “SQ”

    ซึ่งเป็นวิธีการกรอง Symbol ที่เป็นพวก Index หรือ Symbol พิเศษอย่าง xxx-SQ1, 2,..,5 ทิ้งไปให้เหลือแต่รายชื่อหุ้นที่มีทั้งหมดจริงๆ

    ดังนั้นหุ้นทุกตัวในกลุ่ม BADDATASTOCK ก็จะมีรายชื่ออยู่ในกลุ่ม ALLSTOCK ด้วยเช่นกัน

    เสมือน BADDATASTOCK เป็นเซ็ตย่อย (subset) ของ ALLSTOCK นั่นเองครับ

    ตัวอย่างเช่น หุ้น UNI จะพบว่ามีรายชื่ออยู่ทั้ง 2 กลุ่ม เป็นต้น

     

    2. เรื่องของตัวแปร DataRestriction

    DataRestriction เป็นตัวแปรที่ทางทีมงานสร้างขึ้นมา เป็นข้อจำกัดเบื้องต้นในการเข้าซื้อหุ้น (Entry)

    เพื่อป้องกันสัญญาณซื้อที่เกิดขึ้นจากความผิดปกติของข้อมูล โดยเฉพาะข้อมูลในอดีตที่ย้อนหลังไปมากๆ

    ซึ่งอาจจะเกิดจากระบบการจัดเก็บข้อมูลสมัยก่อน ของทางผู้ให้บริการข้อมูลยังไม่ทันสมัยเท่าปัจจุบัน

    http://www.set.or.th/th/products/trading/equity/trading_p1.html

    โดยจะประกอบด้วยเงื่อนไข

    – AllStock คือ ต้องเป็นหุ้นที่อยู่ใน Watchlist ALLSTOCK

    – NoBadDataStock คือ ต้องเป็นหุ้นที่ไม่อยู่ใน Watchlist BADDATASTOCK

    – No0SET คือ ต้องไม่ใช่หุ้น 0SET (เป็นหุ้นเทียมที่มีข้อมูลเลียนแบบ SET Index ที่ทางทีมงานสร้างขึ้นเพื่อใช้กับคำสั่ง Status( “stocknum” ) ในบางระบบ)

    – NoErrorData คือ ราคาปิดหารด้วยราคาเปิดของหุ้นในแต่ละวัน ต้องมีค่าไม่เกิน 2 เท่า

    – NoBreakCeiling คือ ค่าสัมบูรณ์ (absolute) ของการเปลี่ยนแปลงของราคาปิดแท่งวันนี้เมื่อเทียบกับราคาปิดแท่งเมื่อวาน ต้องมีค่าไม่เกิน 35%

    – NoRehabExit คือ ต้องเป็นหุ้นที่มีระยะเวลาการหยุดซื้อขายน้อยกว่าหรือเท่ากับ 5 วันปฏิทิน (calendar day)

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

    ซึ่งค่าพารามิเตอร์เริ่มต้น (Default) ที่ทีมงานสร้างขึ้นมานั้น จะเป็นค่าพื้นฐานโดยทั่วไปเพื่อใช้ในกรณีศึกษาในเบื้องต้นครับ

     

    มุมตอบคำถามครับ :D

    สำหรับหุ้น AIFT ข้อมูลวันที่ 1999-06-22 (YMD) จากภาพกราฟพบว่าข้อมูล 2 แท่งที่ติดกัน

    มีจำนวนวันที่หยุดซื้อขาย (DaysGap) ห่างกันเท่ากับ 21 วันปฏิทิน

    และมีการเปลี่ยนเปลงของราคาปิดวันนี้เมื่อเทียบกับราคาปิดเมื่อวานเท่ากับ 1,525% จริงครับ

     

    Q1 : แต่ทำไมยังอยู่ในกลุ่ม ALLSTOCK ?

    A1 : เพราะกลุ่ม ALLSTOCK เป็นกลุ่มที่มีชื่อหุ้นทุกตัวที่เคยมีในตลาดที่อยู่ในฐานข้อมูล แต่จะไม่รวม Symbol Index หรือ -SQ ต่างๆ

    ดังนั้นข้อมูลข้างในจะเป็นอย่างไรก็ตาม ขอแค่เป็น Symbol เป็นชื่อหุ้นก็จะถูกจัดให้อยู่ในกลุ่มนี้ครับ

     

    AIFT_NoRehabExit

     

    Q2 : ลองเอา DataRestriction มากรอง explore ดูปรากฎว่ามันยังผ่านเข้ามาได้อีกอ่ะครับ

    ทั้งๆที่ควรจะโดน NoRehabExit = Days – Ref( Days, -1 ) <= 5; คัดออกไปแล้ว?

    A2 : ทางทีมงานได้ลอง Explore ค่า DataRestriction รวมถึงเงื่อนไขทั้งหมดของหุ้น AIFT ในแต่ละวันออกมาพบว่า

    ข้อมูลวันที่ 1999-06-22 (YMD) ไม่ผ่าน DataRestriction นะครับ โดยให้ค่า DataRestriction=0

    และให้ค่าแยกตามเงื่อนไขต่างๆดังนี้ครับ

    – AllStock=1 คือ หุ้น AIFT อยู่ใน Watchlist ALLSTOCK (จริง)

    – NoBadDataStock=1 คือ หุ้น AIFT ไม่อยู่ใน Watchlist BADDATASTOCK (จริง)

    – No0SET=1 คือ หุ้น AIFT ไม่ใช่หุ้น 0SET (จริง)

    – NoErrorData=1 คือ วันที่ 1999-06-22 ราคาปิดหารด้วยราคาเปิดของหุ้น AIFT { 82.6956/53.0100=1.56 } มีค่าไม่เกิน 2 เท่า (จริง)

    – NoBreakCeiling=0 คือ ค่าสัมบูรณ์ของการเปลี่ยนแปลงของราคาปิดแท่งวันนี้ 1999-06-22

    เมื่อเทียบกับราคาปิดแท่งเมื่อวาน 1999-06-01 { |((82.6956/5.0890)-1)*100|=1,525% } ต้องมีค่าไม่เกิน 35% (ไม่จริง เพราะ 1,525% > 35%)

    – NoRehabExit คือ ต้องเป็นหุ้นที่มีระยะเวลาการหยุดซื้อขายน้อยกว่าหรือเท่ากับ 5 วันปฏิทิน (ไม่จริง เพราะ DaysGap=21 วัน > 5 วัน)

     

    ดังนั้นจะเห็นว่าที่ DataRestriction ไม่ผ่าน  เนื่องจากค่า NoBreakCeiling และ NoRehabExit ไม่เป็นไปตามเงื่อนไขที่เรากำหนดนั่นเองครับ

    ขอบคุณครับ

    #9996
    BlueStepz
    Participant

    เพิ่มเติมครับ

    ทางทีมงานได้เขียน AFL เพื่อใช้ Plot กราฟและ Explore ค่า DataRestriction ออกมาเพื่อใช้ในการตรวจสอบ

    เลยอยากนำมาแชร์ให้ทุกคนด้วยครับ เผื่อใครอยากลองเอาไปตรวจสอบเองที่บ้านหรือนำไปศึกษาต่อยอดก็ยิ่งดีเลยครับ

     

    Download >> AFL_Check_DataRestriction

    โฟล์เดอร์ข้างในประกอบด้วย

    1. ไฟล์ Plot Simple Price.afl ไว้สำหรับ Plot ราคาหุ้นอย่างง่ายเหมือนในภาพที่ 1 Pane ด้านบน

    2. ไฟล์ Plot Check Rehab.afl ไว้สำหรับ Plot เช็คเงื่อนไขที่เกี่ยวกับระยะเวลาการหยุดซื้อขายของหุ้น (Rehabilitation)

    3. ไฟล์ Explore DataRestriction.afl ไว้สำหรับเช็คค่าต่างๆของตัวแปร DataRestriction ของหุ้นในแต่ละวัน

    อย่าลืมเลือก Range ในหน้า Analysis ให้เป็น “All quotes” ก่อนกดปุ่ม Explore ด้วยนะครับ

     

    สุดท้ายใครเอาโค้ดกลับบ้านไปศึกษา ติดปัญหาตรงไหนหรือมีไอเดียอะไรต่อยอด

    ก็สามารถเอามาฝากเอามาแชร์ได้เลยนะครับ ไม่ต้องกลัวว่าจะโค้ดไม่สวยโค้ดผิดนะครับ (ยิ่งผิดเยอะยิ่งเรียนรู้เยอะยิ่งเก่งเร็วครับ)

    เชื่อว่าทีมงานและเพื่อนๆพี่ๆน้องๆในบอร์ดพร้อมที่จะแชร์และช่วยเหลือแน่นอนครับ

    หากบางครั้งตอบช้าไปหน่อยก็ต้องขออภัยด้วยนะครับ

    เพราะบางเรื่องบางประเด็นทางทีมงานอาจจะต้องใช้เวลาในการปรึกษาหาข้อสรุปกัน

    เพื่อให้ได้คำตอบที่เหมาะสมและดีที่สุดสำหรับทุกคนจริงๆครับ

     

    ขอบคุณมากครับ 😀

    #9998
    zimmy
    Participant

    ทีมงานขยันมากครับ ตีสี่ยังมาตอบคำถาม สุดยอดครับ

    #10014
    nonpang
    Participant

    ขอบคุณทีมงานมากๆสำหรับข้อมูลด้วยครับ

    คือผมลองแบบนี้อ่ะครับ มันก้ยังเข้ามาได้อยู่นะ ไม่รู้ว่าผมยังเข้าใจอะไรผิดหรือเปล่าครับ

    ผม filter = DataRestriction ไป

    หุ้นที่จะขึ้นมาถ้า explore ก็ต้องเป็นหุ้นที่ผ่านกฎ ถูกมั้ยครับ เพราะ and no… ทั้งหลายไปแล้ว พวก BBL PTT อะไรก้ผ่านเข้ามาครับ

    ไม่แน่ใจว่าผมทำอะไรพลาดไปมั้ย ฝากดูหน่อยครับ

     

     

     

    #10023
    BlueStepz
    Participant

    สวัสดีครับคุณ nonpang

    เรื่อง DataRestriction คุณ nonpang เข้าใจถูกต้องแล้ว

    ถ้าเขียนคำสั่ง Filter = DataRestriction จะได้รายชื่อหุ้นที่ผ่านเงื่อนไขที่กำหนดไว้ในแต่ละวันออกมา

    แต่ในกรณีที่มีหุ้น AIFT ข้อมูลวันที่ 2002-08-14 (YMD) เข้ามา

    อาจจะเป็นเพราะการกด Explore โดยเลือก Range เป็น 1 recent bar(s) หรือ 1 recent day(s)

    ซึ่ง Amibroker จะเข้าใจว่าเราต้องการ วันล่าสุดหรือแท่งล่าสุดที่มีข้อมูล นั่นเองครับ

    ดังนั้นถ้าเราต้องการให้ Explore เฉพาะของวันนี้จริงๆ

    ให้เลือก Range เป็น From-To dates จากวันที่ 2016-04-05 ถึง 2016-04-05 เป็นวันเดียวกันครับ

     

    Range_Different

    ทางทีมงานได้ทำภาพประกอบเปรียบเทียบให้เห็นความแตกต่าง

    ระหว่างการ Explore แบบ 1 recent day(s) (ซ้ายมือ) กับแบบ From-To dates (ขวามือ)

    ซึ่งจะเห็นว่าการ Explore แบบ 1 recent day(s) จะได้หุ้นวันล่าสุดที่มีข้อมูล

    เช่นหุ้น AIFT วันล่าสุดที่มีข้อมูลคือวันที่ 2002-08-14 (YMD) แต่ไม่ใช่วันที่ 2016-04-05 (YMD) ที่เราต้องการนั่นเองครับ

    ขอบคุณครับ 😀

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