Petch's Investing Blog

Back to Home
codingPublished 2025-07-22

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 เดือนล่าสุด ข้อมูลส่วนนี้ช่วยให้ผมเห็น "ภาพกว้าง" ของกลยุทธ์ก่อนจะลงรายละเอียดลึกขึ้น ว่าเงื่อนไขที่ตั้งไว้มีโอกาสชนะในเชิงสถิติมากน้อยเพียงใด

Daily Filter


Intraday Backtest and Sensitivity Analysis

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

Intraday Filter

เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ผมเพิ่มส่วน Sensitivity Table เข้ามาเพื่อวิเคราะห์ผลกระทบของตัวแปรต่างๆ ดังนี้:

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

การเห็นผลกระทบของตัวแปรเหล่านี้ช่วยให้ผม Fine-tune ระบบได้โดยไม่ต้องคาดเดา

Sensitivity Analysis


Trade Analysis and Visualization

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

Chart Example

Petch's Investing Blog

Back to Home
Petch (Jakrapat Sangskul)

Petch

Jakrapat Sangskul

Born 1991 • Songkhla

Background

Ex-PTTEP Scholarhip & Well Engineer.

MWIT Alum. Petroleum Engineering at Chula.

Focus

Full-time investor since 2011. Navigating equity markets across Thailand, US, Japan, Turkey, and Vietnam.

jakrpat5@gmail.com

+66 86 959 0430

Lifelong Learning — Dedicated to Research