Cách dùng Săn cá voi

Đọc biến động open interest, tránh lỗi hiểu sai phổ biến nhất và xem chiến lược chính thức dùng nó ngược chiều ra sao.

Cập nhật lần cuối 2026-09
Điểm chính
  • Săn cá voi (WH) là z-score của thay đổi ròng open interest (OI) hoặc khối lượng trên hợp đồng vĩnh cửu USDT-M của Binance, so với 30 ngày gần nhất của chính coin đó. Dữ liệu là tổng toàn thị trường nên không phân biệt được cá voi hay nhà đầu tư nhỏ lẻ.
  • WH cao không có nghĩa cá voi đang Long: giá trị chỉ cho biết thay đổi OI hoặc khối lượng bất thường tới đâu, bản thân nó không mang hướng.
  • Chiến lược chính thức "BTC: Săn cá voi ngược xu hướng" dùng ngược chiều: Long khi score_oi 24h xuống dưới −0.7, thoát khi lên trên 0.2. Backtest trong Thư viện chiến lược Blave, 2023-01-01 đến 2026-07-13: tổng lợi nhuận 268.17%, Sharpe 1.46, sụt giảm tối đa −22.5%.
  • Ngưỡng không dùng lại được: với cửa sổ 24h mặc định, cực trị trong hai năm gần nhất khoảng ±10, cửa sổ càng ngắn thì đuôi càng dày, nên đổi timeframe hay đổi coin đều phải quét lại tham số.

Một khối lớn sáng lên trên bản đồ nhiệt tổng quan: có phải cá voi đang ồ ạt vào Long? Săn cá voi cho bạn biết open interest và khối lượng "biến động bất thường tới đâu". Hướng là một câu hỏi khác, và đó là chỗ nhiều người đọc sai nhất.

Săn cá voi là gì?

Săn cá voi (Whale Hunter, WH) là chỉ báo biến động vị thế của Blave. Nó cộng dồn thay đổi open interest (OI) và khối lượng 5 phút của hợp đồng vĩnh cửu USDT-M trên Binance trong cửa sổ bạn chọn (timeframe), rồi quy đổi thành z-score so với 30 ngày gần nhất của coin đó. Có hai loại điểm:

ĐiểmCộng dồn cái gìCách đọc
score_oiThay đổi ròng của OI trong cửa sổ (tính bằng coin)Dương = thay đổi OI trong giai đoạn này cao hơn trung bình 30 ngày, thường là tăng ròng. Âm = thấp hơn trung bình, thường là giảm ròng.
score_volumeTổng khối lượng trong cửa sổ (tính bằng coin): là mức khối lượng, không phải thay đổi khối lượngDương = sôi động hơn 30 ngày gần nhất. Âm = trầm lắng hơn 30 ngày gần nhất, không có nghĩa khối lượng đang giảm.

Vì là z-score nên giá trị không có giới hạn trên dưới và mọi coin nằm trên cùng một thang đo. Nhưng "cao" luôn là so với 30 ngày gần nhất của chính coin đó: một coin có OI tăng đều trong thời gian dài sẽ bị chính mức trung bình của nó hấp thụ. Huy hiệu trạng thái trong Studio phân cấp theo các ngưỡng sau (ví dụ với score_oi):

Giá trịHuy hiệu StudioÝ nghĩa
≥ +3Tăng quá mứcOI tăng ròng vượt xa mức bình thường 30 ngày, là giá trị cực đoan
+2 ~ +3Tăng mạnhOI tăng ròng cao rõ rệt so với bình thường
+0.5 ~ +2TăngOI tăng ròng cao hơn bình thường
−0.5 ~ +0.5Không gắn nhãnTương đương mức bình thường 30 ngày
≤ −0.5Giảm / Giảm mạnh / Giảm quá mứcĐối xứng với phía dương, ngưỡng −0.5, −2, −3: OI giảm ròng (bị đóng) nhiều hơn bình thường

Điểm tinh tế quan trọng nhất: WH cao ≠ cá voi đang Long

Dấu dương hay âm của Săn cá voi chỉ cho biết thay đổi OI hoặc khối lượng bất thường tới đâu, bản thân nó không có hướng. OI tăng nghĩa là có vị thế mới được mở, nhưng đó có thể là Long hoặc Short. Muốn biết hướng, hãy nhìn lại giá, hoặc kết hợp với một chỉ báo có hướng như Tập trung nắm giữ.

Chữ "cá voi" trong tên chỉ là cách ví von. Dữ liệu là tổng toàn thị trường của hợp đồng vĩnh cửu Binance: không thấy tài khoản riêng lẻ, không phân biệt được vài tay to với một đám đông nhỏ lẻ, và không bao gồm các sàn khác.

Cách dùng có backtest chống lưng lại là cách ngược chiều. Chiến lược chính thức BTC: Săn cá voi ngược xu hướng vào Long khi score_oi 24h của BTC xuống dưới −0.7 (OI bị đóng ồ ạt bất thường) và thoát khi điểm hồi lên trên 0.2. Chỉ Long. Backtest hiển thị trong Thư viện chiến lược Blave (2023-01-01 đến 2026-07-13, phí 0.05% mỗi chiều): tổng lợi nhuận 268.17%, Sharpe 1.46, sụt giảm tối đa −22.5%, kiểm định ý nghĩa MCPT p = 0.005. Ngược lại, "thấy khối lớn là đuổi theo" hiện chưa có chiến lược đã kiểm chứng nào tương ứng.

Dựng chiến lược với Săn cá voi như thế nào?

Trong ba cách dưới đây, chỉ cách đầu tiên ứng với một chiến lược chính thức đã niêm yết và qua các bước kiểm tra. Hai cách còn lại là phác thảo ý tưởng kết hợp, chưa backtest, nên mọi ngưỡng đều phải tự kiểm chứng.

1. Ngưỡng ngược chiều: vào lệnh khi OI bị đóng ồ ạt

Logic rất đơn giản. Khi OI giảm ròng trong cửa sổ 24h tới mức bất thường (score_oi < −0.7), nghĩa là một lượng lớn vị thế đã bị đóng trong giai đoạn đó. Chiến lược vào Long, rồi thoát về trạng thái không vị thế khi điểm hồi lên trên 0.2. Đây chính là hàm tín hiệu của chiến lược chính thức btc_whale_1h:

ENTRY_TH = -0.7
EXIT_TH  = 0.2

def compute_signals(df, entry_th=ENTRY_TH, exit_th=EXIT_TH):
    # df['WH'] = score_oi 24h của BTCUSDT, đọc trên mỗi nến 1h
    signal = pd.Series(np.nan, index=df.index)
    signal[df['WH'] < entry_th] = 1.0   # OI bị đóng bất thường -> vào Long
    signal[df['WH'] > exit_th]  = 0.0   # điểm ổn định lại -> không vị thế
    return signal

ENTRY_TH = -0.7 và EXIT_TH = 0.2 lấy từ vùng bằng phẳng khi quét tham số, không phải đoán: ngưỡng vào từ −1.3 đến −0.6 và ngưỡng thoát từ 0.0 đến 0.3 đều nằm trong vùng ổn định, và Sharpe của vùng bằng phẳng bằng 0.884 lần Sharpe tại điểm tham số đã chọn.

2. Điều kiện kép: OI và khối lượng cùng tăng vọt

Tin nhanh trên trang Blave dùng đúng điều kiện này: khi score_oi và score_volume cửa sổ 1h cùng lớn hơn 2, hệ thống báo "open interest và khối lượng giao dịch tăng mạnh". Nó hợp để làm bộ lọc tìm coin "đang có chuyện":

oi  = fetch_whale_hunter(SYMBOL, INTERVAL, START, END, hdrs,
                         timeframe='1h', score_type='score_oi')
vol = fetch_whale_hunter(SYMBOL, INTERVAL, START, END, hdrs,
                         timeframe='1h', score_type='score_volume')
# hai điểm cùng > 2: giống điều kiện tin nhanh trên trang
active = (oi['alpha'] > 2) & (vol['alpha'] > 2)

Đây chỉ là bộ lọc, không phải tín hiệu vào lệnh: nó không cho biết hướng và chưa được backtest. Muốn đưa vào chiến lược, hãy thêm ít nhất một điều kiện về hướng và tự chạy backtest.

3. Bộ lọc: WH phát hiện bất thường, chỉ báo hướng quyết định

Vì WH không mang hướng, cách kết hợp tự nhiên là để nó trả lời "có bất thường không", còn quyết định vào lệnh giao cho một chỉ báo có hướng, ví dụ Tập trung nắm giữ. Đoạn dưới đây là khung minh họa; hãy thay compute_direction_filter bằng điều kiện hướng của bạn:

wh_active = df['WH'] > 2
direction_ok = compute_direction_filter(df)   # ví dụ điều kiện Tập trung nắm giữ
signal = pd.Series(np.nan, index=df.index)
signal[wh_active & direction_ok] = 1.0
signal[~wh_active] = 0.0

Tổ hợp này chưa được backtest, ngưỡng 2 chỉ mượn từ tin nhanh trên trang. Trước khi dùng thật, hãy quét tham số và xem hiệu suất sau phí.

Chọn timeframe và loại điểm thế nào?

WH có hai thiết lập dễ nhầm. Timeframe là cửa sổ cộng dồn thay đổi OI hoặc khối lượng: 15min, 1h, 4h, 8h, 24h hoặc 3d, mặc định là 24h và score_oi. Chu kỳ nến (5min đến 1d trên biểu đồ Studio, interval trong chiến lược) chỉ quyết định bao lâu đọc giá trị một lần. Chiến lược chính thức đọc điểm cửa sổ 24h trên nến 1h.

TimeframeMột giá trị bao quát gìLưu ý
15min / 1hThay đổi OI / khối lượng trong 15 phút hoặc 1 giờ gần nhấtCửa sổ ngắn: không dùng lại ngưỡng của 24h, hãy quét riêng
4h / 8hThay đổi trong 4 hoặc 8 giờ gần nhấtNằm giữa cửa sổ ngắn và khung ngày; ngưỡng cũng phải tự quét
24hThay đổi trong 24 giờ gần nhấtMặc định; cửa sổ mà chiến lược BTC: Săn cá voi ngược xu hướng sử dụng
3dThay đổi trong 3 ngày gần nhấtCửa sổ dài nhất: một đợt tăng vị thế lớn sẽ nằm trong giá trị suốt 3 ngày

Blave đo thực tế trên BTC, ETH và 1000PEPE từ 2024-09 đến 2026-09: với cửa sổ 24h mặc định, phân vị thứ 1 và thứ 99 của điểm OI khoảng −2.6 và +3, cực trị khoảng ±10. Cửa sổ càng ngắn thì đuôi càng dày: ở 1h, cực trị đã vượt ±20. Điểm khối lượng lệch phải (giá trị âm hiếm khi thấp hơn −2), nên không thể áp ngưỡng đối xứng của điểm OI. Ngưỡng không dùng chung giữa các thiết lập: đổi timeframe hay coin đều phải quét lại. Đừng áp −0.7 sang thiết lập khác.

Xem trong Studio ở đâu?

TrangHiển thị gì
Tổng quanBản đồ nhiệt dạng khối: chọn timeframe và thay đổi OI hoặc thay đổi khối lượng. Hiển thị 30 coin đứng đầu có giá trị lớn hơn 0, diện tích khối tỷ lệ với giá trị, xếp từ lớn đến nhỏ; màu là biến động giá trong cùng cửa sổ.
Lịch sửCột WH của một coin chồng lên giá, chọn được timeframe, loại điểm và chu kỳ biểu đồ, kèm trường stat.
Phân tán (Pro)Ảnh chụp mới nhất của mọi coin: trục ngang là điểm OI, trục dọc là điểm khối lượng, chỉ có đường số 0 và không đặt tên góc phần tư. Nửa dưới nghĩa là khối lượng trầm lắng hơn 30 ngày gần nhất, không phải đang giảm.

Kết hợp với chỉ báo nào?

Đây là ý tưởng kết hợp, không phải kết luận đã kiểm chứng:

Kết hợpMục đích
WH + Tập trung nắm giữWH tìm coin có biến động vị thế bất thường; Tập trung nắm giữ giúp đánh giá các vị thế đó nghiêng về Long hay Short.
WH + Cường độ TakerKhi OI giảm mạnh, xem Cường độ Taker trong cùng khung thời gian để thấy lực mua bán chủ động, giúp phân biệt có kèm thanh lý hay không.

Lấy dữ liệu qua API hoặc Blave Agent cần lưu ý gì?

Endpoint API là GET /whale_hunter/get_alpha với symbol, period, timeframe (mặc định 24h), score_type (score_oi hoặc score_volume) và ngày bắt đầu/kết thúc; trong Blave Agent là hàm fetch_whale_hunter. Chỉ trả về nến đã đóng. Không truyền ngày bắt đầu thì lấy 365 ngày gần nhất, khoảng dài hơn 365 ngày sẽ tự bị cắt. Lịch sử bắt đầu từ 2021-12-01 (hoặc ngày coin niêm yết). Phản hồi kèm một đối tượng stat mô tả giá trị mới nhất, nhưng tên gọi không hoàn toàn khớp với cách tính:

TrườngThực tế tính gì
up_probMô hình hồi quy logistic huấn luyện trên dữ liệu 365 ngày gần nhất, dùng WH để dự đoán giá tăng hay giảm sau 24 giờ và trả về xác suất tăng. Dữ liệu huấn luyện bao gồm cả giai đoạn hiện tại, nên đây là ước tính trong mẫu, không phải tỷ lệ thắng ngoài mẫu.
avg_up_return /
avg_down_return
Lợi nhuận trung bình của mọi thời điểm "tăng / giảm sau 24 giờ" trong 365 ngày gần nhất, không phân theo mức WH.
exp_valueup_prob × avg_up_return + (1 − up_prob) × avg_down_return, là số thập phân, không phải phần trăm.
is_data_sufficientDữ liệu của coin có bắt đầu từ hơn 365 ngày trước hay không, không phải "mức giá trị này có đủ mẫu hay không".
Hãy nhớ: Săn cá voi là dữ liệu tham khảo, không phải tín hiệu mua/bán. Nó chỉ gồm Binance, "cao" hay "thấp" chỉ so với 30 ngày gần nhất, không cho biết hướng, và stat là ước tính trong mẫu. Mọi ngưỡng đều phải kiểm chứng bằng backtest của chính bạn.