【Nâng cao về arbitrage CJ 14/14】
Nhiều người còn chưa chứng minh được chiến lược có lợi nhuận đã bắt đầu bàn về hiệu năng của ngôn ngữ lập trình. Đó là làm ngược trình tự.
Khi chiến lược vừa hình thành, điều quan trọng nhất là nhanh chóng kiểm chứng: Có lấy được dữ liệu không? Tín hiệu có đáng tin không? Sau khi tính phí giao dịch và trượt giá thì còn lợi nhuận không? Khi thất bại sẽ xảy ra chuyện gì? Python phù hợp để tạo nguyên mẫu, nghiên cứu và xây dựng công cụ giao dịch tần suất thấp vì dễ sửa đổi và có hệ sinh thái đầy đủ. Chạy ổn định với số vốn nhỏ trong thời gian đủ dài quan trọng hơn nhiều so với việc theo đuổi tốc độ tối đa ngay từ đầu.
Chỉ khi chiến lược mở rộng sang nhiều sàn giao dịch, xử lý đồng thời cao và các luồng xử lý nhạy cảm với độ trễ thì vấn đề mới thay đổi. Khi dữ liệu thị trường đổ về cùng lúc, lệnh cần được ký nhanh chóng, và tiến trình không thể để việc thu gom rác hoặc nghẽn xử lý gây ra độ trễ đuôi dài, lúc đó hiệu năng, khả năng kiểm soát bộ nhớ và tính ổn định của Rust mới thực sự phát huy giá trị. Trước đây, CJ đã từng bước tái cấu trúc hệ thống sang Rust và tối ưu luồng xử lý trọng yếu từ lúc nhận dữ liệu thị trường đến khi gửi lệnh. Nhưng đó là bước nâng cấp kỹ thuật sau khi chiến lược đã chạy thông suốt, chứ không phải bản thân nguồn tạo ra lợi nhuận.
Để quyết định có nên viết lại hay không, hãy xem xét ba dấu hiệu: độ trễ thực sự đã khiến bạn bỏ lỡ lệnh; tình trạng dao động của ngôn ngữ hiện tại không thể khắc phục bằng kiến trúc; quy mô hệ thống bắt đầu vượt quá giới hạn ổn định của một tiến trình đơn. Nếu không, mã nhanh đến đâu cũng chỉ giúp thực thi nhanh hơn một ý tưởng chưa được kiểm chứng.
14 bài viết này cuối cùng cùng đi đến một kết luận: cơ hội đến từ sự kém hiệu quả của thị trường, lợi nhuận đến từ khâu thực thi hoàn chỉnh, còn lợi thế dài hạn đến từ việc biến khả năng phán đoán, kiểm soát rủi ro và kỹ thuật thành một hệ thống.
#量化开发 #Rust
Nhiều người còn chưa chứng minh được chiến lược có lợi nhuận đã bắt đầu bàn về hiệu năng của ngôn ngữ lập trình. Đó là làm ngược trình tự.
Khi chiến lược vừa hình thành, điều quan trọng nhất là nhanh chóng kiểm chứng: Có lấy được dữ liệu không? Tín hiệu có đáng tin không? Sau khi tính phí giao dịch và trượt giá thì còn lợi nhuận không? Khi thất bại sẽ xảy ra chuyện gì? Python phù hợp để tạo nguyên mẫu, nghiên cứu và xây dựng công cụ giao dịch tần suất thấp vì dễ sửa đổi và có hệ sinh thái đầy đủ. Chạy ổn định với số vốn nhỏ trong thời gian đủ dài quan trọng hơn nhiều so với việc theo đuổi tốc độ tối đa ngay từ đầu.
Chỉ khi chiến lược mở rộng sang nhiều sàn giao dịch, xử lý đồng thời cao và các luồng xử lý nhạy cảm với độ trễ thì vấn đề mới thay đổi. Khi dữ liệu thị trường đổ về cùng lúc, lệnh cần được ký nhanh chóng, và tiến trình không thể để việc thu gom rác hoặc nghẽn xử lý gây ra độ trễ đuôi dài, lúc đó hiệu năng, khả năng kiểm soát bộ nhớ và tính ổn định của Rust mới thực sự phát huy giá trị. Trước đây, CJ đã từng bước tái cấu trúc hệ thống sang Rust và tối ưu luồng xử lý trọng yếu từ lúc nhận dữ liệu thị trường đến khi gửi lệnh. Nhưng đó là bước nâng cấp kỹ thuật sau khi chiến lược đã chạy thông suốt, chứ không phải bản thân nguồn tạo ra lợi nhuận.
Để quyết định có nên viết lại hay không, hãy xem xét ba dấu hiệu: độ trễ thực sự đã khiến bạn bỏ lỡ lệnh; tình trạng dao động của ngôn ngữ hiện tại không thể khắc phục bằng kiến trúc; quy mô hệ thống bắt đầu vượt quá giới hạn ổn định của một tiến trình đơn. Nếu không, mã nhanh đến đâu cũng chỉ giúp thực thi nhanh hơn một ý tưởng chưa được kiểm chứng.
14 bài viết này cuối cùng cùng đi đến một kết luận: cơ hội đến từ sự kém hiệu quả của thị trường, lợi nhuận đến từ khâu thực thi hoàn chỉnh, còn lợi thế dài hạn đến từ việc biến khả năng phán đoán, kiểm soát rủi ro và kỹ thuật thành một hệ thống.
#量化开发 #Rust
