SiamQuant Minimal Home – White › Webboard › ห้องโปร : Professional Membership Support › เจอหุ้นราคาติดลบครับ
- This topic has 9 ข้อความตอบกลับ, 5 เสียง, and was last updated 6 years, 2 months มาแล้ว by
BlueStepz.
-
ผู้สร้างกระทู้
-
มีนาคม 29, 2016 เวลา 12:24 pm #9940
nonpang
Participantหุ้น TCJ และ RANCH
ทำไมมีช่วงที่ราคาติดลบด้วยครับ เกิดจากอะไร
-
ผู้สร้างกระทู้
-
ผู้เขียนข้อความตอบกลับ
-
มีนาคม 29, 2016 เวลา 3:22 pm #9945
nonpang
Participantเจออีกอย่างนึงครับ
หุ้น AIFT ช่วงปี 1999 เดือน 6 มีช่วงนึงที่สองแท่งห่างกันราว 20 วัน แต่ยังอยู่ใน ALLDATASTOCK เป็นแท่งที่ราคาขึ้นมา 1500 เปอเซนครับ
เลยลองเอา DataRestriction มากรอง explore ดู ปรากฎว่ามันยังผ่านเข้ามาได้อีกอ่ะครับ
ทั้งๆที่ควรจะโดน NoRehabExit = Days – Ref( Days, -1 ) <= 5; คัดออกไปแล้ว ฝากเช็คด้วยครับ
มีนาคม 30, 2016 เวลา 7:17 am #9947satapornk
Participantขอบคุณครับ รับเรื่องแล้วนะครับ เดี๋ยวขอเวลาตรวจสอบข้อมูลก่อนนะครับ 🙂
เมษายน 4, 2016 เวลา 6:01 pm #9977SiamQuant Team
Keymasterสวัสดีครับ
สำหรับในกรณีที่ราคาหุ้นติดลบนั้น ทางทีมงานขอชี้แจงดังนี้ครับ
ราคาที่มีหุ้นที่มีราคาต่ำกว่า 0 นั้นจะเป็นราคาที่ถูกปรับราคา (Adjusted Price) จากการมีเงินปันผลเป็นเงินสดออกมาจากบริษัทจดทะเบียน
ในกรณีตัวอย่างหุ้น TCJ และ RANCH เกิดจากการที่หุ้นถูกห้ามซื้อขายและในระหว่างที่หุ้นถูกห้ามซื้อขายอยู่นั้น บริษัทฯ มีการจ่ายปันผลเป็นเงินสดออกมามากกว่าราคาหุ้น ณ เวลาก่อนที่ถูกห้ามซื้อขาย จึงทำให้การปรับราคาจากเงินปันผลนั้นย้อนกลับไปในอตีตทำให้เกิดราคาต่ำกว่า 0 และติดลบ ซึ่งผลตอบแทนที่ได้จากเงินปันผลส่วนนนั้นถูกนำไปปรับราคาหุ้นในอดีต เพื่อจะสะท้อนผลตอบแทนที่เราได้รับจากการลงทุนในหุ้นที่แท้จริงมากที่สุดครับ
ขอบคุณครับ
เมษายน 5, 2016 เวลา 11:00 am #9985nonpang
Participantแล้วเรื่อง AIFT ละครับ งงคับ
เมษายน 6, 2016 เวลา 3:33 am #9993BlueStepz
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 เป็นชื่อหุ้นก็จะถูกจัดให้อยู่ในกลุ่มนี้ครับ
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 ไม่เป็นไปตามเงื่อนไขที่เรากำหนดนั่นเองครับ
ขอบคุณครับ
เมษายน 6, 2016 เวลา 4:25 am #9996BlueStepz
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 ด้วยนะครับ
สุดท้ายใครเอาโค้ดกลับบ้านไปศึกษา ติดปัญหาตรงไหนหรือมีไอเดียอะไรต่อยอด
ก็สามารถเอามาฝากเอามาแชร์ได้เลยนะครับ ไม่ต้องกลัวว่าจะโค้ดไม่สวยโค้ดผิดนะครับ (ยิ่งผิดเยอะยิ่งเรียนรู้เยอะยิ่งเก่งเร็วครับ)
เชื่อว่าทีมงานและเพื่อนๆพี่ๆน้องๆในบอร์ดพร้อมที่จะแชร์และช่วยเหลือแน่นอนครับ
หากบางครั้งตอบช้าไปหน่อยก็ต้องขออภัยด้วยนะครับ
เพราะบางเรื่องบางประเด็นทางทีมงานอาจจะต้องใช้เวลาในการปรึกษาหาข้อสรุปกัน
เพื่อให้ได้คำตอบที่เหมาะสมและดีที่สุดสำหรับทุกคนจริงๆครับ
ขอบคุณมากครับ 😀
เมษายน 6, 2016 เวลา 10:05 am #9998zimmy
Participantทีมงานขยันมากครับ ตีสี่ยังมาตอบคำถาม สุดยอดครับ
เมษายน 7, 2016 เวลา 10:19 am #10014nonpang
Participantขอบคุณทีมงานมากๆสำหรับข้อมูลด้วยครับ
คือผมลองแบบนี้อ่ะครับ มันก้ยังเข้ามาได้อยู่นะ ไม่รู้ว่าผมยังเข้าใจอะไรผิดหรือเปล่าครับ
ผม filter = DataRestriction ไป
หุ้นที่จะขึ้นมาถ้า explore ก็ต้องเป็นหุ้นที่ผ่านกฎ ถูกมั้ยครับ เพราะ and no… ทั้งหลายไปแล้ว พวก BBL PTT อะไรก้ผ่านเข้ามาครับ
ไม่แน่ใจว่าผมทำอะไรพลาดไปมั้ย ฝากดูหน่อยครับ
เมษายน 7, 2016 เวลา 12:14 pm #10023BlueStepz
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 เป็นวันเดียวกันครับ
ทางทีมงานได้ทำภาพประกอบเปรียบเทียบให้เห็นความแตกต่าง
ระหว่างการ Explore แบบ 1 recent day(s) (ซ้ายมือ) กับแบบ From-To dates (ขวามือ)
ซึ่งจะเห็นว่าการ Explore แบบ 1 recent day(s) จะได้หุ้นวันล่าสุดที่มีข้อมูล
เช่นหุ้น AIFT วันล่าสุดที่มีข้อมูลคือวันที่ 2002-08-14 (YMD) แต่ไม่ใช่วันที่ 2016-04-05 (YMD) ที่เราต้องการนั่นเองครับ
ขอบคุณครับ 😀
-
ผู้เขียนข้อความตอบกลับ
- คุณต้องเข้าสู่ระบบเพื่อตอบกลับกระทู้นี้