Đọ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.
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 (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ểm | Cộng dồn cái gì | Cách đọc |
|---|---|---|
score_oi | Thay đổ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_volume | Tổ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ượng | Dươ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 |
|---|---|---|
| ≥ +3 | Tăng quá mức | OI tăng ròng vượt xa mức bình thường 30 ngày, là giá trị cực đoan |
| +2 ~ +3 | Tăng mạnh | OI tăng ròng cao rõ rệt so với bình thường |
| +0.5 ~ +2 | Tăng | OI tăng ròng cao hơn bình thường |
| −0.5 ~ +0.5 | Không gắn nhãn | Tương đương mức bình thường 30 ngày |
| ≤ −0.5 | Giả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 |
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.
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.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.
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.
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.
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í.
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.
| Timeframe | Một giá trị bao quát gì | Lưu ý |
|---|---|---|
15min / 1h | Thay đổi OI / khối lượng trong 15 phút hoặc 1 giờ gần nhất | Cửa sổ ngắn: không dùng lại ngưỡng của 24h, hãy quét riêng |
4h / 8h | Thay đổi trong 4 hoặc 8 giờ gần nhất | Nằm giữa cửa sổ ngắn và khung ngày; ngưỡng cũng phải tự quét |
24h | Thay đổi trong 24 giờ gần nhất | Mặc định; cửa sổ mà chiến lược BTC: Săn cá voi ngược xu hướng sử dụng |
3d | Thay đổi trong 3 ngày gần nhất | Cử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.
| Trang | Hiển thị gì |
|---|---|
| Tổng quan | Bả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. |
Đây là ý tưởng kết hợp, không phải kết luận đã kiểm chứng:
| Kết hợp | Mụ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 độ Taker | Khi 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. |
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 | Thực tế tính gì |
|---|---|
up_prob | Mô 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_value | up_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_sufficient | Dữ 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". |
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.