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 PREMIUM
Được viết bởi thanhdt vào ngày 27/11/2025 lúc 16:46 | 38 lượt xem
XÂY DỰNG BOT AUTO TRADING BREAKOUT PREMIUM
Chiến lược “CHỐNG FAKE BREAKOUT 3 LỚP”, chuẩn Pro dành cho Futures
Breakout là chiến lược mạnh – nhưng cũng là chiến lược dễ bị quét, gãy biên, fake breakout nhất trong crypto.
Để khắc phục, ta xây dựng Breakout Premium, gồm 3 lớp lọc tín hiệu:
- Lớp 1 – Breakout thật (nến đóng cửa vượt vùng kháng cự/hỗ trợ)
- Lớp 2 – Volume Confirm (khối lượng tăng > MA20)
- Lớp 3 – Momentum MACD Histogram theo hướng breakout
Kết hợp 3 lớp → bot vào lệnh siêu sạch, hạn chế tối đa dính trap.
1. Fake Breakout là gì?


Thị trường crypto nổi tiếng với:
- “Rút nến”
- “Quét biên rồi đảo chiều”
- “Breakout trap”
Nên Breakout truyền thống → dễ bị lừa.
Breakout Premium giải quyết vấn đề này.
2. Công thức Breakout Premium (3 lớp lọc)
BUY khi breakout tăng:
Giá đóng cửa > Kháng cự
Volume > MA20
MACD Histogram > 0 và tăng mạnh
SELL khi breakout giảm:
Giá đóng cửa < Hỗ trợ
Volume > MA20
MACD Histogram < 0 và giảm mạnh
3. Cài đặt thư viện
pip install ccxt pandas numpy python-binance python-dotenv
4. Lấy dữ liệu từ Binance Futures
import ccxt, pandas as pd
binance = ccxt.binance({'options': {'defaultType': 'future'}})
def fetch(symbol="BTC/USDT", tf="5m", limit=300):
df = pd.DataFrame(
binance.fetch_ohlcv(symbol, tf, limit=limit),
columns=["time","open","high","low","close","volume"]
)
return df
5. Tính Volume MA20 + MACD Histogram
def indicators(df):
df["VolMA20"] = df["volume"].rolling(20).mean()
df["EMA12"] = df["close"].ewm(span=12).mean()
df["EMA26"] = df["close"].ewm(span=26).mean()
df["MACD"] = df["EMA12"] - df["EMA26"]
df["Signal"] = df["MACD"].ewm(span=9).mean()
df["Hist"] = df["MACD"] - df["Signal"]
return df
6. Xác định vùng Breakout (Hỗ trợ / Kháng cự gần nhất)
def support_resistance(df, window=20):
recent = df.tail(window)
sup = recent["low"].min()
res = recent["high"].max()
return sup, res
7. Logic Breakout Premium (lọc 3 lớp)


def breakout_signal(df):
sup, res = support_resistance(df)
c = df.iloc[-1]
# Lớp 1: Breakout nến đóng cửa
breakout_up = c["close"] > res
breakout_down = c["close"] < sup
# Lớp 2: Volume Confirm
vol_ok = c["volume"] > c["VolMA20"]
# Lớp 3: MACD Histogram Confirm
h0 = df["Hist"].iloc[-1]
h1 = df["Hist"].iloc[-2]
moment_up = h0 > 0 and h0 > h1
moment_down = h0 < 0 and h0 < h1
# BUY
if breakout_up and vol_ok and moment_up:
return "BUY", sup, res
# SELL
if breakout_down and vol_ok and moment_down:
return "SELL", sup, res
return "NONE", sup, res
8. Gửi lệnh 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 execute(symbol, sig, qty):
if sig == "BUY":
client.futures_create_order(symbol=symbol, side="BUY", type="MARKET", quantity=qty)
if sig == "SELL":
client.futures_create_order(symbol=symbol, side="SELL", type="MARKET", quantity=qty)
9. Full Code – Bot Auto Trading Breakout Premium
symbol = "BTC/USDT"
qty = 0.01
df = fetch(symbol)
df = indicators(df)
sig, sup, res = breakout_signal(df)
print("Signal:", sig)
if sig != "NONE":
execute(symbol, sig, qty)
Chạy bot liên tục:
import time
while True:
df = fetch(symbol)
df = indicators(df)
sig, sup, res = breakout_signal(df)
print("Price:", df['close'].iloc[-1],
"| Support:", sup,
"| Resistance:", res,
"| Signal:", sig)
if sig != "NONE":
execute(symbol, sig, qty)
time.sleep(10)
10. Nâng cấp Breakout Premium (Pro Version)
1. Thêm ATR Stop-loss
SL = Entry – ATR×2 (Buy)
SL = Entry + ATR×2 (Sell)
2. Thêm lớp lọc “Kênh Xu Hướng”
Chỉ breakout trong xu hướng hợp lệ.
3. Thêm lớp lọc “MA6–10–20”
Chỉ BUY khi MA6 > MA10 > MA20.
4. Thêm Realtime Websocket
→ nhận breakout theo từng tick, không delay.
5. Tránh giao dịch khi giá nằm trong biên sideway (biên độ < X%)
6. Thêm TP theo Fibonacci Extension
TP1 = 1.272
TP2 = 1.618