Building a Custom Backtester for Intraday Trading
ผมเห็น Content การทำกำไรมหาศาลจากการ Day Trade ในโลกออนไลน์แล้วรู้สึกไม่เชื่ออยู่บ้าง มันจริงแค่ไหนกันนะ? แต่แทนที่จะปฏิเสธทันที ผมเลือกที่จะทดลองด้วยเงินจำนวนน้อย ควบคู่ไปกับการสร้างเครื่องมือเพื่อพิสูจน์สมมติฐานด้วยข้อมูล จึงเป็นที่มาของโปรเจกต์นี้
ผมคิดว่า สิ่งแรกที่ต้องมีคือระบบ Backtest ที่เชื่อถือได้ ผมจึงเขียนเครื่องมือนี้ขึ้นมาเสริม โดยเน้นความเร็ว และความยืดหยุ่นในการปรับแต่งเงื่อนไข
Architecture and Data Management
ผมดึงข้อมูลหุ้นสหรัฐฯ มาเก็บไว้ใน SQLite และใช้ Python Pandas ในการจัดการโครงสร้างข้อมูลสำหรับขั้นตอนวิเคราะห์ ในส่วนของ GUI ผมเลือกใช้ Streamlit เพื่อให้การปรับแต่ง Parameter ทำได้สะดวกขึ้น
ผมออกแบบให้ระบบโหลด Database ทั้งหมดขึ้นมาบน Memory (RAM) แม้จะทำให้ตอนเริ่มต้นแอปพลิเคชันช้าลงบ้าง แต่ช่วยให้การรัน Backtest ซ้ำๆ เพื่อปรับแต่งค่าทำได้รวดเร็วมาก
Daily Filter and Performance Glimpse
ส่วนแรกของเครื่องมือคือ Daily Scan ผู้ใช้สามารถใส่ Expression เพื่อกรองหุ้นตามต้องการ เช่น การหาหุ้นที่ Gap Up มากกว่า 4% พร้อมเงื่อนไขตลาดประกอบ เช่น ทิศทางของ SPY หรือเจาะจงเฉพาะวันในสัปดาห์
ระบบจะแสดงค่าสถิติเบื้องต้นทั้ง Mean, Median และ Peak Performance ในรอบ 2 ปี และ 1 เดือนล่าสุด ข้อมูลส่วนนี้ช่วยให้ผมเห็น "ภาพกว้าง" ของกลยุทธ์ก่อนจะลงรายละเอียดลึกขึ้น ว่าเงื่อนไขที่ตั้งไว้มีโอกาสชนะในเชิงสถิติมากน้อยเพียงใด

Intraday Backtest and Sensitivity Analysis
เมื่อได้ชุดสแกนหุ้นที่น่าสนใจ ผมจะลงลึกไปที่สัญญาณ Intraday โดยสามารถกำหนดเวลา Entry, Stop Loss และ Profit Target ตามค่า ADR (Average Daily Range) รวมถึงการเพิ่ม Indicator Filter ต่างๆ ในระหว่างวัน

เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ผมเพิ่มส่วน Sensitivity Table เข้ามาเพื่อวิเคราะห์ผลกระทบของตัวแปรต่างๆ ดังนี้:
- Time Entry/Exit: ดูว่าการเข้าหรือออกช้าลง 5-10 นาที ส่งผลต่อ Win Rate อย่างไร
- Signal Conditions: เปรียบเทียบประสิทธิภาพของแต่ละสัญญาณเทรด
- P&L Distribution: ตรวจสอบการกระจายตัวของผลกำไรขาดทุนผ่าน Histogram เพื่อระบุความเสี่ยงของกลยุทธ์
การเห็นผลกระทบของตัวแปรเหล่านี้ช่วยให้ผม Fine-tune ระบบได้โดยไม่ต้องคาดเดา

Trade Analysis and Visualization
ส่วนสุดท้ายคือการตรวจสอบหน้าเทรดจริง ระบบสามารถดึง Chart ของหุ้นรายตัวจากผลการ Backtest ออกมาแสดงผลได้ ทั้งในระดับ Daily และ Intraday การเห็นกราฟจริงช่วยให้ผมจดจำ Pattern และพฤติกรรมราคาได้แม่นยำขึ้นเมื่อต้องเจอกับหน้าจอเทรด Real-time
