FMEXの崩壊は多くの人々に多大な迷惑をかけたが、最近は再スタートプランを打ち出し、負債を解消するために当初のマイニングと同様のルールを策定した。トランザクションマイニングに関する分析記事が公開されています: https://www.fmz.com/bbs-topic/5834。ソートマイニングにも最適化の余地があります。同じ落とし穴に二度陥ってはいけませんが、FMEX に権利を持っている人は参考にしてください。FMZ 定量プラットフォームで実行できる特定のリアルタイム戦略もリリースされる可能性があります。
毎日 5 分ごとにソートロック解除サイクルを定義し、各サイクルにその日のトランザクション ペアのソートロック解除クォータの 1⁄288 が割り当てられます。各サイクルでは、取引ペアの買い注文と売り注文のスナップショットを取得するためにランダムな時点が選択されます。
特定の取引ペアにおけるユーザーの同日のランキングロック解除による総リターンは、その取引ペアの各サイクルにおけるランキングロック解除に対してユーザーに返される金額の合計です。
まず、ソートとロック解除の合計収入は次のようになります。
ここで、i はポジションの 1 つを表し、両当事者の合計ポジション数は 30 個、a は保留中の注文数量、R はロック解除の返金額、V は既存の注文の合計数です。
トランザクションのロック解除とは異なり、注文を出すのにコストはかかりません。ここで、R は相対的なサイズのみを考慮する必要があり、USDT 建ての絶対的な金額を考慮する必要はありません。保留中の注文の総数を決定したら、利益 G を最大化するために注文をさまざまなポジションに割り当てる方法が問題になります。単に注文数量が最も少ない場所を探して、そこにすべての注文を配置するだけでは、明らかに最適な解決策にはなりません。例えば、10の既存注文を持つポジションが3つあり、それらのRは同じです。合計注文量を30に設定します。1つのポジションのみを選択して注文を出すと、最終的な合計利益は0.75Rになります。最終利益は1.5Rであり、分散注文の利益の方が優れている場合があることがわかります。それで、資金をどのように配分するのですか?
最後に、最適化の目的と制約は次のとおりです。
ここで、M は合計注文数量です。これは、KTT 条件を満たし、整数解を持つ、不等式を含む 2 次凸最適化問題です。対応するパッケージと凸最適化ソルバーを使用すると、結果を直接取得し、各ポジションの最適な注文数量を返すことができるようになります。しかし、これは明らかに私たちが求めている答えではありません。問題を単純化し、具体的な解決手順を取得する必要があります。
2 つの層のみを考えます。現在の注文量は 10 と 20 です (それぞれ第 1 層と第 2 層と呼ばれます)。ロック解除クォータは両方とも R です。戦略準備注文の合計数は 30 です。これらをどのように割り当てるべきでしょうか。ロック解除された資金の額は最大化されましたか?この質問は簡単そうに見えますが、計算なしでは正しい結論を導き出すのは難しいです。まずは読者自身が答えを考えてみるのもいいかもしれません。
シナリオ 1:
最小注文ポジションを見つけてそこにすべての注文を配置すると、総利益は G=30/(30+10)=0.75R になります。これも考えられる最も簡単な解決策です。
シナリオ2:
毎回1元ずつ割り当てられ、最も利益を生み出せる場所、つまり保留注文数が最も少ない場所に割り当てられます。そして、最初の元は第1層に割り当てられ、第1層の注文量は10+1になります。2番目の元も第1層に割り当てられ、合計10元になるまで続きます。第一層に割り当てられます。このときランダムに1つ選択され、第一層の保留注文の総数が20を超えると第二層に割り当てられます。最終結果は、第 1 層に 20 元、第 2 層に 10 元が割り当てられ、最終注文は両方とも 30 になります。総利益G=20⁄30+10⁄30=R。このソリューションはソリューション 1 よりもはるかに優れており、計算も簡単です。
シナリオ3:
最初の層にaが割り当てられ、2番目の層に30-aが割り当てられていると仮定できます。次に、方程式を直接リストし、その導関数を0として見つけることができます(プロセスはここにはリストされていませんが、トランザクションのロック解除に関する記事に似ています)。 )を計算し、最終結果を計算します。式は次のとおりです。
整数を代入すると、a=15 になります。総利益 G=15⁄25+15⁄35=1.0286R となり、オプション 2 よりも優れています。これは式から直接導き出されるため、最適なソリューションです。読者はこれをチェックできます。
結果は予想と異なる可能性があります。プラン 2 の各ドルの割り当てが現在の状況下では最適なソリューションであることは明らかです。なぜそれが全体的な最適なソリューションではないのでしょうか。この状況は非常に一般的です。割り当て前に注文にはすでに資金が投資されており、全体的な効率では埋没コストを考慮する必要があるため、局所最適は必ずしも全体最適ではありません。最適化の各ステップにおける私たちの目標は、単一の利益を最大化することではなく、全体的な効率を最大化することです。
いよいよ実際の実行可能な操作を開始します。毎回1元を割り当てることで問題を単純化しましょう。まず、効率を測定しましょう。導関数は、各 a の G への貢献を反映できます。この貢献は、単一の分配の利益ではなく、累積コストを考慮に入れます。値が大きいほど、最終的な利益への全体的な貢献が大きくなります。明らかに、関数のグラフによれば、a=1 のとき、効率は存在から非存在まで最高になり、その後徐々に低下します。
上記の簡単な例を例にとると、資金配分の効率を計算し、表にまとめることができます。
資金 | 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|
表によると、最初の元は第1層に割り当てられ、2番目の元は第1層に割り当てられ、5番目の元は第2層に割り当てられ、最後に15元が割り当てられます。第一層に1元、第二層に15元です。これは、方程式に基づいて計算した最適解です。特に 30 番目のギアの場合、アルゴリズムは同じで、具体的な手順は次のとおりです。
総注文量が多い場合、1ドルずつ割り当てるのは非効率すぎます。資金を100に分割し、1つずつ割り当てることができます。これは単純な計算と並べ替えなので、アルゴリズムは非常に簡単です。効率的。特に実行レベルでは、注文を 100 に分割するなど、最適化の余地がまだあります。これにより、調整を行うたびに、すべての注文をキャンセルするのではなく、注文を再割り当てするだけで済みます。 R 値を自分で設定して、市場から遠いものに重点を置くこともできます。ソートのロック解除と保留中の注文のロック解除が重複している場合は、それらを一緒に考慮するなどできます。
この記事はFMZ Quantitative Platformからのオリジナル記事です。転送の際は出典を明記してください: https://www.fmz.com/bbs-topic-new/5843