OptiNod Academy
Grid Trading — cỗ máy thu hoạch giá đi ngang lại bị một con sóng xu hướng phá tan
Đường lợi nhuận tích lũy mượt mà của Grid Trading chỉ vẽ phần lãi đã hiện thực hóa, nên đường cong càng phẳng lặng thì càng là dấu hiệu rằng phần lỗ chưa hiện thực hóa và chưa được cắt đang chất dày bên dưới. Bài viết dùng những ví dụ BTC đã được kiểm chứng để sắp xếp lại cách một cấu trúc gom lãi trong hộp đi ngang bị một con sóng xu hướng làm sụp đổ, cùng tiêu chí vận hành chỉ chạy bot khi giả định về vùng giá còn hiệu lực.
> Đường lợi nhuận tích lũy mượt mà của grid trông như một đường đi lên êm ả, nhưng thực chất là phần lỗ chưa hiện thực hóa ở chiều ngược lại đang chất chồng như một cái thang vì chưa hề được cắt.
Vì vậy đường cong càng mượt thì càng phải đọc đó là dấu hiệu khoản nợ trì hoãn thanh lý đang sâu thêm. Grid Trading là kiểu giao dịch cắt một vùng giá định sẵn thành các khoảng cách đều nhau để tạo thành lưới (grid), rồi lặp lại một cách máy móc: xuống một ô thì mua, lên một ô thì bán. Nếu một ô rộng 1% và trừ đi 0.5% phí, thì mỗi lần đi một vòng khứ hồi sẽ hiện thực hóa phần lãi của ô đó. Chỉ cần giá cứ lên xuống mãi trong cùng một vùng, thì cùng một lượng vốn có thể gom lãi hàng chục lần mỗi ngày, nên đường lợi nhuận lũy kế đi lên gần như một đường thẳng.
Số đông nhìn đường cong này và gọi nó là "cỗ máy tự sinh lời, cứ để yên là tiền tự in ra". Đường backtest "lợi nhuận ổn định mỗi tháng vài %" mà các sàn bot quảng cáo cũng phần lớn là đường thẳng mượt mà này. Có điều, đường thẳng đó chỉ vẽ phần lãi đã hiện thực hóa. Grid mua ở từng ô khi giá đi xuống, nên nếu đà giảm không dừng lại thì các vị thế mua chưa thanh lý cứ chất chồng lên nhau như một cái thang. Phần lỗ chưa hiện thực hóa này không hề được hiển thị trên đường cong.
Vì vậy việc đường cong grid mượt mà nhìn thì có vẻ như mọi thứ đang vận hành trơn tru, nhưng thực ra lại có nghĩa là bạn đang ôm các vị thế ngược chiều mà chưa cắt lỗ lần nào. Độ mượt của đường cong và độ sâu của khoản nợ chưa hiện thực hóa mà bạn đang ôm cùng lớn lên với nhau. Đọc xong bài này, khi nhìn đường lợi nhuận tích lũy của grid, bạn sẽ xem chiều dài của thang lỗ chưa hiện thực hóa nằm bên dưới trước, thay vì xem độ dốc của đường thẳng.

Đường lợi nhuận tích lũy chỉ vẽ phần đã hiện thực hóa, nên độ mượt chính là khoản nợ bị trì hoãn
Lý do đường lợi nhuận tích lũy của grid mượt mà rất đơn giản. Đường cong chỉ cộng dồn phần lãi đã hiện thực hóa qua việc đi khứ hồi giữa các ô. Khi giá xuống và một ô mua được lấp đầy, vị thế đó nằm lại trong tài khoản ở trạng thái lỗ chưa hiện thực hóa, còn trên đường cong thì không có gì thay đổi. Đường cong phẳng nhìn thì như thể lỗ đã biến mất, nhưng thực chất là kết quả của việc đẩy phần lỗ ra ngoài đường cong.
Lý do điều này nguy hiểm là vì màn hình mà trader nhìn thấy và rủi ro thực tế của tài khoản lệch nhau. Nếu chỉ nhìn đường đã hiện thực hóa thì ngay cả trong thị trường giảm, phần lãi vẫn cứ chất lên, nên trên màn hình bot trông như đang kiếm được tiền. Trong khi đó, giá trị thực của tài khoản bị bào mòn đúng bằng chiều dài của thang lỗ chưa hiện thực hóa. Nếu đo mức sụt giảm tối đa (Maximum Drawdown) chỉ bằng đường lợi nhuận đã hiện thực hóa thì rủi ro này thậm chí còn không được đo lường.
Tháng 9 năm 2024, BTCUSDT suốt cả tháng lên xuống giữa đáy 52.550 USD và đỉnh 66.498 USD, còn giá đóng cửa ngày 1 tháng 9 là 57.301 USD. Nếu cài một grid rộng 1.5% vào vùng này thì các vòng khứ hồi đã xảy ra hàng chục lần và đường đã hiện thực hóa hẳn đã đi lên gọn gàng. Nếu chạy đúng con bot đó trong một giai đoạn xu hướng thì hình dạng đường cong sẽ hoàn toàn khác.
Khi vận hành bot grid trên biểu đồ, hãy luôn mở đồng thời cả đường tích lũy đã hiện thực hóa lẫn đường giá trị tài khoản (equity). Khoảnh khắc hai đường bắt đầu tách xa nhau chính là khoảnh khắc thang lỗ chưa hiện thực hóa bắt đầu chất chồng.
Grid chỉ đặt cược một chiều vào sự hồi quy về trung bình, nên khi xu hướng đến thì bot sụp đổ
Mọi ô của grid đều dựa trên cùng một giả định. Đó là giả định rằng giá sẽ quay trở lại vùng này. Hành vi mua khi xuống một ô chính là một cú đặt cược hồi quy về trung bình (Mean Reversion) rằng giá sẽ sớm bật lên để có thể bán ở ô phía trên. Không thể tồn tại một grid mà không giả định về vùng giá.
Vì vậy nếu giá thoát khỏi vùng và cứ đi mãi theo một chiều, thì grid sẽ lặp lại đúng những giao dịch bất lợi nhất theo đúng quy tắc đã được thiết kế. Trong xu hướng giảm, nó mua ở từng ô đang rơi để hạ giá trung bình, và mở rộng vị thế lỗ một cách vô tận. Lý do bot sụp đổ khi xu hướng đến là vì nó được tạo ra để chỉ đón nhận cú giảm như một cơ hội mua rẻ hơn. Theo xu hướng và hồi quy về trung bình chỉ kiếm tiền ở những giai đoạn thị trường trái ngược nhau, và grid là hình thái cực đoan nhất đặt toàn bộ các ô về phía hồi quy về trung bình.
Cú sụp đổ FTX tháng 11 năm 2022 là một ví dụ kinh điển. BTCUSDT đã sụp đổ trong hai ngày, từ giá đóng cửa 20.591 USD ngày 7 tháng 11 xuống đáy 15.588 USD ngày mùng 9. Một con bot cài grid ở vùng 20,000~22.000 USD thì suốt đà giảm sẽ lặp lại việc mua ở từng ô, và tới thời điểm thủng đáy vùng thì cả tài khoản đã bị lấp đầy bằng thang lỗ chưa hiện thực hóa. Đường đã hiện thực hóa khi đó vẫn đang hiển thị nguyên phần lãi gom được mấy ngày trước.
Khi giá thoát khỏi cận trên hoặc cận dưới của grid, thì ngay khoảnh khắc đó bot không còn sinh lời nữa mà chỉ còn lặp lại việc trung bình giá xuống. Hãy kẻ các đường biên của vùng thành những đường ngang trên biểu đồ, và xem khoảnh khắc giá chạm vào đường biên là điểm kết thúc của giai đoạn mà bot còn vận hành đúng.
Đằng sau cụm từ grid vô hạn là tiền đề rằng vốn là vô hạn
Lý do các thiết lập "no-limit grid", "grid vô hạn" nguy hiểm là vì nói rằng vùng giá không có cận dưới cũng đồng nghĩa với việc đặt ra giả định rằng vốn không có cận dưới. Để cứ mua tiếp dù giá có xuống đến đâu đi nữa, thì số tiền đỡ cho lượng mua đó phải là vô hạn. Tài khoản trong thực tế thì có cận dưới.
Trong grid có dùng đòn bẩy, giả định này dẫn thẳng tới xác suất phá sản (Risk of Ruin). Thang lỗ chưa hiện thực hóa càng sâu thì ký quỹ của tài khoản càng bị bào, và khi giá chạm giá thanh lý ở một ô nào đó thì dù bot chưa hề cắt lỗ lần nào, toàn bộ vị thế vẫn bị thanh lý cưỡng bức. Grid là một cấu trúc đánh đổi việc hiện thực hóa đều đặn những khoản lãi nhỏ để ôm lấy một cú lỗ đuôi hiếm gặp nhưng có thể quét sạch cả tài khoản.
Ngày 19 tháng 5 năm 2021, BTCUSDT trong đúng một ngày đã rơi gần 30%, từ giá mở cửa 42.850 USD trong ngày xuống đáy 30.000 USD. Với một tài khoản đang chạy grid vô hạn đòn bẩy 3 lần ở vùng 40,000~45.000 USD, thì chỉ riêng biến động một ngày cũng đủ để cả cái thang chìm trong lỗ chưa hiện thực hóa sâu và là một biên độ giảm có thể chạm tới giá thanh lý. Đường đã hiện thực hóa của bot cho tới ngày hôm trước vẫn là một đường đi lên mượt mà.
Khi xem xét một grid vô hạn, hãy tính trước bằng con số rằng "giá còn phải xuống thêm bao nhiêu dưới cận dưới của vùng thì ký quỹ về 0". Nếu con số đó nhỏ hơn biên độ biến động của một cây nến ngày trong quá khứ, thì grid đó chỉ vô hạn trên danh nghĩa, còn thực tế là một grid hữu hạn và ngắn.
Thu hẹp ô thì lãi nhỏ đi và phí nuốt mất phần lãi
Càng thu hẹp độ rộng ô thì số vòng khứ hồi càng tăng và đường cong trông càng mượt, nhưng độ mượt này phải trả giá. Vì độ rộng ô chính là mức lãi tối đa có thể gom trong một lần, và từ phần lãi đó phí và trượt giá (Slippage and Fees) của cả hai chiều bị trừ ra. Thu hẹp ô thì đường cong mượt hơn, nhưng phần lãi ròng của mỗi ô lại bị phí bào đi đúng bấy nhiêu.
Ví dụ nếu đặt độ rộng một ô là 0.3% và một vòng khứ hồi bằng lệnh thị trường tốn mỗi chiều 0.1%, tổng 0.2%, thì phần lãi ròng còn lại sau khi đi một vòng một ô chỉ là 0.1%. Vào những ngày biến động không đạt tới độ rộng ô khiến ô gần như không được lấp đầy thì bản thân vòng khứ hồi không xảy ra, nên dù có thu hẹp ô thì cũng không sinh lãi mà chỉ làm thang chưa hiện thực hóa chất chồng dày đặc hơn. Việc thu hẹp ô là công việc tinh chỉnh grid cho khớp với biến động trong quá khứ, và đây chính là một hình thái điển hình của tối ưu hóa quá mức (Overfitting).
Độ rộng ô được định theo biến động của tài sản đó. Nếu định độ rộng ô bằng ATR (Average True Range) thì tài sản biến động lớn sẽ tự động được gán ô rộng, tài sản biến động nhỏ sẽ được gán ô hẹp. Hãy đặt độ rộng ô bằng một bội số nhất định của ATR thay vì cố định %, và trước hết kiểm tra xem ô đó có để lại phần lãi ròng tối thiểu gấp 3 lần phí ngay trước đó hay không. Giá trị gấp 3 lần là phần dư tối thiểu để hấp thụ biên độ mà lãi đã hiện thực hóa bị thu hẹp so với tính toán do trượt giá và lệnh không khớp.
Lợi nhuận của grid đến từ phán đoán chọn vùng giá cho khéo
Cốt lõi việc bot grid kiếm tiền nhìn thì như thao tác lặp lại đi khứ hồi giữa các ô, nhưng căn cứ thực sự để kiếm tiền là phán đoán rằng tài sản này lúc này sẽ không thoát ra khỏi vùng này. Bot chỉ sinh lời trong lúc phán đoán đó còn đúng, và từ khoảnh khắc phán đoán sai thì chỉ lặp lại việc trung bình giá xuống. Tự động hóa chỉ là công cụ thực thi phán đoán, còn quyết định phân định lời lỗ là vùng giá do con người chọn.
Vì vậy chỗ để cài grid phải là một hộp đi ngang nơi hỗ trợ và kháng cự (Support and Resistance) chặn rõ ràng cả hai phía. Khi cận trên và cận dưới của kênh Donchian (Donchian Channel) bị nén phẳng trong một khoảng thời gian, và ADX (chỉ số định hướng trung bình) thấp cho tín hiệu xu hướng yếu cùng xuất hiện, thì đó là lúc giả định về vùng giá an toàn nhất. Ngược lại, nếu độ rộng kênh bắt đầu giãn ra thì đó là tín hiệu hộp đang sụp đổ, nên phải dừng bot.
Sau đây là một setup cài grid vào hộp đi ngang. Giá trị "70% độ rộng hộp" ở nhãn chốt lời là phòng tuyến phòng thủ trước, giảm bớt lệnh mua mới trước khi điều kiện vô hiệu hóa (thoát 1 ATR) kích hoạt, để cái thang không dài thêm.
- Vào lệnh (thiết lập vùng): Khi chênh lệch giữa đỉnh và đáy của 20 ngày gần nhất hẹp trong khoảng ±3% so với giá trung tâm của vùng đó và
ADX<20, thiết lập khoảng giữa cận trên và cận dưới hộp làm vùng grid. - Độ rộng ô: Lấy
ATR×0.5của nến ngày làm độ rộng ô, nhưng trước hết kiểm tra xem lãi ròng mỗi ô có từ 3 lần phí khứ hồi trở lên hay không. - Phân bổ vốn: Chia toàn bộ vốn vận hành cho số ô, và đặt đòn bẩy ở mức 1 lần để cho dù giá xuống hết đến cận dưới hộp và mọi ô mua đều được lấp đầy thì ký quỹ vẫn không chạm tới giá thanh lý.
- Chốt lời/quản lý: Khi giá đi qua điểm 70% độ rộng hộp tính từ cận dưới hộp (còn cách cận trên 30%), ngừng tạo ô mới và chỉ thanh toán những vị thế đã được lấp đầy.
- Vô hiệu hóa (dừng bot): Khi giá đóng cửa thoát khỏi cận trên hoặc cận dưới hộp từ
1 ATRtrở lên, dừng bot và quản lý riêng những vị thế chưa hiện thực hóa còn lại.
Trong lúc hộp còn được giữ thì cứ để bot chạy nguyên, còn khi điều kiện vô hiệu hóa kích hoạt thì con người can thiệp để cắt đứt cái thang. Lúc đường cong mượt mà trông đẹp nhất chính là lúc khoản nợ chưa thanh toán chất chồng dài nhất. Định trước bằng con số sẽ cắt đứt khoản nợ đó ở đâu, trước khi chạy bot, chính là cốt lõi của việc vận hành grid.
Những cái bẫy thường gặp
Trường hợp chỉ nhìn đường đã hiện thực hóa rồi tăng grid. Đây là kiểu thấy đường đã hiện thực hóa đi lên mượt mà nên bơm thêm vốn để tăng số ô. Độ mượt là tín hiệu rằng thang chưa hiện thực hóa vẫn chưa được thanh toán, nên bơm thêm vốn cũng giống như làm phình quy mô khoản nợ chưa thanh toán. Lúc đường cong trông đẹp nhất thường lại chính là lúc cái thang chất chồng dài nhất.
Trường hợp ngộ nhận cấu trúc không cắt lỗ là an toàn. Đây là kiểu cho rằng grid không cắt lỗ nên sẽ không lỗ. Nói rằng không cắt lỗ chỉ có nghĩa là không hiện thực hóa khoản lỗ mà tích lũy nó dưới dạng lỗ chưa hiện thực hóa, và đây là cấu trúc đánh đổi việc gom những khoản lãi nhỏ để ôm trọn một cú lỗ đuôi hiếm gặp. Cấu trúc không có cắt lỗ nhìn thì như thể rủi ro đã biến mất, nhưng thực ra là đã trì hoãn để rủi ro dồn lại ập đến cùng một lúc.
Chỉ chạy bot sau khi đã xác nhận hộp còn hiệu lực
Cốt lõi để làm cho grid vững chắc là quy trình xác nhận giả định về vùng giá còn hiệu lực hay không trước khi chạy bot. Vì mọi rủi ro của grid đều hiện ra cùng một lúc vào khoảnh khắc giả định về vùng giá sụp đổ, nên việc kiểm tra giả định đó chính là tấm khiên an toàn lớn nhất. Chỉ chạy bot khi tất cả các mục sau đều được thỏa mãn.
- [ ] Chênh lệch giữa đỉnh và đáy của 20 ngày gần nhất hẹp trong khoảng ±3% so với giá trung tâm của vùng đó, và
ADX<20. - [ ] Độ rộng cận trên·cận dưới của kênh Donchian không giãn ra so với giai đoạn liền trước mà vẫn được giữ.
- [ ] Lãi ròng mỗi ô (độ rộng ô − phí khứ hồi) từ 3 lần phí khứ hồi trở lên.
- [ ] Dù mọi ô đều được lấp đầy đến tận cận dưới hộp thì ký quỹ vẫn không chạm tới giá thanh lý (theo chuẩn đòn bẩy 1 lần).
- [ ] Đã thiết lập sẵn điều kiện vô hiệu hóa dừng bot khi giá đóng cửa thoát khỏi biên hộp
1 ATR.
Nhìn lại đường cong mượt mà của grid, nó trông như bằng chứng rằng bot đang làm tốt, nhưng thực ra là màn hình che đi việc các vị thế ngược chiều chưa được cắt lỗ đã chất chồng đến mức nào. Khi đường cong phẳng lặng nhất thì cái thang sâu nhất, và một con sóng xu hướng duy nhất thanh toán cả cái thang đó cùng một lúc sẽ xóa sạch toàn bộ lợi nhuận từ trước tới giờ.
