L'effondrement de FMEX a nui à beaucoup de gens, mais il est récemment venu avec un plan de redémarrage et a formulé des règles similaires à l'exploitation minière originale pour débloquer leur dette.https://www.fmz.com/bbs-topic/5834. En même temps, il y a place à l'optimisation dans le tri minier. Bien que les gens ne devraient pas entrer dans le même puits deux fois, ceux qui ont des réclamations financières sur FMEX peuvent vouloir l'essayer, les stratégies spécifiques du marché réel seront également publiées.
Définissez tous les 5 minutes dans chaque jour comme un cycle de déverrouillage de tri, et chaque cycle alloue 1/288 du montant de déverrouillage de tri de la paire de négociation de la journée.
Acheter 1 Selon la proportion du montant de la commande en attente de l'utilisateur, attribuer 1/4 du montant du remboursement du cycle de déverrouillage de tri
Vendre 1 En fonction de la proportion du montant de la commande en attente de l'utilisateur, attribuer 1/4 du montant du remboursement du cycle de déverrouillage de tri
Acheter 2 à Acheter 5 de ces quatre niveaux d'ordres en attente, selon la proportion du montant des ordres de l'utilisateur dans chaque ordre, l'allocation du cycle de déverrouillage des ordres est divisée en 1/40
Vendre 2 à Vendre 5 de ces quatre niveaux d'ordres en attente, selon la proportion du montant des ordres de l'utilisateur dans chaque ordre, l'allocation du cycle de déverrouillage des ordres est divisé en 1/40
Acheter 6 à Acheter 10 de ces cinq niveaux d'ordres en attente, selon la proportion du montant des ordres de l'utilisateur dans chaque ordre, l'allocation du cycle de déverrouillage des ordres est divisée en 1/50
Vendre 5 à Vendre 10 de ces cinq niveaux d'ordres en attente, selon la proportion du montant des ordres de l'utilisateur dans chaque ordre, l'allocation du cycle de déverrouillage des ordres est divisé en 1/50
Acheter 11 à acheter 15 de ces cinq niveaux d'ordres en attente, selon la proportion du montant des ordres de l'utilisateur dans chaque ordre, l'allocation du cycle de déverrouillage des ordres est divisé en 1/100
Vendre 5 à Vendre 15 de ces cinq niveaux d'ordres en attente, selon la proportion du montant des ordres de l'utilisateur dans chaque ordre, l'allocation du cycle de déverrouillage des ordres est divisé en 1/100
Le remboursement total de l'ordre d'un utilisateur débloqué dans une certaine paire de transactions le même jour est la somme des crédits restitués par l'ordre d'un utilisateur débloqué pour chaque cycle de la transaction.
Premièrement, le revenu total du tri et du déverrouillage est:
Où?i
représente une des positions, et il y a 30 positions des deux côtés,a
est le montant des ordres en attente,R
est le montant de la restitution débloqué, etV
est le montant total des commandes existantes.
Contrairement au déverrouillage des transactions, il n'y a pas de frais pour les commandes en attente.R
Si nous déterminons le montant total des ordres en attente, la question devient de savoir comment répartir les ordres sur différentes positions pour maximiser le profitG
. Il est évident que la simple recherche de la position avec le plus petit nombre d'ordres en attente et la mise en attente de tous n'est pas la solution optimale.R
Si nous choisissons une seule position, le rendement total final est de 0,75R. Si chaque position est placée 10, le rendement final est de 1,5R, ce qui montre que parfois le rendement de l'écart des ordres en attente est meilleur.
En fin de compte, nos objectifs et contraintes d'optimisation sont:
Où?M
est le nombre total d'ordres en attente. Il s'agit d'un problème d'optimisation convexe quadratique qui contient des inégalités, satisfait à la condition KTT et est résolu en entier. En utilisant le package correspondant et le résolveur d'optimisation convexe devrait être en mesure d'obtenir directement les résultats et de retourner le nombre optimal d'ordres en attente pour chaque position. Mais ce n'est évidemment pas la réponse que nous voulons, nous devons simplifier le problème et obtenir des étapes de solution spécifiques.
Les commandes en attente actuelles sont 10 et 20 (appelées respectivement la première et la deuxième couche) et leur montant débloqué est deR
Comment allouer les fonds pour atteindre le montant maximum débloqué? Cette question semble simple, mais il est difficile de tirer une conclusion correcte sans calcul.
Le plan 1:
Trouvez la position de la plus petite commande en attente, accrochez-les tous, le retour total seraG=30/(30+10)=0.75R
C'est aussi la solution la plus facile à trouver.
Le plan 2:
Chaque fois qu'il est alloué 1 yuan, et alloué à l'endroit qui peut générer le plus de profit, c'est-à-dire la position avec le plus petit nombre d'ordres en attente. Ensuite, le premier yuan sera alloué à la première couche de prix, le montant des ordres en attente dans la première couche de prix deviendra 10 + 1, et le deuxième yuan sera également alloué à la première couche de prix... et ainsi de suite, jusqu'à ce que le cumulatif soit alloué à la première couche de prix de 10 yuans, vous pouvez choisir un au hasard. Lorsque le total des ordres en attente dans la première couche de prix dépasse 20, la prochaine couche de prix sera allouée à la deuxième couche de prix. Le résultat final est de 20 yuans pour la première couche de prix et de 10 yuans pour la deuxième couche de prix. Leurs ordres en attente finaux sont tous 30.
Le plan 3:
Vous pouvez définir la première couche de prix à allouera
, et la deuxième couche de prix est30-a
, puis vous pouvez directement lister l'équation et la dériver à 0 (le processus est omis, similaire à l'article de déverrouillage du commerce), calculer le résultat final, la formule est:
Apportez l' arrondissement pour trouvera=15
. Le rendement totalG=15/25+15/35=1.0286R
, ce qui est mieux que Plan 2. Comme il est directement dérivé de la formule, c'est l'option optimale, les lecteurs peuvent le vérifier.
Le résultat peut être différent des attentes de tout le monde. Le plan 2 montre clairement que l'allocation de chaque élément est la solution optimale dans la situation actuelle. Pourquoi pas la solution optimale globale? Cette situation est très courante, et l'optimalité locale n'est pas nécessairement l'optimalité globale, car avant l'allocation, le montant des commandes en attente a déjà été investi, et l'efficacité globale doit tenir compte du coût coulé. Notre objectif pour chaque étape d'optimisation est d'atteindre la plus grande efficacité globale plutôt que le plus grand rendement unique.
Enfin, l'opération réelle réalisable a commencé, ou pour simplifier le problème en allouant 1 yuan à chaque fois.a
àG
Cette contribution tient compte du coût cumulé, plutôt que du revenu d'une seule distribution. Plus la valeur est élevée, plus la contribution globale au bénéfice final est élevée.a=1
, de la présence à l'absence, l'efficacité est la plus élevée, puis diminue progressivement.
De même, en prenant l'exemple simple ci-dessus comme exemple, calculez leur efficacité après avoir alloué des fonds séparément et énumérez les tableaux:
Les fonds | 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 |
Selon le tableau, le premier yuan est affecté à la première couche de prix, le deuxième yuan est affecté à la première couche de prix... le cinquième yuan est affecté à la deuxième couche de prix... et ainsi de suite, et enfin affecté à la première couche de prix 15 yuan, la deuxième couche de prix 15 Yuan est exactement la solution optimale que nous avons calculée selon l'équation.
V=0
Alors...a=1
, n'allouent plus de fonds excédentaires.N
Il est possible d'établir une liste des actions et de sélectionner une couche de prix à attribuer à la fois.RV/pow(a+V, 2)
, a
représente les fonds cumulés alloués à cette position + les fonds alloués cette fois.Si notre total d'ordres en attente est grand et l'efficacité de chaque allocation de yuan est trop faible, nous pouvons diviser les fonds en 100 et en allouer un à chaque fois. Comme il ne s'agit que d'une simple opération de tri, l'efficacité de l'algorithme est très élevée. Spécifiquement au niveau d'exécution, il y a encore une marge d'optimisation, comme diviser nos ordres en 100, de sorte que chaque fois que vous ajustez, vous n'avez qu'à réaffecter l'ordre et n'avez pas besoin de tout annuler.R
Il y a des parties qui se chevauchent pour le déverrouillage du tri et le déverrouillage des commandes en attente, qui peuvent être considérés ensemble, et ainsi de suite.