
Bot của bạn không nhận được Giá đó
Backtest của Bot hiển thị một mức Giá, còn khi thực thi thực tế lại ra mức Giá khác. Đây là những yếu tố nằm giữa hai mức Giá đó, lý do tại sao thanh khoản và kích thước Lệnh quyết định khoảng cách này, và cách để Stop việc nó âm thầm làm hao hụt lợi thế chiến lược.
Slippage là sự chênh lệch giữa Giá mà lệnh của Bot nhắm tới và Giá thực tế khi lệnh được khớp. Nguyên nhân xuất phát từ độ sâu của Sổ lệnh, chứ không phải do sàn giao dịch gian lận — một lệnh Market sẽ khớp với bất kỳ thanh khoản nào có sẵn ở mỗi mức Giá, và Giá khớp trung bình sẽ dần lệch khỏi mức Giá tốt nhất khi khối lượng tăng lên. Dữ liệu backtesting của chính Bitsgap cho thấy slippage thông thường dao động từ 0,05%–0,30% mỗi Giao dịch, và sẽ tăng mạnh khi Sổ lệnh mỏng hoặc trong các đợt biến động mạnh. Đối với một Bot chạy hàng chục chu kỳ mỗi tuần, khoảng chênh lệch này sẽ cộng dồn thành một phần đáng kể trong lợi nhuận mà backtest đã hứa hẹn.
Tóm tắt nhanh
- Trượt giá = Giá được báo trừ đi Giá đã hoàn tất, và hiện tượng này xảy ra trên mọi sàn giao dịch, không chỉ riêng các DEXs
- Kích thước Lệnh so với độ sâu sổ lệnh là yếu tố chính — cùng một Lệnh sẽ bị trượt giá nhiều hơn trên cặp giao dịch thanh khoản thấp so với cặp thanh khoản cao
- Lệnh Limit giới hạn trượt giá nhưng có thể không khớp lệnh; lệnh Market đảm bảo khớp lệnh nhưng không đảm bảo Giá
- Các bot GRID, DCA và COMBO có mức trượt giá khác nhau vì chúng đặt các loại Lệnh khác nhau vào những thời điểm khác nhau
- Các bài kiểm tra ngược thường đánh giá thấp trượt giá nếu các giả định về Phí/trượt giá không được thiết lập thực tế
Slippage thực sự là gì
Slippage là khoảng chênh lệch giữa Giá mà một trader — hoặc một Bot — kỳ vọng sẽ trả và Giá mà Lệnh thực tế được Đã hoàn tất. Điều này xảy ra vì Sổ lệnh không chỉ có một Giá duy nhất, mà là một dãy các mức Giá với khối lượng giới hạn tại mỗi bậc. Một lệnh Market không mua ở mức cao nhất của sổ lệnh; nó sẽ mua xuyên qua các mức trong sổ, từng bậc một, cho đến khi toàn bộ khối lượng Lệnh được Đã hoàn tất. Lệnh càng lớn so với khối lượng đang chờ tại mỗi mức, thì Giá Đã hoàn tất trung bình càng lệch xa so với con số đầu tiên hiển thị trên màn hình.
Điều này không chỉ riêng với crypto hay bot. Bất kỳ Market nào có Sổ lệnh hữu hạn đều tạo ra trượt giá khi giao dịch khối lượng lớn. Điều khác biệt giữa các tài sản và sàn giao dịch là lượng thanh khoản nằm gần Giá hiện tại — và đó mới là con số thực sự quyết định chi phí.
Khoảng cách xuất hiện từ đâu
Ba yếu tố ảnh hưởng đến kích thước của khoảng cách trên một Giao dịch nhất định:
Độ sâu sổ lệnh. Một cặp có thanh khoản mỏng sẽ có rất ít lệnh chờ gần mức giá hiện tại. Một lệnh vừa phải có thể đi qua nhiều mức giá trước khi được Đã hoàn tất, và giá khớp trung bình thường vượt xa giá chào mua/bán. Một sổ lệnh sâu sẽ hấp thụ cùng lệnh đó mà gần như không bị ảnh hưởng.
Kích thước lệnh so với độ sâu đó. Một lệnh $500 mà gần như không ai chú ý trên cặp BTC top 10 có thể khiến giá biến động đáng kể trên một altcoin vốn hóa nhỏ. Độ trượt giá tỷ lệ thuận với tỷ lệ giữa kích thước lệnh và thanh khoản sẵn có, chứ không chỉ phụ thuộc vào số tiền đô la.
Biến động và thời điểm. Trong những đợt biến động mạnh, sổ lệnh liên tục bị làm rỗng và lấp đầy trở lại. Một Lệnh được gửi chậm chỉ một giây có thể khớp với sổ lệnh đã mỏng hơn nhiều so với lúc chiến lược vừa kiểm tra. Đây là lý do tại sao trượt giá thường tăng mạnh trong các sự kiện tin tức, các đợt thanh lý dây chuyền và những phút đầu sau khi dữ liệu quan trọng được công bố — cùng một Lệnh có thể chỉ tốn 0,05% vào một buổi chiều yên ả nhưng lại tốn gấp nhiều lần con số đó khi thị trường biến động mạnh.
Dữ liệu backtesting của Bitsgap phản ánh trực tiếp phạm vi này: trượt giá thực tế thường dao động từ 0,05%–0,30% trong điều kiện thị trường bình thường, và tăng mạnh hơn nữa khi xảy ra các sự kiện căng thẳng hoặc khi sổ lệnh mỏng — đây cũng là lý do tại sao một backtest bỏ qua yếu tố này có thể trông có lãi trên giấy tờ nhưng lại hòa vốn hoặc âm khi giao dịch thực tế.
Lệnh Market so với lệnh Limit: Đâu là điểm cân bằng?
Việc lựa chọn giữa các loại lệnh thực chất là lựa chọn về loại rủi ro mà nhà giao dịch chấp nhận.
Một lệnh Market đảm bảo sẽ được khớp nhưng không đảm bảo Giá. Lệnh này được thực hiện ngay lập tức dựa trên thanh khoản hiện có, và đó chính là lý do tại sao đây là loại Lệnh dễ bị trượt giá nhất — nó nhận Giá mà sổ lệnh cung cấp, từng mức một, mà không có giới hạn trên.
Một lệnh Limit đảm bảo về Giá nhưng không đảm bảo sẽ được khớp. Lệnh này nằm trên sổ lệnh và chỉ được thực hiện tại mức Giá đã chỉ định hoặc tốt hơn. Nếu thị trường không bao giờ chạm tới mức Giá đó, lệnh sẽ không được khớp — điều này đồng nghĩa với việc không có trượt Giá trong Giao dịch đó, nhưng bạn cũng có thể bỏ lỡ điểm vào hoặc thoát lệnh nếu chiến lược phụ thuộc vào yếu tố thời gian.
Hầu hết các chiến thuật bot đều sử dụng cả hai loại lệnh, tùy vào từng thời điểm khác nhau. Một Bot GRID đặt các lệnh limit trên toàn bộ phạm vi của nó theo thiết kế, đó cũng là lý do tại sao các chiến thuật grid thường ít bị trượt giá khi vào lệnh — giá được cố định trước khi lệnh được gửi đi. Các lệnh khởi tạo và trung bình giá của Bot DCA cũng thường dựa trên lệnh limit, nhưng lệnh Stop Loss hoặc thoát khẩn cấp, nếu được kích hoạt, thường cần đến lệnh market để đảm bảo vị thế thực sự được đóng lại. Các Bot COMBO kế thừa cả hai mô hình này, vì chúng kết hợp logic grid và trung bình giá DCA trong cùng một vị thế hợp đồng tương lai, đồng thời bổ sung đòn bẩy — điều này làm tăng mức độ rủi ro cho bất kỳ lần thoát bằng lệnh market nào, bởi vì cùng một tỷ lệ trượt giá giờ đây sẽ áp dụng cho một vị thế danh nghĩa lớn hơn.
Chi phí thực tế của điều này
Trượt giá không phải là một chi phí chỉ xảy ra một lần — nó áp dụng cho mỗi lần khớp lệnh, ở cả hai phía của một giao dịch. Một chiến lược mở và đóng một vị thế sẽ bị trượt giá hai lần: một lần khi vào lệnh, một lần khi thoát lệnh. Đối với một Bot thực hiện hàng chục giao dịch mỗi tuần, đó là hàng chục khoảng chênh lệch nhỏ giữa giá kỳ vọng và giá đã thực thi, và chúng không triệt tiêu lẫn nhau — chúng tích lũy theo cùng chiều mà chiến lược phải trả phí, chứ không phải chiều mà chiến lược kiếm được lợi nhuận.
Đây cũng là lý do tại sao một backtest và một lần chạy thực tế với cấu hình giống hệt nhau hiếm khi cho ra các con số giống nhau. Một backtest giả định trượt giá bằng 0 hoặc không thực tế đang kiểm tra chiến lược trong điều kiện không tồn tại trên sổ lệnh thực tế. Giải pháp không phải là tránh hoàn toàn các lệnh Market — mà là biết phần nào của chiến lược thực sự cần sử dụng lệnh này, và điều chỉnh khối lượng vị thế sao cho chính lệnh đó không trở thành yếu tố làm dịch chuyển giá.
Giảm trượt giá khi vận hành Bot trực tiếp
- Giao dịch các cặp thanh khoản. Top 20 theo vốn hóa trên một sàn lớn sẽ luôn có độ trượt giá thấp hơn so với các cặp vốn hóa nhỏ, bất kể chiến lược nào.
- Đặt kích thước lệnh dựa trên độ sâu, không phải dựa trên số dư tài khoản. Một vị thế được định kích thước cho một sổ lệnh mỏng cần nhỏ hơn so với phân bổ cùng tỷ lệ phần trăm trên một sổ lệnh sâu.
- Ưu tiên lệnh Limit khi chiến lược cho phép. Các lệnh vào lệnh GRID và DCA không cần phải là lệnh Market — Giá đã được xác định sẵn.
- Hãy đọc kỹ các giả định về trượt giá trong backtest trước khi tin vào con số lợi nhuận. Một backtest với trượt giá đặt về 0 không phải là dự báo — đó chỉ là kịch bản tốt nhất mà giao dịch thực tế sẽ không đạt được.
- Hãy kỳ vọng mức trượt giá lớn hơn trong thời điểm biến động, không chỉ khi thiếu thanh khoản. Một cặp giao dịch có thanh khoản trong thị trường yên ắng và chính cặp đó trong một đợt thanh lý hàng loạt là hai môi trường khớp lệnh hoàn toàn khác nhau.
Câu hỏi thường gặp
Slippage trong giao dịch Bot crypto là gì? Slippage là khoảng chênh lệch giữa giá mà lệnh của Bot nhắm tới và giá thực tế khi lệnh được khớp. Hiện tượng này xảy ra vì sổ lệnh chỉ có một lượng giới hạn tại mỗi mức giá, nên khi đặt lệnh đủ lớn, lệnh sẽ được khớp ở nhiều mức giá khác nhau thay vì chỉ một mức giá cố định.
Trượt giá chỉ xảy ra với lệnh Market thôi sao? Phần lớn là đúng. Lệnh Market được thực hiện ngay lập tức dựa trên thanh khoản hiện có, vì vậy luôn tiềm ẩn rủi ro trượt giá. Lệnh Limit chỉ được khớp ở mức Giá đã chỉ định hoặc tốt hơn — hoàn toàn tránh được trượt giá, nhưng có thể bỏ lỡ Giao dịch nếu Giá không bao giờ chạm tới mức đó.
Độ trượt giá bao nhiêu là bình thường trong giao dịch crypto? Đối với các cặp thanh khoản cao trong điều kiện thị trường ổn định, độ trượt giá thường dao động từ vài điểm cơ bản đến vài phần mười phần trăm cho mỗi giao dịch. Các cặp thanh khoản mỏng hoặc vốn hóa thấp, cũng như bất kỳ sự kiện biến động mạnh nào, đều có thể khiến mức độ trượt giá này tăng lên đáng kể.
Các bot GRID, DCA và COMBO có trượt giá cùng một mức không? Không. GRID và DCA chủ yếu đặt lệnh giới hạn, điều này giúp giới hạn trượt giá khi vào lệnh theo thiết kế. COMBO kết hợp cả hai trên một vị thế Hợp đồng tương lai có đòn bẩy, vì vậy trượt giá khi thoát lệnh thị trường sẽ xảy ra trên quy mô danh nghĩa lớn hơn.
Làm thế nào để giảm trượt giá khi chạy bot trực tiếp? Hãy giao dịch các cặp có tính thanh khoản cao, khối lượng lớn, xác định quy mô vị thế dựa trên độ sâu thực tế của sổ lệnh thay vì số dư tài khoản, và sử dụng lệnh Limit bất cứ khi nào chiến lược cho phép. Hãy lưu ý rằng trượt giá sẽ rộng hơn trong thời điểm biến động, ngay cả với các cặp thanh khoản — độ sâu sổ lệnh sẽ giảm rất nhanh khi giá biến động mạnh.
Tại sao kết quả backtest lại khác với giao dịch thực tế? Một backtest không giả định hợp lý về trượt giá và Phí sẽ kiểm tra chiến lược trong điều kiện mà không sổ lệnh thực tế nào cung cấp. Khi thực hiện lệnh thực tế, luôn tồn tại khoảng cách giữa Giá niêm yết và Giá Đã hoàn tất, điều mà backtest chỉ có thể ước tính chứ không bao giờ đảm bảo.