NORMSTrading Platform
← สารบัญหนังสือ

1.1 — ข้อมูลคืออะไร

ภาค 1 · ข้อมูล · อ่าน ~7 นาที · ถ้าวัตถุดิบห่วย ระบบที่ฉลาดแค่ไหนก็ออกมาห่วยเหมือนกัน
หลิวเคยถามว่า "ระบบเราพลาดเพราะตรรกะผิด หรือเพราะข้อมูลผิด?"
นอมตอบตรงๆ: ส่วนใหญ่เพราะข้อมูล — แต่ระบบบอกไม่ได้เอง · มันจะเดินหน้าต่อ มั่นใจเต็มเปา พิมพ์ตัวเลขออกมาสวยงาม ทั้งๆ ที่ฐานที่ยืนอยู่ผุไปแล้ว

1. ทำไม "ข้อมูล" เป็นบทแรกของภาค 1

quant มือใหม่ทุกคนอยากรีบไปถึงส่วนที่เท่ — สร้างระบบ เขียนสัญญาณ backtest ดูกราฟผลตอบแทน · แต่มีความจริงที่ฝืนไม่ได้อยู่ข้อหนึ่ง:

💡 กฎเหล็กของบทนี้: ระบบไม่มีทางฉลาดกว่าข้อมูลที่ป้อนมัน · และบั๊กในข้อมูลไม่ทำให้ระบบ พัง — มันทำให้ระบบ มั่นใจในสิ่งที่ผิด ซึ่งอันตรายกว่าพังมาก เพราะพังเราจะรู้ทันที แต่ "มั่นใจผิด" เราจะรู้ตอนเงินหมดแล้ว

ลองนึกภาพนี้: หลิวบันทึกราคาทองทุกวัน แต่โปรแกรมมีบั๊กซ่อน — ทุก 50 วันจะแทรกแท่งพิเศษที่ volume เป็นศูนย์ · ระบบจะสร้างกฎ "อย่าเทรดเมื่อ volume ศูนย์" โดยอัตโนมัติ แล้ว backtest ออกมา "ดีขึ้น" ทุกครั้ง · แต่กฎนั้นไม่มีความหมายในโลกจริง — มันเกิดจากข้อมูลปลอม · นี่คือตัวอย่างว่า data bug ไม่ทำให้ระบบพัง มันทำให้ระบบโกหก

2. ตระกูลข้อมูลในจักรวาลเทรด — รู้ว่ามีอะไรก่อนเลือกใช้อะไร

ข้อมูลในตลาดแบ่งได้เป็น 3 ตระกูลใหญ่ที่หลิวต้องรู้จัก ก่อนจะเลือกว่าจะใช้ตัวไหน:

ตระกูลคืออะไรตัวอย่างระบบเราใช้?
ราคา / Volume
(Market Data)
ข้อมูลที่ตลาดปล่อยออกมาตรงๆ — ราคา ปริมาณ ทุกแท่งทุก timeframeOHLCV รายวัน, tick, order book, funding rate (crypto)✅ กระดูกสันหลัง
Fundamental / Macroตัวเลขพื้นฐานเศรษฐกิจ บริษัท รัฐบาลดอกเบี้ย Fed, GDP, เงินเฟ้อ, งบการเงิน, COT report✅ ชั้นบริบท + ปฏิทินกันระเบิด
Alternative Dataข้อมูลนอกตลาด — ดาวเทียม บัตรเครดิต web scraping ข่าวจำนวนรถในลานจอด Amazon · sentiment จาก Reddit · traffic เว็บคู่แข่ง❌ รู้ไว้เข้าใจคู่แข่ง — เรายังไม่ไปถึง

ตระกูล alternative data คือสิ่งที่กองทุนระดับ Bridgewater หรือ Two Sigma จ่ายเป็นล้านต่อปี เพื่อให้รู้อะไรก่อนตลาด · แต่ข้อสังเกตสำคัญ: พวกเขาซื้อข้อมูลแพงเพื่อ "ขยาย edge ที่พิสูจน์แล้ว" ไม่ใช่เพื่อ "หา edge" — เรียงลำดับกลับกันคือสูตรเผาเงินมาตรฐาน ที่เราจะไม่ทำ

สำหรับระบบเรา ณ วันนี้:
ทอง → GC futures (CME ผ่าน yfinance) — ได้ volume จริงของตลาดกลาง + ฟรี
Crypto → Binance API — ข้อมูลฟรีดีที่สุดในโลกเทียบบาทที่จ่าย ได้ทั้ง OHLCV + delta ฝั่งซื้อขาย
บริบทมหภาค → COT (CFTC ทุกศุกร์ ฟรี) + FRED (ธนาคารกลาง St. Louis) + ปฏิทิน Investing.com
Forex spot → yfinance พอใช้สำหรับ Daily/H4 แต่ไม่มี volume จริง — ถ้าต้องการ volume ต้องไปดู futures ยืนยัน

3. มาตรวัดคุณภาพข้อมูล 5 ข้อ — checklist ก่อนเชื่อ dataset ไหนก็ตาม

ก่อนเอาข้อมูลชุดไหนมาใช้งาน ถามห้าข้อนี้ก่อนเสมอ — ถ้าตอบไม่ได้แม้แต่ข้อเดียว ให้หยุดก่อน:

1. ครบ (Completeness)
มีรูไหม — วันหาย แท่งหาย ช่วงที่ควรมีข้อมูลแต่ไม่มี · วิธีเช็คเร็ว: นับจำนวนแท่งต่อปีเทียบที่ควรเป็น
Forex รายวัน ~260 แท่ง/ปี (จ-ศ) · Crypto รายวัน ~365 แท่ง/ปี · หุ้น US ~250 แท่ง/ปี
ถ้าน้อยกว่านี้ชัดเจน ให้ไล่หาโซนที่หาย — บางครั้งเป็นวันหยุดพิเศษ บางครั้งเป็น data dropout จริงๆ

2. ถูก (Accuracy)
มี bad tick ไหม — แท่งที่ high พุ่ง 20% แวบเดียว ราคาติดลบ volume เป็นศูนย์ผิดวิสัย
⚠️ ระวัง: ห้ามลบ outlier อัตโนมัติ — เพราะบางตัวคือ "เหตุการณ์จริงที่สำคัญที่สุด" ในข้อมูล
ตัวอย่าง: น้ำมัน WTI ติดลบ −$37 เมษายน 2020 คือข้อมูลจริง 100% · ระบบที่ "ทำความสะอาด" ทิ้งไปจะไม่มีวันรู้ว่าโลกนี้ทำแบบนี้ได้ · วิธีที่ถูก: เทียบแหล่งที่สอง + ไล่ดูทีละตัวมือก่อนตัดสิน

3. ตรงเวลา (Point-in-Time)
ตัวเลขนี้คือสิ่งที่โลกเห็น ณ ตอนนั้นจริงไหม — หรือคือข้อมูล "ฉบับแก้ไขย้อนหลัง"
งบบริษัท / ตัวเลขเศรษฐกิจ (GDP เงินเฟ้อ) มักถูกแก้ไขทีหลัง ราคาหุ้น adjusted สำหรับปันผล/แตกพาร์ก็ถูกเขียนทับย้อนหลัง
ปัญหา: เอาข้อมูล "ฉบับแก้" มาทดสอบอดีต = แอบดูเฉลยก่อนสอบ · backtest ออกมาดีเกินจริงเสมอ

4. ลึกพอ (History Depth)
ครอบกี่ regime — ข้อมูล 3 ปีที่เป็นกระทิงล้วน สอนระบบให้รู้จักแค่ฤดูร้อน
มาตรฐานขั้นต่ำ: 10 ปี (กิน 2-3 regime) · ระบบเราผ่าน — ครอบ 2016 เงียบ / 2020 โควิด / 2022 หมี / 2024-25 กระทิงทอง

5. ไร้อคติผู้รอด (Survivorship-Free)
universe ที่ใช้คัดตัวที่ "แพ้และหายไป" ออกหรือยัง — ถ้าใช้แค่ตัวที่ยังอยู่รอดจนวันนี้
ระบบเรามีปัญหานี้จริง: 41 ตัวของเราคือผู้ชนะของวันนี้ — ผลฝั่ง buy&hold ใน baseline research จึงสวยเกินจริง · ระบุ assumption นี้ทุกครั้งที่รายงาน
💡 ประโยคที่ควรจำ: รู้ข้อจำกัดของข้อมูลตัวเอง แล้วพูดตรงๆ ว่ามีข้อจำกัดอะไร — นี่คือมาตรฐานวิชาชีพ ไม่ใช่ความอ่อนแอ · คนขายคอร์สซ่อนข้อจำกัด quant ที่ดีพูดตรงๆ

4. ทำความสะอาดข้อมูล — ทำอะไรบ้าง ทำตอนไหน ทำยังไง

หลิวถามนอมว่า "ทำความสะอาดข้อมูลหมายความว่ายังไง?" คำตอบง่ายๆ: ทำให้ข้อมูลอยู่ในสภาพที่ "ใส่สูตรแล้วได้ผลที่เชื่อได้" · มีสามเรื่องหลักที่ต้องจัดการ:

เรื่องที่ 1 — Missing Data (ข้อมูลหาย)
ราคาวันที่หายไป volume ที่เป็น NaN (Not a Number) · ทางเลือกมีหลายแบบขึ้นกับสาเหตุ:
วันหยุดตลาด → ไม่ต้องเติม เพราะไม่มีการเทรด
Data dropout จริงๆ → เติมด้วยราคาปิดวันก่อน (forward fill) สำหรับ indicator · แต่ ห้ามเติมเข้า training data เพราะทำให้ระบบเรียนจาก "ข้อมูลที่แต่งขึ้น"
Volume ศูนย์ → ตรวจก่อน: ตลาดหยุดจริง หรือ data error?

เรื่องที่ 2 — Outliers (ค่าผิดปกติ)
แท่งที่ high/low ห่างจากปกติมากผิดวิสัย — เช่น ทองกระโดด 15% ภายในแท่งเดียว
ขั้นแรก: สแกนหา outlier เกิน 5 SD → ได้รายการที่ต้องตรวจ
ขั้นสอง: ตรวจทีละตัวด้วยตา เทียบแหล่งที่สอง
ขั้นสาม: ถ้าเป็น bad tick → ลบออกและ log ไว้ ถ้าเป็นเหตุการณ์จริง → เก็บไว้และ note
กฎทอง: อย่า "แก้" outlier อัตโนมัติด้วยสูตรเดียว เพราะคนที่ค้นหาคำสั่งให้ AI ว่า "remove outliers" มักลบข้อมูลที่สำคัญที่สุดทิ้งไปโดยไม่รู้ตัว

เรื่องที่ 3 — Normalization / Standardization (ปรับสเกล)
บางสูตรต้องการข้อมูลอยู่ใน range เดียวกัน (เช่น Machine Learning ที่จะเรียนในภาค 7) · แต่สำหรับงาน indicator/backtest ของเรา ตอนนี้ยังไม่จำเป็น — จะกลับมาพูดตอนถึงภาคนั้น

5. สุขอนามัยข้อมูล — วินัยที่แยกมือสมัครเล่นจากมืออาชีพ

สิ่งเหล่านี้ไม่ใช่ทฤษฎี — เป็นกิจวัตรที่ quant จริงๆ ทำทุกวัน ระบบเราทำตามหมดแล้ว บันทึกไว้ให้หลิวรู้ว่า "ทำไมเราถึงทำแบบนี้":

1. Raw แยกจาก Processed เสมอ
ข้อมูลดิบที่ดึงมา = จดหมายเหตุ ห้ามแก้ไขไฟล์นั้นเด็ดขาด · ทุกการ clean/แปลง เกิดในไฟล์ใหม่ด้วยโค้ดที่รันซ้ำได้
เหตุผล: วันที่ผลประหลาด คำถามแรกคือ "data หรือกฎ?" ถ้า raw ถูกเขียนทับ จะไม่มีวันตอบได้

2. ทุกการลบ/แก้ต้องมี Log
"ลบ 3 แท่ง outlier วันที่ X เพราะเทียบ 2 แหล่งแล้วเป็น bad tick" — เขียนไว้ในโค้ด ไม่ใช่ในความทรงจำ

3. Validation รันอัตโนมัติทุกครั้งที่ดึงใหม่
นับแท่ง · เช็ค NaN · เช็ค outlier · เช็ควันที่ล่าสุด — 20 บรรทัดที่ป้องกันการ "เทรดทั้งเดือนบนข้อมูลที่หยุดอัปเดตไปแล้ว" (เกิดจริงกับคนทำระบบทุกคนสักครั้งในชีวิต)

4. Plot ดูด้วยตาก่อนเชื่อ
ทุก series ใหม่ที่ดึงมา — plot ดูด้วยตาสัก 30 วินาที ก่อนเอาไปใช้งาน · ตามนุษย์จับ "ความผิดปกติที่รู้สึกไม่ถูก" ได้ดีกว่า rule อัตโนมัติในรอบแรก — ทักษะการอ่านกราฟที่หลิวมีอยู่แล้วช่วยได้ที่นี่โดยตรง

6. ถามนอมได้ — ประโยค Prompt สั่ง AI เรื่อง Data

หลิวไม่ต้องเขียนโค้ดทุกอย่างเอง แต่ต้องรู้พอที่จะ "สั่งให้ถูกและตรวจงานเป็น" · นี่คือแม่แบบที่ใช้ได้จริง:

เช็คคุณภาพ dataset:
"ช่วยเช็ค DataFrame นี้ให้หน่อย:
- นับจำนวน row ต่อปี ว่าตรงกับที่ควรเป็นไหม (forex รายวัน ~260/ปี)
- หา NaN ทุก column
- หา row ที่ volume = 0
- หา outlier ที่ high หรือ low ห่างจาก rolling mean เกิน 5 SD
- รายงานเป็น summary table แต่ห้ามลบอะไรอัตโนมัติ"

ทำความสะอาด outlier แบบ manual:
"list แค่ index + ค่าที่น่าสงสัย พร้อม context 2 วันก่อน-หลัง
ให้ฉันตัดสินเองว่าจะเก็บหรือลบ ก่อน clean"

Validate หลัง clean:
"หลัง clean แล้ว รันอีกรอบยืนยัน: NaN เหลือ 0 / row count ถูก / date range ต่อเนื่อง / ไม่มีค่าลบผิดปกติ"
กับดักที่หลิวต้องรู้: ถ้าสั่ง AI ว่า "ทำความสะอาดข้อมูลให้" โดยไม่ระบุ logic — AI จะเดาและลบ/แทนค่าข้อมูลตามที่มันคิดว่าสมเหตุสมผล · บางครั้งถูก บางครั้งลบเหตุการณ์สำคัญที่สุดออกไปเงียบๆ · กฎ: สั่งให้ "list ก่อน" เสมอ "ลบ" ทีหลังเมื่อดูแล้ว

7. ตัวอย่างจริง — "ข้อมูลห่วย" หน้าตาเป็นยังไง

สองเคสนี้เกิดจริงในตลาด ไม่ใช่เรื่องแต่ง:

เคส 1 — น้ำมัน WTI ติดลบ (เม.ย. 2020)
ราคา WTI ดิ่งลงไปที่ −$37/barrel · ระบบ quant จำนวนมากที่ "ทำความสะอาด" ด้วยการลบ "ราคาติดลบ = bad data" ทิ้ง ไม่มีวันเรียนรู้ว่า futures มีสิทธิ์ติดลบได้ เพราะ physical delivery มีต้นทุน · พอเกิดอีกครั้ง ระบบพังไม่รู้ตัว · บทเรียน: ก่อนลบ outlier ใดๆ ให้ตั้งคำถามก่อนว่า "นี่เป็นสิ่งที่ตลาดทำได้จริงไหม?"

เคส 2 — Adjusted Price ทำให้แนวรับหาย
หุ้น $100 ปันผล $5 → ราคาปรับใหม่เป็น $95 ย้อนหลังทุกแท่ง · แนวรับที่ $97 ที่คนจำนวนมากวางไว้ กลายเป็น $92 ใน dataset · backtest ที่ test breakout ผ่านแนวรับนั้น — มัน "ทะลุ" ในข้อมูล แต่ไม่เคย "ทะลุ" ในโลกจริง · บทเรียน: adjusted ดีสำหรับคำนวณผลตอบแทน แต่ unadjusted ดีกว่าสำหรับ level จริง · เลือกให้ถูกกับสิ่งที่จะทำ
💡 จุดเชื่อมกับระบบเรา: ข้อมูลทอง crypto forex ที่ระบบเราใช้ไม่มีปัญหา adjusted price (ทองไม่มีปันผล crypto ไม่มีแตกพาร์) — นี่คือหนึ่งในเหตุผลที่เลือก universe นี้ตั้งแต่ต้น ไม่ใช่บังเอิญ
สรุปบทนี้: ข้อมูลมี 3 ตระกูล (market / fundamental / alternative) · คุณภาพวัด 5 ข้อ (ครบ · ถูก · ตรงเวลา · ลึกพอ · ไร้อคติผู้รอด) · ทำความสะอาด = จัดการ missing + outlier อย่างมีเหตุผล + มี log · อย่าลบ outlier อัตโนมัติ เพราะบางตัวคือความจริงที่สำคัญที่สุด

บทถัดไป → 1.2 · แหล่งข้อมูล + Time-Series Data — OHLCV คืออะไร แหล่งไหนใช้กับตลาดไหน และกับดัก 7 ตัวที่ทำให้ระบบดีแต่ backtest โกหก
← สารบัญหนังสือ