| 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 | 194 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:

  1. Lớp 1 – Breakout thật (nến đóng cửa vượt vùng kháng cự/hỗ trợ)
  2. Lớp 2 – Volume Confirm (khối lượng tăng > MA20)
  3. 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ì?

https://priceaction.com/wp-content/uploads/2015/08/falsebreaks.png
https://www.morpher.com/blog/optimizedImages/httpsi0wpcommorpherhomewpcomstagingcomwpcontentuploads202305image27pngw600h323.webp

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)

https://i.ytimg.com/vi/5v0lXxdlWx0/hq720.jpg?rs=AOn4CLAMLy1qq2LqkACE91FOdkc6X0oScg&sqp=-oaymwEhCK4FEIIDSFryq4qpAxMIARUAAAAAGAElAADIQj0AgKJD
https://indicatorvault.com/wp-content/uploads/2025/02/image2-4.png.webp
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

Thành ĐT

Thành ĐT

Founder & Chief Technology Officer, HNDL
1.322 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.