Sự sụp đổ của FMEX đã làm tổn thương nhiều người, nhưng nó gần đây đã đư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ư khai thác mỏ ban đầu để mở khóa nợ của họ.https://www.fmz.com/bbs-topic/5834. Đồng thời, có không gian tối ưu hóa trong khai thác phân loại. Mặc dù mọi người không nên bước vào cùng một hố hai lần, những người có yêu cầu tài chính trên FMEX có thể muốn thử, các chiến lược thị trường thực tế cụ thể cũng sẽ được phát hành.
Định nghĩa mỗi 5 phút trong mỗi ngày như một chu kỳ mở khóa sắp xếp, và mỗi chu kỳ phân bổ 1/288 số tiền mở khóa sắp xếp của cặp giao dịch trong ngày. Trong mỗi chu kỳ, một thời điểm được chọn ngẫu nhiên để chụp ảnh chụp của giao dịch trên các lệnh đang chờ của các lệnh giao dịch, trong đó:
Mua 1 Theo tỷ lệ số tiền đặt hàng đang chờ của người dùng, phân bổ 1/4 số tiền hoàn trả của chu kỳ mở khóa sắp xếp
Bán 1 Theo tỷ lệ số tiền đặt hàng đang chờ của người dùng, phân bổ 1/4 số tiền hoàn trả của chu kỳ mở khóa phân loại
Mua 2 để mua 5 của bốn lớp lệnh đang chờ, theo tỷ lệ của số tiền của người dùng lệnh trong mỗi lệnh, việc phân bổ chu kỳ mở khóa lệnh được chia thành 1/40
Bán 2 để bán 5 của bốn lớp lệnh đang chờ, theo tỷ lệ của số tiền của người dùng lệnh trong mỗi lệnh, việc phân bổ chu kỳ mở khóa lệnh được chia thành 1/40
Mua 6 để mua 10 của năm lớp lệnh đang chờ, theo tỷ lệ của số tiền của người dùng lệnh trong mỗi lệnh, việc phân bổ các lệnh mở khóa chu kỳ được chia thành 1/50
Bán 5 để bán 10 của năm lớp lệnh đang chờ, theo tỷ lệ của số tiền của người dùng lệnh trong mỗi lệnh, phân bổ chu kỳ mở khóa lệnh được chia thành 1/50
Mua 11 để mua 15 của năm lớp lệnh đang chờ, theo tỷ lệ của số tiền của người dùng lệnh trong mỗi lệnh, việc phân bổ các lệnh mở khóa chu kỳ được chia thành 1/100
bán 5 để bán 15 của năm lớp lệnh đang chờ, theo tỷ lệ của số tiền của người dùng lệnh trong mỗi lệnh, phân bổ của các lệnh mở khóa chu kỳ được chia thành 1/100
Tổng số tiền hoàn lại của lệnh mở khóa 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ố tín dụng được trả lại bởi lệnh mở khóa của người dùng trong mỗi chu kỳ trong giao dịch.
Đầu tiên, tổng doanh thu phân loại và mở khóa là:
Ở đâu?i
đại diện cho một trong những vị trí, và có 30 vị trí ở cả hai bên,a
là số lượng các đơn đặt hàng đang chờ,R
là số tiền hoàn lại chưa bị khóa, vàV
là tổng số đơn đặt hàng hiện có.
Không giống như việc mở khóa giao dịch, không có chi phí cho các đơn đặt hàng đang chờ.R
Nếu chúng ta xác định tổng số lệnh đang chờ, câu hỏi trở thành 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ậnG
Đơn giản là tìm kiếm vị trí với số lượng nhỏ nhất của lệnh chờ và chờ tất cả chúng lên rõ ràng không phải là giải pháp tối ưu.R
Nếu chỉ chọn một vị trí, tổng lợi nhuận cuối cùng là 0.75R. Nếu mỗi vị trí được đặt 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 từ sự lây lan của các lệnh đang chờ là tốt hơn.
Cuối cùng, mục tiêu và hạn chế tối ưu hóa của chúng tôi là:
Ở đâu?M
là tổng số lệnh đang chờ. Đây là một vấn đề tối ưu hóa cong hình vuông có chứa bất bình đẳng, đáp ứng điều kiện KTT và được giải quyết như một số nguyên. Sử dụng gói tương ứng và trình giải tối ưu hóa cong nên có thể trực tiếp nhận được kết quả và trả về số lượng tối ưu các lệnh đang chờ cho mỗi vị trí. Nhưng rõ ràng đây không phải là câu trả lời chúng tôi muốn, chúng tôi cần đơn giản hóa vấn đề và nhận được các bước giải quyết cụ thể.
Chỉ có hai lớp giá được xem xét. các đơn đặt hàng đang chờ là 10 và 20 (được gọi là lớp đầu tiên và thứ hai, tương ứng), và số tiền mở khóa của họ làR
, và tổng số tiền của chiến lược chờ đặt hàng là 30. Làm thế nào để phân bổ các quỹ đạt đến số tiền mở khóa tối đa? Câu hỏi này có vẻ đơn giản, nhưng rất khó để rút ra kết luận chính xác mà không tính toán.
Kế hoạch 1:
Tìm vị trí của đơn đặt hàng nhỏ nhất đang chờ, treo tất cả chúng, tổng lợi nhuận sẽ làG=30/(30+10)=0.75R
Đây cũng là giải pháp dễ nhất để nghĩ ra.
Kế hoạch 2:
Mỗi lần nó được phân bổ 1 nhân dân tệ, và được phân bổ vào nơi có thể tạo ra lợi nhuận lớn nhất, tức là vị trí có số lượng lệnh chờ ít nhất. Sau đó, nhân dân tệ đầu tiên sẽ được phân bổ cho tầng giá đầu tiên, số lượng lệnh chờ trong tầng giá đầu tiên sẽ trở thành 10 + 1, và nhân dân tệ thứ hai cũng sẽ được phân bổ cho tầng giá đầu tiên... và vân vân, cho đến khi tổng được phân bổ cho tầng giá đầu tiên là 10 nhân dân tệ, sau đó bạn có thể chọn một tùy chọn ngẫu nhiên. Khi tổng số lệnh chờ trong tầng giá đầu tiên vượt quá 20, tầng giá tiếp theo sẽ được phân bổ cho tầng giá thứ hai. Kết quả cuối cùng là 20 nhân dân tệ cho tầng giá đầu tiên và 10 nhân dân tệ cho tầng giá thứ hai. Số lượng lệnh chờ cuối cùng của họ là tất cả 30. Tổng lợi nhuận G=20/30+10/30R. Đây cũng là lựa chọn tốt hơn nhiều so với 1 và cũng dễ tính toán.
Kế hoạch 3:
Bạn có thể thiết lập lớp giá đầu tiên để phân bổa
, và tầng giá thứ hai là30-a
, sau đó bạn có thể trực tiếp liệt kê phương trình và dẫn ra nó như 0 (quá trình bị bỏ qua, tương tự như bài viết của mở khóa giao dịch), tính toán kết quả cuối cùng, công thức là:
Mang vào làm tròn để tìma=15
. Tổng lợi nhuậnG=15/25+15/35=1.0286R
, mà là tốt hơn so với Kế hoạch 2. Vì nó trực tiếp bắt nguồn từ công thức, đây là lựa chọn tối ưu, độc giả có thể kiểm tra nó.
Kết quả có thể khác với mong đợi của mọi người. Kế hoạch 2 cho thấy rõ rằng việc phân bổ từng yếu tố là giải pháp tối ưu trong tình huống hiện tại. Tại sao không phải là giải pháp tối ưu tổng thể? Tình huống này rất phổ biến, và tối ưu địa phương không nhất thiết là tối ưu tổng thể, bởi vì trước khi phân bổ, số lượng đơn đặt hàng đang chờ đã được đầu tư, và hiệu quả tổng thể cần xem xét chi phí chìm. Mục tiêu của chúng tôi cho mỗi bước tối ưu hóa là đạt được hiệu quả tổng thể cao nhất chứ không phải là lợi nhuận duy nhất cao nhất.
Cuối cùng, các hoạt động thực tế khả thi bắt đầu, hoặc đơn giản hóa vấn đề bằng cách phân bổ 1 nhân mỗi lần.a
đếnG
. đóng góp này tính đến chi phí tích lũy, thay vì thu nhập của một phân phối duy nhất. giá trị lớn hơn, đóng góp tổng thể cho lợi ích cuối cùng càng lớn. rõ ràng, theo hình ảnh của chức năng,a=1
, từ sự hiện diện đến sự vắng mặt, hiệu quả cao nhất, và sau đó giảm dần.
Tương tự như vậy, lấy ví dụ đơn giản ở trên làm ví dụ, tính toán hiệu quả của chúng sau khi phân bổ các quỹ riêng biệt và liệt kê các 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 đầu tiên được gán cho lớp giá đầu tiên, đồng nhân thứ hai được gán cho lớp giá đầu tiên... đồng nhân thứ năm được gán cho lớp giá thứ hai... và vân vân, và cuối cùng được gán cho lớp giá đầu tiên 15 đồng nhân, lớp giá thứ hai 15 đồng nhân chính xác là giải pháp tối ưu mà chúng tôi tính toán theo phương trình.
V=0
Vậy thìa=1
, không còn phân bổ tiền dư thừa.N
và chọn một lớp giá để phân bổ tại một thời điểm.RV/pow(a+V, 2)
, a
đại diện cho tổng số tiền được phân bổ tại vị trí này + số tiền được phân bổ lần này.Nếu tổng số lệnh đang chờ của chúng tôi lớn và hiệu quả phân bổ mỗi nhân dân tệ quá thấp, chúng tôi có thể chia tiền thành 100 và phân bổ một lần mỗi lần. Vì nó chỉ là một hoạt động sắp xếp đơn giản, hiệu quả của thuật toán rất cao. Đặc biệt với cấp độ thực thi, vẫn còn chỗ cho tối ưu hóa, chẳng hạn như chia các đơn đặt hàng của chúng tôi thành 100, do đó mỗi khi bạn điều chỉnh, bạn chỉ cần phân bổ lại đơn đặt hàng và không cần phải hủy tất cả.R
Có các phần chồng chéo cho sắp xếp mở khóa và chờ lệnh mở khóa, mà có thể được xem xét cùng nhau, và như vậy.