Bạn có một chiến lược hợp đồng tương lai tiền mã hóa nhỏ, giao dịch một số hợp đồng, và vừa chuyển chiến lược từ backtest sang paper trading. Lần tái cân bằng đầu tiên yêu cầu 0.037 BTC. Trình mô phỏng chấp nhận lệnh; sàn từ chối vì bước khối lượng của hợp đồng là 0.001 và lệnh sau khi làm tròn thấp hơn mức giá trị danh nghĩa tối thiểu. Vị thế của bạn vẫn bằng 0 trong khi backtest ghi nhận một lần khớp lệnh.
Khoảng cách này rất dễ bị xem nhẹ như một lỗi định dạng. Nhưng nó cũng có thể làm thay đổi tài sản bạn nắm giữ, thời điểm tái cân bằng và mức rủi ro còn lại sau khi lệnh không thành công. Hãy xem các bộ lọc giao dịch của từng sàn là một phần trong quy tắc khớp lệnh của chiến lược, đồng thời đảm bảo backtest và bộ chuyển đổi paper áp dụng cùng quy tắc theo cùng thứ tự.
Những bộ lọc nào của sàn có thể khiến lệnh không hợp lệ?
Hãy bắt đầu với siêu dữ liệu của công cụ mà lệnh thực sự cần: bước khối lượng, khối lượng tối thiểu, giá trị danh nghĩa tối thiểu, bước giá và mọi giới hạn về quy mô lệnh hoặc biên độ giá. Tên gọi và phạm vi áp dụng khác nhau tùy sàn. Một cặp giao dịch spot có thể có mức tối thiểu khác với hợp đồng vĩnh cửu của cặp đó; bộ lọc cũng có thể thay đổi khi chiến lược đang chạy.
Xét một vị thế mục tiêu trị giá $12 trong hợp đồng có giá trị lệnh tối thiểu là $10. Nếu bước khối lượng khiến lệnh bị làm tròn xuống còn $9.80, lệnh không hợp lệ dù giá trị mục tiêu trước khi làm tròn đã vượt mức tối thiểu. Làm tròn lên $10.20 có thể khiến lệnh hợp lệ, nhưng cũng vượt mục tiêu $0.20. Chênh lệch đó có thể đáng kể khi tài khoản nhỏ hoặc chiến lược giao dịch nhiều công cụ.
| Quy tắc | Giới hạn | Hệ quả trong backtest |
|---|---|---|
| Bước khối lượng | Các mức thay đổi khối lượng lệnh được phép | Khối lượng sau khi làm tròn khác với mục tiêu |
| Khối lượng hoặc giá trị danh nghĩa tối thiểu | Lệnh nhỏ nhất được chấp nhận | Một số giao dịch trở thành lệnh không thực hiện thay đổi nào hoặc cần làm tròn lên |
| Bước giá | Giá giới hạn và giá kích hoạt được phép | Làm tròn giá làm thay đổi khả năng lệnh được khớp |
| Biên độ giá hoặc giới hạn quy mô | Các giới hạn do sàn quy định đối với trường thông tin của lệnh | Lệnh có thể bị từ chối khi thị trường biến động hoặc lúc tái cân bằng quy mô lớn |
Nên đặt bước làm tròn ở đâu trong quy trình đặt lệnh?
Hãy làm tròn các trường thông tin của lệnh sau khi tính mức thay đổi vị thế mong muốn và trước khi quyết định gửi lệnh. Giữ nguyên mục tiêu chưa làm tròn để phân tích, rồi tính lệnh có thể thực hiện dựa trên vị thế hiện tại, hệ số nhân hợp đồng và bước giá, bước khối lượng của sàn. Với bước khối lượng bán là 0.001, mức giảm mong muốn 0.0017 sẽ thành 0.001 hoặc 0.002, tùy theo quy tắc bạn đã xác định. Hai lựa chọn này để lại các vị thế còn dư khác nhau, vì vậy “làm tròn theo độ chính xác” chưa phải là một chính sách đầy đủ.
Với khối lượng, làm tròn xuống về 0 sẽ tránh vô tình tăng mức độ rủi ro vượt quá thay đổi đã yêu cầu, nhưng có thể để lại những phần dư nhỏ không bao giờ được giao dịch. Làm tròn đến số gần nhất giúp giảm sai số trung bình, dù có thể vượt mục tiêu. Việc xử lý giá trị danh nghĩa tối thiểu cần có quyết định riêng: bỏ qua giao dịch, tích lũy cho đến khi đạt ngưỡng, hoặc tăng quy mô và chấp nhận phần vượt mục tiêu. Đừng âm thầm chuyển đổi giữa các cách xử lý này.
Và hãy lưu lại lý do lệnh không được thực hiện. “Không đặt lệnh: dưới giá trị danh nghĩa tối thiểu” mang ý nghĩa khác với “khớp với khối lượng 0”. Trong một lần tái cân bằng danh mục, lệnh bị bỏ qua có thể khiến tiền mặt nhàn rỗi hoặc duy trì mức nắm giữ tài sản cũ; hãy ghi nhận kết quả đó trong trạng thái tài khoản.
Làm thế nào để đồng bộ khớp lệnh trong backtest và paper trading?
Hãy dùng chung một hàm xác thực lệnh cho cả hai quy trình nếu kiến trúc hệ thống cho phép. Cung cấp cho hàm cùng bộ quy tắc công cụ tại đúng thời điểm, lệnh mong muốn và trạng thái tài khoản. Hàm sẽ trả về lệnh đã chuẩn hóa hoặc lý do từ chối cụ thể. Sau đó, trình mô phỏng có thể áp dụng các giả định khớp lệnh cho những lệnh đã chuẩn hóa, còn bộ chuyển đổi paper gửi các trường tương đương đến sàn.
Hãy lưu ảnh chụp nhanh có ghi ngày của siêu dữ liệu bộ lọc cùng mỗi lần chạy. Nếu bước khối lượng hoặc mức tối thiểu thay đổi, bạn cần biết backtest đã dùng quy tắc nào. Dùng siêu dữ liệu hôm nay để chạy lại một chiến lược từ 1 năm trước có thể khiến các lệnh cũ trông như không hợp lệ, hoặc khiến những lệnh trong quá khứ có vẻ khả thi dù khi đó không thể thực hiện.
Khi sàn paper báo từ chối lệnh, hãy đối chiếu các trường đã gửi và ảnh chụp bộ lọc trước khi thay đổi tín hiệu. Nếu bộ chuẩn hóa lệnh của backtest tạo ra 0.037 BTC trong khi sàn chỉ cho phép các mức tăng 0.001 BTC, vấn đề nằm ở bộ chuyển đổi hoặc siêu dữ liệu. Nếu lệnh đã gửi hợp lệ nhưng không được khớp, bạn đang xem xét hành vi thực thi như giá, thanh khoản hoặc thời hạn hiệu lực.
Cần kiểm tra những gì trước khi tin vào kết quả so sánh?
Với mỗi lần tái cân bằng, hãy lưu một bản ghi kiểm tra ngắn: vị thế mục tiêu, vị thế hiện tại, lệnh thô, lệnh đã chuẩn hóa, phiên bản bộ lọc áp dụng và trạng thái cuối cùng. Sau đó so sánh dữ liệu paper và mô phỏng tại cùng thời điểm ra quyết định.
- Hai quy trình có dùng cùng hệ số nhân hợp đồng và đơn vị khối lượng không?
- Chúng có áp dụng cùng chiều làm tròn và chính sách lệnh tối thiểu không?
- Các giá trị bộ lọc có còn hiệu lực khi lệnh được tạo không?
- Lệnh bị từ chối hoặc bỏ qua có để lại cùng vị thế và lượng tiền mặt trong cả hai tài khoản không?
Chiến lược của bạn vẫn có thể hợp lý dù lần tái cân bằng paper đầu tiên thất bại. Nhưng cho đến khi trình mô phỏng giải thích được vì sao lệnh đó được chấp nhận, làm tròn, bỏ qua hoặc từ chối, đường cong vốn của nó vẫn mô tả một hệ thống khớp lệnh khác với hệ thống bạn đang định vận hành.
← Tất cả bài viết

