Đọ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ế 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ểm | Nhìn vào gì | Cách đọc |
|---|---|---|
score_oi | Thay đổ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_volume | Khố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ượng | Dươ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 |
|---|---|---|
| ≥ +3 | Tăng quá mức | OI tăng nhiều hơn bình thường rất nhiều, thuộc 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 | Gần như bình thường |
| ≤ −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ữ.
"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ẻ.
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 signalENTRY_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.0Tổ 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à 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.
| 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 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. |
Đâ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, 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. |
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_prob | Xá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_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 lịch sử có đủ hay không; khi là false thì các con số này chỉ để tham khảo. |
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.