← สารบัญหนังสือ
2.3 — Visualization + notebook
มองข้อมูลให้เห็นภาพ
ภาค 2 · เครื่องมือ · อ่าน ~6 นาที · ตัวเลขโกหกได้ กราฟโกหกได้ รู้จักทั้งสองก็หลอกยากขึ้น
quant ทุกคนมีช่วงที่ดูตัวเลขสรุปแล้วคิดว่า "ระบบนี้ดีมาก" — แต่พอวาดกราฟ equity curve ออกมา ถึงเห็นว่า กำไรทั้งหมดมาจากสองเดือนในปีเดียว · ที่เหลือ 8 ปีแทบไม่ได้ไปไหน
นั่นแหละคือเหตุผลว่าทำไม visualization ไม่ใช่ "ทำให้สวย" — มันคือ "ป้องกันตัวเองจากการหลอกตัวเอง"
1. ทำไม visualization ถึงสำคัญกว่าที่คิด
สมองคนเราถูกออกแบบมาให้ "เห็นภาพ" ได้ดีกว่า "อ่านตัวเลข" มากๆ · ลองนึกภาพว่าใครเอาตัวเลข 1,000 ตัวมาวางหน้า vs เอากราฟ 1 รูปมาให้ดู — รูปบอกได้ใน 0.5 วินาที ตัวเลขใช้เวลาเป็นนาที
ในงาน quant มีข้อมูลเป็นหมื่นเป็นแสนจุด · ถ้าดูแค่ค่าเฉลี่ย-ค่า max-min มันซ่อนเรื่องสำคัญไว้เยอะมาก · visualization บังคับให้เห็นของที่ตัวเลขสรุปปิดบัง:
• Outlier (จุดผิดปกติ) — ข้อมูลเสียหรือเหตุการณ์พิเศษที่กำลังบิดผลทั้งก้อน
• โครงสร้างซ่อน — กำไรกระจุกอยู่ช่วงเดียว หรือระบบเวิร์กเฉพาะตลาดขาขึ้น
• Pattern ที่ตาเห็น ตัวเลขไม่เห็น — ฤดูกาล / วัฏจักร / การเปลี่ยนพฤติกรรม
• ตรวจสอบข้อมูล — ราคากระโดดแปลกๆ วันไหน? มีช่องว่าง (gap) ในข้อมูลไหม?
2. กราฟพื้นฐาน 4 ตัวที่ quant ใช้ทุกวัน
Line chart — เส้นเวลา · ดูพฤติกรรมตามเวลา · ใช้กับ equity curve, ราคา, indicator ที่ต้องการดูทิศทาง · ไม่ใช้ดูการกระจาย
# วาด equity curve หลัง backtest
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 5))
plt.plot(df['date'], df['cumulative_pnl'], color='#26d07c', linewidth=1.5)
plt.title('Equity Curve — ระบบ Gold Phase-C')
plt.xlabel('วันที่') ; plt.ylabel('กำไรสะสม ($)')
plt.tight_layout() ; plt.show()
Histogram — กราฟกระจาย · ดูว่า "ค่าส่วนใหญ่อยู่ตรงไหน" และ "ขอบหางเป็นยังไง" · ใช้ดู distribution ของ return รายวัน — ถ้าหางขวายาวกว่าหางซ้าย แปลว่าระบบมี positive skew (ดีกว่าค่าเฉลี่ย)
# ดู distribution ของ % return รายวัน
df['daily_return'].hist(bins=50, color='#ff6a1a', alpha=0.7, edgecolor='none')
plt.axvline(0, color='white', linestyle='--', linewidth=1)
plt.title('กระจาย return รายวัน') ; plt.show()
Scatter plot — กราฟจุด · ดูความสัมพันธ์ระหว่างสองตัวแปร · เช่น RVOL กับ % การวิ่งของราคา — มีความสัมพันธ์จริงไหม? หรือแค่คิดเอาเอง · ถ้าจุดกระจายแบบสุ่ม แสดงว่าไม่มีความสัมพันธ์ ถ้าเรียงเป็นแนวแสดงว่ามี
Heatmap — แผนที่ความร้อน · ดูรูปแบบสองมิติพร้อมกัน · ใช้บ่อยมากใน quant เพื่อดู "วันในสัปดาห์ vs ชั่วโมง" หรือ "เดือน vs ปี" ว่าช่วงไหนตลาดมีพฤติกรรมพิเศษ:
# heatmap: return เฉลี่ยแยกตามวัน (แถว) x เดือน (คอลัมน์)
import seaborn as sns
pivot = df.pivot_table(
values='return', index='day_of_week', columns='month', aggfunc='mean'
)
sns.heatmap(pivot, cmap='RdYlGn', center=0, annot=True, fmt='.2f')
plt.title('Seasonal Pattern — ทองคำ') ; plt.show()
ตารางนี้บอกทันทีว่า "วันจันทร์เดือนมีนาคมทองมักบวกหรือลบ" — ถ้าทำมือใน Excel ใช้เวลาชั่วโมง ด้วยโค้ดนี้แค่วินาทีเดียว
3. Jupyter Notebook — โต๊ะทำงานของ quant
Jupyter Notebook คือ "สมุดบันทึกที่รันโค้ดได้" · มันรวมสามอย่างไว้ในที่เดียว: โค้ด + ผลลัพธ์ + บันทึกความคิด · เปิดในเบราว์เซอร์ธรรมดา ไม่ต้องติดตั้งอะไรซับซ้อน
workflow ที่ quant ใช้จริง:
1. โหลดข้อมูล → รันบรรทัดเดียว เห็นตารางทันที
2. สำรวจข้อมูล → วาดกราฟ ดู distribution ตรวจสอบว่าข้อมูลโอเค
3. ทดลอง idea → เพิ่ม indicator ใหม่ เปลี่ยนพารามิเตอร์ เห็นผลทันที
4. บันทึกความคิด → เขียนอธิบายว่าทำอะไรและเห็นอะไร (ข้อความธรรมดา ไม่ใช่โค้ด)
5. แชร์ผล → ส่งไฟล์ .ipynb ให้คนอื่น เขาเปิดเห็นทั้งโค้ดและผลลัพธ์ครบ
ข้อดีที่สำคัญที่สุด: "ทดลองเป็นขั้นๆ ได้" · รันแค่ cell ที่แก้ไม่ต้องรันทั้งโปรแกรมใหม่ · ตรงนี้แหละที่ทำให้ quant ทดลอง idea ใหม่ได้เร็ว ไม่ต้องรอนานทุกครั้ง
💡 ภาพจริงของ quant ที่ทำงาน:
เปิด Jupyter Notebook · โหลดข้อมูล · วาดกราฟ equity curve ดูก่อน · ดู histogram ของ return · หา outlier · แก้ parameter นิดหน่อย · รัน cell เดียว · เห็นผลใหม่ทันที · บันทึกว่าเห็นอะไร · วนซ้ำ
ทั้งหมดนี้ในหน้าต่างเดียว ไม่ต้องสลับไปมา
4. กับดัก viz ที่หลอกตา — และวิธีสังเกต
visualization ช่วยเห็นความจริง แต่ก็ใช้หลอกได้เหมือนกัน — ทั้งหลอกคนอื่นและหลอกตัวเอง · กับดักที่ quant เจอบ่อย:
1. แกน Y ไม่เริ่มที่ศูนย์ — กราฟที่ดูเหมือน "วิ่งขึ้นแรงมาก" อาจเป็นแค่ 5% ถ้าดูสเกลจริง · เสมอตรวจ Y axis ก่อนด่วนสรุป
2. Cherry-pick ช่วงเวลา — เลือกแสดงแค่ช่วงที่ระบบทำงานดี ตัดช่วงที่แย่ออก · equity curve ต้องดูทั้งหมด ไม่ใช่แค่ช่วงที่สวย
3. Smoothing เกินไป — เส้น MA ยาวๆ ดูเรียบสวย แต่ซ่อน drawdown สั้นๆ ที่เจ็บปวดจริงไว้ · ต้องดูทั้ง equity curve ดิบและ smoothed
4. ไม่มีจุดอ้างอิง — กำไร 30% ดูดีไหม? ขึ้นอยู่กับว่าตลาดทำ 50% ช่วงเดียวกันหรือเปล่า · ต้อง plot benchmark ควบคู่เสมอ
กับดักสุดท้ายและอันตรายที่สุด: มองกราฟแล้วเห็น pattern ที่ไม่ได้มีอยู่
สมองคนถูกออกแบบมาให้ "หา pattern" เก่งมาก — เก่งจนหา pattern ในสิ่งที่สุ่มล้วนๆ ก็ได้ · quant เรียกว่า apophenia (เห็นของที่ไม่มี)
วิธีป้องกัน: ทุก pattern ที่เห็นในกราฟ ต้องมีสมมติฐานก่อนวาด ไม่ใช่วาดแล้วค่อยหาคำอธิบาย · ถ้าเห็นกราฟแล้วสรุป — เรียกว่า "เล่าย้อนหลัง" ไม่ใช่ quant research
5. ไลบรารี viz ที่ใช้บ่อยในโลก quant
matplotlib — ต้นแบบ · ทำได้ทุกอย่าง · ยืดหยุ่นสุด แต่โค้ดยาวหน่อย · AI เขียนให้ได้ดีมาก
seaborn — ต่อยอดจาก matplotlib · กราฟ statistical สวยกว่าด้วยโค้ดสั้นกว่า · heatmap / distribution
plotly — interactive · คลิกซูมได้ hover ได้ · ดีสำหรับ present ผลให้คนอื่นดู
mplfinance — เฉพาะทางสำหรับกราฟแท่งเทียน + volume · quant ที่มาจากสายเทรดชอบตัวนี้
📌 สรุปวิธีใช้ทั้งบทในชีวิตจริง:
เปิด Jupyter · โหลดข้อมูลด้วย pandas · วาดกราฟด้วย matplotlib/seaborn · สังเกต outlier และโครงสร้าง · บันทึกความคิดในช่อง text · ทดลองแก้ parameter รัน cell ใหม่ · ไม่ต้องเขียนโค้ดเองก็ได้ — บอก AI ว่า "อยากได้กราฟ equity curve พร้อม drawdown แยก" AI เขียนให้ หลิวแค่ตรวจว่าผลสมเหตุสมผลไหม