11 tháng Mười Một, 2026 · khớp lệnh

Chiến lược đã vượt qua các bài kiểm thử. Rồi sàn giao dịch đổi bước giá.

Chiến lược đã vượt qua các bài kiểm thử. Rồi sàn giao dịch đổi bước giá.

Lúc 08:00 UTC vào một ngày thứ Ba, một sàn tiền mã hóa thay đổi bước giá của một hợp đồng vĩnh cửu có giá trung bình. Chiến lược basis của chúng tôi không nhận ra điều đó. Tín hiệu vẫn thấy cùng mức chênh lệch giữa giao ngay và hợp đồng tương lai, giới hạn rủi ro không đổi, và kiểm thử hồi cứu vẫn cho ra những kết quả như cũ.

Giao dịch mô phỏng lại phát hiện ra vấn đề. Bộ chuyển đổi lệnh làm tròn lệnh mua giới hạn xuống mức giá được phép gần nhất. Như vậy, lệnh thấp hơn 1 bước giá so với mức mà kiểm thử hồi cứu đã mô phỏng. Thị trường chạm mức giá cũ, lệnh mô phỏng được khớp, còn lệnh mô phỏng giao dịch vẫn nằm đó mà không khớp. Đến giờ ăn trưa, lượng hàng tồn kho của chiến lược đã mất cân đối.

Sự cố thoạt nhìn giống một lỗi làm tròn nhỏ. Thực ra, đây là vấn đề ở ranh giới mô hình: chiến lược biết về giá, nhưng kiểm thử hồi cứu không biết lưới giá của sàn.

Chúng tôi giao dịch theo một tín hiệu basis đơn giản: mua giao ngay và bán hợp đồng vĩnh cửu khi mức chênh lệch giá hợp đồng tương lai vượt một ngưỡng. Các lệnh được đặt thụ động vì lợi thế basis kỳ vọng nhỏ. Chỉ vài bước giá cũng có thể quyết định liệu giao dịch vào lệnh có đủ lãi để bù phí và giao dịch thoát lệnh sau đó hay không.

Điều gì đã thay đổi khi bước giá thay đổi?

Trước khi cập nhật, hợp đồng vĩnh cửu chấp nhận giá theo mức tăng 0.01. Sau đó, trong dải giá liên quan, sàn chỉ chấp nhận mức tăng 0.05. Tín hiệu tính ra giá bán mục tiêu là 42,318.03, hợp lệ theo quy tắc cũ. Theo quy tắc mới, mức giá đó không hợp lệ.

Sàn từ chối các mức giá không hợp lệ, nhưng bộ chuyển đổi của chúng tôi có phương án dự phòng: làm tròn giá bán xuống 42,318.00. Mức đó vẫn không hợp lệ. Phương án dự phòng thứ hai tiếp tục làm tròn, lần này lên 42,318.05; mức giá này hợp lệ nhưng kém quyết liệt hơn đối với bên bán. Lệnh không còn có thể bán ở mức giá được mô phỏng. Luồng mã này được viết cho một thị trường khác và âm thầm biến thao tác từ chối thành định giá lại lệnh.

Lệnh đó đặt ra hai câu hỏi riêng biệt. Thứ nhất, sàn cho phép mức giá nào? Thứ hai, chiến lược nên xử lý ra sao khi mức giá mong muốn không nằm trên lưới? Sàn trả lời câu hỏi thứ nhất. Chiến lược hoặc chính sách khớp lệnh phải trả lời câu hỏi thứ hai.

Ý định đặt lệnhQuy tắc lưới giáHướng làm tròn thường dùngĐiều có thể thay đổi
Lệnh mua giới hạnGiá phải là bội số của bước giáLàm tròn xuống để giữ giá bằng hoặc thấp hơn giới hạnXác suất khớp thấp hơn
Lệnh bán giới hạnGiá phải là bội số của bước giáLàm tròn lên để giữ giá bằng hoặc cao hơn giới hạnXác suất khớp thấp hơn
Lệnh giới hạn có thể khớp ngayCũng phải tuân thủ giới hạn giáTùy thuộc vào mức giá tối đa có thể chấp nhậnViệc lệnh có vượt qua chênh lệch mua bán hay không

Không có quy tắc làm tròn nào đúng trong mọi trường hợp. Làm tròn lệnh mua xuống giúp giữ nguyên giới hạn giá của bên mua, nhưng có thể khiến lệnh khó khớp hơn. Làm tròn lên có thể khiến lệnh khớp ngay, làm thay đổi phí và tác động thị trường. Với lệnh vào vị thế basis thụ động của chúng tôi, âm thầm điều chỉnh lệnh là cách xử lý sai. Chiến lược đã chọn mục tiêu; bộ chuyển đổi đã thay đổi hiệu quả kinh tế của giao dịch.

Vì sao kiểm thử hồi cứu vẫn có vẻ ổn?

Bộ mô phỏng lệnh lịch sử của chúng tôi xem giá giới hạn là các số liên tục. Nếu mức thấp nhất của nến chạm giá mua, hoặc mức cao nhất chạm giá bán, hệ thống tính lệnh đã khớp. Đây vốn đã là một phép gần đúng rộng tay cho lệnh thụ động, vì giá giao dịch chạm mức giới hạn không cho biết vị trí lệnh trong hàng đợi. Nhưng thay đổi bước giá cho thấy khoảng trống còn cơ bản hơn: lệnh không thể tồn tại ở mức giá đó.

Chúng tôi phát lại cùng các quyết định với lưới giá mới được áp dụng từ thời điểm có hiệu lực. Một số lệnh khớp biến mất. Một vài lệnh được làm tròn đến mức giá vượt qua chênh lệch mua bán và phải chịu phí taker thay vì phí maker. Diễn biến vị thế sau đó cũng khác đi, khiến các lệnh phòng hộ và thoát vị thế về sau thay đổi theo. Một quy tắc trông như siêu dữ liệu đã làm thay đổi toàn bộ chuỗi giao dịch.

Và thay đổi đó không phải điều bất ngờ bị che khuất trong biểu đồ. Sàn đã công bố thay đổi quy tắc công cụ giao dịch kèm thời điểm có hiệu lực. Chúng tôi lưu trữ dữ liệu thị trường cẩn thận, nhưng siêu dữ liệu công cụ giao dịch lại nằm trong bộ nhớ đệm chỉ được làm mới lúc khởi động. Kiểm thử hồi cứu dùng quy tắc hôm nay cho mọi ngày trong lịch sử; giao dịch mô phỏng dùng quy tắc cũ cho đến khi tiến trình khởi động lại. Không môi trường nào phản ánh những gì sàn cho phép tại từng thời điểm.

Nên mô phỏng thay đổi bước giá trong kiểm thử hồi cứu như thế nào?

Quản lý phiên bản quy tắc công cụ giao dịch theo các khoảng thời gian hiệu lực, như với những đầu vào khác tại đúng thời điểm. Tối thiểu, hãy lưu thời điểm có hiệu lực và các giá trị quy tắc cần thiết để xác thực lệnh: bước giá, bước khối lượng, khối lượng tối thiểu và mọi dải giá. Bộ mô phỏng nên tải bộ quy tắc có hiệu lực tại thời điểm ra quyết định được mô phỏng.

Sau đó, hãy xác định rõ cách xử lý lệnh. Nếu giá mục tiêu không hợp lệ, hãy từ chối, làm tròn theo chính sách đã ghi nhận, hoặc tính lại mục tiêu trên lưới giá. Ghi lại cách xử lý đã chọn. Kiểm thử hồi cứu tự động sửa mọi lệnh có thể hữu ích để ước tính một chính sách khớp lệnh cụ thể, nhưng không nên ngụy trang chính sách đó thành một giao dịch khớp theo quy tắc của sàn.

Với lệnh thụ động, giá hợp lệ theo bước giá chỉ là điều kiện đầu tiên để được khớp. Bạn vẫn cần mô hình hóa việc thị trường có giao dịch vượt qua mức giá của mình hay không, vị trí lệnh trong hàng đợi, các lệnh hủy và cấp phí mà bạn sẽ được hưởng.

Chúng tôi bổ sung 2 bước kiểm tra. Bước thứ nhất đưa mọi lệnh được tạo qua bộ quy tắc công cụ giao dịch tại đúng thời điểm và báo lỗi rõ ràng nếu giá hoặc khối lượng không hợp lệ. Bước thứ hai so sánh lệnh cuối cùng đã chuẩn hóa của bộ chuyển đổi trong kiểm thử hồi cứu và giao dịch mô phỏng: chiều lệnh, giá, khối lượng, thời hạn hiệu lực và ý định về phí. Nếu hai bên không khớp, chúng tôi không xem hai lần chạy là có thể so sánh.

Sau đó, chúng tôi phát lại thay đổi hôm thứ Ba. Kiểm thử hồi cứu không còn báo khớp lệnh ở mức 42,318.03 sau khi lưới giá được cập nhật. Giao dịch mô phỏng và mô phỏng kiểm thử hồi cứu đưa ra cùng quyết định cho từng giá mục tiêu không hợp lệ, kể cả khi quyết định đó là bỏ qua lệnh.

Tín hiệu không hề hỏng. Các giả định về đối tượng mà chiến lược có thể giao dịch đã lỗi thời. Chiến lược có thể thích ứng với bước giá mới, nhưng chỉ khi hệ thống nghiên cứu xem quy tắc của sàn là một phần của thị trường đang được mô phỏng.

quy tắc sàn giao dịchbước giálàm tròn lệnhkiểm thử hồi cứugiao dịch mô phỏng
← Tất cả bài viết