Database Management (ATA Certification Program)
About Course
Database Management
เขียนโปรแกรม จัดการฐานข้อมูล และพัฒนาระบบเทรดด้วย Python
วิชานี้อยู่ในหลักสูตร Algorithmic Trading in Action (ATA) Certification Program — Quant Series
ของ GroundUp Academy เรียนแบบ Video on Demand ดูย้อนหลังได้ตลอด
สอนโดย คุณที รณวัฒน์
การพัฒนาระบบเทรดไม่ได้จบแค่การเขียนกลยุทธ์ แต่ต้องจัดการข้อมูล ตรวจสอบข้อผิดพลาด และทำให้โปรแกรมทำงานซ้ำได้อย่างถูกต้อง
วิชานี้เริ่มจากพื้นฐาน Python การอ่านและจัดเก็บข้อมูลตลาด ไปจนถึงการออกแบบฐานข้อมูลด้วย SQL และ SQLite
ต่อด้วย Object-Oriented Programming (OOP) และการประมวลผลหลายงานพร้อมกัน
ปิดท้ายด้วยการนำทุกส่วนมาประกอบเป็นระบบเทรดจำลอง ตั้งแต่สร้างสัญญาณ ส่งคำสั่ง ไปจนถึงบันทึกผลการซื้อขาย
เรียนผ่าน Python, SQL, SQLite และข้อมูลตลาดจริงจาก Binance
เมื่อเรียนจบวิชานี้ คุณจะ
• เขียนโปรแกรม Python ด้วย Function, Module และ Project Structure ที่เป็นระบบ
• อ่านและจัดเก็บข้อมูลตลาดด้วย CSV, JSON และ Parquet พร้อมตรวจสอบความถูกต้องของข้อมูล OHLCV
• ออกแบบฐานข้อมูลและใช้ SQL จัดการข้อมูลราคา Funding Rate และคำสั่งซื้อขาย
• เชื่อมต่อ SQLite ด้วย Python พร้อมจัดการ Batch Insert, Upsert และ Transaction
• ออกแบบโปรแกรมด้วย OOP และ Composition เพื่อแยกส่วนประกอบของระบบ
• ใช้ Threading, AsyncIO และ Multiprocessing เพื่อประมวลผลหลายงานพร้อมกัน
• ประกอบระบบเทรดจำลองที่ทำงานตั้งแต่ Signal → Order → MockBroker → Fill โดยใช้ข้อมูลจริงของ BTC และ ETH
เนื้อหา 7 Modules · 13 บทเรียน · 26 คลิป
Module 1: Python Programming Foundations
Clip 1: Programming Foundations (13 นาที)
• ทบทวน Data Types, List และ Dictionary ด้วยตัวอย่างข้อมูลการเทรด
• การใช้ Loop และ Conditional เพื่อประมวลผลข้อมูลและเงื่อนไขของโปรแกรม
Clip 2: Functions, Modules & Project Structure (20 นาที)
• การเขียน Function, Parameters และ Return Values
• การใช้ Import และ Modules เพื่อแยกส่วนของโปรแกรม
• จัด Project Structure สำหรับโปรเจกต์ที่เกี่ยวข้องกับข้อมูลตลาด
Module 2: Financial Data Handling
Clip 3: CSV, JSON & Parquet (22 นาที)
• อ่านข้อมูลจากไฟล์ ZIP ของ Binance Archive
• เปรียบเทียบขนาดไฟล์และความเร็วของ CSV, JSON และ Parquet
• แนวคิด Row-based เทียบกับ Columnar Storage และ Partitioned Parquet
Clip 4: Errors, Logging & Validation (23 นาที)
• จัดการข้อผิดพลาดด้วย try/except และ Retry เมื่อเกิด Error ชั่วคราว
• ใช้ Logging เพื่อติดตามการทำงานและตรวจสอบปัญหาของโปรแกรม
• ตรวจสอบความถูกต้องของข้อมูล OHLCV
• กรณีศึกษา Timestamp ของ Binance ที่เปลี่ยนจาก millisecond เป็น microsecond ในปี 2025
Module 3: Database Design & SQL
Clip 5: Database Design (24 นาที)
• ออกแบบ Schema สำหรับข้อมูล 5 ตาราง ได้แก่ symbols, bars, funding, orders และ fills
• Primary Key, Composite Key, Foreign Key, CHECK Constraint และ Index
• กรณีศึกษาเหรียญเปลี่ยนชื่อจาก MATIC เป็น POL
• ใช้ Constraint ให้ฐานข้อมูลช่วยปฏิเสธข้อมูลที่ไม่ถูกต้อง
Clip 6: SQL Essentials (20 นาที)
• ค้นหาและจัดเรียงข้อมูลด้วย SELECT, WHERE, ORDER BY และ LIMIT
• เพิ่ม แก้ไข และลบข้อมูลด้วย INSERT, UPDATE และ DELETE
• Parameterized Query และตัวอย่างปัญหา SQL Injection
Clip 7: SQL for Data Analysis (23 นาที)
• สรุปข้อมูลด้วย GROUP BY และ Aggregate Functions
• เชื่อมข้อมูลหลายตารางด้วย JOIN
• วิเคราะห์ข้อมูลด้วย Window Functions เช่น LAG, Moving Average และการค้นหาแท่งราคาล่าสุดของแต่ละเหรียญ
• ตรวจสอบผลลัพธ์ของ SQL เทียบกับ pandas
Module 4: Python & SQLite Integration
Clip 8: SQLite from Python (20 นาที)
• เชื่อมต่อ SQLite ผ่าน Python ด้วย Connection และ Cursor
• ดึงข้อมูลด้วย Fetch และจัดการการปิด Connection
• อ่านและบันทึกข้อมูลด้วย pandas read_sql_query และ to_sql
Clip 9: CRUD, Batch Operations & Upsert (22 นาที)
• เขียน Function สำหรับ Create, Read, Update และ Delete (CRUD)
• ใช้ executemany สำหรับ Batch Insert และเปรียบเทียบความเร็วกับการเขียนทีละแถว
• ใช้ Upsert เพื่ออัปเดตข้อมูลแท่งเทียนที่ยังไม่ปิดโดยไม่สร้างข้อมูลซ้ำ
Clip 10: Transactions & Database Workflow (21 นาที)
• จัดการ Commit, Rollback และ Transaction ด้วย with conn:
• แนวคิด All-or-nothing เพื่อป้องกันการบันทึกข้อมูลเพียงบางส่วน
• สร้าง Workflow: Load → Validate → Store → Update
• ออกแบบกระบวนการแบบ Idempotent ที่สามารถรันซ้ำได้โดยข้อมูลไม่ซ้ำ
Module 5: Object-Oriented Programming
Clip 11: OOP for Data Components (22 นาที)
• พื้นฐาน Class และ dataclass ใน Python
• เปรียบเทียบว่าเมื่อไรควรใช้ Function หรือ Class
• แนวคิด Composition สำหรับประกอบส่วนต่าง ๆ ของโปรแกรม
• ออกแบบ Component เช่น Loader, Validator, Store และ Updater
Module 6: Concurrency & Asynchronous Programming
Clip 12: Concurrency & Asynchronous Programming (18 นาที)
• ทำความเข้าใจความแตกต่างระหว่าง I/O-bound และ CPU-bound
• ดาวน์โหลดข้อมูลหลายไฟล์พร้อมกันด้วย Threading และ AsyncIO
• ใช้ Multiprocessing เพื่อทดสอบหลายชุดพารามิเตอร์พร้อมกัน
• ข้อจำกัด Single Writer ของ SQLite เมื่อมีหลายงานเข้าถึงฐานข้อมูล
Module 7: Building an OOP Trading System
Clip 13: End-to-End Trading Pipeline (22 นาที)
• นำทุกส่วนที่เรียนมาประกอบเป็นระบบเทรดจำลองด้วย OOP และ Composition
• สร้าง Trading Signal จากข้อมูลใน SQL ด้วย Window Functions
• สร้าง Order ด้วย dataclass และส่งคำสั่งผ่าน MockBroker
• บันทึก Order และ Fill ภายใน Database Transaction เดียวกัน
• ประกอบ Component เป็น Trader ที่สามารถรันรายวันกับข้อมูลจริงของ BTC และ ETH
• จำลองเฉพาะ Broker โดยไม่มีการส่งคำสั่งซื้อขายด้วยเงินจริง และออกแบบให้สามารถเปลี่ยน Broker Component ได้ในอนาคต
ใบรับรอง
ผู้เรียนที่เรียนครบทุกวิชาในหลักสูตรและส่งโปรเจกต์ backtest ระบบเทรด 1 ระบบ
จะได้รับใบรับรองจาก GroundUp Academy
Course Content
Course Syllabus
-
(ATA) Database Management – Introduction
07:04 -
(ATA) Database Management – Module 1 (1-2)
33:24 -
(ATA) Database Management – Module 1 (2-2)
30:00