Bot Python Chứng KhoánPythonChứng khoánBot TradingHOSE
Được viết bởithanhdtvào ngày 06/07/2026

Bot Auto Trading Python Chứng Khoán Việt Nam: Bắt Đầu Từ Đâu?

Hướng dẫn xây dựng bot auto trading Python cho thị trường chứng khoán Việt Nam (HOSE, HNX). API nào dùng được, kiến trúc bot ra sao và rủi ro cần biết.

Bot Auto Trading Python Chứng Khoán Việt Nam: Bắt Đầu Từ Đâu?

Bot auto trading Python chứng khoán Việt Nam đang thu hút ngày càng nhiều lập trình viên và nhà đầu tư. Thị trường HOSE và HNX với hàng trăm cổ phiếu tạo ra vô số cơ hội giao dịch có thể khai thác bằng thuật toán.

Đặc Thù Thị Trường Chứng Khoán Việt Nam

Trước khi viết bot, bạn cần hiểu rõ những đặc thù riêng:

  • Giờ giao dịch: 9:00-11:30 và 13:00-14:45 (không giao dịch 24/7 như forex)
  • Biên độ dao động: HOSE ±7%, HNX ±10%, UpCOM ±15% mỗi phiên
  • T+2.5: Tiền/cổ phiếu về tài khoản sau 2.5 ngày làm việc — không thể daytrading như forex
  • Lô giao dịch: Tối thiểu 100 cổ phiếu trên HOSE
  • Phí giao dịch: 0.15-0.35% mỗi chiều — ảnh hưởng lớn đến chiến lược tần số cao

API Nào Dùng Được Cho Bot?

TCBS API (Techcombank Securities)

API không chính thức nhưng được cộng đồng dùng rộng rãi để lấy dữ liệu:

import requests

def get_stock_price(symbol):
    url = f"https://apipubaws.tcbs.com.vn/stock-insight/v1/stock/quotes?symbol={symbol}"
    return requests.get(url).json()

DNSE API

Cung cấp API chính thức cho khách hàng DNSE với WebSocket real-time data và khả năng đặt lệnh.

SSI FastConnect

API trading chính thức của SSI — yêu cầu đăng ký và phê duyệt, phù hợp cho trader thuật toán nghiêm túc.

Kiến Trúc Bot Chứng Khoán Python

Data Layer → Strategy Layer → Execution Layer → Monitoring
     ↓              ↓               ↓               ↓
 TCBS/DNSE     MA/RSI/ML        API Order      Telegram Alert

Data Layer: Thu thập và lưu trữ dữ liệu giá (pandas, SQLite)

Strategy Layer: Xử lý tín hiệu — rule-based hoặc Machine Learning

Execution Layer: Gửi lệnh qua API của công ty chứng khoán

Monitoring Layer: Log, cảnh báo khi có drawdown bất thường

Ví Dụ: Tín Hiệu MA Crossover

import pandas as pd

def generate_signal(df, fast=9, slow=21):
    df['ema_fast'] = df['close'].ewm(span=fast).mean()
    df['ema_slow'] = df['close'].ewm(span=slow).mean()

    df['signal'] = 0
    df.loc[df['ema_fast'] > df['ema_slow'], 'signal'] = 1   # Buy
    df.loc[df['ema_fast'] < df['ema_slow'], 'signal'] = -1  # Sell

    # Chỉ lấy tín hiệu khi có thay đổi (mới phát sinh)
    df['entry'] = df['signal'].diff().fillna(0)
    return df

Rủi Ro Đặc Thù Cần Lưu Ý

  1. Thanh khoản thấp — Mid/small-cap khó mua bán số lượng lớn mà không làm dịch giá
  2. T+2.5 constraint — Không thể cắt lỗ ngay trong phiên nếu chưa có tiền về
  3. API rate limit — Cần giới hạn tốc độ gọi API để tránh bị block
  4. Halt lệnh — Sàn có thể tạm dừng giao dịch cổ phiếu bất kỳ lúc nào

Lộ Trình Học Đề Xuất

  1. Python cơ bản + pandas, numpy (2-4 tuần)
  2. Thu thập và phân tích dữ liệu chứng khoán (2 tuần)
  3. Backtest với backtesting.py hoặc vectorbt (2-4 tuần)
  4. Paper trading — kết nối API giả lập (1 tháng)
  5. Live trading với số lượng nhỏ và theo dõi chặt

Muốn học bài bản từ đầu? Tham khảo chương trình đào tạo tại Hướng Nghiệp Dữ Liệu.