Cart Total Items (0)

Cart

  • We transform complex skills into practical insights!

Database Management (ATA Certification Program)

Wishlist Share

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

Show More

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

Document

Code

Want to receive push notifications for all major on-site activities?

✕