3
tập trung vào
1254
Người theo dõi

Phân loại FMEX mở khóa tối ưu hóa số lượng đơn hàng

Được tạo ra trong: 2020-07-03 09:30:03, cập nhật trên: 2023-09-28 21:11:27
comments   0
hits   1790

Phân loại FMEX mở khóa tối ưu hóa số lượng đơn hàng

Sự sụp đổ của FMEX đã gây ra rất nhiều rắc rối cho nhiều người, nhưng gần đây công ty đã đưa ra một kế hoạch khởi động lại và xây dựng các quy tắc tương tự như hoạt động khai thác ban đầu để mở khóa các khoản nợ. Một bài viết phân tích về khai thác giao dịch đã được đưa ra: https://www.fmz.com/bbs-topic/5834. Ngoài ra còn có chỗ để tối ưu hóa trong khai thác phân loại. Mặc dù mọi người không nên rơi vào cùng một hố hai lần, những người có khiếu nại về FMEX có thể muốn tham khảo nó. Các chiến lược thời gian thực cụ thể có thể chạy trên nền tảng định lượng FMZ cũng có thể được phát hành.

Quy tắc mở khóa sắp xếp FMEX

Xác định cứ 5 phút mỗi ngày là một chu kỳ mở khóa sắp xếp và mỗi chu kỳ được phân bổ 1288 hạn ngạch mở khóa sắp xếp của cặp giao dịch vào ngày đó. Trong mỗi chu kỳ, một thời điểm ngẫu nhiên được chọn để chụp nhanh các lệnh mua và bán của cặp giao dịch, trong đó:

  • Mua 1 Dựa trên tỷ lệ số lượng đơn hàng của người dùng, 14 số tiền trả lại của thời gian mở khóa được phân bổ cho thứ hạng này
  • Bán 1 Theo tỷ lệ số lượng đơn hàng của người dùng, 14 số tiền trả lại của thời gian mở khóa được phân bổ cho thứ hạng này
  • Đối với 4 bậc mua 2 đến mua 5, 140 số tiền trả lại của thời gian mở khóa sẽ được phân bổ cho mỗi bậc theo tỷ lệ giá trị đơn hàng của người dùng ở mỗi bậc.
  • Đối với các đơn hàng ở 4 cấp độ từ bán 2 đến bán 5, 140 số tiền hoàn trả của thời gian mở khóa thứ hạng sẽ được phân bổ theo tỷ lệ số tiền đơn hàng của người dùng ở mỗi cấp độ.
  • Đối với 5 đơn hàng từ Mua 6 đến Mua 10, 150 số tiền trả lại của thời gian mở khóa sẽ được phân bổ cho mỗi đơn hàng theo tỷ lệ số tiền đặt hàng trong mỗi đơn hàng.
  • Đối với năm bậc lệnh bán từ 6 đến 10, 150 số tiền hoàn trả của thời gian mở khóa sẽ được phân bổ cho mỗi bậc theo tỷ lệ số tiền đặt hàng của người dùng ở mỗi bậc.
  • Đối với 5 đơn hàng từ Mua 11 đến Mua 15, 1100 số tiền trả lại của thời gian mở khóa sẽ được phân bổ cho mỗi đơn hàng theo tỷ lệ số tiền đặt hàng trong mỗi đơn hàng.
  • Đối với năm lệnh từ Bán 11 đến Bán 15, 1100 số tiền trả lại của thời gian mở khóa sẽ được phân bổ cho mỗi lệnh theo tỷ lệ số tiền đặt hàng trong mỗi lệnh.

Tổng lợi nhuận từ việc mở khóa thứ hạng của người dùng trong một cặp giao dịch nhất định trong cùng một ngày là tổng số tiền được trả lại cho người dùng khi mở khóa thứ hạng trong mỗi chu kỳ của cặp giao dịch.

Sắp xếp để mở khóa lợi ích

Đầu tiên, tổng thu nhập từ việc sắp xếp và mở khóa là:

Phân loại FMEX mở khóa tối ưu hóa số lượng đơn hàng

Tại đây, i biểu thị một trong các vị thế, tổng cộng có 30 vị thế cho cả hai bên, a là số lượng đơn hàng đang chờ xử lý, R là số tiền trả lại đang mở khóa và V là tổng số đơn hàng hiện có.

Không giống như việc mở khóa giao dịch, việc đặt lệnh không mất phí. Ở đây, R chỉ cần xem xét kích thước tương đối và không cần xem xét số tiền tuyệt đối được tính bằng USDT. Nếu chúng ta xác định tổng số lệnh đang chờ xử lý, câu hỏi đặt ra là làm thế nào để phân bổ các lệnh vào các vị trí khác nhau để tối đa hóa lợi nhuận G. Rõ ràng, việc chỉ tìm kiếm địa điểm có số lượng đặt hàng nhỏ nhất và đặt tất cả các đơn hàng ở đó không phải là giải pháp tối ưu. Ví dụ, có ba vị trí với 10 lệnh hiện có và R của chúng giống nhau. Chúng tôi đặt tổng khối lượng lệnh là 30. Nếu chúng tôi chỉ chọn một vị trí để đặt lệnh, tổng lợi nhuận cuối cùng là 0,75R. 10, lợi nhuận cuối cùng là 1,5R, điều này cho thấy đôi khi lợi nhuận của các lệnh phân tán lại tốt hơn. Vậy bạn phân bổ tiền như thế nào?

Tối ưu hóa việc mở khóa sắp xếp

Cuối cùng, mục tiêu và ràng buộc tối ưu hóa của chúng tôi là:

Phân loại FMEX mở khóa tối ưu hóa số lượng đơn hàng

Trong đó M là tổng số lượng đặt hàng. Đây là bài toán tối ưu lồi bậc hai liên quan đến bất đẳng thức, thỏa mãn điều kiện KTT và có nghiệm là số nguyên. Sử dụng gói tương ứng và trình giải tối ưu lồi, có thể trực tiếp thu được kết quả và trả về số lượng đặt hàng tối ưu cho mỗi vị trí. Nhưng rõ ràng đây không phải là câu trả lời chúng ta muốn. Chúng ta cần đơn giản hóa vấn đề và đưa ra các bước giải quyết cụ thể.

Chúng ta hãy bắt đầu với một ví dụ đơn giản

Chỉ xem xét hai cấp. Số lượng đơn hàng hiện tại là 10 và 20 (lần lượt được gọi là cấp một và cấp hai). Cả hai hạn ngạch mở khóa của chúng đều là R. Tổng số đơn hàng chiến lược là 30. Chúng nên được phân bổ như thế nào? Có số tiền được mở khóa đã được tối đa hóa chưa? Câu hỏi này có vẻ đơn giản, nhưng rất khó để đưa ra kết luận đúng nếu không tính toán. Người đọc có thể muốn tự mình suy nghĩ về câu trả lời trước.

Tình huống 1:

Tìm vị trí đặt lệnh tối thiểu và đặt tất cả các lệnh ở đó, tổng lợi nhuận G=30/(30+10)=0,75R. Đây cũng là giải pháp dễ nghĩ tới nhất.

Tình huống 2:

Mỗi lần phân bổ 1 nhân dân tệ và phân bổ cho nơi có thể tạo ra lợi nhuận lớn nhất, tức là nơi có số lượng lệnh chờ nhỏ nhất. Sau đó, nhân dân tệ đầu tiên sẽ được phân bổ cho cấp độ đầu tiên và khối lượng lệnh của cấp độ đầu tiên sẽ trở thành 10+1. Nhân dân tệ thứ hai cũng sẽ được phân bổ cho cấp độ đầu tiên… và cứ như vậy, cho đến khi tổng cộng là 10 nhân dân tệ được phân bổ cho tầng thứ nhất. Lúc này, One sẽ được chọn ngẫu nhiên và khi tổng số lệnh đang chờ xử lý ở tầng thứ nhất vượt quá 20, nó sẽ được phân bổ cho tầng thứ hai. Kết quả cuối cùng là 20 nhân dân tệ được phân bổ cho tầng thứ nhất và 10 nhân dân tệ được phân bổ cho tầng thứ hai, và đơn hàng cuối cùng của họ đều là 30. Tổng lợi nhuận G=2030+1030=R. Giải pháp này tốt hơn nhiều so với Giải pháp 1 và cũng dễ tính toán hơn.

Giải pháp 3:

Chúng ta có thể giả định rằng tầng đầu tiên được phân bổ a, và tầng thứ hai là 30-a. Sau đó, chúng ta có thể trực tiếp liệt kê phương trình và tìm đạo hàm của nó là 0 (quy trình không được liệt kê ở đây, nó tương tự như bài viết về mở khóa giao dịch ), và tính toán kết quả cuối cùng. Công thức là: Phân loại FMEX mở khóa tối ưu hóa số lượng đơn hàng

Thay vào số nguyên ta được a=15. Tổng lợi nhuận G=1525+1535=1.0286R, tốt hơn phương án 2. Vì được suy ra trực tiếp từ công thức nên đây là giải pháp tối ưu. Bạn đọc có thể tham khảo.

Kết quả có thể khác với những gì bạn mong đợi. Rõ ràng là việc phân bổ từng đô la trong Kế hoạch 2 là giải pháp tối ưu trong hoàn cảnh hiện tại. Tại sao nó không phải là giải pháp tối ưu nói chung? Tình huống này rất phổ biến. Tối ưu cục bộ không nhất thiết là tối ưu tổng thể, vì trước khi phân bổ, các đơn hàng đã đầu tư tiền và hiệu quả tổng thể cần phải xem xét đến chi phí chìm. Mục tiêu của chúng tôi trong từng bước tối ưu hóa là tối đa hóa hiệu quả tổng thể thay vì tối đa hóa một lợi ích đơn lẻ.

Kế hoạch tối ưu cụ thể

Cuối cùng, chúng ta đã bắt đầu hoạt động khả thi thực tế. Chúng ta hãy đơn giản hóa vấn đề bằng cách phân bổ 1 nhân dân tệ mỗi lần. Đầu tiên, hãy đo lường hiệu quả. Đạo hàm có thể phản ánh sự đóng góp của mỗi a vào G. Sự đóng góp này tính đến chi phí tích lũy chứ không phải lợi ích của một phân phối duy nhất. Giá trị càng lớn, thì đóng góp chung vào lợi ích cuối cùng càng lớn . Rõ ràng, theo đồ thị hàm số, khi a = 1 thì hiệu suất đạt mức cao nhất từ ​​khi có đến không có, sau đó giảm dần.

Phân loại FMEX mở khóa tối ưu hóa số lượng đơn hàng

Lấy ví dụ đơn giản ở trên làm ví dụ, chúng ta có thể tính toán hiệu quả phân bổ vốn của họ và liệt kê chúng trong bảng:

quỹ 1 2
1 0.0826 0.0454
2 0.069 0.0413
3 0.0592 0.0378
4 0.051 0.0347
5 0.0444 0.032

|12 | 0.0207 |0.0195| |13 | 0.0189 |0.0184| |14 | 0.0174 |0.0173| |15 | 0.016 |0.0163| |16 | 0.0148 |0.0154| |17 | 0.0137 |0.0146| |18 | 0.0128 |0.0139|

Theo bảng, đồng nhân dân tệ đầu tiên được phân bổ cho bậc đầu tiên, đồng nhân dân tệ thứ hai được phân bổ cho bậc đầu tiên… đồng nhân dân tệ thứ năm được phân bổ cho bậc thứ hai… và cứ như vậy, và cuối cùng 15 nhân dân tệ được phân bổ cho bậc đầu tiên và 15 nhân dân tệ cho bậc thứ hai. Nhân dân tệ, đây chính là giải pháp tối ưu mà chúng tôi tính toán dựa trên phương trình. Riêng đối với bánh răng thứ 30, thuật toán cũng giống vậy và các bước cụ thể như sau:

  • 1. Kiểm tra tất cả các bánh răng trước. Nếu V = 0, thì a = 1 và không có thêm tiền nào được phân bổ.
  • 2. Phân bổ tổng số tiền thành N phần và chọn một thiết bị để phân bổ mỗi lần.
  • 3. Tính hiệu suất của mỗi bánh răng = RV/pow(a+V,2), trong đó a biểu thị số tiền tích lũy được phân bổ cho vị trí + số tiền được phân bổ lần này.
  • 4. Phân bổ tiền cho thiết bị hiệu quả nhất và chọn ngẫu nhiên một thiết bị nếu hiệu quả là như nhau.
  • 5. Lặp lại 3-4 cho đến khi phân bổ hết tiền

Nếu tổng khối lượng đơn hàng của chúng ta lớn, thì việc phân bổ từng đô la một lần là quá kém hiệu quả. Chúng ta có thể chia tiền thành 100 phần và phân bổ từng phần một. Vì đây chỉ là phép tính và sắp xếp đơn giản nên thuật toán rất có hiệu quả. Cụ thể ở cấp độ thực hiện, vẫn còn chỗ để tối ưu hóa, chẳng hạn như chia các lệnh của chúng ta thành 100, để mỗi lần điều chỉnh, chúng ta chỉ cần phân bổ lại các lệnh thay vì hủy tất cả. Bạn cũng có thể tự thiết lập giá trị R và đưa ra nhiều trọng số hơn cho những giá trị ở xa thị trường. Nếu có sự chồng chéo giữa việc mở khóa sắp xếp và mở khóa lệnh đang chờ xử lý, bạn có thể xem xét chúng cùng nhau, v.v.

Bài viết này là bài viết gốc từ FMZ Quantitative Platform. Vui lòng ghi rõ nguồn khi chuyển: https://www.fmz.com/bbs-topic-new/5843