| XÂY DỰNG BOT AUTO TRADING BREAKOUT BTC/ETH BẰNG PYTHON + CCXT

Được viết bởi thanhdt vào ngày 27/11/2025 lúc 16:15 | 219 lượt xem

XÂY DỰNG BOT AUTO TRADING BREAKOUT BTC/ETH BẰNG PYTHON + CCXT

Chiến lược Breakout là một trong những phương pháp giao dịch phổ biến và hiệu quả nhất trong thị trường Crypto. Khi giá phá vỡ một vùng kháng cự/hỗ trợ mạnh, xác suất tiếp diễn xu hướng là rất cao.
Kết hợp chiến lược Breakout với Python & Binance API → chúng ta tạo ra bot auto trading breakout chạy tự động 24/7.

Bài này hướng dẫn xây dựng Bot Breakout cho BTC/ETH từ A → Z.


1. Breakout là gì? (Dành cho bot auto trading)

https://priceaction.com/wp-content/uploads/2015/08/SR1.png
https://www.protradingschool.com/wp-content/uploads/2020/09/resistance-support-breakout.jpg

Breakout xảy ra khi:

  • Giá vượt kháng cự → tín hiệu BUY
  • Giá thủng hỗ trợ → tín hiệu SELL

Bot auto trading breakout sử dụng:

  • Key Levels (vùng giá quan trọng)
  • Highest High / Lowest Low
  • Volume xác nhận (tùy chọn)
  • Stop-loss bắt buộc để tránh fake breakout

2. Chuẩn bị môi trường bot auto trading Python

pip install ccxt
pip install pandas numpy
pip install python-dotenv

Tạo file .env:

BINANCE_API_KEY=xxxx
BINANCE_API_SECRET=xxxx

3. Lấy dữ liệu BTC/ETH bằng CCXT

import ccxt
import pandas as pd

binance = ccxt.binance({
    'options': {'defaultType': 'future'}
})

def fetch_klines(symbol="BTC/USDT", tf="5m", limit=200):
    ohlcv = binance.fetch_ohlcv(symbol, tf, limit=limit)
    df = pd.DataFrame(ohlcv, columns=["time","open","high","low","close","volume"])
    return df

4. Xác định Breakout Levels

Breakout zone = đỉnh gần nhất (kháng cự) hoặc đáy gần nhất (hỗ trợ)

def breakout_levels(df, length=20):
    high_level = df['high'].rolling(length).max().iloc[-2]
    low_level = df['low'].rolling(length).min().iloc[-2]
    return high_level, low_level

5. Tạo tín hiệu Breakout

def breakout_signal(df):
    high, low = breakout_levels(df)

    close = df['close'].iloc[-1]

    if close > high:
        return "BUY_BREAKOUT"

    if close < low:
        return "SELL_BREAKDOWN"

    return "NONE"

6. Gửi lệnh vào Binance Futures

https://user-images.githubusercontent.com/86794449/124953550-1db94100-dfca-11eb-8e20-77ee41afab2f.png
https://user-images.githubusercontent.com/1671892/111311974-e1a34e80-866f-11eb-9e80-ec7f5d5de404.png
from binance.client import Client
from dotenv import load_dotenv
import os

load_dotenv()
client = Client(os.getenv("BINANCE_API_KEY"), os.getenv("BINANCE_API_SECRET"))

def order(symbol, side, qty):
    return client.futures_create_order(
        symbol=symbol,
        side=side,
        type="MARKET",
        quantity=qty
    )

7. Chèn Stop-loss & Take-profit tự động

Chiến lược Breakout bắt buộc có SL do dễ gặp “breakout giả”.

BUY SL = đáy gần nhất  
SELL SL = đỉnh gần nhất

8. Full code bot auto trading breakout (BTC/ETH)

import time

symbol = "BTCUSDT"
quantity = 0.01

while True:
    try:
        df = fetch_klines(symbol)
        sig = breakout_signal(df)
        high, low = breakout_levels(df)

        print("Signal:", sig)

        if sig == "BUY_BREAKOUT":
            order(symbol, "BUY", quantity)
            print("Breakout BUY executed at:", df['close'].iloc[-1])

        if sig == "SELL_BREAKDOWN":
            order(symbol, "SELL", quantity)
            print("Breakdown SELL executed at:", df['close'].iloc[-1])

    except Exception as e:
        print("Error:", e)

    time.sleep(8)  # delay 8 giây để tránh spam API

9. Nâng cấp Bot Auto Trading Breakout

Để bot thông minh hơn, có thể thêm:

✔ Volume Confirmation

Breakout chỉ hợp lệ khi volume tăng mạnh:

if df['volume'].iloc[-1] > df['volume'].rolling(20).mean().iloc[-1]:
    # volume ok

✔ ATR Stop-loss

Giúp bot chống quét SL:

df['ATR'] = df['high'] - df['low']
sl = df['close'].iloc[-1] - 1.5 * df['ATR'].iloc[-20]

✔ Avoid Fake Breakout

Chỉ BUY khi nến đóng trên kháng cự (Không dùng wick).


10. Chạy bot 24/7 bằng VPS

https://repository-images.githubusercontent.com/697748599/a9de4cf4-b622-464b-9f03-2a920ac9802d
https://www.bluehost.com/blog/wp-content/uploads/2025/06/Set_crypto_trading-1024x683.webp

Ubuntu:

sudo apt update
sudo apt install python3-pip -y
nohup python3 breakout_bot.py &
Thành ĐT

Thành ĐT

Founder & Chief Technology Officer, HNDL
1.321 Bài viết
15.4k Người theo dõi
120k+ Lượt đọc

Chuyên gia với hơn 10 năm kinh nghiệm trong phát triển hệ thống giao dịch tự động (Trading Bot), Fintech, Mobile App và phân tích dữ liệu tài chính (Quantitative Analysis). Người sáng lập và trực tiếp dẫn dắt các khóa học thực chiến tại Hướng Nghiệp Dữ Liệu.