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-10
Điểm chính
  • Săn cá voi (WH) là chỉ báo do Blave tự xây dựng, đo khối lượng mở (OI) và khối lượng giao dịch bất thường đến mức nào so với bình thường; nó là tổng toàn thị trường, không phân biệt được cá voi hay 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ế do Blave tự xây dựng, đo khối lượng mở (Open Interest, OI) và khối lượng giao dịch của hợp đồng vĩnh cửu, trong cửa sổ thời gian (timeframe) bạn chọn, bất thường đến mức nào so với mức bình thường của coin. Nó có hai loại điểm:

ĐiểmNhìn vào gìCách đọc
score_oiThay đổi khối lượng mở trong cửa sổDương = trong giai đoạn này OI tăng nhiều hơn bình thường, thường là tăng ròng; âm = giảm nhiều hơn bình thường, thường là giảm ròng
score_volumeKhối lượng giao dịch trong cửa sổ — là mức khối lượng, không phải thay đổi khối lượngDương = sôi động hơn bình thường; âm = trầm lắng hơn bình thường, không có nghĩa là khối lượng đang giảm

Giá trị không có giới hạn trên hay dưới: quanh 0 là mức bình thường, giá trị tuyệt đối càng lớn càng bất thường. Từ ±2 trở lên là hiếm, từ ±3 trở lên là cực đoan, mọi coin dùng cùng một thước đo; hãy tự quét ngưỡng bằng backtest. Một coin liên tục tăng vị thế trong thời gian dài thì tăng vị thế chính là bình thường của nó, giá trị sẽ không luôn ở mức cao. Huy hiệu trạng thái của Studio dữ liệu phân cấp theo các ngưỡng sau (lấy score_oi làm ví dụ):

Giá trịHuy hiệu Studio dữ liệuÝ nghĩa
≥ +3Tăng quá mứcOI tăng nhiều hơn bình thường rất nhiều, thuộc 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ãnGần như bình thường
≤ −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ữ.

"Cá voi" trong tên chỉ là ẩn dụ. Nó nhìn vào tổng toàn thị trường, không thấy từng tài khoản, không phân biệt được là vài nhà đầu tư lớn hay một đám nhỏ lẻ.

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:

Python
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":

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

Python
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à xem thay đổi OI hoặc khối lượng trong khoảng thời gian dài bao nhiêu: 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 dữ liệu, 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 dữ liệu ở đâ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 tất cả coin: trục ngang là điểm OI, trục dọc là điểm khối lượng, chỉ vẽ đường trục 0, không phân loại góc phần tư. Nửa dưới nghĩa là khối lượng trầm lắng hơn bình thường, không phải khối lượng đ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, dùng Cường độ Taker để xem lực mua bán chủ động của trader trong cùng khoảng thời gian, 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ườngÝ nghĩa
up_probXác suất giá tăng sau 24 giờ do mô hình ước tính; là giá trị ước tính, không phải tỷ lệ thắng được đảm bảo.
avg_up_return /
avg_down_return
Mức tăng trung bình khi giá tăng sau 24 giờ và mức giảm trung bình khi giá giảm, không phân biệt WH cao hay thấp.
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 lịch sử có đủ hay không; khi là false thì các con số này chỉ để tham khảo.
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. "Cao thấp" chỉ là so với mức bình thường của coin, không cho thấy hướng long/short, stat là ước tính, không phải tỷ lệ thắng — mọi ngưỡng đều phải kiểm chứng bằng backtest của chính bạn.