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

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 เขียนให้ หลิวแค่ตรวจว่าผลสมเหตุสมผลไหม
สรุปบท 2.3: Visualization คือเครื่องมือป้องกันการหลอกตัวเอง ไม่ใช่แค่ทำให้สวย · 4 กราฟหลัก: line (เวลา) · histogram (กระจาย) · scatter (ความสัมพันธ์) · heatmap (สองมิติ) · Jupyter Notebook = โต๊ะทดลองที่รวมโค้ด+ผล+บันทึกไว้ที่เดียว · ระวัง: กราฟโกหกได้ — ตรวจ Y-axis / ดู benchmark / ตั้งสมมติฐานก่อนวาดเสมอ

ภาค 2 จบแล้ว → ภาค 3: คณิตศาสตร์และสถิติ — ภาษาที่ข้อมูลพูด
← สารบัญหนังสือ