Bài viết gần đây
-
-
Phân Biệt MySQL Và PostgreSQL
Tháng 1 1, 2026 -
Gen Z Việt Nam trước làn sóng Web3
Tháng 12 29, 2025
| 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)


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


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

Ubuntu:
sudo apt update
sudo apt install python3-pip -y
nohup python3 breakout_bot.py &