| 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 | 88 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 &