Whale wall
Cách các lệnh chờ lớn được phát hiện trong orderbook thời gian thực, và ý nghĩa của các ngưỡng.
Thế nào được tính là một whale wall
Một whale wall (bức tường cá voi) là một mức giá đơn lẻ trong sổ lệnh của sàn mà khối lượng chờ ở đó đạt hoặc vượt một mức tối thiểu đã cấu hình. Bộ theo dõi đọc sổ lệnh thời gian thực, giữ lại mọi mức mua hoặc bán đạt mức tối thiểu, và theo dõi mức đó theo thời gian như một đối tượng duy nhất. Mức tối thiểu được lưu theo từng cặp giao dịch và từng sàn chứ không phải một con số toàn cục, và chỉ những cặp có cấu hình đã lưu và đang bật mới được theo dõi. Nếu một bức tường biến mất rồi xuất hiện lại ở cùng mức giá trong vòng năm phút với khối lượng tương tự, nó được coi là cùng một lệnh chứ không phải một lệnh mới.
Vòng đời của một bức tường trong bộ theo dõi
Luồng dữ liệu mang năm tên sự kiện: wall_appeared, wall_updated, wall_cancelled, wall_filled và wall_partialfill. Appeared đánh dấu lần đầu tiên một mức đạt mức tối thiểu; updated phát ra ở mỗi lần khối lượng thay đổi. Một mức biến mất không đóng lại ngay. Nó chuyển sang trạng thái chờ tối đa năm phút, và nếu cùng mức giá đó quay lại với khối lượng được bộ theo dõi chấm 0,70 trở lên là cùng một lệnh, nó được nhập lại và bộ đếm khoảng trống của nó tăng lên. Chỉ khi năm phút trôi qua mà không có sự quay lại nào, bộ theo dõi mới phát ra một sự kiện kết thúc. Trên bảng, cancelled và filled xóa hàng đi, còn updated và khớp một phần thì giữ hàng lại và viết lại các con số.
Các sự kiện kết thúc được xử lý khác với việc lọc theo kích thước. Máy chủ loại bỏ các sự kiện appeared và updated dưới mức tối thiểu của bạn trước khi chúng rời kênh, nhưng nó luôn chuyển tiếp cancelled và filled, vì một client có thể vẫn đang giữ bức tường đó từ một snapshot trước và cần xóa nó đi. Bảng tuân theo cùng quy tắc: nó bỏ qua một bản cập nhật dưới ngưỡng, nhưng không bao giờ bỏ qua một lần xóa. Đó là lý do một bức tường có thể biến mất khỏi bảng của bạn ngay sau khi bạn nâng mức tối thiểu, mà không có bức tường mới nào đến thay thế.
Cách bộ theo dõi quyết định filled, khớp một phần hay cancelled
Mỗi lần một mức đang theo dõi co lại, bộ theo dõi tìm các giao dịch đã khớp ở mức giá đó hoặc quanh đó vào khoảng cùng thời điểm. Khi những giao dịch đó chiếm phần lớn phần co lại, phần co lại được ghi là filled. Khi chúng chỉ chiếm một phần, chỉ khối lượng mà chúng xác nhận mới được ghi nhận, và khi bằng chứng mỏng thì khối lượng đó còn bị giảm bớt thêm. Một phần co lại hoàn toàn không có bằng chứng giao dịch nào đứng sau thì được ghi là một lần hủy. Cửa sổ tìm kiếm trải về trước xa hơn là về sau so với thời điểm cập nhật, vì một giao dịch thường đến trước bản cập nhật độ sâu phản ánh giao dịch đó.
Những lượng đó tích lũy suốt vòng đời của bức tường thành một tổng đã khớp và một tổng đã hủy. Khi bức tường cuối cùng đóng lại, tỷ lệ khớp lũy kế quyết định sự kiện kết thúc: từ 90 phần trăm trở lên là filled, từ 20 phần trăm trở lên là khớp một phần, và bất cứ gì dưới mức đó là cancelled. Hai trường hợp đặc biệt lấn át phép tính. Một bức tường biến mất trong một nhịp duy nhất mà không ghi nhận lần co nào, nhưng giá thị trường đã xuyên qua mức của nó, được ghi là filled. Một bức tường sống dưới 500 mili giây với gần như không khớp gì, và giá không xuyên qua nó, được phân loại là spoofing (giả lệnh).
Các sàn và thị trường được bao phủ
Bốn sàn được bao phủ: Binance Futures, Binance Spot, Coinbase và Hyperliquid. Binance Futures và Hyperliquid được xếp nhóm futures; Binance Spot và Coinbase xếp nhóm spot. Dữ liệu sổ lệnh và giao dịch được đọc trực tiếp từ luồng WebSocket công khai của chính mỗi sàn. Độ phủ không giống nhau giữa các sàn — bộ theo dõi Coinbase và Hyperliquid chỉ chạy cho một danh sách cặp cụ thể mà mỗi sàn hỗ trợ, và một số cặp bị bỏ qua trên Binance Spot vì không được niêm yết ở đó. Trong giao diện, bạn chọn hiển thị sàn nào, và phần header cho biết hiện đang chọn bao nhiêu trong bốn sàn.
Các thiết lập bạn kiểm soát
Hai bộ lọc kích thước điều khiển bảng. Min đặt bức tường nhỏ nhất được hiển thị; Big đặt mức mà trên đó một bức tường được đánh dấu là lệnh lớn. Cả hai đều có cùng các giá trị dựng sẵn — 5, 10, 25, 50, 100 và 250 đơn vị tài sản cơ sở — cùng một giá trị tùy chỉnh, và cả hai có thể biểu diễn bằng đơn vị tài sản cơ sở hoặc bằng đô la Mỹ qua một nút chuyển tiền tệ duy nhất, với giá trị quy đổi ra đô la hiển thị cạnh mỗi giá trị dựng sẵn. Mặc định khác nhau theo từng cặp, nên đổi symbol sẽ áp dụng mặc định riêng của cặp đó. Tùy chọn được lưu trong trình duyệt và, khi bạn đã đăng nhập, được đồng bộ vào tài khoản của bạn.
Dữ liệu mới tới mức nào
Bảng mở ra với một snapshot một lần của các bức tường đang hoạt động, rồi tự cập nhật qua một luồng server-sent event — một luồng cho futures, một cho spot — nên thay đổi đến ngay khi chúng xảy ra chứ không theo bộ hẹn giờ làm mới. Bộ lọc kích thước được áp dụng ở phía máy chủ trong yêu cầu snapshot. Máy chủ gửi một heartbeat mỗi 15 giây và một bình luận keep-alive mỗi 30 giây. Client đánh dấu dữ liệu là cũ sau 30 giây không có sự kiện, coi việc thiếu heartbeat trong 45 giây là kết nối đã chết, và kết nối lại với backoff lũy tiến tối đa mười lần. Một snapshot được tải khi bạn kết nối và sau khi đổi symbol hoặc ngưỡng; việc tự động kết nối lại chỉ khôi phục luồng và tiếp tục từ số thứ tự cuối cùng nó thấy.
Cách bảng giữ snapshot và luồng nhất quán với nhau
Luồng mở ra trước khi snapshot kịp về, nên nếu không xử lý, các sự kiện sẽ được áp lên một sổ lệnh sắp bị thay thế. Thay vào đó, chúng được giữ trong một bộ đệm tối đa 10.000 sự kiện trong lúc snapshot được tải; nếu bộ đệm đó tràn, nửa cũ hơn bị loại bỏ và việc loại bỏ được ghi log. Khi snapshot về, bộ đệm được sắp xếp và phát lại, chỉ giữ những sự kiện có số thứ tự lớn hơn của snapshot. Các sự kiện đã áp dụng sau đó được vẽ lên màn hình theo từng lô khung hình, với appeared, filled và cancelled được xếp hàng trước phần còn lại.
- Khi tải nặng, máy chủ chỉ cắt bớt lưu lượng ưu tiên thấp: appeared, filled và cancelled không bao giờ bị loại khỏi một kênh, còn các sự kiện updated thì có thể bị loại, một khi bộ đệm kênh vượt 800 mục.
- Khi có thứ gì bị loại bỏ, máy chủ không im lặng — nó gửi một sự kiện data_gap mang số sự kiện bị mất và lý do, hoặc là cắt bớt do backpressure, hoặc là client bị tụt lại phía sau.
- Đổi một ngưỡng kích thước sẽ mở lại luồng với bộ lọc mới và kéo về một snapshot mới; các bức tường không còn vượt ngưỡng sẽ bị xóa khỏi bản đồ cục bộ trước.
- Đổi symbol sẽ xóa bản đồ bức tường, số thứ tự và các chỉ số trước khi bất cứ thứ gì mới được yêu cầu, nên hai symbol không bao giờ lẫn vào nhau.
Đọc bảng
Các bức tường từ cùng một sàn được gom vào các bucket giá, với kích thước bucket được chọn tự động theo mức giá. Mỗi hàng hiển thị giá bucket và tổng kích thước của nó theo đô la hoặc đơn vị tài sản cơ sở, một dấu hiệu cho các hàng vượt ngưỡng lệnh lớn của bạn, và một thanh thể hiện kích thước lũy kế xếp chồng về phía giá tốt nhất. Di chuột lên một hàng sẽ mở dải chi tiết gồm sàn, phía lệnh, giá, giá trị, giá trị lũy kế, khoảng cách so với giá hiện tại tính theo phần trăm, khối lượng, và tuổi của bức tường lâu đời nhất trong bucket. Các bức tường mà thị trường đã giao dịch xuyên qua được ẩn theo mặc định, với giả định rằng chúng nhiều khả năng đã khớp; một hành động trong bảng lệnh sẽ bật chúng trở lại.
Một hàng thực chất là gì: các bucket giá
Một hàng không phải một lệnh. Trước khi bất cứ thứ gì được vẽ, mọi bức tường đang theo dõi đều được làm tròn lên một lưới giá, và những bức tường rơi vào cùng một bước, trên cùng một sàn và cùng một phía, được gộp thành một hàng. Bước lấy từ chính mức giá: từ 1.000 trở lên bước là 0,1, từ 10 đến dưới 1.000 là 0,01, và dưới 10 là 0,001. Vậy nên một mức gần 100.000 được gom về một phần mười đô la, trong khi một mức gần 3 được gom về một phần mười xu. Không thiết lập kích thước nào của bạn làm thay đổi lưới này.
Mỗi bucket sau đó mang tổng khối lượng, tổng giá trị đô la, số bức tường nó chứa, và tuổi của bức tường lâu nhất lẫn mới nhất trong đó. Dấu hiệu lệnh lớn được so với tổng của bucket chứ không phải với một lệnh đơn lẻ nào, nên nhiều bức tường cỡ trung nằm chung một bước có thể cùng nhau làm nó sáng lên. Sau khi gom bucket, phía mua được sắp giảm dần và phía bán tăng dần, và một tổng chạy được tích lũy từ đỉnh của mỗi danh sách. Thanh phía sau một hàng thể hiện tổng chạy đó so với tổng chạy lớn nhất trong cùng thẻ, đó là lý do các thanh có thể so sánh trong cùng một sàn nhưng không so sánh được giữa các sàn.
Các bức tường bị xuyên qua và các mốc giá
"Bị xuyên qua" được quyết định bởi hai con số mà trang tự giữ cho mình: giá cao nhất và giá thấp nhất nó đã thấy kể từ khi bạn chọn symbol hiện tại. Một bức tường bán được tính là bị xuyên qua khi mốc cao chạm tới hoặc vượt giá của nó; một bức tường mua được tính là bị xuyên qua khi mốc thấp chạm tới hoặc rơi xuống giá của nó. Lý lẽ là thị trường đã giao dịch ở mức đó rồi, nên một bức tường vẫn còn nằm đó nhiều khả năng là tàn dư trong trạng thái của chính client chứ không phải khối lượng chờ thật. Ẩn chúng đi là mặc định.
Có hai hệ quả đáng biết. Các mốc được đặt lại mỗi khi bạn đổi symbol, nên ngay sau khi chuyển, bộ lọc không có gì để làm việc và không có gì bị ẩn cho tới khi giá bắt đầu về. Và bộ lọc được áp dụng trong lúc bảng gom dữ liệu, chứ không chỉ trong lúc vẽ, nên một bức tường bị ẩn cũng biến mất khỏi tổng của sàn và khỏi giá trị lớn nhất dùng để co giãn các thanh. Tắt bộ lọc qua bảng lệnh sẽ đưa những bức tường đó, cùng phần đóng góp của chúng vào các tổng, quay lại ngay lập tức.
Bốn bố cục
Menu bố cục cung cấp bốn lựa chọn dựng sẵn. Cả bốn đều đọc cùng dữ liệu bức tường và cùng các ngưỡng; chúng khác nhau ở cách sắp xếp các hàng và, trong một trường hợp, ở chỗ vẽ cái gì.
- Default: một thẻ cho mỗi sàn được chọn, xếp cạnh nhau và cuộn ngang, với phía mua ở cột trái và phía bán ở cột phải. Có thể kéo các thẻ để sắp xếp lại thứ tự sàn, và chiều rộng của chúng có thể cố định theo pixel, đặt theo tỷ lệ của khung chứa, hoặc tự vừa. Có thể thêm một thẻ tổng hợp ở cuối.
- Compact: cũng một thẻ cho mỗi sàn, nhưng mỗi thẻ là một thang dọc — phía bán ở trên, giá hiện tại của sàn ở giữa, phía mua ở dưới.
- Aggregate: hai bảng cạnh nhau, cả hai đều hiển thị mọi sàn được chọn gộp thành một danh sách với huy hiệu sàn có màu trên mỗi hàng. Bảng trái là thang dọc, bảng phải là chế độ xem hai cột mua và bán.
- Chart: thay thế hoàn toàn bảng bằng một biểu đồ nến cho một sàn duy nhất — Binance Futures, Binance Spot hoặc Coinbase. Khung thời gian chạy từ một phút đến một tuần, mặc định là năm phút. Các mức bức tường được vẽ đè lên nến dưới dạng dải ngang có nhãn giá trị và một ghi chú "tuổi · số lượng", tối đa 64 mức cùng lúc, và một bảng độ sâu nằm cạnh biểu đồ.
Điểm spoofing tồn tại trong API, không có trên bảng
Giao diện không có chỉ báo spoofing nào. Dải chi tiết của hàng hiển thị sàn, phía lệnh, giá, giá trị, giá trị lũy kế, khoảng cách, khối lượng, tuổi và huy hiệu lệnh lớn; thanh nghỉ hiển thị trạng thái kết nối, số sự kiện mỗi giây, độ tươi, số bức tường, tổng mua và bán, độ mất cân bằng và một huy hiệu sức khỏe. Không cái nào mang điểm spoofing, và không có bộ lọc hay sắp xếp nào dựa trên nó. Điểm số chỉ nằm trong API, trên hai endpoint — một cho futures, một cho spot — dưới đường dẫn whale-walls.
Một yêu cầu nhận bộ lọc symbol và sàn tùy chọn cùng một lookback tính theo giờ, mặc định là 24 và giới hạn ở 168. Phản hồi là một mục cho mỗi symbol và sàn, mỗi mục có một điểm tổng hợp từ 0 đến 100, một mức đọc thấp, trung bình hoặc cao tại các mốc 40 và 70, số bức tường được phân tích, và bốn yếu tố đứng sau điểm số: tỷ lệ bức tường sống dưới 60 giây, số lần biến mất rồi quay lại trung bình trên mỗi bức tường, tỷ lệ bức tường bị hủy trị giá vượt một ngưỡng đô la cố định, và số lần thay đổi khối lượng trung bình. Chỉ các bức tường đã đóng mới được tính, một cặp cần ít nhất mười bức tường như vậy mới xuất hiện, và kết quả được lưu đệm trong một phút.
Bảng whale wall đứng ở đâu bên cạnh phần còn lại của sổ lệnh
Bảng này cố ý không phải một sổ lệnh đầy đủ. Chỉ những mức đạt hoặc vượt mức tối thiểu của bạn mới từng được theo dõi, nên khoảng trống giữa hai hàng không phải là sổ lệnh rỗng — đó chỉ đơn giản là khối lượng chưa bao giờ đủ điều kiện. Độ sâu tổng hợp, lịch sử mất cân bằng, lịch sử độ sâu và heatmap sổ lệnh là những endpoint riêng với đường dữ liệu riêng, và một nhóm endpoint thứ hai gom chính các sự kiện bức tường đó thành tổng mua-bán, tỷ lệ và chênh lệch thay vì từng mức riêng lẻ. Đọc một hàng whale wall như bức tranh đầy đủ về thanh khoản ở mức giá đó là một sai lầm mà dữ liệu không ủng hộ.
Giá hiển thị cạnh mỗi sàn hoàn toàn không đến từ luồng bức tường. Trình duyệt tự mở các kết nối WebSocket riêng tới Binance Futures, Binance Spot, Coinbase và Hyperliquid rồi đọc giá trực tiếp, đó là lý do một thẻ có thể hiển thị giá thời gian thực trước khi có bất kỳ bức tường nào về, và là lý do giá vẫn tiếp tục chạy trong lúc luồng bức tường đang kết nối lại. Cùng bộ máy bức tường đó cũng đứng sau một widget whale wall trong Terminal, nên các ngưỡng kích thước và nút chuyển tiền tệ bạn đặt ở một nơi sẽ áp dụng ở nơi kia.