วิธีเล่นหุ้นจำลอง Paper Trading ก่อนใช้เงินจริง
การซื้อขายแบบจำลองพิสูจน์กลไกคำสั่งซื้อขายแต่ไม่ทดสอบจิตวิทยา ดูว่าระบบจำลองละเว้นต้นทุน Spread และพฤติกรรมเมื่อใช้เงินจริง ฝึกฝนนานแค่ไหน และ Metrics ใดสำคัญ
การซื้อขายแบบจำลอง (Paper Trading) คือการส่งคำสั่งซื้อขายจำลองในบัญชีทดลองของนายหน้า โดยใช้ราคาตลาดจริงและเงินสมมติ วิธีนี้พิสูจน์ได้ว่าคุณสามารถใช้งานคำสั่งซื้อขาย ทำตามแผนที่เขียนไว้ และจดบันทึกการซื้อขายได้ มีสองสิ่งที่ยังคงไม่ถูกทดสอบภายในระบบจำลอง นั่นคือ ต้นทุนจากการข้ามช่วงแพร่ (Spread) ในการซื้อขายทุกครั้ง และพฤติกรรมของบุคคลเมื่อยอดเงินบนหน้าจอเป็นเงินของตัวเอง
สิ่งที่การซื้อขายแบบจำลองพิสูจน์ได้
บัญชีทดลองคือห้องปฏิบัติการด้านกลไก ภายในนั้น ผู้เริ่มต้นจะได้เรียนรู้ว่าคำสั่งจำกัดราคา (Limit Order) ทำอย่างไรเมื่อราคาเสนอเคลื่อนห่างจากราคาที่กำหนด คำสั่งหยุดขาดทุน (Stop Order) ทำงานอย่างไรบนกระดานเทรดที่เคลื่อนไหวเร็ว ตำแหน่งการลงทุนมูลค่า 2,000 ดอลลาร์มีลักษณะอย่างไรเมื่อเทียบกับตำแหน่งมูลค่า 20,000 ดอลลาร์ และบันทึกการซื้อขายที่เขียนขึ้นเปลี่ยนความรู้สึก (Hunch) ให้เป็นกฎที่สามารถทดสอบได้อย่างไร บทเรียนเหล่านั้นถ่ายทอดไปใช้ได้อย่างสมบูรณ์ คำสั่งซื้อขายในบัญชีที่มีเงินจริงก็คือคำสั่งซื้อขายแบบเดียวกัน
บันทึกการซื้อขายจำลองยังเผยให้เห็นข้อบกพร่องของแผนได้ในราคาถูกอีกด้วย กลยุทธ์ที่ไม่มีกฎการออกจากการลงทุน รูปแบบการกำหนดขนาดเงินลงทุนที่ทุ่มหนึ่งในสามของบัญชีไปกับหุ้นตัวเดียว กิจวัตรที่ต้องจับจ้องหน้าจอสี่จอในช่วงเวลาทำงาน แต่ละอย่างเหล่านี้จะปรากฏให้เห็นภายในไม่กี่สัปดาห์ของการซื้อขายจำลอง โดยไม่มีค่าใช้จ่ายใดๆ
สิ่งที่ระบบจำลองไม่เคยคิดเงินคุณ
ระบบจำลองส่วนใหญ่จะเติมคำสั่งซื้อขายที่ราคาซื้อขายล่าสุดที่บันทึกไว้ หรือที่จุดกึ่งกลางของราคาเสนอซื้อและเสนอขาย (Midpoint) คำสั่งซื้อขายที่สามารถดำเนินการได้ทันทีในตลาดจริงจะจ่ายในราคาเสนอขาย (Ask) เมื่อซื้อ และได้รับในราคาเสนอซื้อ (Bid) เมื่อขาย และช่องว่างระหว่างราคาทั้งสองนี้ ซึ่งก็คือ ส่วนต่างราคาเสนอซื้อเสนอขาย (Bid-Ask Spread) จะตกเป็นของผู้ที่เสนอราคาไว้
เลขคณิตสมมติทำให้เห็นขนาดของสิ่งที่ถูกละเว้นอย่างชัดเจน หุ้นตัวหนึ่งมีราคาเสนอซื้อที่ 20.00 ดอลลาร์ และราคาเสนอขายที่ 20.05 ดอลลาร์ จุดกึ่งกลางคือ 20.025 ดอลลาร์ ระบบจำลองที่เติมคำสั่งที่จุดกึ่งกลางจะบันทึกราคาเข้าซื้อที่ 20.025 ดอลลาร์ การซื้อในตลาดจริงจะเติมที่ 20.05 ดอลลาร์ แย่กว่าสองเซนต์ครึ่ง และการขายออกก็จะเสียอีกครึ่งหนึ่งของความกว้างของช่วงแพร่ การซื้อขายครบรอบหนึ่งครั้ง ต้นทุนห้าเซนต์ต่อหุ้น สำหรับตำแหน่งการลงทุนที่บันทึกในบันทึกจำลองว่าไม่มีค่าใช้จ่าย
ค่าผ่านทางนี้ไม่เท่ากันในทุกหุ้น แผงด้านล่างวัดค่ามัธยฐานของส่วนต่างราคาเสนอซื้อเสนอขายที่ประกาศไว้ (Quoted Spread) ในหน่วยจุดเบสิส (Basis Point) ของจุดกึ่งกลาง โดยหนึ่งจุดเบสิสเท่ากับหนึ่งในร้อยของหนึ่งเปอร์เซ็นต์ สำหรับหุ้นที่มีการถือครองอย่างแพร่หลายหกตัว ในช่วงการซื้อขายล่าสุดที่เสร็จสมบูรณ์ซึ่งมีข้อมูล ณ เดือนกรกฎาคม 2026
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ticker,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS typical_spread_bps,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price > bid_price) * 100, 1) AS typical_spread_cents,
round(count() / 1e6, 1) AS quote_updates_m
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'F')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY ticker
ORDER BY typical_spread_bpsด้านที่แคบที่สุดของกระดานคือ SPY วัดได้ 0.27 จุดเบสิส โดยค่ามัธยฐานนี้อยู่บนพื้นฐานการอัปเดตราคาจำนวน 18.8 ล้านครั้ง ด้านที่กว้างที่สุดคือ F วัดได้ 6.96 จุดเบสิส ซึ่งเป็นช่องว่างราคาที่ประกาศไว้ 1 เซนต์ สำหรับคำสั่งซื้อขายมูลค่า 10,000 ดอลลาร์ หนึ่งจุดเบสิสมีค่าเท่ากับหนึ่งดอลลาร์ บันทึกการซื้อขายจำลองจำนวน 200 รอบการซื้อขาย จะมีค่าใช้จ่ายจริงที่บันทึกจำลองนั้นไม่เคยแสดงไว้ ต้นทุนในการซื้อขายหุ้น จะแสดงราคาแบบขั้นบันไดสำหรับหุ้นในวงกว้างขึ้น
คุณภาพการเติมคำสั่งซื้อขายเปลี่ยนแปลงไปตามเวลา
ระบบจำลองให้ผลการเติมคำสั่งซื้อขายแบบเดียวกันในเวลา 9:31 น. และเวลา 13:00 น. แต่ราคาเสนอซื้อเสนอขายจริงไม่ได้เป็นเช่นนั้น การจัดกลุ่มการอัปเดตราคารวมทุกรายการสำหรับหุ้นราคากลางตัวหนึ่งเป็นช่วงเวลาครึ่งชั่วโมง แสดงให้เห็นรูปร่างของช่วงการซื้อขาย โดยวัดในช่วงเวลาเดียวกันล่าสุด
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS spread_bps,
round(count() / 1e6, 2) AS quote_updates_m
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'F'
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY et_time
ORDER BY et_timeช่วงเวลา 09:30 ซึ่งเป็นครึ่งชั่วโมงแรกของช่วงการซื้อขายปกติ วัดได้ 7.01 จุดเบสิส ช่วงเวลา 12:30 วัดได้ 6.94 จุดเบสิส และช่วงปิดตลาดที่ 15:30 วัดได้ 6.98 จุดเบสิส กลยุทธ์การซื้อขายจำลองที่เทรดในช่วงสิบห้านาทีแรก และกลยุทธ์การซื้อขายจำลองที่เทรดในช่วงกลางวัน มีราคาที่แตกต่างกันในบัญชีที่มีเงินจริง แต่เหมือนกันในระบบจำลองส่วนใหญ่
ตลาดครอบคลุมในช่วงทดลองหนึ่งช่วงมากแค่ไหน
การฝึกซื้อขายจำลองสี่สัปดาห์ครอบคลุมประมาณยี่สิบช่วงการซื้อขาย แผงด้านล่างนับทุกช่วงการซื้อขายปกติของกองทุนตลาดในวงกว้างหนึ่งกองทุนตลอดห้าปีปฏิทิน โดยวัดจากราคาเปิดถึงราคาปิด พร้อมสัดส่วนของช่วงการซื้อขายที่ปิดสูงกว่าราคาเปิดของตัวเอง และขนาดของการเคลื่อนไหวรายวันโดยทั่วไป
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT toString(y) AS year,
count() AS sessions,
round(100 * countIf(ret > 0) / count(), 1) AS pct_up_sessions,
round(quantileDeterministic(0.5)(abs(ret) * 100, cityHash64(d)), 2) AS median_abs_move_pct,
round(min(ret) * 100, 2) AS worst_session_pct,
round(max(ret) * 100, 2) AS best_session_pct
FROM (
SELECT d,
toYear(d) AS y,
toFloat64(session_close) / toFloat64(session_open) - 1 AS ret
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(open, window_start) AS session_open,
argMax(close, window_start) AS session_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
)
WHERE session_open > 0
)
GROUP BY year
ORDER BY yearในปี 2021 กองทุนนี้มีการซื้อขาย 252 ช่วงการซื้อขายปกติ โดย 54.8% ของช่วงเหล่านั้นปิดสูงกว่าราคาเปิดของตัวเอง โดยมีค่ามัธยฐานของการเคลื่อนไหวโดยสมบูรณ์ (Median Absolute Move) ที่ 0.38% ในปี 2025 สัดส่วนเดียวกันนี้อยู่ที่ 52% และค่ามัธยฐานของการเคลื่อนไหวโดยสมบูรณ์อยู่ที่ 0.46% จุดสูงสุดและต่ำสุดของปีนั้นอยู่ห่างไกลจากค่ามัธยฐานมาก ช่วงการซื้อขายที่อ่อนแอที่สุดเคลื่อนไหว -4.81% จากเปิดถึงปิด ส่วนช่วงที่แข็งแกร่งที่สุดเคลื่อนไหว 10.12%
ให้อ่านจำนวนแถวเป็นคำถามเกี่ยวกับความครอบคลุม หน้าต่างการฝึกซื้อขายจำลองยี่สิบช่วงคือประมาณแปดเปอร์เซ็นต์ของหนึ่งปี และช่วงการซื้อขายที่มันบังเอิญครอบคลุมจะเป็นตัวกำหนดว่าบันทึกจะบอกอะไร การฝึกซื้อขายในช่วงที่ตลาดเงียบสงบและการฝึกซื้อขายในช่วงที่ตลาดผันผวนรุนแรงจะให้ตัวเลขที่แตกต่างกันจากกฎชุดเดียวกัน นักเทรดที่ต้องการคำตัดสินมากกว่าตัวอย่าง มักจะทำบันทึกการซื้อขายจำลองเป็นเวลาหลายเดือน และดำเนินการต่อไปควบคู่ไปกับบัญชีเงินจริงหลังจากเริ่มต้น
ตัวชี้วัดที่สำคัญกว่าอัตราการชนะ
บันทึกการซื้อขายจำลองรายงานอัตราการชนะเป็นอันดับแรก และอัตราการชนะคือบรรทัดที่มีข้อมูลน้อยที่สุดในบันทึกนั้น ลองพิจารณาบันทึกสมมติของการซื้อขายที่ปิดแล้วสิบครั้ง: ชนะเก้าครั้ง ครั้งละ 50 ดอลลาร์ และแพ้หนึ่งครั้ง 600 ดอลลาร์ อัตราการชนะอ่านได้ 90% แต่บัญชีกลับขาดทุน 150 ดอลลาร์
- การขาดทุนสูงสุดจากจุดสูงสุดถึงจุดต่ำสุด (Maximum Drawdown) คือตัวเลขที่อธิบายว่ากลยุทธ์หนึ่งต้องการให้บุคคลหนึ่งต้องอดทนต่อการลดลงของมูลค่าบัญชีมากเพียงใด
- กำไรเฉลี่ยต่อการขาดทุนเฉลี่ย (Average Win against Average Loss) เมื่อจับคู่กับอัตราการชนะ จะให้ผลตอบแทนที่คาดหวังต่อการซื้อขาย (Expectancy per Trade) ซึ่งเป็นตัวเลขที่เส้นกราฟมูลค่าพอร์ต (Equity Curve) ดำเนินตามจริง
- จำนวนการซื้อขาย (Trade Count) โดยที่บันทึกการซื้อขายสิบสองครั้งวัดดวง แต่บันทึกสองร้อยครั้งเริ่มวัดกฎ
- ต้นทุนต่อรอบการซื้อขาย (Cost per Round Trip) นำมาจากแผงส่วนต่างราคาด้านบน แทนที่จะเป็นช่องค่าธรรมเนียมของระบบจำลอง ซึ่งมักตั้งค่าเป็นศูนย์
การกำหนดขนาดการซื้อขายจริงครั้งแรก
ธรรมเนียมปฏิบัติทั่วไปในหมู่ผู้สอนการเทรดคือการเริ่มต้นแบบค่อยเป็นค่อยไป: ขนาดตำแหน่งการลงทุนที่เล็กที่สุดที่ใช้งานได้ กฎที่เป็นลายลักษณ์อักษรชุดเดียวกับที่ใช้ในบันทึกจำลอง และจำนวนการซื้อขายที่แน่นอนก่อนที่จะเปลี่ยนแปลงขนาดเลย หุ้นราคา 200 ดอลลาร์หนึ่งหุ้นทำให้เงิน 200 ดอลลาร์มีความเสี่ยง และสร้างข้อมูลทางอารมณ์ที่เหมือนกันกับหนึ่งร้อยหุ้น โดยมีความเสี่ยงเพียงหนึ่งเปอร์เซ็นต์ กลไกต่างๆ ถ่ายทอดมาจากระบบจำลอง แต่วินัยไม่ได้ถ่ายทอดมา และขนาดที่เล็กคือวิธีที่วินัยจะถูกวัด
ขนาดยังมีปฏิสัมพันธ์กับต้นทุนอีกด้วย ค่าใช้จ่ายคงที่ต่อการซื้อขายจะส่งผลหนักกว่ากับคำสั่งซื้อขายขนาดเล็ก ในขณะที่ส่วนต่างราคาจะส่งผลตามสัดส่วนเท่าๆ กันในทุกขนาด นักเทรดที่วางแผนจะซื้อขายขนาดเล็กสี่สิบครั้งต่อเดือน จะต้องจ่ายค่าซื้อขายครบรอบสี่สิบครั้ง ไม่ใช่ครั้งเดียว ผู้อ่านที่กำลังพิจารณาทางเลือกตามกฎแทนการเข้าซื้อขายตามดุลยพินิจ สามารถเปรียบเทียบกับ การถัวเฉลี่ยต้นทุนเป็นงวด (Dollar-Cost Averaging) ซึ่งตารางเวลาจะเข้ามาแทนที่การตัดสินใจ
คำถามที่พบบ่อย
การซื้อขายแบบจำลองได้ผลจริงหรือไม่?
มันได้ผลสำหรับสิ่งที่มันวัด นั่นคือ กลไกการสั่งซื้อขาย โครงสร้างแผน และวินัยในการจดบันทึก มันไม่ได้วัดคุณภาพการเติมคำสั่งซื้อขายหรืออารมณ์ บันทึกการซื้อขายจำลองและบันทึกการซื้อขายด้วยเงินจริงของกฎชุดเดียวกันในช่วงเวลาเดียวกันมักจะแตกต่างกัน และช่องว่างทั้งสองข้างต้นคือจุดที่ความแตกต่างนั้นอยู่
ผู้คนซื้อขายแบบจำลองนานแค่ไหนก่อนจะใช้เงินจริง?
ไม่มีช่วงเวลามาตรฐาน กรอบอ้างอิงที่เป็นประโยชน์คือขนาดตัวอย่างมากกว่าเวลาตามปฏิทิน: หนึ่งเดือนครอบคลุมประมาณยี่สิบช่วงการซื้อขาย และกองทุนตลาดในวงกว้างมีการซื้อขาย 250 ช่วงในปี 2025 เพียงปีเดียว นักเทรดจำนวนมากทำบันทึกการซื้อขายจำลองเป็นเวลาหลายเดือน และดำเนินการต่อไปควบคู่ไปกับบัญชีเงินจริงขนาดเล็ก
ทำไมผลลัพธ์การซื้อขายแบบจำลองถึงดีกว่าผลลัพธ์จริง?
ความแตกต่างทางกลไกสามประการอธิบายช่องว่างส่วนใหญ่ได้ คำสั่งซื้อขายจำลองมักจะเติมที่จุดกึ่งกลางหรือราคาซื้อขายล่าสุด แทนที่จะเป็นราคาเสนอซื้อหรือเสนอขาย ขนาดการซื้อขายจำลองไม่เคยทำให้ราคาเสนอเคลื่อนไหว และการขาดทุนจำลองไม่มีน้ำหนักทางอารมณ์ นักเทรดแบบจำลองถือครองผ่านช่วงขาดทุน (Drawdown) ที่นักเทรดด้วยเงินจริงจะปิดการซื้อขายก่อนกำหนด
คุณสามารถซื้อขายออปชั่นแบบจำลองในลักษณะเดียวกันได้หรือไม่?
กลไกต่างๆ ถ่ายทอดไปได้ และช่องว่างการเติมคำสั่งซื้อขายก็กว้างกว่า ราคาเสนอซื้อเสนอขายออปชั่นโดยทั่วไปกว้างกว่าในแง่เปอร์เซ็นต์เมื่อเทียบกับราคาหุ้น การใช้สิทธิ์และการถูกเรียกชำระก่อนกำหนด (Assignment and Early Exercise) แทบจะไม่ปรากฏในระบบจำลอง และการจัดการเมื่อหมดอายุแตกต่างกันไปตามแพลตฟอร์มฝึกซ้อม ให้ถือว่าบันทึกออปชั่นจำลองเป็นการทดสอบกลไก
การซื้อขายแบบจำลองไม่ได้สอนอะไร?
การลื่นไถล (Slippage) ความพร้อมในการยืมหุ้นสำหรับสถานะขาย (Short Position) การเติมคำสั่งซื้อขายบางส่วนสำหรับคำสั่งขนาดใหญ่ และพฤติกรรมของบุคคลที่กำลังดูเงินจริงลดลง สี่สิ่งนี้คือช่องว่างที่คงอยู่ระหว่างบันทึกการซื้อขายจำลองและบัญชีที่มีเงินจริง
ทุกแผงด้านบนมาพร้อมกับคำสั่ง SQL ที่แน่นอนซึ่งสร้างมันขึ้นมา เปิดแผงใดแผงหนึ่ง เปลี่ยนรหัสหุ้นเป็นรหัสจากบันทึกการซื้อขายจำลองของคุณเอง และคำนวณต้นทุนการเติมคำสั่งซื้อขายของคุณบนเทอร์มินัล Strasmore