From ef78720d327fb88655e5ec938409ed5f8baf5546 Mon Sep 17 00:00:00 2001 From: Kunthawat Greethong Date: Wed, 26 Aug 2026 16:01:25 +0700 Subject: [PATCH] [research] Methodology research doc + per-theme data-source map + formula refinement proposals - Literature: PEAD (Bernard-Thomas 1990, Fink 2021, Livnat-Mendenhall 2006), EM momentum (lower in EM), multi-criteria EM selection, Thai earnings-surprise thesis - 5 formula refinements (R1-R5, await user OK): earnings goodwill weight, momentum factor, continuous regime gate, earnings-revision, dividend screen - Per-theme additional source table (banks NPL reuses reportID 794, utilities EPPO, retail consumer-comfort...) registered via declarative FACTORS --- docs/methodology-research.md | 80 ++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 docs/methodology-research.md diff --git a/docs/methodology-research.md b/docs/methodology-research.md new file mode 100644 index 0000000..a3c954f --- /dev/null +++ b/docs/methodology-research.md @@ -0,0 +1,80 @@ +# งานวิจัยที่เกี่ยวข้อง + ข้อเสนอปรับสูตร (Methodology Research) + +> วันที่: 2026-08-26. ใช้เป็น baseline ในการปรับปรุง factor engine โดย grounded กับ literature. + +## 1. งานวิจัยที่เกี่ยวข้อง + +### 1.1 Post-Earnings Announcement Drift (PEAD) — ความต่อเนื่องหลังประกาศผลประกอบการ +- **Bernard & Thomas (1990)** — *Evidence that stock prices do not fully reflect the implications of current earnings for future earnings*, JAE 13. + ราคาหุ้นไม่สะท้อนข้อมูลกำไรเต็มที่ทันที → drift ต่อเนื่อง 25-30% ของ drift เกิดรอบๆ การประกาศกำไร 3 รอบถัดไป (แม้เป็นแค่ ~5% ของวันเทรด). +- **Fink (2021)** — *A review of the Post-Earnings-Announcement Drift*, J. Behav. Exp. Finance 29. สรุป: anomaly มี persistence ในหลายตลาด. +- **Livnat & Mendenhall (2006)** — SUE (Standardized Unexpected Earnings) จาก analyst forecast vs time-series. **Revenue surprise ก็ขับ PFAD** (Jegadeesh & Livnat). +- **Thai evidence**: Chulalongkorn thesis (2012-2019) — *The effect of earnings surprise on market reaction at various free float* — earnings surprise มีผลต่อราคาหุ้นไทย. + +**→ ต่อยอดกับระบบเรา**: เรามี quarterly earnings ของ TOP (energy theme) เป็น factor. ควรเพิ่ม **SUE-style surprise** สำหรับหุ้น (ถ้ามีข้อมูล EPS ต่อไตรมาส) หรือใช้ earnings momentum (EPS YoY ที่ Siamchart มี) ให้น้ำหนัก "กำไรที่โตเร็วกว่า" มากขึ้นใน `siamchart_score`. + +### 1.2 Momentum ใน Emerging Markets +- **Cakici, Fabozzi & Tan / "Revisiting momentum profits in emerging markets" (Sci. Dir.)**: momentum returns มีใน EM แต่ **ต่ำกว่า-developed markets** และผันผวน. +- **Jegadeesh & Titman (1993)** — classic 12-1 momentum. +- **Van der Hart, Slagter & van Dijk (2003)** *Stock selection in emerging markets* (32 EM 1985-1999): **value, momentum, earnings-revision ล้วนมี alpha** ใน EM; แนะนำใช้ร่วมกันหลาย criterion. + +**→ ต่อยอด**: เพิ่ม momentum factor (trailing 6-12 เดือน return จาก price series ที่เรามี 2.5 ปี) เป็น factor หนึ่ง. แต่ EM momentum ผันผวน → ใช้ weight ต่ำเป็นตัวเสริม ไม่ใช่หลัก. + +### 1.3 Multi-Criteria Stock Selection (EM) +- **Biswas & Pamućar (2022)** *Multi-criteria stock selection framework in emerging market* — ใช้ MCDM (FUCOM/CODAS) รวมหลายเกณฑ์. สอดคล้องกับที่เราทำ (60/40 รวม theme+fundamental). + +### 1.4 Alternative / Macro factor +- **Hartmann et al / macro-quantamental** — macro momentum (growth/inflation) ใช้ทิศทางทำ factor; สอดคล้องกับ **regime gate** ที่เราออกแบบ (bear = risk-off). + +--- + +## 2. ข้อเสนอปรับสูตร (ตาม literature, รอโอเคก่อน apply) + +### R1. Earnings goodwill ↑ weight ใน siamchart_score (PEAD) +ตาม PEAD/SUE: EPS growth ควรมีน้ำหนักสูงกว่านี้. ข้อเสนอ: เพิ่ม `eps_growth_yoy` coefficient ใน `build_siamchart_score` (ตอนนี้ growth + yield*2) → ทดสอบเป็นสัดส่วนที่ทำให้ growth ครอบงำคุณภาพปานกลาง. +**รูปแบบ**: `raw_siamchart = w_growth·eps_growth + w_yield·yield*2` โดย `w_growth` adjustable เริ่ม 1.0→1.5. + +### R2. เพิ่ม Momentum factor (12-1) เป็น factor ใน registry +ใช้ price series 2.5 ปี: `mom = close[T] / close[T-11m] - 1`. ใส่เป็น `momentum_12_1` factor (source: Yahoo, frequency: monthly, sign +1) เชื่อม theme ที่เหมาะ (retail/consumer/banks มี momentum premium). **weight ต่ำ (~0.3)** ตาม EM evidence ที่ผันผวน. + +### R3. ปรับ regime gate ให้เป็น continuous ไม่ใช่ binary +Literature (Bernard-Thomas, market-state × momentum ที่ Cooper et al 2004): ส่งผลให้ gate แบบ hard 4-ธีมลบ → ใช้ **stress score** (0..1) จากสัดส่วนธีมลบ แล้ว shift threshold ตามสัดส่วน — smooth แทน cliff. + +### R4. เพิ่ม earnings-revision proxy (ถ้าหาได้) +- ถ้า Siamchart/อื่นให้ EPS หลายงวด → คำนวณ EPS revision (compare forecast vs actual) เป็น factor. รอ source ที่เปิดได้. + +### R5. ใช้ dividend เป็น sign ทั้งสองทาง +Literature: dividend yield มีผลบวก (value-ish) แต่ **dividend cut = screen off**. เสนอ: หุ้นที่ dividend_yield ติดลบ/หด → exclude จาก LONG ไม่ให้เป็นบวก. + +--- + +## 3. แหล่งข้อมูลต่อธีม (เพิ่มเติม — ข้อ design research) +| ธีม | แหล่งที่มี | แหล่งที่อาจเพิ่ม | ความถี่ | เข้าถึง | +|---|---|---|---|---| +| tourism | BOT Tourism | BOT foreign arrivals, hotel occupancy | monthly | auth-free (scrape) | +| auto | TradingEconomics | DOLE/DLT registrations, BOT auto-loan | monthly | scrape | +| energy | Thai Oil (TOP) | PTT/BCP quarterly, EPPO oil price | quarterly | scrape | +| banks | BOT macro proxy | **BOT commercial-bank loan/NPL** | monthly/quarterly | scrape (reportID มี) | +| retail | macro consumption | **BOT consumer-comfort / retail index** | monthly | needs report | +| utilities | macro mfg | **EPPO energy demand** | monthly | scrape | +| telecom | macro consumption | **true/AIS subscriber** (หาก public) | quarterly | needs source | +| property | macro invest | **BOT housing transfer / REIC** | monthly | scrape | +| healthcare | macro consumption | hospital operator occupancy | quarterly | needs source | + +การเพิ่มทุกตัว = register ใน FACTORS (declarative) + collectors ตาม har-derived-api-client. ตัวที่ยังไม่มี reportID → ต้องหา/ทำ collector ใหม่. + +## 4. สถานะ +- รอบนี้ implement: ข้อ 3+4+5 (sources auto, backtest จริง, next-update) ✅ +- ข้อ R1-R5 (ปรับสูตรจาก research) → ต้อง user โอเคก่อน apply +- แหล่งต่อธีม → ตัวที่ auth-free ทำได้ (banks NPL มี reportID 794 แล้ว reuse auto_npl) เป็นลำดับถัดไป + +## References (selected) +1. Bernard, V.L. & Thomas, J.K. (1990). J. Accounting & Economics 13, 305-340. +2. Fink, J. (2021). Journal of Behavioral and Experimental Finance 29. +3. Livnat, J. & Mendenhall, R. (2006). J. Accounting Research 44. +4. Jegadeesh, N. & Titman, S. (1993). J. Finance 48. +5. van der Hart, Slagter & van Dijk (2003). "Stock selection strategies in emerging markets". +6. "Revisiting momentum profits in emerging markets" — ScienceDirect. +7. Biswas, S. & Pamućar, D. (2022). Oresta / MCDM EM stock selection. +8. Chulalongkorn thesis (2012-2019) — earnings surprise, Thai market & free float. +9. Cooper, Gutierrez & Hameed (2004). "Market states and momentum". J. Finance 59.