| Backend FastAPI Cho Bot Auto Trading

Được viết bởi thanhdt vào ngày 08/12/2025 lúc 13:27 | 281 lượt xem

Xây Dựng Backend FastAPI Cho Bot Auto Trading

Hệ thống giao dịch tự động (Auto Trading Bot) đòi hỏi tính ổn định, tốc độ cao và khả năng mở rộng. FastAPI – nhờ vào tốc độ xử lý vượt trội và mô hình async – trở thành lựa chọn hoàn hảo để xây dựng nền tảng backend cho bot giao dịch hiện đại trên các sàn như Binance, Bitget, Bybit hoặc OKX.

Dưới đây là hướng dẫn đầy đủ về kiến trúc, thiết kế API, xử lý tín hiệu và triển khai thực tế.


1. Kiến trúc tổng thể Backend Bot Trading

Hệ thống có thể chia thành các khối sau:

  1. Webhook Receiver (nhận tín hiệu TradingView)
  2. Strategy Engine (xử lý chiến lược)
  3. Exchange API Handler (Bitget, Binance, Bybit)
  4. Order Management
  5. Monitor – Logging – Alert
  6. Database Layer (MongoDB, PostgreSQL)
  7. Dashboard Admin
  8. Background Tasks Scheduler

Hình minh họa gợi ý 1 – Kiến trúc tổng thể Bot Auto Trading

Một sơ đồ dạng block với các module:

  • Người dùng
  • TradingView
  • FastAPI Backend
  • Strategy Engine
  • Database
  • Exchange API
  • Dashboard Monitoring

2. Khởi tạo dự án FastAPI

Cài đặt thư viện cần thiết

pip install fastapi uvicorn ccxt python-dotenv pymongo

Cấu trúc thư mục chuẩn

backend/
    main.py
    config/
        settings.py
    services/
        exchange_service.py
        strategy_service.py
    routes/
        webhook.py
    database/
        mongo.py
    utils/
        logger.py

Hình minh họa gợi ý 2 – Cấu trúc thư mục Backend FastAPI

Một hình folder tree trực quan, có highlight các thư mục chính như:
routes, services, config, database


3. Làm Webhook để nhận tín hiệu TradingView

TradingView gửi tín hiệu thông qua Webhook. Đây là nơi để bot tiếp nhận lệnh Buy/Sell.

Tạo Webhook endpoint

from fastapi import APIRouter, Request

router = APIRouter()

@router.post("/webhook")
async def webhook_handler(request: Request):
    data = await request.json()
    print("Received:", data)
    return {"status": "ok"}

Hình minh họa gợi ý 3 – TradingView gửi tín hiệu qua Webhook

Hình gồm:
TradingView chart → Alerts → Webhook URL → API FastAPI


4. Kết nối API Sàn giao dịch bằng CCXT

Đây là bước quan trọng để bot có thể thực hiện lệnh tự động.

Ví dụ kết nối Bitget

import ccxt

exchange = ccxt.bitget({
    "apiKey": "YOUR_KEY",
    "secret": "YOUR_SECRET",
    "password": "YOUR_PASSPHRASE"
})

Hàm đặt lệnh Market

def open_order(symbol, side, amount):
    order = exchange.create_order(
        symbol=symbol,
        type="market",
        side=side,
        amount=amount
    )
    return order

Hình minh họa gợi ý 4 – Sơ đồ API Flow của sàn giao dịch

Flow:
Bot → Exchange API → Khớp lệnh → Trả về Order ID → Lưu DB


5. Xử lý chiến lược giao dịch (Strategy Engine)

Bot có thể chạy theo:

  • Price Action
  • Moving Average Cross
  • RSI / MACD
  • SMC
  • Turtle
  • Volume Breakout
  • AI/ML predictions

Ví dụ chiến lược đơn giản:

async def execute_strategy(data):
    symbol = data["symbol"]
    signal = data["signal"]

    if signal == "BUY":
        return open_order(symbol, "buy", 0.01)

    if signal == "SELL":
        return open_order(symbol, "sell", 0.01)

Hình minh họa gợi ý 5 – Trading bot logic

Sơ đồ Decision Tree:
Signal → Check Conditions → Execute Buy/Sell → Log Order


6. Lưu lịch sử lệnh và trạng thái vào Database

Ví dụ dùng MongoDB:

from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27017")
db = client.auto_trading

def save_order(order):
    db.orders.insert_one(order)

Hình minh họa gợi ý 6 – Database model của Bot

Bảng orders gồm:
orderId, symbol, side, amount, entryPrice, tp, sl, status


7. Background Tasks: Kiểm tra TP/SL tự động

Bot cần liên tục kiểm tra giá để tự đóng lệnh.

Bạn có thể dùng:

  • FastAPI Background Tasks
  • APScheduler
  • Celery

Ví dụ:

from fastapi import BackgroundTasks

@app.post("/webhook")
async def webhook_handler(request: Request, background_tasks: BackgroundTasks):
    data = await request.json()
    order = await execute_strategy(data)
    background_tasks.add_task(check_tp_sl, order)
    return order

Hình minh họa gợi ý 7 – Price Monitoring Engine

Giá thị trường → Bot Check → Hit TP/SL → Đóng lệnh


8. Bảo mật Backend Bot Trading

  1. Bảo vệ Webhook bằng secret token
  2. Verify TradingView signature
  3. Chỉ cho phép IP whitelist
  4. Tách API đặt lệnh khỏi API public
  5. Dùng HTTPS để tránh sniffing
  6. Giới hạn tốc độ request (Rate limit)
  7. Mã hóa API key (dotenv)

Hình minh họa gợi ý 8 – Security Diagram

Các lớp bảo vệ: Firewall → API Gateway → Signature → Backend


9. Triển khai Backend FastAPI lên server

Bạn có thể triển khai qua:

  • Docker
  • DigitalOcean
  • AWS EC2
  • Hostinger VPS
  • Google Cloud Run

Lệnh chạy:

uvicorn main:app --host 0.0.0.0 --port 8000

Hình minh họa gợi ý 9 – Deployment Pipeline
Local development → Docker build → Deploy VPS → Reverse Proxy → Bot Running


10. Dashboard giám sát và quản lý bot

Một Dashboard chuyên nghiệp có các mục:

  • Trạng thái bot
  • Lệnh đang mở
  • Lịch sử giao dịch
  • Equity curve
  • Risk management
  • Cấu hình TPSL
  • Cài đặt chiến lược
  • Tắt/Mở bot

Hình minh họa gợi ý 10 – Dashboard quản lý bot

Một layout gồm:

  • Sidebar
  • Chart PnL
  • Bảng Orders
  • Nút Start/Stop bot

Kết luận

FastAPI mang lại tốc độ cao, cú pháp rõ ràng và khả năng mở rộng tuyệt vời cho backend bot auto trading. Với khả năng xử lý async, bảo mật tốt và tích hợp mạnh mẽ cùng Python ecosystem, đây là giải pháp phù hợp để xây dựng hệ thống giao dịch tự động từ đơn giản đến chuyên nghiệp.

Backend FastAPI kết hợp với TradingView Webhook, CCXT Exchange API và một kiến trúc database hợp lý sẽ tạo nên một nền tảng Auto Trading hoàn chỉnh, ổn định và có khả năng vận hành 24/7.