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

2.1 — Python · pandas · numpy
เครื่องมือที่ quant พิมพ์ทุกวัน

ภาค 2 · เครื่องมือ · อ่าน ~6 นาที · รู้จักสามตัวนี้ = คุยกับ AI ได้ สั่งงานได้ ไม่ต้องเขียนเองก็ได้
คนได้ยินคำว่า Python แล้วนึกถึงโปรแกรมเมอร์นั่งพิมพ์โค้ดหน้าจอสีดำตลอดคืน
ความจริงคือ: หลิวไม่ต้องเขียน Python เป็น — แค่ต้องรู้จักมันพอ "อ่านออก" และ "สั่ง AI ให้เขียนถูกทิศ"
บทนี้ไม่ใช่คอร์สโปรแกรมมิ่ง — มันคือแผนที่ว่าสิ่งเหล่านี้คืออะไร ทำไมถึงสำคัญ และหน้าตาเป็นยังไง

1. ทำไม Python ถึงกลายเป็นภาษาหลักของ quant ทั้งโลก

ก่อน Python จะครองโลก quant ใช้หลายภาษา — R, MATLAB, C++, Excel VBA · แต่ Python ชนะเพราะสาม​เหตุที่ต่างจากชาวบ้านทั่วไป:

1. อ่านง่ายเหมือนภาษาคน — โค้ด Python อ่านคล้ายประโยคภาษาอังกฤษ ไม่มีวงเล็บซ้อนซับซ้อนแบบภาษาอื่น · คนไม่ได้เรียนโปรแกรมยังไล่อ่านตามได้ (ซึ่งสำคัญมากตอน AI เขียนให้แล้วหลิวต้องตรวจ)

2. มีไลบรารีสำเร็จรูปที่ทำงานหนักให้ทั้งหมด — ไม่ต้องสร้างอะไรจากศูนย์ · คนอื่นเขียนเครื่องมือไว้ให้หมดแล้ว ดึงมาใช้ได้เลย · pandas, numpy, matplotlib, scikit-learn — ทุกอย่างฟรี

3. AI เขียน Python เก่งที่สุด — เพราะมี Python โค้ดในอินเทอร์เน็ตมากกว่าภาษาอื่น · สั่ง AI ให้เขียน Python = ได้งานที่ถูกและเชื่อถือได้มากกว่าภาษาอื่นหลายเท่า

สรุปง่ายๆ: Python คือ "ภาษากลาง" ที่ quant ทั้งโลกตกลงใช้ร่วมกัน · เรียนรู้แค่พอ "อ่านออก" ก็พอแล้วสำหรับจุดที่หลิวอยู่ตอนนี้

2. pandas — ตารางข้อมูลที่ quant ใช้ทุกวัน

ถ้า Python คือ "เครื่องยนต์" แล้ว pandas คือ "โต๊ะทำงาน" · หัวใจของ pandas คือสิ่งที่เรียกว่า DataFrame — มันคือตารางข้อมูล เหมือน Excel แต่เร็วกว่า และสั่งได้ซับซ้อนกว่ามาก

ลองนึกภาพข้อมูลราคาทองวันละแท่ง: คอลัมน์ Date · Open · High · Low · Close · Volume — นั่นแหละคือ DataFrame · quant เอา DataFrame มาทำทุกอย่าง: กรองวันที่, คำนวณค่าเฉลี่ย, หา pattern, สร้าง signal

# สร้าง DataFrame จากข้อมูลราคา 3 วัน import pandas as pd data = { 'date' : ['2024-01-01', '2024-01-02', '2024-01-03'], 'close' : [2050, 2067, 2055], 'volume': [120000, 185000, 98000], } df = pd.DataFrame(data) # ดู DataFrame — พิมพ์ df แล้วได้ตาราง # หาค่าเฉลี่ย close ทุก 3 วัน df['ma3'] = df['close'].rolling(3).mean()

โค้ดข้างบนนี้ไม่ต้องเขียนเป็น — แค่ อ่านออก ว่ามันทำอะไร · rolling(3).mean() = ค่าเฉลี่ยเคลื่อนที่ 3 วัน · ถ้าหลิวบอก AI ว่า "เอา DataFrame ที่มี OHLCV มา หา MA20" — AI จะเขียนแบบนี้ให้ทันที · หลิวรู้แค่นี้ก็สั่งงานได้

💡 pandas ช่วยอะไรในงานจริง:
• โหลดไฟล์ CSV ราคาหุ้น/forex/crypto เข้ามาเป็นตารางในวินาทีเดียว
• กรองข้อมูล เช่น "เอาแค่วันจันทร์" หรือ "เฉพาะ volume เกิน 100,000"
• คำนวณ indicator ทุกตัว (MA, RSI, ATR, RVOL) บนข้อมูลหลายปีพร้อมกัน
• เอาผล backtest มาสรุปเป็นสถิติ: win rate, profit factor, max drawdown

3. numpy — เลขและ array ที่อยู่เบื้องหลังทุกอย่าง

numpy อยู่ "ใต้" pandas อีกชั้น · ถ้า pandas คือโต๊ะทำงาน numpy คือ "เครื่องคิดเลขที่เร็วที่สุดในโลก" · มันเก่งเรื่องเดียว: คำนวณตัวเลขจำนวนมากพร้อมกันอย่างรวดเร็วมาก

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

# numpy ทำงานบน "array" — อาร์เรย์ = กล่องตัวเลขเรียงกัน import numpy as np closes = np.array([2050, 2067, 2055, 2080, 2060]) # คำนวณทีเดียวทุกตัว — ไม่ต้องวนลูป returns = np.diff(closes) / closes[:-1] # % เปลี่ยนแปลงรายวัน std_dev = np.std(returns) # ค่าเบี่ยงเบนมาตรฐาน print(std_dev) # → ตัวเลขเดียว ใช้ต่อได้เลย

สิ่งที่น่าทึ่งคือ numpy คำนวณตัวเลขล้านตัวได้ใน มิลลิวินาที · ตรงนี้แหละที่ทำให้ backtest ที่ต้องวิ่งผ่านข้อมูลหลายปีทำได้เร็ว ไม่ใช่รอข้ามคืน

ความแตกต่างในภาพเดียว:

numpy = กล่องตัวเลขขนาดยักษ์ + เครื่องคิดเลขเทพ · ดิบ เร็ว ตรงไปตรงมา
pandas = ตารางข้อมูลมีหัวคอลัมน์ มีวันที่ มีชื่อ · ใช้งานสะดวก อ่านผลง่าย

ในงานจริง: ใช้ pandas เป็นหลัก · numpy โผล่เมื่อต้องการคณิตศาสตร์หนักๆ

4. หน้าตาของโค้ดจริงๆ ในงาน quant

นี่คือตัวอย่างโค้ดที่ quant ใช้จริง — อ่านแล้วเดาได้ว่าทำอะไร ไม่ต้องเข้าใจทุกบรรทัด:

# โหลดข้อมูลราคาทอง df = pd.read_csv('gold_daily.csv', parse_dates=['date']) # คำนวณ indicator df['ma20'] = df['close'].rolling(20).mean() df['atr'] = (df['high'] - df['low']).rolling(14).mean() df['vol_ma'] = df['volume'].rolling(20).mean() df['rvol'] = df['volume'] / df['vol_ma'] # กรอง: หา "วันที่ RVOL สูงกว่า 1.5 และราคาปิดเหนือ MA20" signals = df[(df['rvol'] > 1.5) & (df['close'] > df['ma20'])] print(f"พบสัญญาณ {len(signals)} ครั้ง ใน {len(df)} วัน")

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

5. ไม่ต้องเขียนเป็น — แค่ต้องรู้จักพอสั่ง AI ได้

นี่คือจุดที่ต่างจากคอร์สโปรแกรมมิ่งทั่วไป: หลิวไม่ต้องนั่งจำ syntax ไม่ต้องผ่าน coding bootcamp · โลกเปลี่ยนไปแล้ว — AI เขียนโค้ดให้ได้ · แต่ถ้าหลิวไม่รู้จักสิ่งเหล่านี้เลย จะ:

• บอก AI ผิดทิศ → ได้โค้ดที่ไม่ตอบโจทย์ แล้วก็งง ไม่รู้จะแก้ยังไง
• ตรวจโค้ดที่ AI เขียนไม่ออก → เอาไปรันโดยไม่รู้ว่ามันทำอะไร = อันตราย
• คุยกับคนในทีม (หรือ AI) ไม่รู้เรื่อง เพราะไม่รู้ว่า DataFrame คืออะไร
📌 เป้าหมายของหลิวในบทนี้: รู้จัก Python/pandas/numpy ในระดับที่ "เห็นแล้วไม่กลัว · อ่านแล้วเดาทางได้ · สั่ง AI ได้ถูกทิศ" · แค่นั้นพอแล้วสำหรับตอนนี้ · ฝีมือเขียนโค้ดค่อยมาทีหลัง ถ้าอยากได้
สรุปบท 2.1: Python = ภาษากลางของ quant ทั้งโลก · pandas = ตารางข้อมูล (DataFrame) ใช้กรอง/คำนวณ/สรุปผล · numpy = เครื่องคิดเลขที่เร็วผิดมนุษย์ อยู่เบื้องหลัง pandas · ไม่ต้องเขียนเป็น แค่รู้จักพอ "อ่านออก + สั่ง AI ถูกทิศ" ก็พอแล้วสำหรับจุดที่หลิวอยู่ตอนนี้

บทถัดไป → 2.2 · SQL + ฐานข้อมูล — ดึงข้อมูลที่อยากได้
← สารบัญหนังสือ