L’effondrement de FMEX a causé beaucoup de problèmes à de nombreuses personnes, mais il a récemment élaboré un plan de redémarrage et formulé des règles similaires à celles de l’exploitation minière d’origine pour débloquer les dettes. Un article d’analyse a été publié sur le minage de transactions : https://www.fmz.com/bbs-topic/5834. Il existe également une marge d’optimisation dans le tri minier. Bien que les gens ne doivent pas tomber deux fois dans le même piège, ceux qui ont des droits sur FMEX peuvent souhaiter s’y référer. Des stratégies spécifiques en temps réel pouvant être exécutées sur la plateforme quantitative FMZ peuvent également être publiées.
Définissez toutes les 5 minutes de chaque jour comme un cycle de déverrouillage de tri, et chaque cycle se voit attribuer 1⁄288 du quota de déverrouillage de tri de la paire de transactions ce jour-là. À chaque cycle, un moment aléatoire est sélectionné pour prendre un instantané des ordres d’achat et de vente de la paire de négociation, où :
Le rendement total du déblocage du classement d’un utilisateur dans une certaine paire de trading le même jour est la somme du montant retourné à l’utilisateur pour le déblocage du classement dans chaque cycle de la paire de trading.
Premièrement, le revenu total du tri et du déverrouillage est :
Ici, i représente l’une des positions, il y a 30 positions au total pour les deux parties, a est la quantité de commande en attente, R est le montant du retour de déverrouillage et V est le nombre total de commandes existantes.
Contrairement au déblocage des transactions, passer une commande n’entraîne aucun coût. Ici, R n’a besoin de prendre en compte que la taille relative, et il n’est pas nécessaire de prendre en compte le montant absolu libellé en USDT. Si nous déterminons le nombre total d’ordres en attente, la question devient de savoir comment répartir les ordres sur différentes positions pour maximiser le profit G. Rechercher simplement l’emplacement avec la plus petite quantité de commande et y passer toutes les commandes n’est évidemment pas la solution optimale. Par exemple, il y a trois positions avec 10 ordres existants et leur R est le même. Nous fixons le volume total de l’ordre à 30. Si nous ne choisissons qu’une seule position pour passer un ordre, le bénéfice total final est de 0,75 R. 10, le Le bénéfice final est de 1,5 R. On peut constater que parfois le bénéfice des ordres dispersés est meilleur. Alors, comment répartir les fonds ?
Finalement, nos objectifs et contraintes d’optimisation sont :
Où M est la quantité totale de la commande. Il s’agit d’un problème d’optimisation convexe quadratique impliquant des inégalités, qui satisfait la condition KTT et a une solution entière. En utilisant le package correspondant et le solveur d’optimisation convexe, il devrait être possible d’obtenir directement les résultats et de renvoyer la quantité de commande optimale pour chaque position. Mais ce n’est évidemment pas la réponse que nous souhaitons. Nous devons simplifier le problème et obtenir des étapes de résolution spécifiques.
Considérons seulement deux niveaux. Les volumes d’ordres actuels sont de 10 et 20 (appelés respectivement premier et deuxième niveaux). Leurs quotas de déblocage sont tous deux de R. Le nombre total d’ordres de réserve de stratégie est de 30. Comment doivent-ils être attribués ? Le montant des fonds débloqués a-t-il été maximisé ? Cette question paraît simple, mais il est difficile d’en tirer la bonne conclusion sans calcul. Les lecteurs voudront peut-être d’abord réfléchir eux-mêmes à la réponse.
Scénario 1 :
Trouvez la position de commande minimum et placez toutes les commandes là-bas, le bénéfice total G=30/(30+10)=0,75R. C’est aussi la solution la plus simple à laquelle on puisse penser.
Scénario 2 :
1 yuan est alloué à chaque fois et attribué à l’endroit qui peut générer le plus grand profit, c’est-à-dire l’endroit avec le plus petit nombre de commandes en attente. Ensuite, le premier yuan sera attribué au premier niveau, et le volume de commande du premier niveau deviendra 10+1. Le deuxième yuan sera également attribué au premier niveau… et ainsi de suite, jusqu’à un total de 10 yuans est attribué au premier niveau. À ce stade, un sera sélectionné au hasard et lorsque le nombre total de commandes en attente au premier niveau dépassera 20, il sera attribué au deuxième niveau. Le résultat final est que 20 yuans sont alloués au premier niveau et 10 yuans au deuxième niveau, et leurs commandes finales sont toutes deux de 30. Bénéfice total G=20⁄30+10⁄30=R. Cette solution est bien meilleure que la solution 1 et est également plus facile à calculer.
Scénario 3 :
Nous pouvons supposer que le premier niveau est attribué à a et le deuxième niveau est 30-a. Ensuite, nous pouvons directement lister l’équation et trouver sa dérivée à 0 (le processus n’est pas répertorié ici, il est similaire à l’article sur le déverrouillage des transactions ), et calculez le résultat final. La formule est :
Remplacez par l’entier et obtenez a=15. Le bénéfice total G=15⁄25+15⁄35=1,0286R, ce qui est mieux que l’option 2. Comme il est directement dérivé de la formule, il s’agit de la solution optimale. Les lecteurs peuvent la vérifier.
Le résultat peut être différent de ce que vous attendiez. Il est évident que l’allocation de chaque dollar dans le Plan 2 est la solution optimale dans les circonstances actuelles. Comment se fait-il que ce ne soit pas la solution optimale globale ? Cette situation est très courante. L’optimum local n’est pas nécessairement l’optimum global, car avant l’allocation, les commandes ont déjà investi des fonds et l’efficacité globale doit prendre en compte les coûts irrécupérables. Notre objectif pour chaque étape d’optimisation est de maximiser l’efficacité globale plutôt que de maximiser un seul avantage.
Nous avons enfin commencé l’opération réalisable. Simplifions le problème en allouant 1 yuan à chaque fois. Commençons par mesurer l’efficacité. La dérivée peut refléter la contribution de chaque a à G. Cette contribution prend en compte le coût cumulé plutôt que le bénéfice d’une distribution unique. Plus la valeur est élevée, plus la contribution globale au bénéfice final est importante. . Évidemment, d’après le graphique de la fonction, lorsque a=1, l’efficacité est la plus élevée de l’existence à la non-existence, puis diminue progressivement.
En prenant l’exemple simple ci-dessus comme exemple, nous pouvons calculer l’efficacité de leur allocation de fonds et les lister dans un tableau :
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 attribué au premier niveau, le deuxième yuan est attribué au premier niveau… le cinquième yuan est attribué au deuxième niveau… et ainsi de suite, et enfin 15 yuans sont attribués à le premier niveau et 15 yuans pour le deuxième niveau. Yuan, ce qui se trouve être la solution optimale que nous avons calculée sur la base de l’équation. Spécifiquement pour la 30ème vitesse, l’algorithme est le même, et les étapes spécifiques sont :
Si notre volume total de commandes est important, il est trop inefficace d’allouer chaque dollar à la fois. Nous pouvons diviser les fonds en 100 parties et en allouer une partie à la fois. Comme il s’agit simplement d’un calcul et d’un tri simples, l’algorithme est très efficace. efficace. Plus précisément au niveau de l’exécution, il y a encore de la place pour l’optimisation, comme par exemple diviser nos commandes en 100, de sorte qu’à chaque fois que nous faisons des ajustements, nous n’avons qu’à réaffecter les commandes au lieu de les annuler toutes. Vous pouvez également définir vous-même la valeur R et donner plus de poids à ceux qui sont éloignés du marché. S’il existe des chevauchements entre le déverrouillage du tri et le déverrouillage des commandes en attente, vous pouvez les considérer ensemble, et ainsi de suite.
Cet article est un article original de FMZ Quantitative Platform. Veuillez indiquer la source lors du transfert : https://www.fmz.com/bbs-topic-new/5843